Bug 814134 - Enable configuration and propagation of the JMS priority through the ESB aware services
Enable configuration and propagation of the JMS priority through the ESB awar...
Status: VERIFIED
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: JBossESB (Show other bugs)
5.3.0 GA
All All
unspecified Severity medium
: ER4
: 5.3.0 GA
Assigned To: kconner
Filip Nguyen
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-04-19 05:57 EDT by kconner
Modified: 2012-07-23 07:40 EDT (History)
6 users (show)

See Also:
Fixed In Version: 5.3.0 GA
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
JBoss Issue Tracker JBESB-3786 Major Closed Enable configuration and propagation of the JMS priority through the ESB aware services 2012-07-27 19:13:11 EDT

  None (edit)
Description kconner 2012-04-19 05:57:56 EDT
Description of problem:

The feature request is to have a priority configured on a gateway and then have that propagate through the ESB services which are invoked as a result.

The priority should be applied to any JMS transports which are used to communicate with ESB services, using the JMS message setJMSPriorty, and propagated through those services to subsequent ESB service invocations.

Expected results:

JMS priority can be used by reorder messages arriving at JMS endpoints so that certain services can take precedence over lower priority services.

Additional info:

I have a good idea of how this can be addressed.
Comment 1 Len DiMaggio 2012-04-25 14:57:15 EDT
Just to confirm - does JBossESB have to do anything with this priority, other than define it for a gateway and propagate it in the messages that pass through that gateway?
Comment 2 Len DiMaggio 2012-04-25 15:48:26 EDT
Question are JBossESB editor/tooling changes needed?
Comment 3 kconner 2012-04-25 17:42:15 EDT
(In reply to comment #1)
> Just to confirm - does JBossESB have to do anything with this priority, other
> than define it for a gateway and propagate it in the messages that pass through
> that gateway?

The priority needs to be applied to each JMS message sent, directly or indirectly, as a result of the incoming messages at the gateway.
Comment 4 kconner 2012-04-25 17:45:25 EDT
(In reply to comment #2)
> Question are JBossESB editor/tooling changes needed?

No editor/tooling changes are being requested at this time, only server side.
Comment 5 Len DiMaggio 2012-05-01 12:28:43 EDT
So:

'...The priority needs to be applied to each JMS message sent, directly or
indirectly, as a result of the incoming messages at the gateway...'

The ESB will also be throttling throughput based on message priority?
Comment 6 kconner 2012-05-01 14:31:16 EDT
(In reply to comment #5)
> The ESB will also be throttling throughput based on message priority?

The ESB will do nothing more than consume messages as they are provided by the JMS provider; the JMS providers should be delivering the messages based on the JMS priority.

The JMS API defines 10 priority levels 0 (lowest) - 9 (highest).  The default level is 4.
Comment 7 kconner 2012-05-24 15:05:00 EDT
Functionality added in ESB through JBESB-3786
Comment 8 David Le Sage 2012-06-05 00:01:59 EDT
Documented.
Comment 9 Filip Nguyen 2012-06-14 10:37:28 EDT
I am using SOA Platform 5.3 ER3. In this version it seems that the functionality is not there.

After investigating futher I have come to conclusion that the functionality wasn't productized into this version of SOA Platform because I do not see the changes from  branch JBESB_4_11_CP@38100 in jboss-rosetta.jar (e.g. new class MessageFlowContext.java is not there)
Comment 10 Filip Nguyen 2012-06-27 04:55:16 EDT
JIRA https://issues.jboss.org/browse/JBESB-3786 states that it should be possible to set it on listener/bus/provider.  

I couldn't set it on a bus nor provider. The esb fails to deploy with validation error:


10:44:29,529 INFO  [org.jboss.soa.esb.listeners.deployers.mc.EsbDeployment] Starting ESB Deployment 'JmsPriority.esb'
10:44:29,531 ERROR [org.jboss.soa.esb.listeners.config.model.ModelParser$XmlErrorHandler] ERROR-null-26:cvc-complex-type.2.4.d: Invalid content was found starting with element 'property'. No child element is expected at this point.
Comment 11 kconner 2012-07-09 12:38:25 EDT
Likely caused by having the property element in the wrong place.

Using the helloworld quickstart as an example, this is how it could be configured

          <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
===>          <property name="messageFlowPriority" value="4"/>
              <jms-bus busid="quickstartGwChannel">
===>              <property name="messageFlowPriority" value="4"/>
                  <jms-message-filter
                      dest-type="QUEUE"
                      dest-name="queue/quickstart_helloworld_Request_gw"
                   />
              </jms-bus>
...
                <jms-listener name="JMS-Gateway"
                    busidref="quickstartGwChannel"
                    is-gateway="true">
===>               <property name="messageFlowPriority" value="4"/>
                </jms-listener>
Comment 12 Filip Nguyen 2012-07-11 04:02:29 EDT
Yes you are right Kevin. I have placed the property elements after to the end of the jms-provider element and to the end of the jms-bus element which gives a validation error.

Note You need to log in before you can comment on or make changes to this bug.