geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Problems with Geronimo and MQ resource Adapter
Date Mon, 18 Jan 2010 20:56:10 GMT
Hi Rich,

Something is odd about the rar you are using.  Are you sure it  
supports XA transactions?  One of the following happened:

ManagedConnection.getXAResource() returned null which would be a clue  
that XA is not supported -- if XA is supported then this should never  
return null.  From the rest of the stack trace I think this is the  
scenario you are in.

ResourceAdapter.getXAResources(new ActivationSpec[0]) returned an  
array with a null in it.  This seems highly implausible.

We could provide an error at a more informative point here when we  
first (don't) get the xa resource.

thanks
david jencks

On Jan 18, 2010, at 9:14 AM, Rich Cumbers wrote:

> Hi there,
>
> Apologies for the large pasted text in this message, not sure if  
> this is
> the right way to do this......
>
> I am having great difficulty getting WebSphere MQ and Geronimo to play
> nicely together. I think I have also spotted a defect/bug.
>
> I have tried two methods of settingup the Resource Adapter for  
> WebSphere
> MQ:
>
> 1) deployment plan and wmq.jmsra.rar
>
> I have a deployment plan as follows:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/ 
> connector-1.2">
> <dep:environment
> xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
>  <dep:moduleId>
>   <dep:groupId>console.jms</dep:groupId>
>   <dep:artifactId>test</dep:artifactId>
>   <dep:version>1.0</dep:version>
>   <dep:type>rar</dep:type>
>  </dep:moduleId>
> </dep:environment>
> <resourceadapter>
>  <resourceadapter-instance>
>   <resourceadapter-name>test</resourceadapter-name>
>    <nam:workmanager
> xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2">
>    <nam:gbean-link>DefaultWorkManager</nam:gbean-link>
>    </nam:workmanager>
>   </resourceadapter-instance>
>   <outbound-resourceadapter>
>    <connection-definition>
>
> <connectionfactory-interface>javax.jms.ConnectionFactory</ 
> connectionfactory-interface>
>     <connectiondefinition-instance>
>      <name>MyCF</name>
>      <config-property-setting
> name="channel">SYSTEM.DEF.SVRCONN</config-property-setting>
>      <config-property-setting
> name="queueManager">MY_QM</config-property-setting>
>      <config-property-setting
> name="hostName">iceman.hursley.ibm.com</config-property-setting>
>      <config-property-setting
> name="port">2020</config-property-setting>
>      <config-property-setting
> name="transportType">CLIENT</config-property-setting>
>      <connectionmanager>
>       <xa-transaction>
>        <transaction-caching/>
>       </xa-transaction>
>       <single-pool>
>        <match-one/>
>       </single-pool>
>      </connectionmanager>
>     </connectiondefinition-instance>
>    </connection-definition>
>   </outbound-resourceadapter>
>  </resourceadapter>
>  <adminobject>
>   <adminobject-interface>javax.jms.Queue</adminobject-interface>
>
> <adminobject-class>com.ibm.mq.connector.outbound.MQQueueProxy</ 
> adminobject-class>
>   <adminobject-instance>
>    <message-destination-name>TestQueue</message-destination-name>
>    <config-property-setting
> name="baseQueueManagerName">MY_QM</config-property-setting>
>    <config-property-setting
> name="baseQueueName">TestQueue</config-property-setting>
>   </adminobject-instance>
>  </adminobject>
>  <adminobject>
>   <adminobject-interface>javax.jms.Topic</adminobject-interface>
>
> <adminobject-class>com.ibm.mq.connector.outbound.MQTopicProxy</ 
> adminobject-class>
>  </adminobject>
> </connector>
>
> If I try and deploy the wmq.jmsra.rar with this plan I get an
> org.apache.geronimo.gbean.InvalidConfigurationException error, with a
> helpful text output of "did not start for an unknown reason".
>
> 2010-01-18 17:06:51,905 ERROR [GBeanInstanceState] Error while  
> starting;
> GBean is now in the FAILED state:
> abstractName="console.jms/test/1.0/rar? 
> J2EEApplication 
> =null,JCAConnectionFactory=MyCF,JCAResource=console.jms/test/1.0/ 
> rar,ResourceAdapter=console.jms/test/1.0/ 
> rar,ResourceAdapterModule=console.jms/test/1.0/ 
> rar,j2eeType=JCAManagedConnectionFactory,name=MyCF"
> java.lang.NullPointerException
> 	at
> org 
> .apache 
> .geronimo 
> .transaction 
> .manager.WrapperNamedXAResource.recover(WrapperNamedXAResource.java: 
> 74)
> 	at
> org 
> .apache 
> .geronimo 
> .transaction 
> .manager.RecoveryImpl.recoverResourceManager(RecoveryImpl.java:98)
> 	at
> org 
> .apache 
> .geronimo 
> .transaction 
> .manager 
> .TransactionManagerImpl 
> .recoverResourceManager(TransactionManagerImpl.java:352)
> 	at
> org 
> .apache 
> .geronimo 
> .connector 
> .outbound 
> .AbstractConnectionManager.doRecovery(AbstractConnectionManager.java: 
> 70)
> 	at
> org 
> .apache 
> .geronimo 
> .connector 
> .outbound 
> .ManagedConnectionFactoryWrapper 
> .doStart(ManagedConnectionFactoryWrapper.java:166)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:998)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java: 
> 267)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:101)
> 	at
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:541)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java: 
> 111)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146)
> 	at org.apache.geronimo.gbean.runtime.GBeanDependency
> $1.running(GBeanDependency.java:120)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .basic 
> .BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java: 
> 176)
> 	at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access
> $300(BasicLifecycleMonitor.java:44)
> 	at org.apache.geronimo.kernel.basic.BasicLifecycleMonitor
> $RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java: 
> 254)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java: 
> 293)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:101)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java: 
> 123)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java: 
> 456)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .KernelConfigurationManager.start(KernelConfigurationManager.java:188)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .SimpleConfigurationManager 
> .startConfiguration(SimpleConfigurationManager.java:562)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .SimpleConfigurationManager 
> .startConfiguration(SimpleConfigurationManager.java:543)
> 	at sun.reflect.GeneratedMethodAccessor329.invoke(Unknown Source)
> 	at
> sun 
> .reflect 
> .DelegatingMethodAccessorImpl 
> .invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:618)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java: 
> 34)
> 	at
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
> 	at
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:832)
> 	at
> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java: 
> 57)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java: 
> 96)
> 	at org.apache.geronimo.kernel.config.EditableConfigurationManager
> $$EnhancerByCGLIB$$c9ded454.startConfiguration(<generated>)
> 	at
> org 
> .apache 
> .geronimo 
> .deployment 
> .plugin 
> .local 
> .RedeployCommand.redeploySameConfiguration(RedeployCommand.java:229)
> 	at
> org 
> .apache 
> .geronimo 
> .deployment.plugin.local.RedeployCommand.run(RedeployCommand.java:101)
> 	at java.lang.Thread.run(Thread.java:810)
> 2010-01-18 17:06:51,924 ERROR [GBeanInstanceState] Error while  
> starting;
> GBean is now in the FAILED state:
> abstractName="console.jms/test/1.0/rar? 
> J2EEApplication 
> =null,JCAConnectionFactory=MyCF,JCAResource=console.jms/test/1.0/ 
> rar,ResourceAdapter=console.jms/test/1.0/ 
> rar,ResourceAdapterModule=console.jms/test/1.0/ 
> rar,j2eeType=JCAManagedConnectionFactory,name=MyCF"
> java.lang.NullPointerException
> 	at
> org 
> .apache 
> .geronimo 
> .transaction 
> .manager.WrapperNamedXAResource.recover(WrapperNamedXAResource.java: 
> 74)
> 	at
> org 
> .apache 
> .geronimo 
> .transaction 
> .manager.RecoveryImpl.recoverResourceManager(RecoveryImpl.java:98)
> 	at
> org 
> .apache 
> .geronimo 
> .transaction 
> .manager 
> .TransactionManagerImpl 
> .recoverResourceManager(TransactionManagerImpl.java:352)
> 	at
> org 
> .apache 
> .geronimo 
> .connector 
> .outbound 
> .AbstractConnectionManager.doRecovery(AbstractConnectionManager.java: 
> 70)
> 	at
> org 
> .apache 
> .geronimo 
> .connector 
> .outbound 
> .ManagedConnectionFactoryWrapper 
> .doStart(ManagedConnectionFactoryWrapper.java:166)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:998)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java: 
> 267)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:101)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java: 
> 123)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java: 
> 456)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .KernelConfigurationManager.start(KernelConfigurationManager.java:188)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .SimpleConfigurationManager 
> .startConfiguration(SimpleConfigurationManager.java:562)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .SimpleConfigurationManager 
> .startConfiguration(SimpleConfigurationManager.java:543)
> 	at sun.reflect.GeneratedMethodAccessor329.invoke(Unknown Source)
> 	at
> sun 
> .reflect 
> .DelegatingMethodAccessorImpl 
> .invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:618)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java: 
> 34)
> 	at
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
> 	at
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:832)
> 	at
> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java: 
> 57)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java: 
> 96)
> 	at org.apache.geronimo.kernel.config.EditableConfigurationManager
> $$EnhancerByCGLIB$$c9ded454.startConfiguration(<generated>)
> 	at
> org 
> .apache 
> .geronimo 
> .deployment 
> .plugin 
> .local 
> .RedeployCommand.redeploySameConfiguration(RedeployCommand.java:229)
> 	at
> org 
> .apache 
> .geronimo 
> .deployment.plugin.local.RedeployCommand.run(RedeployCommand.java:101)
> 	at java.lang.Thread.run(Thread.java:810)
> 2010-01-18 17:06:52,050 ERROR [DeploymentPortlet] Deployment Failed
> start of console.jms/test/1.0/rar failed
> org.apache.geronimo.kernel.config.LifecycleException: start of
> console.jms/test/1.0/rar failed
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .SimpleConfigurationManager 
> .startConfiguration(SimpleConfigurationManager.java:579)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .SimpleConfigurationManager 
> .startConfiguration(SimpleConfigurationManager.java:543)
> 	at sun.reflect.GeneratedMethodAccessor329.invoke(Unknown Source)
> 	at
> sun 
> .reflect 
> .DelegatingMethodAccessorImpl 
> .invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:618)
> 	at
> org 
> .apache 
> .geronimo 
> .gbean 
> .runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java: 
> 34)
> 	at
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124)
> 	at
> org 
> .apache 
> .geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:832)
> 	at
> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java: 
> 57)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java: 
> 96)
> 	at org.apache.geronimo.kernel.config.EditableConfigurationManager
> $$EnhancerByCGLIB$$c9ded454.startConfiguration(<generated>)
> 	at
> org 
> .apache 
> .geronimo 
> .deployment 
> .plugin 
> .local 
> .RedeployCommand.redeploySameConfiguration(RedeployCommand.java:229)
> 	at
> org 
> .apache 
> .geronimo 
> .deployment.plugin.local.RedeployCommand.run(RedeployCommand.java:101)
> 	at java.lang.Thread.run(Thread.java:810)
> Caused by: org.apache.geronimo.kernel.config.InvalidConfigException:
> Unknown start exception
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java: 
> 522)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .KernelConfigurationManager.start(KernelConfigurationManager.java:188)
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .SimpleConfigurationManager 
> .startConfiguration(SimpleConfigurationManager.java:562)
> 	... 14 more
> Caused by: org.apache.geronimo.gbean.InvalidConfigurationException:
> Configuration console.jms/test/1.0/rar failed to start due to the
> following reasons:
>  The service
> J2EEApplication 
> =null,JCAConnectionFactory=MyCF,JCAResource=console.jms/test/1.0/ 
> rar,ResourceAdapter=console.jms/test/1.0/ 
> rar,ResourceAdapterModule=console.jms/test/1.0/ 
> rar,j2eeType=JCAManagedConnectionFactory,name=MyCF did not start for  
> an unknown reason
>  The service
> J2EEApplication=null,JCAResource=console.jms/test/1.0/ 
> rar,ResourceAdapter=console.jms/test/1.0/ 
> rar,ResourceAdapterModule=console.jms/test/1.0/ 
> rar,j2eeType=JCAConnectionFactory,name=MyCF did not start because  
> console.jms/test/1.0/rar? 
> J2EEApplication 
> =null,JCAConnectionFactory=MyCF,JCAResource=console.jms/test/1.0/ 
> rar,ResourceAdapter=console.jms/test/1.0/ 
> rar,ResourceAdapterModule=console.jms/test/1.0/ 
> rar,j2eeType=JCAManagedConnectionFactory,name=MyCF did not start.
>
> 	at
> org 
> .apache 
> .geronimo 
> .kernel 
> .config 
> .ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java: 
> 485)
> 	... 16 more
>
> Interestingly if I use an incorrect port, or an incorrect queue  
> manager
> name, Geronimo will return claim to have successfully deployed the RA,
> but in the console will spit out error messages about the queue  
> manager
> being unavailable, or queue manager name wrong.
>
>
>
>
> The second method was to install the wmq.jmsra.rar into the Geronimo
> repository, and then manually add the Connection Factory and the
> destination objects, however it seems that the 'wizard' ignores some  
> of
> the properties I specify for the ConnectionFactory (it only output the
> hostName and channel properties, but not the queueManager or port.  
> So I
> cannot use the wizard to create the required setup (even though it
> claims success. I believe this to be a bug, would this be a Geronimo
> defect, or something to raise with WebSphere MQ?
>
> Am I going mad, or doing something drastically wrong? Google does not
> throw and leads that have proved useful so far.....
>
> Thanks
>
> Rich
>
>


Mime
View raw message