1

バッチのプロセス レコード フェーズで問題に直面しています。お勧めします - KB ファイル (約 5000 レコード) を読み込もうとしています。成功シナリオでは機能します。最初のヒットの入力フェーズでエラーが発生し、フローが停止した場合、2 回目に同じレコードをヒットしようとしたときにフローが停止したとします。Mule はProcess Record ステップで実行を停止します。フェーズのロード後に実行されません。以下のランタイムログを見つけてください

11:55:33  INFO  info.org.mule.module.logging.DispatchingLogger - Starting loading phase for   instance 'ae67601a-5fbe-11e4-bc4d-f0def1ed6871' of job 'test'
11:55:33  INFO  info.org.mule.module.logging.DispatchingLogger - Finished loading phase for instance ae67601a-5fbe-11e4-bc4d-f0def1ed6871 of job order. 5000 records were loaded
11:55:33  INFO  info.org.mule.module.logging.DispatchingLogger - **Started execution of instance 'ae67601a-5fbe-11e4-bc4d-f0def1ed6871' of job 'test**

インスタンスの起動後に処理が停止しました。ここで何が起こっているのかわかりません。フローを停止し、ワークスペースから.muleフォルダーを削除すると。その後、動作します。入力フェーズで例外が発生したときに一時キューを使用してフェーズミュールをロードすると、自動的に削除されないことを願っていますが、これが本当の原因であるかどうかはわかりません。

.muleFolder をリアルタイムで毎回削除することはできません。

ここで奇妙な動作をする理由を誰か提案してください。この問題を解決するにはどうすればよいですか。構成 xml を見つけてください

  <batch:job name="test">
    <batch:threading-profile poolExhaustedAction="WAIT"/>
    <batch:input>

        <component class="com.ReadFile" doc:name="File Reader"/>
        <mulexml:jaxb-xml-to-object-transformer returnClass="com.dto" jaxbContext-ref="JAXB_Context" doc:name="XML to JAXB Object"/>
        <component class="com.Transformer" doc:name="Java"/>
    </batch:input>
    <batch:process-records>
        <batch:step name="Batch_Step" accept-policy="ALL">
            <batch:commit doc:name="Batch Commit" streaming="true">

                <logger message="************after Data mapper" level="INFO" doc:name="Logger"/>
                <data-mapper:transform config-ref="Orders_Pojo_To_XML"  stream="true" doc:name="Transform_CanonicalToHybris"/>
                <file:outbound-endpoint responseTimeout="10000" doc:name="File" path="#[sessionVars.uploadFilepath]"">        

         </file:outbound-endpoint>       
            </batch:commit>
        </batch:step>
    </batch:process-records>
    <batch:on-complete>

       <set-payload value="BatchJobInstanceId:#[payload.batchJobInstanceId+'\n'], Number of TotalRecords: #[payload.totalRecords+'\n'], Number of loadedRecord: #[payload.loadedRecords+'\n'],  ProcessedRecords: #[payload.processedRecords+'\n'], Number of sucessfull Records: #[payload.successfulRecords+'\n'], Number of failed Records: #[payload.failedRecords+'\n'], ElapsedTime: #[payload.elapsedTimeInMillis+'\n'], InpuPhaseException #[payload.inputPhaseException+'\n'], LoadingPhaseException: #[payload.loadingPhaseException+'\n'], CompletePhaseException: #[payload.onCompletePhaseException+'\n'] " doc:name="Set Batch Result"/>

        <logger message="afterSetPayload: #[payload]" level="INFO" doc:name="Logger"/> 

        <flow-ref name="log" doc:name="Logger" />     

    </batch:on-complete>

私はかなり長い間、この行動に悩まされています。あなたの助けは大歓迎です。バージョン:3.5.1 よろしくお願いします。

4

1 に答える 1