JMSChannel violates the JMS specification
-----------------------------------------

                 Key: XFIRE-1060
                 URL: http://jira.codehaus.org/browse/XFIRE-1060
             Project: XFire
          Issue Type: Bug
          Components: JMS
    Affects Versions: 1.2.6
         Environment: Windows XP, JBoss 4.0.4GA, IBM MQ (5.306-12-051103)
            Reporter: Walter Seymore
            Assignee: Dan Diephouse
         Attachments: JMSChannel.patch

The JMSChannel sets a message listener on the consumer when the channel is 
opened and then proceeds to use the same session that was used to create this 
consumer to send messages. This is not supported by the specification. See the 
following excerpt from the JMS javadocs 
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/jms/Session.html:

Once a connection has been started, any session with one or more registered 
message listeners is dedicated to the thread of control that delivers messages 
to it. It is erroneous for client code to use this session or any of its 
constituent objects from another thread of control. The only exception to this 
rule is the use of the session or connection close method.

The IBM MQ JMS provider follows the specification in this regard and causes an 
error to be thrown as soon as a message is sent. The error message is as 
follows:

javax.jms.JMSException: MQJMS1013: operation invalid whilst session is using 
asynchronous delivery.

I fixed this issue by creating 2 sessions instead of 1. A patch is attached.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to