Terminate and Close rejected for sequences that have not been established
-------------------------------------------------------------------------
Key: SANDESHA2-58
URL: http://issues.apache.org/jira/browse/SANDESHA2-58
Project: Apache Sandesha2
Issue Type: Improvement
Reporter: Andrew Gatford
Priority: Minor
Ack request, close and terminate works are rejected calls if the RM sequence
has not been established
with code similar to the following ->
String outSequenceID = SandeshaUtil.getSequenceProperty
(internalSeqenceID,
Sandesha2Constants.SequenceProperties.
OUT_SEQUENCE_ID, storageManager);
if (outSequenceID == null)
throw new SandeshaException(SandeshaMessageHelper.
getMessage(
SandeshaMessageKeys.
couldNotSendAckRequestSeqNotFound, internalSeqenceID));
This would mean that the following case would fail if the target service is not
currently available:
1) createSequence
2) send app message
3) terminate sequence
4) wait for sequence completion
1 and 2 would both be accepted by RM and would be queued, 3 might fail if
the create sequence response has not been recieved and the terminate would
be lost.
The change is to the Ack/Terminate and Close
processors to Add SenderBeans with send set to false, and add the messages
to the store with a Temp sequence id (as with the application messages).
In the close and terminate cases, no more messages would then be accepted
on the sequence.
When the CreateSequence response is processed it would then be able to fill
in the sequence id for each of the different message types (app/ack/close
and terminate).
This way the ack, close and terminate requests would not be rejected and
the Sender would be able to send the messages in order.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]