geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rich Cumbers <rich.cumb...@gmail.com>
Subject Problems with Geronimo and MQ resource Adapter
Date Mon, 18 Jan 2010 17:14:43 GMT
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