jms-spec
  1. jms-spec
  2. JMS_SPEC-27

Clarify the relationship between the JMS and other Java EE specifications

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.1
    • Fix Version/s: 2.0ED, 2.0
    • Labels:
      None

      Description

      Summary

      We need to clarify the relationship between the JMS and other Java EE specifications. This is mainly a documentation exercise, especially for those methods which are forbidden or modified in a EJB or Web container, but there are some ambiguities, especially when the transaction context is undefined.

      More detail

      If you want use the JMS API in a Java EE application such as a EJB or servlet you soon discover that much of the JMS spec (including the JMS javadocs) does not apply, at least in the EJB and web containers. For example, you aren't allowed to create message listeners, you need to defined MDBs instead. You aren't allowed to create local transactions, you need to use CMT or BMT transactions instead. You aren't allowed to set clientID on a connection. You aren't allowed to perform client acknowledgement. Essentially, in a Java EE container, the JMS API is simply different. However this is not explained in the JMS spec but is described in other specs, notably the EJB and Java EE platform specs.

      Some of this information of necessity in other specs, but the absence of any mention of it in the JMS spec or javadocs is confusing to users.

      I would like the JMS expert group to review what it says about JMS in other specs and consider whether this material should be moved to the JMS spec, duplicated in the JMS spec, or cross-referenced from the JMS spec. In addition the javadocs need to be clarified to mention that some API is not allowed, or has a different effect, in a Java EE web or EJB container.

      I see this mainly as a documentation exercise. However this analysis will inevitably identify that some areas of behaviour are not well defined. For example, the EJB spec states explicitly that in an "undefined transactional context" it is not defined how the JMS provider should handle transactions. This means that vendors may behave differently which reduces the portability of application. If possible this should be resolved.

        Activity

        Nigel Deakin created issue -
        Nigel Deakin made changes -
        Field Original Value New Value
        Assignee Nigel Deakin [ nigeldeakin ]
        Nigel Deakin made changes -
        Tags eg ed-added eg
        Nigel Deakin made changes -
        Tags ed-added eg eg
        Nigel Deakin made changes -
        Tags eg ed20-added eg
        Nigel Deakin made changes -
        Affects Version/s 2.0ED [ 16048 ]
        Affects Version/s 1.1 [ 14685 ]
        Nigel Deakin made changes -
        Fix Version/s 2.0ED [ 16048 ]
        Affects Version/s 1.1 [ 14685 ]
        Affects Version/s 2.0ED [ 16048 ]
        Tags ed20-added eg ed20-added
        Nigel Deakin made changes -
        Fix Version/s 2.0 [ 14692 ]
        Nigel Deakin made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            Nigel Deakin
            Reporter:
            Nigel Deakin
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: