Bug 778822 (SOA-1272)

Summary: REGRESSION: SOA-1268 prevents jms-jca-provider to send message to WSMQ
Product: [JBoss] JBoss Enterprise SOA Platform 4 Reporter: Jiri Pechanec <jpechane>
Component: JBossESBAssignee: Kevin Conner <kevin.conner>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: urgent Docs Contact:
Priority: urgent    
Version: 4.3 CP01Keywords: Regression, TestBlocker
Target Milestone: ---   
Target Release: 4.3 CP02   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-1272
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
MySQL/WSMQ/CR6
Last Closed: 2009-08-25 07:09:56 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 778818    
Bug Blocks:    

Description Jiri Pechanec 2009-04-06 07:03:51 UTC
Date of First Response: 2009-04-06 07:52:53
project_key: SOA

Currently we are using JMS resource adapter to integrate WSMQ with JBossESB. The jms-jca-provider must have following configuration
          <jms-jca-provider name="Custom MQ"
                        connection-factory="ConnectionFactory"
                        jndi-URL="localhost:1414/SYSTEM.DEF.SVRCONN"
                        jndi-context-factory="com.ibm.mq.jms.context.WMQInitialContextFactory"
                        jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces"
                        providerAdapterJNDI="java:/WSMQProvider">
              <jms-bus busid="startGwChannel">
                  <jms-message-filter dest-type="QUEUE"
                      dest-name="queue/pt_bpmo1_start_gateway" />
              </jms-bus>
              <jms-bus busid="startEsbChannel">
                  <jms-message-filter dest-type="QUEUE"
                      dest-name="queue/pt_bpmo1_start_esb" />
              </jms-bus>

The configuration successfully sucks messages form WSMQ on gateway but as soon as it tries it to deliver the message via ServiceInvoker to service itself the exception is thrown
02:55:22,855 WARN  [ServiceInvoker] Possible configuration error while using Courier for EPR [JMSEpr [ PortReference < <wsa:Address jms://localhost:1414/SYSTEM.DEF.SVRCONN/queue/pt_bpmo1_start_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : com.ibm.mq.jms.context.WMQInitialContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost:1414/SYSTEM.DEF.SVRCONN/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jboss.naming:org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ]] and Service [BPM_Orchestration_Starter_Service:Starter_Service] and Message [header: [ To: JMSEpr [ PortReference < <wsa:Address jms://localhost:1414/SYSTEM.DEF.SVRCONN/queue/pt_bpmo1_start_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : com.ibm.mq.jms.context.WMQInitialContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost:1414/SYSTEM.DEF.SVRCONN/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jboss.naming:org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ]]. javax.jms.InvalidDestinationException: MQJMS2008: failed to open MQ queue SYSTEM.DEF.SVRCONN/queue/pt_bpmo1_start_esb

We hit again the issue of invalid JMSEpr parsing related to WSMQ - see queue name SYSTEM.DEF.SVRCONN/queue/pt_bpmo1_start_esb

This is regression as the same configuration works with 4.3 GA.

Comment 1 Jiri Pechanec 2009-04-06 07:42:32 UTC
Link: Added: This issue depends SOA-1268


Comment 2 Kevin Conner 2009-04-06 11:52:53 UTC
The fact this worked previously is accidental as it relied on a bug in our codebase.  The issue can be seen by examining one of the EPRs from the GA codebase.

JMSEpr [ PortReference < <wsa:Address jms://127.0.0.1:1099/queue/pt_bpmo1_start_esb/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : com.ibm.mq.jms.context.WMQInitialContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost:1414/SYSTEM.DEF.SVRCONN/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jboss.naming:org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ]

The address element of this EPR is initialised to jms://127.0.0.1:1099/queue/pt_bpmo1_start_esb so the JMSEpr assumes a queue name of queue/pt_bpmo1_start_esb.

The generation of the address element within the JMSEpr previously ignored the provider.url when generating the address but this was fixed in the SOA CP01 release, therefore creating a new address of jms://localhost:1414/SYSTEM.DEF.SVRCONN/queue/pt_bpmo1_start_esb.  As the destination name is extracted out of this information it now yields a queue name of SYSTEM.DEF.SVRCONN/queue/pt_bpmo1_start_esb.

This all needs addressing as part of the work for SOA-1268.

Comment 3 Len DiMaggio 2009-04-09 12:23:05 UTC
Setting new "Affects Testing, Regression, Blocks Testing Fields"

Comment 4 Len DiMaggio 2009-04-09 12:23:05 UTC
Blocked Tests: Added: JMS provider tests
Affects Testing?: Added: [Regression?, Blocks Testing?]


Comment 5 Dana Mison 2009-04-14 01:38:12 UTC
Added as known issue in 4.3.CP01 release notes:

IBM Websphere MQ - JCA adapter Configuration Issues 

There are currently several unresolved issues affecting the configuration of JCA adapters with IBM Websphere MQ in the 4.3 GA and CP01 SOA Platform releases. This is a known issue and a fix will be included with the next CP release. 

If you plan to use IBM Websphere MQ with the SOA Platform you should contact Red Hat JBoss Support for assistance. 

Additional information: https://jira.jboss.org/jira/browse/SOA-1272


Comment 6 Len DiMaggio 2009-04-20 15:58:12 UTC
Edited to match changes in 'affects testing' fields  (? character removed from field names for easier querying)

Comment 7 Len DiMaggio 2009-04-20 15:58:12 UTC
Affects Testing: Removed: [Regression?, Blocks Testing?] Added: [Regression, Blocks Testing]


Comment 8 Kevin Conner 2009-06-10 12:19:41 UTC
SOA-1268 has been completed, this should now be possible.

Comment 9 Jiri Pechanec 2009-08-25 07:09:56 UTC
Verified on CR2