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.