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
