You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by acidul <ac...@free.fr> on 2015/10/29 12:01:31 UTC

Not a transacted session

Hello all,

I am facing an issue, which seems to be a regression from my point of view,
but I'd like to know your opinion about this problem... here it is...

We are using ActiveMQ to send a message on queue, which is quite simple:

 				cf = (javax.jms.ConnectionFactory) context.lookup(cfName);
				connection = cf.createConnection(iUser, iPwd);
				connection.start();
				
				javax.jms.Session session = connection.createSession(true,
javax.jms.Session.SESSION_TRANSACTED);
            	javax.jms.Destination queueOrTopic = (javax.jms.Destination)
context.lookup(iDestinationName);
            	
        		javax.jms.MessageProducer sender =
session.createProducer(queueOrTopic);
        		javax.jms.TextMessage message =
session.createTextMessage(iMessage.getBody());

        		sender.send(message);
        		session.commit();

        		connection.close();

It used to work fine with Apache Tomcat (TomEE)/7.0.53 (1.6.0.1), and
ActiveMQ 5.9.0.
But we now use Apache Tomcat (TomEE)/7.0.55 (1.7.1), and ActiveMQ 5.10.0,
and we get the following exception during commit operation: 

javax.jms.IllegalStateException: Not a transacted session
                at
org.apache.activemq.ActiveMQSession.commit(ActiveMQSession.java:569)
~[activemq-client-5.10.0.jar:5.10.0]
                at
org.apache.activemq.ra.ManagedSessionProxy.commit(ManagedSessionProxy.java:108)
~[activemq-ra-5.10.0.jar:5.10.0]
                at
com.xxx.jms.resource.yyy.ZZZ$Function_SendMessage.executeInternal(ZZZ.java:114)
~[VPLMJMSConnector.jar:6.417.6.15198]

I've compared source code of ManagedConnectionProxy which is used to create
a new ActiveMQSession, and I found in ActiveMQ 5.9.0:
    private ManagedSessionProxy createSessionProxy(boolean transacted, int
acknowledgeMode)
        throws JMSException
    {
        if(!transacted && acknowledgeMode == 0)
        {
            acknowledgeMode = 1;
        }
        ActiveMQSession session =
(ActiveMQSession)getConnection().createSession(transacted, acknowledgeMode);
        ManagedTransactionContext txContext = new
ManagedTransactionContext(managedConnection.getTransactionContext());

        [...]
    }

and in ActiveMQ 5.10.0:
    private ManagedSessionProxy createSessionProxy(boolean transacted, int
acknowledgeMode)
        throws JMSException
    {
        ActiveMQSession session =
(ActiveMQSession)getConnection().createSession(false, 1);
        ManagedTransactionContext txContext = new
ManagedTransactionContext(managedConnection.getTransactionContext());
        [...]
    }

As you can see, the session is now created with hardcoded values: false (not
transacted) and 1 (AUTO_ACKNOWLEDGE mode)
That’s why (I guess) when we commit the transaction, we get the exception.

What do you think about this issue? 
Do we have to change something on our side to make it work with Apache
Tomcat (TomEE)/7.0.55 (1.7.1), and ActiveMQ 5.10.0?
Or do we have to create an incident about this issue?

Don't hesitate if you need more info...
And thanks in advance for your help





--
View this message in context: http://activemq.2283324.n4.nabble.com/Not-a-transacted-session-tp4703470.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Not a transacted session

Posted by Tim Bain <tb...@alumni.duke.edu>.
I didn't, since I assumed you would have more information about the problem
and could describe it better.

JIRA is at
https://issues.apache.org/jira/browse/AMQ/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel
On Jan 27, 2016 4:13 PM, "acidul" <ac...@free.fr> wrote:

Hello Tim,
no I didn't submit the incident
Did you ?
do you have the link to JIRA ?

Thanks




--
View this message in context:
http://activemq.2283324.n4.nabble.com/Not-a-transacted-session-tp4703470p4706524.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Not a transacted session

Posted by acidul <ac...@free.fr>.
Hello Tim,
no I didn't submit the incident
Did you ? 
do you have the link to JIRA ? 

Thanks




--
View this message in context: http://activemq.2283324.n4.nabble.com/Not-a-transacted-session-tp4703470p4706524.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Not a transacted session

Posted by Tim Bain <tb...@alumni.duke.edu>.
Since no one responded to say that this isn't a regression, I'd submit a
bug in JIRA (if you haven't already).

Tim
On Oct 29, 2015 11:20 AM, "acidul" <ac...@free.fr> wrote:

> Hello all,
>
> I am facing an issue, which seems to be a regression from my point of view,
> but I'd like to know your opinion about this problem... here it is...
>
> We are using ActiveMQ to send a message on queue, which is quite simple:
>
>                                 cf = (javax.jms.ConnectionFactory)
> context.lookup(cfName);
>                                 connection = cf.createConnection(iUser,
> iPwd);
>                                 connection.start();
>
>                                 javax.jms.Session session =
> connection.createSession(true,
> javax.jms.Session.SESSION_TRANSACTED);
>                 javax.jms.Destination queueOrTopic =
> (javax.jms.Destination)
> context.lookup(iDestinationName);
>
>                         javax.jms.MessageProducer sender =
> session.createProducer(queueOrTopic);
>                         javax.jms.TextMessage message =
> session.createTextMessage(iMessage.getBody());
>
>                         sender.send(message);
>                         session.commit();
>
>                         connection.close();
>
> It used to work fine with Apache Tomcat (TomEE)/7.0.53 (1.6.0.1), and
> ActiveMQ 5.9.0.
> But we now use Apache Tomcat (TomEE)/7.0.55 (1.7.1), and ActiveMQ 5.10.0,
> and we get the following exception during commit operation:
>
> javax.jms.IllegalStateException: Not a transacted session
>                 at
> org.apache.activemq.ActiveMQSession.commit(ActiveMQSession.java:569)
> ~[activemq-client-5.10.0.jar:5.10.0]
>                 at
>
> org.apache.activemq.ra.ManagedSessionProxy.commit(ManagedSessionProxy.java:108)
> ~[activemq-ra-5.10.0.jar:5.10.0]
>                 at
>
> com.xxx.jms.resource.yyy.ZZZ$Function_SendMessage.executeInternal(ZZZ.java:114)
> ~[VPLMJMSConnector.jar:6.417.6.15198]
>
> I've compared source code of ManagedConnectionProxy which is used to create
> a new ActiveMQSession, and I found in ActiveMQ 5.9.0:
>     private ManagedSessionProxy createSessionProxy(boolean transacted, int
> acknowledgeMode)
>         throws JMSException
>     {
>         if(!transacted && acknowledgeMode == 0)
>         {
>             acknowledgeMode = 1;
>         }
>         ActiveMQSession session =
> (ActiveMQSession)getConnection().createSession(transacted,
> acknowledgeMode);
>         ManagedTransactionContext txContext = new
> ManagedTransactionContext(managedConnection.getTransactionContext());
>
>         [...]
>     }
>
> and in ActiveMQ 5.10.0:
>     private ManagedSessionProxy createSessionProxy(boolean transacted, int
> acknowledgeMode)
>         throws JMSException
>     {
>         ActiveMQSession session =
> (ActiveMQSession)getConnection().createSession(false, 1);
>         ManagedTransactionContext txContext = new
> ManagedTransactionContext(managedConnection.getTransactionContext());
>         [...]
>     }
>
> As you can see, the session is now created with hardcoded values: false
> (not
> transacted) and 1 (AUTO_ACKNOWLEDGE mode)
> That’s why (I guess) when we commit the transaction, we get the exception.
>
> What do you think about this issue?
> Do we have to change something on our side to make it work with Apache
> Tomcat (TomEE)/7.0.55 (1.7.1), and ActiveMQ 5.10.0?
> Or do we have to create an incident about this issue?
>
> Don't hesitate if you need more info...
> And thanks in advance for your help
>
>
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/Not-a-transacted-session-tp4703470.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>