バッチのプロセス レコード フェーズで問題に直面しています。お勧めします - 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 よろしくお願いします。