4 Replies Latest reply on May 21, 2009 4:40 AM by antopault

    Shared file system master/slave  and persistent messages

    antopault

      Hi,

          For shared file system master/slave do the messages needs to be persistent? I tried setting up shared file system master/slave as described at http://fusesource.com/docs/esb/3.3/deploy_guide/ESBDeployHAShared.html Just enabling the persistent adapter didn't recover messages when master is killed and slave picks up the processing. For message recovery what else is needed. By message I mean the messages exchanged on the NMR among the POJO BCs.

       

      Anto

        • 1. Re: Shared file system master/slave  and persistent messages
          martinmurphy

          I assume that you want to persist messages via the JMS flow? If that is the case then you will need to make sure that the QoS on your messages include persistent. Otherwise the flow that satisfies your properties will be chosen, in most cases this will result in the SEDA flow being chosen.

          • 2. Re: Shared file system master/slave  and persistent messages
            antopault

            I need JMS flow because it will be deployed in a cluster. In the ServiceMix container element I enabled persistent="true" and there is no recovery happening. If I run in debug mode I can see that messages are printed saying that message is added to persistent store and is removed immediately before consumption.

             

            Is there any sample application that demonstrates persistent messages with JMS flow? BTW I use Fuse ESB 3.4

            • 3. Re: Shared file system master/slave  and persistent messages
              martinmurphy

              I wonder if the only messages you are seeing being persisted are those in your explicit JMS queues? Can you configure Fuse ESB, so only the JMS flow is available from your conf/servicemix.xml?

                  <sm:broker>
                    <sm:securedBroker authorizationMap="#authorizationMap">
                      <sm:flows>
                        <sm:jmsFlow jmsURL="${activemq.url}"></sm:jmsFlow>
                        <!--
                        <sm:sedaFlow />
                        <sm:jcaFlow connectionManager="#connectionManager"
                                    jmsURL="${activemq.url}"></sm:jcaFlow>
                                    -->
                      </sm:flows>
                    </sm:securedBroker>
                  </sm:broker>
              

              .

               

              Another approach would be to avoid persisting at all endpoints in the flow (which is what the JMS flow does), and make your own decision when to persist with an external broker using explicit JMS producer and consumer endpoints. This would be increase the performance, since you may not want to persist after every endpoint.

               

              Edited by: martinmurphy on May 21, 2009 7:49 AM

              • 4. Re: Shared file system master/slave  and persistent messages
                antopault

                There aren't any explicit JMS endpoints involved. I want that all the MessageExchange be recoverable. The consumers are slow and the application will be running in a cluster. The funny thing is that ServiceMix is not used for integration and I am looking at it for its ability to run in a cluster with HA capability.