[jboss-user] [JNDI/Naming/Network] - Getting "JMS-112: Connection is invalid" while using an JNDI
yclian
do-not-reply at jboss.com
Thu Feb 14 07:40:20 EST 2008
Hi all,
One of our customers is facing this issue, which I am able to reproduce at my end as well. I have a JBoss 4.2.2 GA which is exposing an Oracle DS:
<datasources>
| <local-tx-datasource>
| <jndi-name>OracleDS</jndi-name>
| <connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>
| <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
| <user-name>jboss</user-name>
| <password>password</password>
| <use-java-context>false</use-java-context>
| </local-tx-datasource>
| </datasources>
At another end, I have a Mule which looks up the DataSource via JNDI and uses it for Oracle AQ. When Mule tries to get the queue connection, an error occurs:
| Caused by: oracle.jms.AQjmsException: JMS-112: Connection is invalid
| at oracle.jms.AQjmsError.throwEx(AQjmsError.java:288)
| at oracle.jms.AQjmsDBConnMgr.extraInit(AQjmsDBConnMgr.java:782)
| at oracle.jms.AQjmsDBConnMgr.<init>(AQjmsDBConnMgr.java:354)
| at oracle.jms.AQjmsConnection.<init>(AQjmsConnection.java:223)
| at oracle.jms.AQjmsQueueConnectionFactory.createQueueConnection(AQjmsQueueConnectionFactory.java:340)
| at org.mule.providers.oracle.jms.OracleJmsConnection.getQueueConnection(OracleJmsConnection.java:132)
|
Our customer has also contacted JBoss regarding this matter, and this the response that he received from the folks:
anonymous wrote : " The error you have is because you are using a wrapped connection comming out of the datasource. We need to find a way to get the oracle connection and use that. "
I have inspected the code, and found that the returned object from the JDNI look-up is a http://docs.jboss.org/jbossas/javadoc/4.0.2/org/jboss/invocation/jrmp/interfaces/JRMPInvokerProxy.java.html. :
| "lookedUp"= $Proxy0 (id=32)
| h= ClientContainer (id=39)
| context= InvocationContext (id=47)
| context= HashMap<K,V> (id=54)
| entrySet= HashMap$EntrySet (id=58)
| this$0= HashMap<K,V> (id=54)
| keySet= null
| loadFactor= 0.75
| modCount= 0
| size= 3
| table= HashMap$Entry<K,V>[16] (id=66)
| [0]= null
| [1]= null
| [2]= null
| [3]= null
| [4]= HashMap$Entry<K,V> (id=1021)
| hash= -957407340
| key= InvocationKey (id=1022)
| name= "CACHE_ID"
| ordinal= 5
| next= null
| value= null
| [5]= null
| [6]= null
| [7]= null
| [8]= null
| [9]= null
| [10]= null
| [11]= null
| [12]= null
| [13]= HashMap$Entry<K,V> (id=1023)
| hash= 2100754445
| key= InvocationKey (id=1026)
| name= "CONTAINER"
| ordinal= 3
| next= null
| value= Integer (id=1027)
| value= 1964300194
| [14]= HashMap$Entry<K,V> (id=1024)
| hash= -1328126498
| key= InvocationKey (id=1029)
| name= "INVOKER"
| ordinal= 11
| next= null
| value= JRMPInvokerProxy (id=1030)
| remoteInvoker= JRMPInvoker_Stub (id=1032)
| ref= UnicastRef2 (id=1033)
| ref= LiveRef (id=1034)
| ch= null
| ep= TCPEndpoint (id=1035)
| csf= null
| host= "127.0.0.1"
| port= 4444
| ssf= null
| transport= null
| id= ObjID (id=1036)
| objNum= 1
| space= UID (id=1040)
| count= -32768
| time= 1202988535078
| unique= -1924191110
| isLocal= false
| [15]= null
| threshold= 12
| values= null
| next= ClientMethodInterceptor (id=49)
| nextInterceptor= InvokerInterceptor (id=967)
| invokerID= GUID (id=968)
| hashCode= -464387998
| uid= UID (id=970)
| id= 2
| time= 1202988535796
| vmid= VMID (id=971)
| address= byte[4] (id=1041)
| hashCode= -464388000
| pid= PID (id=1042)
| uid= UID (id=1049)
| nextInterceptor= null
| remoteInvoker= null
|
Anyone can advice on how I can get the real connection factory? Cheers.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4129381#4129381
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4129381
More information about the jboss-user
mailing list