Uploaded image for project: 'JBoss Enterprise SOA Platform'
  1. JBoss Enterprise SOA Platform
  2. SOA-2745

Router in Smooks Creates Inverse Persistence

    XMLWordPrintable

    Details

    • Workaround:
      Workaround Exists
    • Workaround Description:
      Hide

      The work around is to use:

      <jms:router routeOnElement="student" beanId="studentFragment" destination="queue/StudentRecordQueue">
      <jms:message deliveryMode="non-persistent"/>
      </jms:router>

      When you would actually like persistent messages.

      Show
      The work around is to use: <jms:router routeOnElement="student" beanId="studentFragment" destination="queue/StudentRecordQueue"> <jms:message deliveryMode="non-persistent"/> </jms:router> When you would actually like persistent messages.
    • Release Notes Text:
      Hide
      https://issues.jboss.org/browse/SOA-2745


      The Smooks router was setting messages as non-persistent when, in fact, it should have been making them persistent. This was due to a bug in the router's code which has now been rectified As a result, messages are now set as persistent.
      Show
      https://issues.jboss.org/browse/SOA-2745 The Smooks router was setting messages as non-persistent when, in fact, it should have been making them persistent. This was due to a bug in the router's code which has now been rectified As a result, messages are now set as persistent.
    • Release Notes Docs Status:
      Documented as Resolved Issue

      Description

      Smooks' JMS Router configures message persistence incorrectly. The documentation suggests the following configuration will result in persistent messages to the ESB:

      <jms:router routeOnElement="student" beanId="studentFragment" destination="queue/StudentRecordQueue">
      <jms:message deliveryMode="persistent"/>
      </jms:router>

      Instead, this leads to non-persistent messages. This is due to a bug in org.milyn.routing.jms.JMSRouter:

      final int deliveryModeInt = "non-persistent".equals( jmsProperties.getDeliveryMode() ) ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT;

      This should instead be the inverse:

      final int deliveryModeInt = "non-persistent".equals( jmsProperties.getDeliveryMode() ) ? DeliveryMode.NON_PERSISTENT : DeliveryMode.PERSISTENT;

      This is a particularly major bug because the work around will cause incorrect functionality in future versions of the ESB, which will hopefully fix the issue with a patched version of Smooks' JMS Cartridge.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  tfennelly Tom Fennelly
                  Reporter:
                  bradsdavis Brad Davis
                  Writer:
                  David Le Sage
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: