I'm running a simple test application in order to figure out how I can
configure Jencks to provide a JTA Transaction Manager for XA transactions
including JDBC and JMS resources.  I am using an embedded ActiveMQ broker
and an in-memory HSQL database.  I am following the examples for Outbound
JMS and Outbound JDBC as shown in the Jencks sample configurations of the
source distribution.  I am using Jencks 2.0, ActiveMQ 4.1.0, ActiveMQ-RA
4.1.0, TranQL 1.4-SNAPSHOT, and TranQL Connector 1.3-SNAPSHOT.

When I run my application I get the following error when I get to the point
in my code where a JMS message is being sent, right after I persist an
object using a DAO which should be enlisted in the same XA transaction.  I
assume that at this point Jencks is creating the first JMS connection
because the error is happening within
ActiveMQConnectionFactory.createConnection() (line 92, "return (Connection)
manager.allocateConnection(factory, info);").  However the Connection
returned from its ConnectionManager (an instance of
org.apache.geronimo.connector.outbound.GenericConnectionManager) is a TranQL
JDBC Connection handle, org.tranql.connector.jdbc.ConnectionHandle, which
implements java.sql.Connection, and it's expecting a javax.jms.Connection
(or at least I think that's what's happening).  Here's the exception stack
trace:

Exception in thread "main" java.lang.ClassCastException:
org.tranql.connector.jdbc.ConnectionHandle
        at
org.apache.activemq.ra.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:92)
        at
org.apache.activemq.ra.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:66)
        at
org.springframework.jms.core.JmsTemplate.createConnection(JmsTemplate.java:816)
        at
org.springframework.jms.core.JmsTemplate$JmsTemplateResourceFactory.createConnection(JmsTemplate.java:904)
        at
org.springframework.jms.connection.ConnectionFactoryUtils.doGetTransactionalSession(ConnectionFactoryUtils.java:189)
        at 
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:417)
        at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:477)
        at
org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:558)
        at
org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:549)
        at
com.mycom.jta.producer.MessageSenderImpl.sendMessage(MessageSenderImpl.java:38)
        at
com.mycom.jta.processor.ExampleProcessorImpl.processSuccess(ExampleProcessorImpl.java:58)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:203)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:162)
        at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
        at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
        at $Proxy10.processSuccess(Unknown Source)
        at
com.mycom.jta.ExampleProcessorJtaTest.main(ExampleProcessorJtaTest.java:25)


Does anyone have a clue as to what is going on and how I can get past this
hurdle?  Thanks in advance for any ideas.


--James
-- 
View this message in context: 
http://www.nabble.com/Wrong-Connection-type-returned-by-ActiveMQConnectionFactory--tf3062435.html#a8515910
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to