Deprecate unknown() method in BA Participant interface
------------------------------------------------------
Key: JBTM-490
URL:
https://jira.jboss.org/jira/browse/JBTM-490
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: WS-T Implementation
Affects Versions: 4.5
Reporter: Andrew Dinn
Assignee: Andrew Dinn
Fix For: 4.6
The BA Participant interface defines an unknown() method with the following description
If the participant enquires as to the status of the transaction it was
registered with and that transaction is no longer available (has rolled
back) then this operation will be invoked by the coordination service.
Status enquiries only occur between participant completion and subsequent close or
compensate. If the response to this enquiry is an InvalidState fault then this indicates
that the coordinator host has lost all record of the transaction because of a crash, in
which case the correct response is to call the participant's compensate() method (this
is a correct step in the presumed abort protocol). InvalidState can only be sent if the
participant does not exist.
If GetStatus results in a Status message notifying an unexpected coordinator state (i.e.
neither Active nor Compensating nor Compensated) or leads to some other soap fault being
sent in reply then the correct response is to call the participant error() method since
this represents an unrecoverable protocol error. This type of error is orthogonal to the
recovery status of the participant or the coordinator since it can happen before or after
a crash on either side (or both sides) and, where there has been a crash, before or after
the participant's status is re-established. Consequently, there is no circumstance in
which it would be appropriate for unknown() to be called in place of error().
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira