Integration with Oracle AQ via Sun Adapter
ryandavid Feb 18, 2009 10:47 AMHello to everybody,
I have to integrate my JBoss 4.0.2 with OracleAQ.
I cannot deploy a JBoss ESB on it because it requires a 4.0.5 at least and I cannot upgrade the server.
So I decided to take the Sun Adapter solution described in the wiki
http://www.jboss.org/community/docs/DOC-9035
So I created an oracleaq-ds.xml like this
<?xml version="1.0" encoding="UTF-8"?> <connection-factories> <mbean code="org.jboss.resource.deployment.AdminObject" name="jboss.oracleaq:service=Queue,name=msg_queue"> <attribute name="JNDIName">oracleaq/queue/msg_queue</attribute> <depends optional-attribute-name="RARName">jboss.jca:service=RARDeployment,name='oracleaq.rar'</depends> <attribute name="Type">javax.jms.Queue</attribute> <attribute name="Properties"> DestinationProperties=owner\=senaprod,name\=FROM_QUEUE </attribute> </mbean> <!-- JMS XA Resource adapter, use this to get transacted JMS in beans --> <tx-connection-factory> <jndi-name>jdbc/OracleAQ</jndi-name> <rar-name>oracleaq.rar</rar-name> <connection-definition>javax.jms.QueueConnectionFactory</connection-definition> <config-property name="ConnectionFactoryProperties" type="java.lang.String">host=mydbms,user=scott,password=mypass,port=1521,sid=svil,driver=thin</config-property> <config-property name="username" type="java.lang.String">scott</config-property> <config-property name="password" type="java.lang.String">mypass</config-property> <max-pool-size>20</max-pool-size> </tx-connection-factory> </connection-factories>
and deployed the oracleaq.rar as required.
When I try to get a connection
QueueConnectionFactory queueFactory = QueueConnectionFactory)context.lookup("java:jdbc/OracleAQ"); QueueConnection queueConnection = queueFactory.createQueueConnection();
I get this error
javax.jms.JMSException: invalid arguments in call at com.sun.genericra.util.ExceptionUtils.newJMSException(ExceptionUtils.java:67) at com.sun.genericra.outbound.ConnectionFactory.createConnection(ConnectionFactory.java:80) at com.sun.genericra.outbound.ConnectionFactory.createQueueConnection(ConnectionFactory.java:115) at it.senato.testjms.FeederServlet.startJMSConnection(FeederServlet.java:69) at it.senato.testjms.FeederServlet.process(FeederServlet.java:116) at it.senato.testjms.FeederServlet.doGet(FeederServlet.java:95) at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: javax.resource.ResourceException: invalid arguments in call at com.sun.genericra.util.ExceptionUtils.newResourceException(ExceptionUtils.java:73) at com.sun.genericra.outbound.AbstractManagedConnectionFactory.createManagedConnection(AbstractManagedConnectionFactory.java:130) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:508) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:207) at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:534) at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:395) at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:297) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:447) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:874) at com.sun.genericra.outbound.ConnectionFactory.createConnection(ConnectionFactory.java:75) ... 25 more Caused by: oracle.jms.AQjmsException: invalid arguments in call at oracle.jms.AQjmsDBConnMgr.checkForSecurityException(AQjmsDBConnMgr.java:926) at oracle.jms.AQjmsDBConnMgr.getConnection(AQjmsDBConnMgr.java:605) at oracle.jms.AQjmsDBConnMgr.<init>(AQjmsDBConnMgr.java:172) at oracle.jms.AQjmsConnection.<init>(AQjmsConnection.java:163) at oracle.jms.AQjmsQueueConnectionFactory.createQueueConnection(AQjmsQueueConnectionFactory.java:229) at com.sun.genericra.outbound.ManagedQueueConnectionFactory.createConnection(ManagedQueueConnectionFactory.java:60) at com.sun.genericra.outbound.AbstractManagedConnectionFactory.createPhysicalConnection(AbstractManagedConnectionFactory.java:141) at com.sun.genericra.outbound.AbstractManagedConnectionFactory.createManagedConnection(AbstractManagedConnectionFactory.java:122) ... 33 more
All the connection parameters are ok. I decompiled some AQ classes but I don't find nothing. Do you have some idea ?