Results 1 to 3 of 3
  1. #1
    Join Date
    Feb 2009

    Unanswered: New DSI Thread goes down ,

    I have a two machine one way replication setup .
    The repagents on the primary are up and secondary are down .
    when i do a fresh installation of database on both the machines and start the application
    for the first time , i get the following error
    A grouped transaction of 14 individual transactions has failed in database 'WS2SYB.ncdb'. Each transaction in the group will be executed individually.
    I. 2009/07/09 18:38:42. Connection to server 'WS2SYB' as user 'dbhrep' has been faded out (closed).
    Message from server: Message: 552, State 1, Severity 16 -- 'A column insert or update conflicts with a rule bound to the column. The command is aborted. The conflict occured in database 'ncdb', table 'AEOBTrackData', rule 'TrackData_PRF_check', column 'PRF'.
    I. 2009/07/08 17:18:52. Message from server: Message: 3621, State 0, Severity 10 -- 'Command has been aborted.
    H. 2009/07/08 17:18:52. THREAD FATAL ERROR #5049 DSI EXEC(104(1) WS2SYB.ncdb) - dsiqmint.c(2895)
    The DSI thread for database 'WS2SYB.ncdb' is being shutdown. DSI received data server error #552 which is mapped to STOP_REPLICATION. See logged data server errors for more information. The data server error was caused by output command #1 mapped from input command #3 of the failed transaction.
    I. 2009/07/08 17:18:52. The DSI thread for database 'WS2SYB.ncdb' is shutdown.
    running admin who_is_down in secondary stated that the dsi thread is suspended
    i resumed the connection to the dataserver skip transaction command.
    The application proceeds successfully .
    The transaction gets logged in exception log .
    using the following command
    Summary of Logged Transactions on 'WS2REP'

    Total # of Logged Transactions = 1

    Xact ID Org Site Org User Org Date Dest Site # Recs/Xact
    ----------- --------------- -------- ----------- --------------- -----------
    101 WS1SYB.ncdb dbh Jul 8 2009 WS2SYB.ncdb 19

    For detailed information on a logged xact., type 'rs_helpexception {Xact

    select * from rs_exceptshdr where error_site ='ws2syb' and error_db='ncdb'

    app_trans_name orig_siteid
    orig_site orig_db
    orig_time orig_user error_siteid
    error_site error_db
    log_time ds_error

    error_src_line error_proc error_output_line
    log_reason trans_status retry_status app_usr
    ------------------------------ -----------
    ------------------------------ ------------------------------
    -------------------------- ------------------------------ ------------
    ------------------------------ ------------------------------
    -------------------------- -----------
    -------------- ------------------------------ -----------------
    ---------- ------------ ------------ ------------------------------
    0x000000010001f74e00135753315359426e63646200000000 000000000000000000000
    00000000000000000000000000000000000000000000000000 000000000000000000000
    00000000000000000000000000000000000000000000000000 000000000000000000000
    DBAddInAEOBTracks_trans 102
    WS1SYB ncdb
    Jul 8 2009 5:18PM dbh 104
    WS2SYB ncdb
    Jul 8 2009 5:22PM 0

    0 0
    S 0 2 dbhrep

    (1 row affected)
    select t.texttype,t.sequence ,t.textval from rs_systext t , rs_exceptscmd e wh
    ere e.sys_trans_id = 0x0100006600000065 and t.parentid = e.cmd_id order by e.src_
    cmd_line , e.output_cmd_index

    using this command i get the rs_insert values ..
    in this output for table aeobtrackdata , the attribute value insert for one field is out of range
    insert into AEOBTrackData (EOBTrackNumber, CCTrackNumber, TrackStatus, E
    mitterType, MinFrequency, MaxFrequency, PulseWidth, PRF, DOA, Amplitude, ScanType
    , AntennaScanPeriod, FirstTOI, LastTOI, ActivityCount, TrackAge, ParamSourceRx, I
    dentityType, PrfAttri
    C 2
    bute, FrequencyAttribute, BandCode, StagJit, DFSource, DFQuality, RiseTi
    me, FallTime) values (1, 1, 2, 3, 6970, 7025, 101, 0, 65535, 50, 0, 1, 1247053472
    , 1247053479, 1, 8, 3, 2, 8, 2, 1, 0, 4, 1, 32767, 32767)

    how does the prf value change at the secondary machine ?
    The same transaction gets committed at primary but fails at secondary ?

    can any one help me find a solution for the above problem ?

  2. #2
    Join Date
    Jun 2009
    South Africa
    It's better to resolve problems before skipping transactions..

    What does the TrackData_PRF_check rule state by the way ?

    Are there any triggers defined ? If there is, the change might be done by trigger activity. By the time the trigger activity in the primary is getting replicated to the secondary, the trigger could have already fired in the secondary, causing an insert / update conflict.
    The default for a Warm Standy is to disable triggers for the DSI session.
    Verify this by logging into Repserver and execute the following:

    trace "on", "dsi", "dsi_buf_dump"
    resume connection to WS2SYB.ncdb

    Wait for it to fail..

    Switch off the DSI trace :
    trace "off", "dsi", "dsi_buf_dump"

    Now look at the RepServer error log, and you'll see the actual SQL that was being applied via the DSI. In this, you should see a "set triggers off" statement as well. If not, alter the DSI behaviour to not fire triggers in the replicate/standby :

    alter connection to WS2SYB.ncdb
    set dsi_keep_triggers to 'off'

    Your first place to troubleshoot is always the RepServer's error log :
    If you do not know where it is, get it's path with :
    admin log_name

    It could also be due to the default of "batching" commands together. Try disabling this by using :

    alter connection to WS2SYB.ncdb
    set batch to 'off'

    If this does not have an effect, rather turn on batching for best performance :
    alter connection to WS2SYB.ncdb
    set batch to 'on'

  3. #3
    Join Date
    Feb 2009
    Hi lerac
    Thanks for the reply
    The TrackData_PRF_check rule specifies the range for the PRF field ,
    (@PRF BETWEEN 50 AND 200000) OR (@PRF = 524287)
    But while inserting in the secondary side it sets the prf value as 0 ,because of which conflict occurs during insertion
    i will anyways follow your commands and post the result asap.

    Thank you for the reply

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts