Issue Details (XML | Word | Printable)

Key: GLASSFISH-6703
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Minor Minor
Assignee: jigang
Reporter: sonialiu
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
glassfish

Durable subscriber Topic test failed against IBM MQ

Created: 03/Nov/08 03:57 PM   Updated: 28/Feb/13 02:12 AM   Resolved: 28/Feb/13 02:09 AM
Component/s: jms
Affects Version/s: v2.1
Fix Version/s: 4.0_b71

Time Tracking:
Not Specified

File Attachments: 1. Text File server.log (70 kB) 03/Nov/08 03:57 PM - sonialiu

Environment:

Operating System: All
Platform: All


Issuezilla Id: 6,703
Tags:
Participants: harpreet, jigang, kumara, Satish Kumar, sonialiu and Tom Mueller


 Description  « Hide

OS: soarlis
build: promoted build 58
This is a GRA test failiure.
summary: Durable subscriber Topic test failed to deploy against IBM MQ. However,
with the same setup/configuration, all other GRA test cases passed. Only the
durable subscriber test had the problem.
Test description:
Servlet calls EJB method which sends a message to a topic that is a durable
subscriber. Server is restarted and servlet checks that the message is received.
Steps to reproduce the bug:
1. Install V2 promoted build 56. start domain
2. Checkout SQE workspace cvs co -r SJSAS911_FCS_BRANCH appserver-sqe/boostrap.xml
(CVSROOT: :pserver:<user>@redcvs.red.iplanet.com:/m/jws)
cd appserver-sqe
ant -f bootstrap.xml -Dtag=SJSAS911_FCS_BRANCH co-gra
3.set env. variables
S1AS_HOME <as install dir>
SPS_HOME <appserver-sqe>
ANT_HOME
JAVA_HOME
4. cd appserver-sqe/pe/, open file config.properties, modify admin.user,
admin.password, admin.port... values based on your AS install information
5. follow the following README file to setup IBM MQ to run GRA test:
http://server-rel.red.iplanet.com/h/nimitz.red.iplanet.com/export2/GRA/GRA2.0/GRA_IBMMQ_Readme.html
5. cd appserver-sqe/pe/genericra/test15, run command
ant build deploy run
The test failed to deploy the test application. The server.log shows the
following error:
[#|2008-11-03T14:52:18.110-0800|WARNING|sun-appserver9.1|javax.enterprise.system.stream.err|_ThreadID=14;_ThreadName=httpSSLWorkerThread-4848-0;_RequestID=c72cb32f-3716-4de3-bc63-775b5e305ecb;|
javax.resource.ResourceException: MQJMS5053: *** No broker response. Please
ensure that the broker is running. If you are using the WebSphere MQ broker
check that your brokerVersion is set to V1 ***
at
com.sun.genericra.util.ExceptionUtils.newResourceException(ExceptionUtils.java:73)
at
com.sun.genericra.inbound.async.EndpointConsumer._start(EndpointConsumer.java:131)
at com.sun.genericra.inbound.async.EndpointConsumer.start(EndpointConsumer.java:83)
at com.sun.genericra.GenericJMSRA.endpointActivation(GenericJMSRA.java:216)
at
com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:252)
at
com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:209)
at
com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:280)
at com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:537)
at com.sun.enterprise.server.ApplicationLoader.doLoad(ApplicationLoader.java:191)
at
com.sun.enterprise.server.TomcatApplicationLoader.doLoad(TomcatApplicationLoader.java:126)
at
com.sun.enterprise.server.ExtendedApplicationLoader.doLoad(ExtendedApplicationLoader.java:134)
at com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:245)
at
com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:336)
at
com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:210)
at
com.sun.enterprise.server.ApplicationManager.applicationDeployed(ApplicationManager.java:645)
at
com.sun.enterprise.admin.event.AdminEventMulticaster.invokeApplicationDeployEventListener(AdminEventMulticaster.java:958)
at
com.sun.enterprise.admin.event.AdminEventMulticaster.handleApplicationDeployEvent(AdminEventMulticaster.java:942)
at
com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:467)
at
com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182)
at
com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
at
com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:230)
at
com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)
at
com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)
at
com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
at
com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:934)
at
com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:605)
at
com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:649)
at
com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:773)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
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:381)
at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:364)
at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:477)
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.GeneratedMethodAccessor18.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:90)
at $Proxy1.invoke(Unknown Source)
at
com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
at
com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174)
at
com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69)
at
com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155)
at
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122)
at
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at sun.reflect.GeneratedMethodAccessor68.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:292)
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:325)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:208)
at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:420)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at
com.sun.enterprise.web.connector.grizzly.ssl.SSLReadTask.process(SSLReadTask.java:440)
at
com.sun.enterprise.web.connector.grizzly.ssl.SSLReadTask.doTask(SSLReadTask.java:228)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: com.ibm.mq.jms.NoBrokerResponseException: MQJMS5053: *** No broker
response. Please ensure that the broker is running. If you are using the
WebSphere MQ broker check that your brokerVersion is set to V1 ***
at
com.ibm.mq.jms.MQBrokerSubscriptionEngine.getBrokerResponse(MQBrokerSubscriptio|#]

[#|2008-11-03T14:52:18.114-0800|WARNING|sun-appserver9.1|javax.enterprise.system.stream.err|_ThreadID=14;_ThreadName=httpSSLWorkerThread-4848-0;_RequestID=c72cb32f-3716-4de3-bc63-775b5e305ecb;|nEngine.java:3041)
at
com.ibm.mq.jms.MQBrokerSubscriptionEngine.openDurableSubscription(MQBrokerSubscriptionEngine.java:1058)
at
com.ibm.mq.jms.MQMigrateSubscriptionEngine.openDurableSubscription(MQMigrateSubscriptionEngine.java:547)
at com.ibm.mq.jms.MQConnectionBrowser.pubSubSetup(MQConnectionBrowser.java:440)
at
com.ibm.mq.jms.MQConnectionBrowser.MQConnectionBrowserInit(MQConnectionBrowser.java:306)
at com.ibm.mq.jms.MQConnectionBrowser.<init>(MQConnectionBrowser.java:155)
at
com.ibm.mq.jms.MQConnection.createDurableConnectionBrowser(MQConnection.java:3470)
at com.ibm.mq.jms.MQConnectionConsumer.<init>(MQConnectionConsumer.java:461)
at
com.ibm.mq.jms.MQConnection.createDurableConnectionConsumer(MQConnection.java:3364)
at
com.sun.genericra.inbound.async.InboundJmsResourcePool.createDurableConnectionConsumer(InboundJmsResourcePool.java:139)
at
com.sun.genericra.inbound.async.EndpointConsumer._start(EndpointConsumer.java:112)
... 85 more

#]
---------------------- Attached server.log --------------


sonialiu added a comment - 03/Nov/08 03:57 PM

Created an attachment (id=2049)
server.log


Satish Kumar added a comment - 04/Nov/08 09:41 AM

Based on the attached log records the problem does not seem to be due to
GenericRA but rather a setup/configuration issue. Firstly, pls ensure that the
broker is running. Secondly, set forBrokerVersion=V1 in the
TopicConnectionFactory.

If this does not solve the problem, pls attach the IBM MQ logs.


sonialiu added a comment - 04/Nov/08 04:52 PM

As per Satish's suggestion I have add forBrokerVersion=V1 while creating
connection pool. Here is the command:
create-connection-pool:
[exec] create-connector-connection-pool --interactive=true --passwordfile /
export2/sonia/appserver-sqe/build-config/adminpassword.txt --user admin --terse=
false --connectiondefinition javax.jms.TopicConnectionFactory --property Connect
ionFactoryJndiName=XATCF1:SupportsXA=false:forBrokerVersion=V1 --host localhost
--transactionsupport NoTransaction --raname genericra --echo=true --port 4848 tc
pool
When I ran the test, the deployment still failed.
Then I double checked that QM was running.
#dspmq
QMName(QM1) STATUS(Running)
...

I checked the MQ broker port 9000 and it was listening.

  1. netstat -a|grep 9000
    .9000 *. 0 0 49152 0 LISTEN
    treeps.34576 treeps.9000 49152 0 49152 0 ESTABLISHED
    treeps.9000 treeps.34576 49152 0 49152 0 ESTABLISHED
    treeps.34577 treeps.9000 49152 0 49152 0 ESTABLISHED
    treeps.9000 treeps.34577 49152 0 49152 0 ESTABLISHED
    .9000 *. 0 0
    49152 0 LISTEN
    then I ran another GRA test using the same setup, the test passed. And Only the
    durable subscriber Topic test cases failed (test18 and test15).

harpreet added a comment - 06/Nov/08 05:28 AM

Is this a critical issue for v2.1


Satish Kumar added a comment - 25/Nov/08 03:54 AM

This clearly appears to be a Websphere MQ configuration issue. I tried this
with various combinations to figure out whether this is a configuration issue
or a bug including trying the test with GRA 1.7 (with GF 2.1) and AS 9.1. I am
seeing the same exception in all cases and the message in the exception seems
to clearly point to a configuration problem. The tests pass with SUN MQ. I have
raised this question in the Websphere MQ forum but I haven't got a reply yet. I
will update the bug once I get a reply.

Lowering the priority of this bug to a P4 since in all probability it appears
to be a configuration issue.


kumara added a comment - 01/Sep/09 01:09 AM

Changing version from 9.1.1 to v2.1 to reflect new name/version.


kenaiadmin made changes - 26/Nov/10 12:00 AM
Field Original Value New Value
issue.field.bugzillaimportkey 6703 38307
Ed Bratt made changes - 06/Jan/12 10:49 PM
Assignee Satish Kumar [ sats ] liang.x.zhao [ liang.x.zhao ]
Tom Mueller added a comment - 06/Mar/12 09:56 PM

Bulk update to change fix version to "not determined" for all issues still open but with a fix version for a released version.


Tom Mueller made changes - 06/Mar/12 09:56 PM
Fix Version/s not determined [ 11149 ]
Fix Version/s V3 [ 10981 ]
David Zhao made changes - 07/Mar/12 08:29 AM
Fix Version/s 4.0 [ 10970 ]
Fix Version/s not determined [ 11149 ]
bqin made changes - 19/Oct/12 06:17 AM
Fix Version/s future release [ 11148 ]
Fix Version/s 4.0 [ 10970 ]
jigang added a comment - 28/Feb/13 02:09 AM

May be Websphere MQ fixed this issue.
Durable subscriber Topic test passed to deploy against IBM MQ7.5
OS:win7
glassfish build: promoted build 71
GenericRA:v1.7-final and v2.1b
Websphere MQ:WMQ 7.5
Test description:
Steps for using the Generic Resource Adapter for JMS to integrate IBM - See more at: http://genericjmsra.java.net/docs/websphere-mq-integration-guide/webspheremq_integration_guide.html#sthash.rJVZuBbX.dpuf

To make a MDB into a durable subscriber, you can add a couple of lines to the sun-ejb-jar.xml:
<activation-config-property>
<activation-config-property-name>ClientId</activation-config-property-name>
<!-- this ia the JNDI name of the inbound destination in Weblogic's JNDI -->
<activation-config-property-value>testTopic</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>SubscriptionDurability</activation-config-property-name>
<!-- this ia the JNDI name of the inbound destination in Weblogic's JNDI -->
<activation-config-property-value>Durable</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>SubscriptionName</activation-config-property-name>
<!-- this ia the JNDI name of the inbound destination in Weblogic's JNDI -->
<activation-config-property-value>testtopic</activation-config-property-value>
</activation-config-property>

We can deploy this MDB against IBM MQ7.5 successfully and receive its messages even after the mdb is disabled and then reenabled.
Steps as follows:
1.deploy the durable subscriber MDB
2.send the message to the topic
3.MDB can receive its messages
4.disabled MDB
5.send the message to the topic
6.reenbaled MDB
7.MDB can receive its messages


jigang made changes - 28/Feb/13 02:09 AM
Status Open [ 1 ] Resolved [ 5 ]
Fix Version/s 4.0_b71 [ 16100 ]
Fix Version/s future release [ 11148 ]
Resolution Fixed [ 1 ]
David Zhao made changes - 28/Feb/13 02:12 AM
Assignee David Zhao [ liang.x.zhao ] jigang [ jigang ]