Bugs item #792396, was opened at 2003-08-21 08:56
Message generated for change (Comment added) made by ejort
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=792396&group_id=22866

Category: JBossCX
Group: v3.2
>Status: Open
>Resolution: Remind
Priority: 5
Submitted By: Steve Waldman (swaldman)
Assigned to: Adrian Brock (ejort)
Summary: Incorrect behavior: transactional Sessions in EJB methods

Initial Comment:
If a QueueSession is created in a business method of an EJB 
with the transacted argument of createQueueSession() set to 
true, JBoss fails to send the message unless the user 
explicitly calls commit() on the session.

This is incorrect -- users should be forbidden from calling 
commit() or rollback(), as jboss is responsible for 
transaction management.

According to Sun (see e.g. JMS tutorial, http://java.sun.com/
products/jms/tutorial/1_3_1-fcs/doc/jmsj2ee.html#1029338) 
the transacted argument should be ignored in an EJB 
context. My beans usually set it to true, only to document 
that message send is intended to be included in the method's 
transaction. These JMS beans break in jboss.


----------------------------------------------------------------------

>Comment By: Adrian Brock (ejort)
Date: 2003-08-24 00:14

Message:
Logged In: YES 
user_id=9459

I don't see how that can be unless you changed the resource
adaptor to use non-XA connections. These obviously cannot
be enlisted in an EJB transaction.

If you try to commit() you will get an error because there
is actually
an XASession behind the scenes.

Please post a simple example and confirm you are using
java:/JmsXA

Regards,
Adrian

----------------------------------------------------------------------

Comment By: Steve Waldman (swaldman)
Date: 2003-08-23 23:56

Message:
Logged In: YES 
user_id=175530

Adrian,

Sorry. I missed something in your response. It's okay. (I missed 
the part about having to get the XAConnectionFactory for it to be 
irrelevant... read too fast!) Sorry!

----------------------------------------------------------------------

Comment By: Steve Waldman (swaldman)
Date: 2003-08-23 23:46

Message:
Logged In: YES 
user_id=175530

Adrian,

> The value of the "transacted" flag is irrelevent with
this connection factory.

It SHOULD be irrelevant, but it is not.

Messages are not delivered if transacted is set to true unless a 
user explicitly commits. This is the incorrect behavior.


----------------------------------------------------------------------

Comment By: Adrian Brock (ejort)
Date: 2003-08-23 23:40

Message:
Logged In: YES 
user_id=9459

If you want the JMS session to be enlisted in the EJB
transaction,
you should lookup the ConnectionFactory deployed by the JMS
resource adaptor. 

It is bound into JNDI at java:/JmsXA

The value of the "transacted" flag is irrelevent with this
connection
factory.

Regards,
Adrian

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=792396&group_id=22866


-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to