Bug 781980

Summary: Detect CLIENT_ACKNOWLEDGE mode using jms-provider on non-gateway queues
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: Martin Weiler <mputz>
Component: JBossESBAssignee: tcunning
Status: VERIFIED --- QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.2.0 GACC: mbaluch, rwagner, tcunning
Target Milestone: ER5   
Target Release: 5.3.0 GA   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
When using jms-provider, CLIENT_ACKNOWLEDGE mode was not accepted as a valid non-gateway listener. Although the message was retrieved by the JmsCourier and converted into an ESB message, the reference to the underlying JMS message was removed. Because of this, the message remained in the non-gateway queue after ESB service has been invoked.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Enhancement
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Martin Weiler 2012-01-16 09:04:43 UTC
Description of problem:
CLIENT_ACKNOWLEDGE mode is not valid for a non-gateway listener using jms-provider.

If using the jms-provider then the message will be retrieved by the
JmsCourier and converted into an ESB message, after which there is no
longer a reference to the underlying JMS message.  The JmsCourier should
be detecting this and raising an exception.

Version-Release number of selected component (if applicable):
JBoss ESB 4.10

How reproducible:
Consistently


Steps to Reproduce:
1. Modfiy jboss-esb.xml of helloworld quickstart:

          <jms-provider name="JBossMQ"
connection-factory="XAConnectionFactory">
              <jms-bus busid="quickstartGwChannel">
                  <jms-message-filter
                      dest-type="QUEUE"
                      dest-name="queue/quickstart_helloworld_Request_gw"
                      transacted="false"
                      acknowledge-mode="CLIENT_ACKNOWLEDGE"
                   />
              </jms-bus>
              <jms-bus busid="quickstartEsbChannel">
                  <jms-message-filter
                      dest-type="QUEUE"

dest-name="queue/quickstart_helloworld_Request_esb"
                      transacted="false"
                      acknowledge-mode="CLIENT_ACKNOWLEDGE"
                  />
              </jms-bus>
          </jms-provider>


2. Invoke ant runtest
  
Actual results:
Message remains in the non-gateway queue after ESB service has been invoked.

Expected results:
An exception should be raised indicating that CLIENT_ACKNOWLEDGE mode is not supported on non-gateway queues using jms-listener.

Comment 1 Anne-Louise Tangring 2012-01-31 16:13:45 UTC
Make it clearer for the user.

Comment 2 Rick Wagner 2012-03-19 21:23:26 UTC
GSS considers this a high priority.  At least one high value, high priority customer is involved in this case.  JMS/Transactions/JCA is an area where we spend a lot of time and effort, if we can improve it we will be much better off.

Comment 3 Suz 2012-06-14 05:39:11 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
When using jms-provider, CLIENT_ACKNOWLEDGE mode is not accepted as a valid non-gateway listener. Although the message is retrieved by the JmsCourier and converted into an ESB message, the reference to the underlying JMS message is removed. Because of this, the message remains in the non-gateway queue after ESB service has been invoked.

Comment 4 David Le Sage 2012-07-02 03:57:53 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1 +1 @@
-When using jms-provider, CLIENT_ACKNOWLEDGE mode is not accepted as a valid non-gateway listener. Although the message is retrieved by the JmsCourier and converted into an ESB message, the reference to the underlying JMS message is removed. Because of this, the message remains in the non-gateway queue after ESB service has been invoked.+When using jms-provider, CLIENT_ACKNOWLEDGE mode was not accepted as a valid non-gateway listener. Although the message was retrieved by the JmsCourier and converted into an ESB message, the reference to the underlying JMS message was removed. Because of this, the message remained in the non-gateway queue after ESB service has been invoked.

Comment 5 JBoss JIRA Server 2012-07-02 19:04:24 UTC
Tom Cunningham <tcunning> updated the status of jira JBESB-3739 to Resolved

Comment 6 JBoss JIRA Server 2012-07-02 19:04:24 UTC
Tom Cunningham <tcunning> made a comment on jira JBESB-3739

Throw an exception on JmsCourier construction if CLIENT_ACKNOWLEDGE is set in the JmsEpr.

Comment 7 JBoss JIRA Server 2012-07-02 19:04:30 UTC
Tom Cunningham <tcunning> updated the status of jira JBESB-3739 to Closed

Comment 8 Marek Baluch 2012-07-14 06:31:44 UTC
Verified on 5.3.ER5.

A quickstart using acknowledge-mode="CLIENT_ACKNOWLEDGE" deployment will now fail.