0

Oracle SOA 11g で Java 埋め込みを使用してコンポジットを実行したいと考えています。Java 埋め込みアクティビティが SOA タイムアウト (現在は 5 分) より長く続く可能性があります。

Java の埋め込みの直前と直後に BPEL プロセスの脱水を試みましたが、埋め込みに 5 分以上かかるとインスタンス全体で障害が発生します。組み込みの内部から強制的に脱水する命令も試しましたcheckpoint();が、11g のバグのため、コンポジットのデプロイ時にエラーは発生しませんが、11g では効果がないようです。

コンポジットがタイムアウトにならないようにする方法はありますか?
次の点に注意してください。

  • 単純な BPEL ブロックを使用した Java 埋め込みでのアクティビティを実行できません
  • 5分以上かかる可能性のある単一のJava命令があるため、より多くの埋め込みブロックに埋め込みを分解してそれらの間で脱水することはできません
  • SOA タイムアウトの 5 分の値を変更できません
4

1 に答える 1

1

タイムアウトになった場合は、jms メッセージを送信し、メッセージ Bean で Java を実行して、そのリターンを送信します。待機中の Bpel インバウンド jms アダプターに、新しく投稿されたメッセージをポーリングさせます。つまり、SOA スイートのプロセス エンジンがタイムアウトした場合、この完全な非同期を実行する必要がある場合があります。この投稿も役立つかもしれません。下部にある他のリンクにも注意してください。

12c では、BPEL の noTransaction サポートを使用してトランザクション タイムアウトを回避できるようになりました。次のプロパティを composite.xml の BPEL コンポーネントに追加します: notSupported

于 2015-02-19T05:41:06.667 に答える