[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