users@genericjmsra.java.net

Re: GenericRA and Websphere MQ

From: Binod <Binod.Pg_at_Sun.COM>
Date: Sun, 22 Jan 2006 12:17:03 +0530

[Ok, we havent tried javabean mode with MQ series]

But, yes, you seem to go in the right direction. More comments
below. In any case, try the queue tests first. I hear that queue tests
are easier to configure in MQ.

> Thanks for that Binod
>
> Ok, I'm going back to basics... I'm following the userguide provided:
> https://genericjmsra.dev.java.net/docs/userguide/userguide.html
>
> here are the settings that I am using for GenericRA using a
> ProviderIntegrationMode of javabean
>
> SupportsXA=true:
> ProviderIntegrationMode=javabean:
> ConnectionFactoryClassName=com.ibm.mq.jms.MQConnectionFactory:
> UserName=guest:Password=guest:
> QueueConnectionFactoryClassName=com.ibm.mq.jms.MQQueueConnectionFactory:
> TopicConnectionFactoryClassName=com.ibm.mq.jms.MQTopicConnectionFactory:
> QueueClassName=com.ibm.mq.jms.MQQueue:
> TopicClassName=com.ibm.mq.jms.MQTopic:LogLevel=info:
> UserName=guest:Password=guest:
> XAQueueConnectionFactoryClassName=com.ibm.mq.jms.MQXAQueueConnectionFactory:
>
> XATopicConnectionFactoryClassName=com.ibm.mq.jms.MQXATopicConnectionFactory:
>
> XAConnectionFactoryClassName=com.ibm.mq.jms.MQXAConnectionFactory:
> ConnectionFactoryProperties=HostName\=qmgrimsdev,Channel\=CHANNEL1,Port\=1414,QueueManager\=IFS.DEV.QUEUE.MANAGER,TransportType\=1

I assume the MQ connection factories have these properties as per java
bean standards.
You also need to set RMPolicy.

>
>
> I've downloaded the source for the GenericRA from cvs and have
> modified the ant scripts so that instead of Sun Messaging specifics, I
> am using Webshphere MQ instead.
>
> When creating the admin objects for the test stress.queue, I am modifying
>
> <antcall target="create-admin-object-common">
> <param name="adminobject.raname" value="genericra"/>
> <param name="adminobject.restype" value="javax.jms.Queue"/>
> <param name="adminobject.property" value="DestinationProperties=???"/>
> <param name="adminobject.jndiname" value="jms/ReceiverQueue "/>
> </antcall>
>
> What do I put for the DestinationProperties? The ant scripts used
> imqDestinationName\=PhysicalRxQueue, I'm assuming I put in the MQ
> specifics of BaseQueueName\=TEST.QUEUE? This DestinationProperties
> which class is it trying to set the given properties?

Yes. That if MQ queue class has a setBaseQueueName, then that may be the
property
you want. Also assuming you have created a local queue in MQ with that name.

