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?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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?
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.
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.
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
This issue is not relevant any more, it was due to some misunderstanding by me. Thanks!