[ http://issues.apache.org/jira/browse/SANDESHA2-58?page=all ]

Andrew Gatford updated SANDESHA2-58:
------------------------------------

    Attachment: processOutMessageRefactor.patch

Refactoring out common code into a parent processing class for ack 
request/close/terminate

> 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
>         Attachments: ackRequestStore.patch, closeStore.patch, 
> processOutMessageRefactor.patch, terminateStored.patch
>
>
> 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]

Reply via email to