Ticket #29 (closed defect: invalid)
Rollback bei Transaction Timeout -> System.exit
| Reported by: | M.Zehender | Owned by: | T.Doenz |
|---|---|---|---|
| Priority: | critical | Milestone: | |
| Component: | CAPI3-Native | Version: | 2.0 |
| Keywords: | rollback bei Transaction Timeout | Cc: | michael.zehender@… |
Description
Wenn man bei einem Transaction Timeout ein rollback auf die transaction macht wird von MozartSpaces System.exit aufgerufen.
Attachments
Change History
Changed 21 months ago by M.Zehender
-
attachment
mzs-rollback-transaction-timeout.txt
added
comment:1 Changed 21 months ago by T.Doenz
- Owner changed from M.Barisits to T.Doenz
System.exit wird im MozartSpaces-Code nie aufgerufen. Kommt die Ausgabe "exit called!" aus deinem Code? Wird dieser in einem JUnit-Testfall ausgeführt?
Grundsätzlich wird ein Rollback automatisch bei einem Timeout der Transaktion durchgeführt, nicht jedoch bei einem Timeout eines Requests in dieser Transaktion.
comment:2 Changed 21 months ago by M.Zehender
- Cc michael.zehender@… added
Ja die Ausgabe war aus meinem Code - der Capi Aufruf ist nie in den JUnit Test code zurückgekehrt und die JVM ist terminiert. Da habe ich ein ShutdownHook hizugefügt (und hätte ihn am Ende des Testfalls wieder entfernt).
Ich weis nicht ob System.exit aufgerufen wird - allerdings terminiert die JVM - warum auch immer.
Changed 21 months ago by M.Zehender
-
attachment
TestTicketNo29.java
added
JUnit TestCase to reproduce Problem
Changed 21 months ago by M.Zehender
-
attachment
JUnit-Output-Ticket-29.txt
added
JUnit output for Ticket 29
comment:3 Changed 21 months ago by M.Zehender
- Status changed from new to closed
- Resolution set to invalid
Problem lag im Testfall (Habe ich jetzt attached).
comment:4 Changed 21 months ago by T.Doenz
OK, während ich geschrieben habe, hat sich das wohl erledigt. Hier trotzdem noch mein Kommentar: Ich kann den Fehler nicht nachvollziehen. Die Meldung "Process finished with exit code 255" deutet auf den JUnit-Starter von IntelliJ hin. Wenn ich den Testfall bei mir in Eclipse ausführe, bekomme ich nur die TransactionException. Das ist auch korrekt, weil beim Timeout automatisch ein Rollback durchgeführt wird. Wenn ich die TransactionException beim Testfall als expected bei der Annotation hinzufüge, läuft der Testfall mit grün durch.

log file rolling back a timed out transaction