1

Mule の設定を以下に示します。Mule 3.4.0 を使用しています。私の activemq がダウンすると、ftp エンドポイントがインバウンド ファイルを読み取り、jms コネクタを開始しようとすると、次のエラーが発生します。Mule を再起動するまで、JMS の再接続が行われません。助けてください。ありがとう

INFO 2013-10-09 13:14:53,925 [ActiveMQ Connection Executor: tcp://localhost/127.0.0.1:61616@43162] org.mule.exception.DefaultSystemExceptionStrategy: キャッチされた例外は ConnectException であり、再接続しようとしています... INFO 2013-10-09 13:14:53,925 [ActiveMQ Connection Executor: tcp://localhost/127.0.0.1:61616@43162] org.mule.lifecycle.AbstractLifecycleManager: コネクタの停止: ActiveMQJMSConnector INFO 2013-10-09 13: 14:53,948 [ActiveMQ Connection Executor: tcp://localhost/127.0.0.1:61616@43780] org.mule.exception.DefaultSystemExceptionStrategy: キャッチされた例外は ConnectException であり、再接続しようとしています... エラー 2013-10-09 13: 14:53,949 [ActiveMQ Connection Executor: tcp://localhost/127.0.0.1:61616@43162] org.mule.exception.DefaultSystemExceptionStrategy: Jms 接続エラー 2013-10-09 13:14:53 の開始に失敗しました。949 [ActiveMQ Connection Executor: tcp://localhost/127.0.0.1:61616@43780] org.mule.exception.DefaultSystemExceptionStrategy: すでにライフサイクル フェーズ 'stop' にあり、同じフェーズを 2 回起動することはできません

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:ftp="http://www.mulesoft.org/schema/mule/ftp"
      xmlns:file="http://www.mulesoft.org/schema/mule/file"
      xmlns:jms="http://www.mulesoft.org/schema/mule/jms"
      xmlns:mule-xml="http://www.mulesoft.org/schema/mule/xml"
      xsi:schemaLocation="
          http://www.mulesoft.org/schema/mule/ftp http://www.mulesoft.org/schema/mule/ftp/3.4/mule-ftp.xsd
          http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/3.4/mule-file.xsd
          http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/3.4/mule-jms.xsd
          http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.4/mule.xsd
          http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/3.4/mule-xml.xsd">
        <mule-xml:namespace-manager includeConfigNamespaces="true"/>
        <ftp:endpoint name="FtpEndpointRecv" host="host1" path="/"
                                  port="21" user="aaa" password="aaa"
                                  pollingFrequency="600000" passive="true" >
        </ftp:endpoint>
        <jms:activemq-connector name="ActiveMQJMSConnector" specification="1.0.2b" brokerURL="tcp://localhost:61616">
                <dispatcher-threading-profile maxThreadsActive="10" maxBufferSize="10" maxThreadsIdle="1" threadTTL="600000" poolExhaustedAction="WAIT" threadWaitTimeout="10000"/>
            <reconnect-forever frequency="5000"/>
    </jms:activemq-connector>
        <file:file-to-string-transformer name="FileToStringTransformer"/>
        <flow name="ftptojms">
                <ftp:inbound-endpoint ref="FtpEndpointRecv" transformer-refs="FileToStringTransformer">
                        <file:filename-wildcard-filter pattern="*.xml"/>
                </ftp:inbound-endpoint>
                <all>
                        <logger level="INFO" message="#['Payload is:'+payload+'\nInbound Headers: '+message.inboundProperties.entrySet()+'\nOutbound Headers: '+message.outboundProperties.entrySet()+'\nExceptions: '+exception]"/>
                        <file:outbound-endpoint responseTimeout="10000" outputPattern="#[message.inboundProperties.originalFilename]" path="/test/msgcopy/"/>
                        <processor-chain>
                                <message-properties-transformer>
                                        <add-message-property key="sourceFile" value="#[message.inboundProperties.originalFilename]"></add-message-property>
                                        <add-message-property key="sourceDir" value="test"></add-message-property>  
                                </message-properties-transformer>
                                <jms:outbound-endpoint queue="testQ" connector-ref="ActiveMQJMSConnector"></jms:outbound-endpoint>
                        </processor-chain>
                </all>
        </flow>
</mule>
4

1 に答える 1

0

エラーが発生した場合のエンドポイントの開始/停止は、Mule で使用される典型的なパターンではありません。

代わりに、メッセージ プロセッサのようなものを使用して、対話が成功するまで対話until-successfulを再試行し続けます。jms:outbound-endpoint

于 2013-10-09T18:27:09.660 に答える