非ブロッキングの方法でストアド プロシージャを BPEL を介して呼び出す方法を理解したいと思います。私の懸念は、呼び出しているストアド プロシージャ (DBAdpater 内) があることですが、非常に時間がかかり (約 30 分)、これが完了するまで待ちきれません。
複合アプリケーションで呼び出しプロパティ「nonBlockingInvoke」を設定しようとしていますが、機能しません。応答が得られるまでアダプターがブロックされています。
ありがとう。
非ブロッキングの方法でストアド プロシージャを BPEL を介して呼び出す方法を理解したいと思います。私の懸念は、呼び出しているストアド プロシージャ (DBAdpater 内) があることですが、非常に時間がかかり (約 30 分)、これが完了するまで待ちきれません。
複合アプリケーションで呼び出しプロパティ「nonBlockingInvoke」を設定しようとしていますが、機能しません。応答が得られるまでアダプターがブロックされています。
ありがとう。
Nonblockinginvoke は、Sync Invoke ブランチに別の実行スレッドが必要な場合に FLOW で使用されるため、他のフローをブロックしません。FLOW は協調的な並列であり、真の並列ではありません。Sync Invoke は、呼び出し中にまだブロックされます。詳細はこちらをご覧ください。
とにかく、問題の解決策の 1 つは、Async を呼び出す新しいコンポジットを DB アダプターを使用してストアド プロシージャを実行するコンポジットにすることです。したがって、新しいサービスは他のサービスを非同期で呼び出すため、ブロックされませんが、db アダプターを呼び出すサービスはブロックされますが、この時点で呼び出し元は解放されます。db アダプター呼び出しを独自のコンポジットでラップして、真のサービス実装を DB サービス インターフェイスから分離/分離することは悪い考えではありません。