2 Replies Latest reply on Nov 11, 2014 12:01 AM by Mihir Shah

    FTP message not recovered after ESB server crash

    Mihir Shah Newbie

      When ESB server crashes immediately after a message was successfully picked up by FTP provider, the message is not recovered after server restart. Hence, the message data is lost in this case. We couldn't find anything in the logging.

      Can anyone please help on this issue?

      Following are the steps to reproduce it:

       

      a. Upload 250kb message to a tmp directory on FTP server

      b. Slow down ESB server in Vmware

      c. Move message to actual FTP directory

      d. Observe file being renamed to .esbworking

      e. Observe file being removed from FTP server

      f. Crash the ESB server by issuing “echo c > /proc/sysrq-trigger”

      g. Undo server slowdown.

      h. Restart server

      i. The message is not recovered

       

      Below is the configuration used:

       

      <providers>

      <ftp-provider hostname="${xyz.abc.ftp.hostname}:${xyz.abc.ftp.port}" name="XYZFTPProvider">

         <ftp-bus busid="XYZRouterFTPGW">

          <ftp-message-filter directory="${xyz.abc.ftp.source.dir}"

           error-delete="false" error-directory="${xyz.abc.ftp.error.dir}"

           error-suffix=".esbERROR" input-suffix=".xml" passive="true"

           password="${xyz.abc.ftp.password}"

           post-delete="${xyz.abc.ftp.post.delete}"

           post-directory="${xyz.abc.ftp.post.dir}" post-rename="true"

           username="${xyz.abc.ftp.username}" work-suffix=".esbWORKING"/>

         </ftp-bus>

      </ftp-provider>

      <jms-provider connection-factory="ConnectionFactory" name="JBossMessaging">

         <jms-bus busid="XYZABCFTPInternalGWChennel">

          <jms-message-filter acknowledge-mode="AUTO_ACKNOWLEDGE"

           dest-name="queue/Test.abc.esb.queue" dest-type="QUEUE" transacted="true"/>

         </jms-bus>

      </jms-provider>

      <schedule-provider name="XYZCron">

         <cron-schedule cronExpression="0/5 * * * * ?" scheduleid="cron-schedule"/>

      </schedule-provider>

      </providers>

      <services>

      <service category="TESTCaterory" description="Interface" name="XYZFTPABCServices" invmScope="GLOBAL" invmTransacted="true">

         <listeners>

          <ftp-listener busidref="XYZRouterFTPGW" is-gateway="true" name="XYZFTPGateway" scheduleidref="cron-schedule">

           <property name="mimeType" value="text/plain"/>

           <property name="encoding" value="UTF-8"/>

           </ftp-listener>

           <jms-listener busidref="XYZABCFTPInternalGWChennel" name="ABCESBListener"/>

         </listeners>

         <actions mep="OneWay">

          <action

           class="com.Test.esb.ABC.actionProcessor.TESTABCActionProcessor"

           name="IncomingLogger" process="logIncomingMessage"/>

          <action

      class="org.jboss.soa.esb.actions.naming.FileNameGeneratorAction" name="BuildFilename">

           <property name="strategies">

            <strategies>

             <strategy class="com.Test.esb.ABC.fileNameGeneration.ABCFileNameGenerator"/>

            </strategies>

           </property>

          </action>

      </services>

      </jbossesb>