>
> When running the test applications, I get the following error in
> server.log
>
> javax.resource.ResourceException: MQJMS2008: failed to open MQ queue
> at
> com.sun.genericra.util.ExceptionUtils.newResourceException(ExceptionUtils.java:68)
>
> at
> com.sun.genericra.inbound.EndpointConsumer._start(EndpointConsumer.java:156)
>
> at
> com.sun.genericra.inbound.EndpointConsumer.start(EndpointConsumer.java:118)
>
> at
> com.sun.genericra.GenericJMSRA.endpointActivation(GenericJMSRA.java:97)
> at
> com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:221)
>
> at
> com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:187)
>
> at
> com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:221)
>
> at
> com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:477)
>
> at
> com.sun.enterprise.server.ApplicationLoader.load(ApplicationLoader.java:125)
>
> at
> com.sun.enterprise.server.TomcatApplicationLoader.load(TomcatApplicationLoader.java:95)
>
> at
> com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:224)
>
> at
> com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:164)
>
> at
> com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:496)
>
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.invokeApplicationDeployEventListener(AdminEventMulticaster.java:872)
>
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.handleApplicationDeployEvent(AdminEventMulticaster.java:856)
>
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:424)
>
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:139)
>
> at
> com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:288)
>
> at
> com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:155)
>
> at
> com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:258)
>
> at
> com.sun.enterprise.deployment.phasing.StartPhase.runPhase(StartPhase.java:87)
>
> at
> com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:71)
>
> at
> com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:633)
>
> at
> com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:361)
>
> at
> com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:396)
>
> at
> com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:702)
>
> at sun.reflect.GeneratedMethodAccessor300.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:302)
>
> at
> com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:357)
>
> at
> com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
>
> at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
> at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
>
> at
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
> at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:54)
> at $Proxy1.invoke(Unknown Source)
> at
> com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:272)
>
> at
> com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:38)
>
> at
> com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:92)
>
> at
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:69)
>
> at
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:94)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:767)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
> at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
> at
> org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
> at
> org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:257)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55)
>
> at
> org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:161)
>
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
>
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:225)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:132)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
>
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:933)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:185)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:653)
>
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:534)
>
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.doTask(ProcessorTask.java:403)
>
> at
> com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:55)
>
> Caused by: javax.jms.JMSException: MQJMS2008: failed to open MQ queue

Which version of WMQ are you using and in which OS? With 5.3, it seems
there are
some CSD requirements.

