Forum
Hallo Klaus,
ich glaube, dass das Phänomen quasi "natürlich" ist: Bei der Deadlock/Timeout Detection Period von 4*15 = 60 Sekunden "stauen" sich die INSERT’s, die nach dem Release/Commit des "Abräumprogramms" dann "endlich" ausgelöst werden. Und diese INSERT’s kommen mit einem Schwall von Timestamps (aus dem datetime special register), der vermeintlich nicht zur Periode passt, die das "Abräumprogramm" bereits abgeräumt hat. Nun wird ja aber der TIMESTAMP nicht ständig neu ermittelt, bis schließlich die physikalische Speicherung der ausstehenden INSERT Requests erfolgreich ist.
Dies würde auch zu Euren Beoachtungen passen. Außerdem: In Zeiten geringer Aktivität wird dieses Phänomen weniger sichtbar.
Das Problem ist, dass Ihr Euch – bislang – auf ein Kriterium verlaßt, dass nicht unique und nicht zuverlässig ist.
Ich würde es mal mit einer ROWID / IDENTITY Column bzw. mit einer SEQUENCE probieren. Dann sorgt DB2 dafür, dass Ihr auf jeden Fall ein eindeutig unterscheidbares Kriterium bekommt.
Ich meine, dass Ihr mit einer SEQUENCE das Reihenfolgen-Problem in den Griff bekommt. (Das "Abräumprogramm könnte die Sequence beispielsweise auch zurücksetzen.)
Viele Grüße
Gernot