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... -- '...'.
In some cases, the DSI thread shuts down. Adaptive Server errors caused the connection to be suspended if:
The Adaptive Server error is assigned the retry_stop or stop_replication error action.
You executed the suspend connection command with the nowait clause.
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.
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.
Correcting
Adaptive Server error
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)
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).
Use this transaction information to manually apply the update to the replicate database.
After fixing the error in the database, resume the connection in the Replication Server:
> resume connection to westernDS.westDB skip transaction
Delete the transaction from the exceptions log to keep the log small:
1> exec rs_delexception 107 2> go
Skipping the transaction
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.
See Chapter 8, “Data Server Interface Problems”, for information about how to apply skipped transactions to a replicate database.