JMS (Java Message Service) Specification

Java Message Service Specification

Welcome to the website for the development of the Java Message Service (JMS) specification.


Latest news (June 2017)

The JMS specification has moved to GitHub and from its old home on

JMS 2.1 (now withdrawn)

JSR 368 was withdrawn in November 2016. See the main JMS 2.1 page.

JMS 2.0 errata

An errata for JMS 2.0 was released in March 2015. This is now the latest release of JMS. See the JMS 2.0 errata page.

JMS 2.0

JMS 2.0 was released on 21 May 2013. See the JMS 2.0 Final Release page.

About the development of the JMS specification

The Java Message Service (JMS) specification was first released in 1998, at the dawn of Java EE, with a major update in 2002. It then remained unchanged during the decade that followed. Meanwhile, technology evolved and many vendors pressed ahead with enhancements outside the specification. During that time, the rest of Java EE evolved significantly, with improvements and new features added. Despite the lack of development of the specification, JMS continued to be a popular and successful standard, with numerous competing implementations, both standalone and as part of complete Java EE stacks, and open and closed source.

On 1st March 2011 a Java Specification Request (JSR) was submitted to the Java Community Process which proposed the development of JMS 2.0. This is JSR 343.

On 21 May 2013 JMS 2.0 was released. This major update introduces a new simplified API and adds support for the injection of JMS connections into Java EE applications. It forms part of Java EE 7. Now that JMS 2.0 is released, JSR 343 moved into maintenance mode.

In March 2015 JMS 2.0 Rev a was released. This is an errata release of JMS 2.0.

In August 2014 a new Java Specification Request (JSR) was submitted to the Java Community Process which proposed the development of JMS 2.1. This was JSR 368. Following a review of priorities at Oracle, this JSR was withdrawn in November 2016. For more information see the main JMS 2.1 page.

The purpose of this website is to support the continuing development of the JMS specification. by hosting their mailing lists, issue tracker, and any other resources that are required. It runs in conjunction with the official JSR 343 page on the JCP website. which is used mainly to conduct the formal aspects of these JSRs.

JMS 2.0 is now in maintenance mode and is administered directly by the maintenance lead. The maintenance lead for JSR 343 (JMS 2.0) is Nigel Deakin (Oracle).

Getting involved

Here are some ways to get involved in the development of the JMS specification:

  • If you’d like to contribute to the development of the JMS specification, or simply observe what is going on in the expert group, join the user mailing list at

  • If you’d like to submit proposals for consideration for a future maintenance or feature release, log them as issues in the issue tracker. We’re interested in comments on JMS 2.0 as well as proposals for new features.

JMS community mailing list

The JMS community mailing list is This is for general discussion about the JMS specification. It can also be used to raise issues with, or participate in discussions with, other members of the community including the maintenance lead.

Anyone may join and participate in discussions. Sign up (and view the archive of past messages) at

There’s also, which is a mailing list for observers of JSR 368. We don’t use this list. Being an “observer” of a JSR is an obsolete concept and applications to be observers will not be accepted.

Issue tracker

Comments and changes to the JMS specification will be managed using the JMS issue tracker.

If you would like to propose a change to the JMS specification, please create an issue containing a description of the proposed change, or find an existing issue and add a comment. You need to sign up for a free GitHub account and login first.

Issues that are received will be reviewed and added to the JMS Planning Long List.

Procedures and policies

The Java EE Backwards Compatibility Requirements (on the Java EE Platform Specification website) describe the requirements to make releases of JMS 2.0 backwards compatible with previous versions.