Details
-
Type:
Improvement
-
Status: Closed
-
Priority:
Default
-
Resolution: Won't Fix
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
Description
Currently, if the fromApp() callback returns, ie the application message has been forwarded to the application layer,
the next expected sequence number of incoming message will be incremented.
If the Java application crashes inside the fromApp() callback, the sequence number stays as is, and after the next logon
the incoming sequence number is too low. Therefore, the message being processed in the fromApp() callback during
the crash will be refetched using a ResendRequest.
On the other hand, if some exception occurs inside the fromApp() callback (e.g. due to fatal processing errors in the application
layer) it would make sense to rollback the processed message by not incrementing the incoming sequence number.
This will cause the message to be redelivered using a ResendRequest.
To accomplish this the fromApp() callback should catch any exceptions (or at least some specific ones) and abstain from incrementing
the incoming sequence number.
As a sub-task prior to this issue I would see to separate the verify processing from the fromApp processing.
Further improvements would include full JTA (Java Transaction API) support (create another JIRA issue for this).