users@jms-spec.java.net

[jms-spec users] [jsr343-experts] Re: Proposals for MDB and RA standardisation (JMS_SPEC-30,55,54,25,73)

From: Nigel Deakin <nigel.deakin_at_oracle.com>
Date: Tue, 24 Jul 2012 16:18:23 +0100

My earlier document "Proposals for MDB and RA standardisation" received two comments from the EG. Reza wrote "looks
good". Rüdiger wrote "Great work".

That document proposed changes to both the EJB specification and the JMS specification.

1. The EJB specification would define a set of standard activation properties for a JMS MDB. In addition to those
already defined in EJB 3.1 (acknowledgeMode, messageSelector, destinationType, subscriptionDurability) it would add
destinationLookup, connectionFactoryLookup, clientId, subscriptionName and shareSubscriptions.

The EJB specification in addition would define that the container must make a name which uniquely identifies the
deployed MDB available in the JNDI naming context under java:comp/uniqueMDBName so that it can be looked up by the
resource adapter when its endpointActivation method is called. The resource adapter may use this when constructing a
default durable subscription name.

Marina Vatkina (EJB spec lead) has now drafted these changes to the EJB 3.2 spec. Please see the attached pages from the
draft EJB spec.

2. The document also proposed that the container will be required to make two further pieces of information available in
a JNDI naming context. These were instanceName and inAppClientContainer. These will be added to the Java EE platform
spec in due course.

3. In addition, the document proposed that the JMS specification would specify that a JMS provider must provide a
resource adapter which supports the same activation properties: destinationLookup, connectionFactoryLookup,
acknowledgeMode, messageSelector, destinationType, subscriptionDurability, clientId and shareSubscriptions.

I have now drafted a new chapter for the JMS spec (chapter 12). This is available in the usual place:
http://java.net/projects/jms-spec/sources/repository/content/jms2.0/specification/word/JMS20.pdf

I also attach chapter 12 with this email. Please take a look. I'd be particularly like you to look at:

a. The preamble to chapter 12, which explains that a JMS provider is required to include a resource adapter. This EG
agreed this in principle many months ago, but now it has reached the spec I would like to be sure everyone is in support
of this, and to get the wording exactly right.

b. The description of "shareSubscriptions" in both the EJB and JMS specs, which I have described several times but again
is reaching the spec for the first time.

I look forward to your comments.

Nigel

On 29/06/2012 18:59, Nigel Deakin wrote:
> This email covers a number of related issues, all covered in the attached document.
>
> Some time ago we discussed and agreed on a number of changes that we would like to see made to the EJB spec to
> standardise the way in which JMS MDBs were configured. Here are the JIRA issues:
>
> http://java.net/jira/browse/JMS_SPEC-30
> Define mandatory activation config properties for JMS MDBs
>
> http://java.net/jira/browse/JMS_SPEC-55
> Define a standard way to configure the connection factory used by a JMS MDB to consume messages
>
> http://java.net/jira/browse/JMS_SPEC-54
> Define a standard way to configure the destination on which a JMS MDB consumes messages
>
> I have spent quite a lot of time negotiating with the EJB spec lead about the details of these changes and have now come
> to provisional agreement, though these change have yet to be confirmed by the EJB EG. The attached document contains a
> summary of what we agreed. I would now like to bring these proposals back to the JMS EG for comments.
>
> Separately, also agreed in principle even longer ago that we should standardise the interface between a JMS provider and
> a Java EE application server by making it mandatory for a JMS vendor to provide a JCA resource adapter. Here is this
> JIRA issue:
>
> http://java.net/jira/browse/JMS_SPEC-25
> Standardise the interface between a JMS provider and a Java EE application server
>
> However if we're going to standardise on MDB configuration we also need to standardise on ActivationSpec properties. The
> attached document also contains some proposals to define a JMS resource adapter as part of the JMS specification. This
> essentially consists of moving the section on JMS resource adapter out of the JCA 1.6 spec, adding it to the JMS spec,
> and adding some additional properties.
>
> Finally, on 15th June I raised this new issue:
>
> http://java.net/jira/browse/JMS_SPEC-73
> Define how messages from a topic are delivered to clustered application server instances
>
> I made some provisional proposals to address this here
> http://java.net/projects/jms-spec/lists/jsr343-experts/archive/2012-06/message/7
>
> I haven't received any comments on that email. However since these proposals involve the standardisation of an
> additional ActivationSpec property, and the container making varius pieces of information available to the resource
> adapter, I thought it helpful to combine these proposals within this document as well.
>
> So please have a look at the attached document and make any comments. I'm not setting a deadline for comments but it
> would be really helpful if you could have a look within the next week or so. If it's not obvious why I've made a
> particular proposal please do ask and I'll try to explain.
>
> I know we're approaching the vacation season, and it's the 4th July next Wednesday as well.
>
> If this EG is generally happy with this document I plan to turn this document (except for the parts that go into the EJB
> spec) into a new chapter for the JMS spec.
>
> Thanks,
>
> Nigel
>