0

大きなファイルを個々のファイルに分割してメッセージ ボックスに送信するカスタム受信パイプラインがあり、オーケストレーションはこれらのメッセージをサブスクライブして処理します。私のオーケストレーションでは、.net dll でメソッドを実行するいくつかの式の形状があります。また、すべてのステップでログを追加しました。いつでも、メッセージ ボックスは何百ものメッセージであふれている可能性があります。私が気付いたのは、一部のメッセージが複数回実行されることです。同じメッセージが複数生成されていないことを確認するために二重にチェックしました。これは、おそらく水分補給と関係があると私に信じさせます. 私が調査したところによると、オーケストレーションがハイドレートされると、元の形状と dll の状態が維持されます。再開すると、最初からではなく、永続化された形で再開されます。

誰もこの問題を見たことがありますか?この問題を検証/修正するために、どのようなテスト/構成を行うことができますか?!

オーケストレーションの一部はこちら

各 Expression シェイプが呼び出す .net メソッドは次のとおりです。

どうもありがとう!

アンジー

4

3 に答える 3

1

水分補給と持続ポイントを混同していると思います。文字をいくつかの try\catch ロジックと組み合わせることで、オーケストレーションを最新の永続化ポイントから再開することができます。あなたはオーケストレーションの全体像を投稿していませんが、私にはその範囲が見えます。そこに例外処理はありますか?

とにかく、オーケストレーションは、明示的な送信シェイプなしでは、メッセージ ボックスにメッセージを投稿できません。また、最新の SP と累積的な更新プログラムがインストールされているかどうかも確認してください。

于 2011-11-16T08:22:19.823 に答える
0

興味深い問題:)

ハイドレーションとリハイドレーションは、オーケストレーションがアイドル状態で何かを待っているときに発生します。したがって、ファイルの処理中に発生することはありません。

  • データ品質の問題ではないことを確認するために、入力ファイルに重複データがないことを確認してください。
  • スロットリング機能を使用して、一度に 1 つのファイルのみが処理されるようにすることができます。これにより、潜在的なエラーの原因が 1 つ取り除かれます。
  • 他にできることは、エラー処理を確認することです。最初の呼び出しが失敗したときの再試行ロジックはありますか? Biztalk も再試行を行っている場合は、重複が原因である可能性があります。
于 2011-11-13T19:52:07.437 に答える
0

このような場合、生成する新しいメッセージごとに、パイプライン段階で 2 つの新しいカスタム プロパティをプロモーションすることをお勧めします -

1) メッセージの総数 2) 現在のメッセージ番号

このようにして、オーケストレーションの開始時またはその他の決定した段階で、すべてのメッセージ番号を追跡、印刷、または保存することができ、作業が容易になります。

于 2011-11-22T10:06:09.130 に答える