1028: data server errors

Symptom

Error 1028 is displayed in the Replication Server error log. An Adaptive Server error is reported in the text of error 1028.

E. 2005/06/12 15:25:44. ERROR #1028 DSI EXEC(107(2)
westernDS.westDB) - dsiqmint.c(3027) Message from
server: Message: ..., State ..., Severity... -- '...'.

Explanation

In some cases, the DSI thread shuts down. Adaptive Server errors caused the connection to be suspended if:

Error 1028 occurs when a data server returns an error to Replication Server. Error 1028 is usually followed by several other errors. The most common error situations are described in these sections:

If the DSI thread shuts down, you cannot simply resume the connection. Resuming the connection without fixing the problem sends the same transaction to the Adaptive Server and causes the same error.

Solution

In general, you must identify and fix the Adaptive Server problem that is causing the error. See “Correcting Adaptive Server error”. If you cannot correct the cause of the problem, as a last resort, you can resume the connection and skip the transaction. Skipping a transaction, however, causes inconsistencies between the primary and replicate databases, which you must manually fix in the replicate database. See “Skipping the transaction”. Also see the most common situations for error 1028 for solutions to their particular problems.

StepsCorrecting Adaptive Server error

  1. Log in to the RSSD and display the transaction ID by executing the rs_helpexception stored procedure.

    1> rs_helpexception
    2> go
    
    Summary of Logged Transactions on ‘westernRS’
    Total # of Logged Transactions = 1
    Xact ID Org         Site Org User Org Date Dest Site #        Recs/Xact
    ------------------- ------------- ------------- ------------- ---------
    107 mil01hprdss.eur eurian        Jun 13 2006   westernDS.eur         3
    For Detailed Information on a Logged Xact., type ‘rs_helpexception
    {XactID}’
    (return status = 0)
    
  2. Using the transaction ID displayed in the previous step, display the full transaction text by executing the rs_helpexception stored procedure with the v option. The v option includes the text of the transaction in the output.

    1> rs_helpexception 107, v 
    2> go
    

    You see this information:

    Detailed Summary of Logged Transaction # 107 on 'westernRS'
    Origin Site            Origin User   Org. Commit Date    #Cmds in Xact
    --------------------   -----------   -----------------   -------------
    westernDS.westDB       eurian        Jun 13 2006 12:24               3
    Dest. Site             Dest. User    Date Logged
    --------------------   -----------   -----------------
    westernDS.westDB       …eurian       Jun 13 2006 12:27
    This transaction was logged by the ‘sysadmin log_first_tran’ command.
    Rejected Records
    textval
    ----------------------------------------------------------------
    A0100distribute :origin_time=’Jun 13 12:24:24:416PM’,:origin_user=‘’,
    :mode=1
    begin transaction ‘logexec’ for ‘eurian’/’******’
    begin transaction
    A0100distribute :origin_user=’’,:mode=1
    exec “TT”.”so_req_rep_all_allcon” @”p01”=80000709,@”p02”=’MIL’
    execute tt_act_rep_all_allcon @p01 = 80000709, @p02 = ‘MIL’
    A0100distribute :origin_time=’Jun 13 12:24:416PM’,:origin_user=‘’,
    :mode=1
    commit transaction
    execute rs_update_lastcommit @origin = 107,@origin_qid =0x00000001004620
    d300019296000effffffff000000008910009bd7cd0001000000000001,
    @ secondary_qid =0x000000000000000000000000000000000000000000000000000
    000000000000000000000, @origin_time = ‘Jun 13 12:27:227PM’
    commit transaction
    (return status = 0)
    

    This text corresponds to what is sent to the database (in this case, function strings have been applied).

  3. Use this transaction information to manually apply the update to the replicate database.

  4. After fixing the error in the database, resume the connection in the Replication Server:

    > resume connection to westernDS.westDB
         skip transaction
    
  5. Delete the transaction from the exceptions log to keep the log small:

    1> exec rs_delexception 107
    2> go
    

StepsSkipping the transaction

  1. If you cannot fix the Adaptive Server error, skip the transaction and manually apply the skipped transaction to the replicate table to resynchronize the primary and replicate tables.

  2. See Chapter 8, “Data Server Interface Problems”, for information about how to apply skipped transactions to a replicate database.