OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-bindings message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Further thoughts on issue BINDINGS-85



The JMS 1.1 specification has the following to say about the deliveryMode attribute (Section 4.7, Message Delivery Mode):

A JMS provider must deliver a NON_PERSISTENT message at-most-once. This means that it may lose the message, but it must not deliver it twice.
A JMS provider must deliver a PERSISTENT message once-and-only-once. This means a JMS provider failure must not cause it to be lost, and it must not deliver it twice.

So it seems quite reasonable to map the SCA atMostOnce intent to JMS delivery mode of NON_PERSISTENT, and exactlyOnce to PERSISTENT, although exactlyOnce is a profile intent that combines atMostOnce and atLeastOnce, which would imply to me that atLeastOnce maps to a JMS delivery mode of PERSISTENT.  Although this does make life quite difficult, because bindings that require exactlyOnce do also require atLeastOnce.

The only question I have left with regards to removing the deliveryMode attribute as the resolution to this issue is whether we should mandate in the JMS binding spec a specific mapping of these intents to deliveryMode values, or remain silent and leave that interpretation up to the SCA runtime.

If we were to mandate the mapping, then the resolution to the issue would be to remove the deliveryMode attribute, and replace the following paragraph in section 5:

Deployers/assemblers can configure NON_PERSISTENT for @JMSDeliveryMode in order to provide higher performance with a decreased quality of service. A binding.jms element configured in this way cannot satisfy the "atLeastOnce" policy intent. The SCA runtime MUST raise an error for this invalid combination at deployment time.

with:

The JMS delivery mode used to send messages from a JMS binding instance which requires the atMostOnce intent and not the atLeastOnce intent MUST be NON_PERSISTENT [BJM5000X]
The JMS delivery mode used to send messages from a JMS binding instance which requires the atLeastOnce intent MUST be PERSISTENT [BJM5000Y]

Given the deliveryMode default is PERSISTENT, we could also say:

The JMS delivery mode used to send messages from a JMS binding instance which does not require either of these intents MUST be PERSISTENT [BJM5000Z]

In fact these could all be collapsed into a single statement:

The JMS delivery mode used to send messages from a JMS binding instance MUST be NON_PERSISTENT if it requires the atMostOnce intent and not the atLeastOnce intent, and PERSISTENT otherwise [BJM5000X]

Comments?


Regards, Simon

Simon Holdsworth
STSM, SCA Bindings Architect; Master Inventor; OASIS SCA Bindings TC Chair
MP 211, IBM UK Labs, Hursley Park, Winchester SO21 2JN, UK
Tel +44-1962-815059 (Internal 245059) Fax +44-1962-816898
Internet - Simon_Holdsworth@uk.ibm.com





Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU








[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]