jsr343-experts@jms-spec.java.net

[jsr343-experts] (JMS_SPEC-57) Add Java EE 7 multi-tenancy support

From: Nigel Deakin <nigel.deakin_at_oracle.com>
Date: Fri, 11 Nov 2011 18:25:54 +0000

I've created this JIRA issue:
http://java.net/jira/browse/JMS_SPEC-57

This is a placeholder for work to extend the JMS 2.0 specification to support multi-tenancy as defined in Java EE 7.

I've written some proposals (and some options) in a document (13 pages) which I have uploaded to the project download
page: http://java.net/projects/jms-spec/downloads/download/JMS20MTv3.pdf

Here's a synopsis of the document:

* It reviews the Java EE 7 proposals for resource configuration metadata in respect of JMS resources.

* It reviews the Java EE 7 proposals for multi-tenancy and discusses the three ways in which the destinations used by
different instances of a multi-tenant application might be isolated from one another.

* It proposes extensions to the @JMSDestinationDefinition and @JMSConnectionFactoryDefinition annotations (and their XML
equivalents) to allow the application to specify the tenant isolation level of a given destination to be either "shared"
or "isolated".

* It proposes extensions to the javax.jms.Destination and javax.jms.ConnectionFactory interfaces to allow a deployer to
specify the isolation level to be used with these administered objects.

* If suggests four alternative means by which an application server could pass the tenantId of a running application to
the JMS client. Two of these options would require changes to the JCA spec. I'm not sure which one to recommend, so
that's the section I'd particularly appreciate comments and help on.



This is all closely tied to the requirements for multi-tenancy support being defined by the Java EE platform expert
group, so I'd particularly welcome any comments and contributions from JSR 343 EG members who are also on the Java EE
platform expert group.

Nigel