[jboss-jira] [JBoss JIRA] Reopened: (JBMESSAGING-410) java:/JmsXA in no-tx context does not work the same way as JBossMQ

Ovidiu Feodorov (JIRA) jira-events at jboss.com
Thu Feb 1 01:48:27 EST 2007


     [ http://jira.jboss.com/jira/browse/JBMESSAGING-410?page=all ]

Ovidiu Feodorov reopened JBMESSAGING-410:
-----------------------------------------

             
Reopening the issue, as Messaging-layer level changes required to fix [url]http://jira.jboss.org/jira/browse/JBMESSAGING-721[/url] will modify again the behavior described here. The changes will be made public in 1.0.1.SP4 and 1.2.0.CR1.

The way an XASession behaves in absence of a JTA transaction is incompletely specified, so it is inevitable that different implemenation would work differently. Ultimately, it's up to the JCA layer, not the JMS layer, to enforce a certain behavior. For more discussions on the subject, please also read [url]http://www.jboss.com/index.html?module=bb&op=viewtopic&t=98577[/url].

The issue will stay open until after the 1.2.0.GA release, when we will have more time to experiment with controversial subjects like this.

> java:/JmsXA in no-tx context does not work the same way as JBossMQ
> ------------------------------------------------------------------
>
>                 Key: JBMESSAGING-410
>                 URL: http://jira.jboss.com/jira/browse/JBMESSAGING-410
>             Project: JBoss Messaging
>          Issue Type: Bug
>          Components: Configuration and Management
>    Affects Versions: 1.0.1.CR2
>            Reporter: Elias Ross
>         Assigned To: Ovidiu Feodorov
>            Priority: Critical
>             Fix For: 1.0.1.CR5
>
>
> The same code I wrote that uses java:/JmsXA in a non-transacted environment with JBossMQ does not work with JBoss Messaging. And actually the same code does work correctly with SonicMQ as well, using the JCA adaptor with the Sonic XA connection factory.
> Why allow the use java:/JmsXA without transactions? It makes sense to use a cached connection manager anyway, like you would with a database. And anyway, should be addressed for compatibility.
> The following code *should* successfully send a message to a queue running without a transaction. Currently, it doesn't seem to do anything and no usage warnings are produced.
>       QueueConnectionFactory queueCF = (QueueConnectionFactory)new InitialContext.lookup("java:/JmsXA");
> ...
>       QueueConnection queueConnection = queueCF.createQueueConnection();
>       QueueSession queueSession =
>           queueConnection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
>       QueueSender queueSender = queueSession.createSender(queue);
>       ObjectMessage om = queueSession.createObjectMessage();
>       queueSender.send(om);
>       queueSender.close();
>       queueSession.close();
>       queueConnection.close();

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

        



More information about the jboss-jira mailing list