Menu

Dual processing of inserted records

Help
2014-08-18
2014-09-16
  • Alexandr Zarubkin

    Hello,

    If a record is inserted in database while a node is being reloaded, it ends up in two channels: one for reload and one for simple synchronization. The insertion should take place while reload is already active, but the target table has not yet been reloaded.

    Then I get synchronization errors because the new record has been copied as part of reload, but simple synchronization process tries to insert it one more time.

    Can it be fixed in SymmetricDS? If not, how do I fix this synchronization error?

     
  • Alexandr Zarubkin

    Hmmm, it seems it has something to do with BIT value transformation which I've mentioned in the neighbouring topic. If I transform the value by ValueMap, the initial reload succeeds, but subsequent inserts to this table fail with "conflict on UPDATE" message. If I set the transformation to Copy, the inserts succeed, but then I can't reload data.

     
  • Eric Long

    Eric Long - 2014-08-21

    I think it's supposed to try the insert, find the row exists, and then try an update instead. Maybe you've changed the conflict resolution to prevent that fallback operation. If there is a bug around the bit type and its true/false value interpretation of loading data, that might be causing the conflict also.

     
  • Eric Long

    Eric Long - 2014-08-21

    I've heard there is an issue around bit/tinyint on MSSQL that is being worked on. Does it help your initial load if set this parameter?

    initial.load.concat.csv.in.sql.enabled=true

     
  • Alexandr Zarubkin

    This issue is not relevant any more, it was due to some misunderstanding by me. Thanks!

     

Log in to post a comment.