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