> at
> com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:553)
>
> at com.ibm.mq.jms.MQQueueAgent.resolveQueue(MQQueueAgent.java:506)
> at com.ibm.mq.jms.MQQueueAgent.getQueueAgent(MQQueueAgent.java:296)
> at
> com.ibm.mq.jms.MQConnectionBrowser.MQConnectionBrowserInit(MQConnectionBrowser.java:285)
>
> at
> com.ibm.mq.jms.MQConnectionBrowser.<init>(MQConnectionBrowser.java:118)
> at
> com.ibm.mq.jms.MQConnection.createConnectionBrowser(MQConnection.java:3530)
>
> at
> com.ibm.mq.jms.MQConnectionConsumer.<init>(MQConnectionConsumer.java:451)
> at
> com.ibm.mq.jms.MQConnectionConsumer.<init>(MQConnectionConsumer.java:362)
> at
> com.ibm.mq.jms.MQQueueConnection.createConnectionConsumer(MQQueueConnection.java:587)
>
> at
> com.sun.genericra.inbound.InboundJmsResourcePool.createConnectionConsumer(InboundJmsResourcePool.java:190)
>
> at
> com.sun.genericra.inbound.EndpointConsumer._start(EndpointConsumer.java:145)
>
> ... 73 more
> |#]
>
> [#|2006-01-22T11:48:09.823+0800|SEVERE|sun-appserver-pe8.1_02|javax.enterprise.system.container.ejb.mdb|_ThreadID=18;|MDB00017:
> [SimpleMessageEJB]: Exception in creating message-driven bean
> container: [java.lang.Exception]|#]
>
> [#|2006-01-22T11:48:09.823+0800|SEVERE|sun-appserver-pe8.1_02|javax.enterprise.system.container.ejb.mdb|_ThreadID=18;|java.lang.Exception
>
> java.lang.Exception
> at
> com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:230)
>
> at
> com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:187)
>
> at
> com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:221)
>
> at
> com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:477)
>
> at
> com.sun.enterprise.server.ApplicationLoader.load(ApplicationLoader.java:125)
>
> at
> com.sun.enterprise.server.TomcatApplicationLoader.load(TomcatApplicationLoader.java:95)
>
> at
> com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:224)
>
> at
> com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:164)
>
> at
> com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:496)
>
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.invokeApplicationDeployEventListener(AdminEventMulticaster.java:872)
>
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.handleApplicationDeployEvent(AdminEventMulticaster.java:856)
>
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:424)
>
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:139)
>
> at
> com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:288)
>
> at
> com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:155)
>
> at
> com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:258)
>
> at
> com.sun.enterprise.deployment.phasing.StartPhase.runPhase(StartPhase.java:87)
>
> at
> com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:71)
>
> at
> com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:633)
>
> at
> com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:361)
>
> at
> com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:396)
>
> at
> com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:702)
>
> at sun.reflect.GeneratedMethodAccessor300.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:302)
>
> at
> com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:357)
>
> at
> com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
>
> at com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
> at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
>
> at
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
> at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:54)
> at $Proxy1.invoke(Unknown Source)
> at
> com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:272)
>
> at
> com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:38)
>
> at
> com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:92)
>
> at
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:69)
>
> at
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:94)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:767)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
> at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
> at
> org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
> at
> org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:257)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:55)
>
> at
> org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:161)
>
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
>
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:225)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:132)
>
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
>
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:933)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:185)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:653)
>
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:534)
>
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.doTask(ProcessorTask.java:403)
>
> at
> com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:55)
>
> Caused by: javax.resource.ResourceException: MQJMS2008: failed to open
> MQ queue
> at
> com.sun.genericra.util.ExceptionUtils.newResourceException(ExceptionUtils.java:68)
>
> at
> com.sun.genericra.inbound.EndpointConsumer._start(EndpointConsumer.java:156)
>
> at
> com.sun.genericra.inbound.EndpointConsumer.start(EndpointConsumer.java:118)
>
> at
> com.sun.genericra.GenericJMSRA.endpointActivation(GenericJMSRA.java:97)
> at
> com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:221)
>
> ... 70 more
> Caused by: javax.jms.JMSException: MQJMS2008: failed to open MQ queue
> at
> com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:553)
>
> at com.ibm.mq.jms.MQQueueAgent.resolveQueue(MQQueueAgent.java:506)
> at com.ibm.mq.jms.MQQueueAgent.getQueueAgent(MQQueueAgent.java:296)
> at
> com.ibm.mq.jms.MQConnectionBrowser.MQConnectionBrowserInit(MQConnectionBrowser.java:285)
>
> at
> com.ibm.mq.jms.MQConnectionBrowser.<init>(MQConnectionBrowser.java:118)
> at
> com.ibm.mq.jms.MQConnection.createConnectionBrowser(MQConnection.java:3530)
>
> at
> com.ibm.mq.jms.MQConnectionConsumer.<init>(MQConnectionConsumer.java:451)
> at
> com.ibm.mq.jms.MQConnectionConsumer.<init>(MQConnectionConsumer.java:362)
> at
> com.ibm.mq.jms.MQQueueConnection.createConnectionConsumer(MQQueueConnection.java:587)
>
> at
> com.sun.genericra.inbound.InboundJmsResourcePool.createConnectionConsumer(InboundJmsResourcePool.java:190)
>
> at
> com.sun.genericra.inbound.EndpointConsumer._start(EndpointConsumer.java:145)
>
> ... 73 more
> |#]
>
> Any ideas what i've done wrong? And yes the queues in MQSeries has
> been created with the get/puts allowed.

Thats good.

>
> Do I still have to play with JMSAdmin? The reason for me moving
> towards the javabean provider integration is so that I do not have to
> use JMSAdmin. I just want the ability to deploy and configure in SJSAS
> only

That should be possible, unless a hidden property is saved in the
serialized MQ java class
by JMSAdmin and if there is no corresponding property in the javabean to
set it.
I havent seen MQ series folks exposing their connection factory java doc
to confirm
everything is in it.

thanks,
Binod.

>
> Any help is appreciated!
>
> Jonathon
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_genericjmsra.dev.java.net
> For additional commands, e-mail: users-help_at_genericjmsra.dev.java.net
>