サブスクリプション

  「メッセージに一致するサブスクリプションを検出できませんでした」

BizTalk Server 2004開発者の方は、何度も遭遇したことがあるエラーメッセージだと思います。
このサブスクリプションとはいったい何者でしょうか?

サブスクリプションは、BizTalkのメッセージング機能の重要な要素で、
受信したメッセージを次に処理すべきBizTalkコンポーネントの定義になります。

つまり、最初に紹介したエラーメッセージは、

   「メッセージを受信したけど、このメッセージの処理するオーケストレーション
   もしくは送信メッセージポートがみつからないので処理できないよ」

という意味になりますので、
このエラーが発生した場合は、オーケストレーションが登録されているか
送信メッセージポートが「参加」しているか、を調べる必要があります。
ちなみに、送信メッセージポートが「参加」しているけど「停止」している場合は、
全くエラーメッセージは出力されずに、ただ待ち状態になってしまいます。

このサブスクリプションという言葉は、BizTalk管理コンソールやBizTalkエクスプローラでは全く出てきません。メッセージポート、オーケストレーションの設定でBizTalkが自動的に認識します。
(BizTalk SDKに、サブスクリプションビューアというツールがありますが、
BizTalkの設定データベースのデータを一覧で表示してくれるだけなので、
いまいち役に立ちません。どなたか良いツールご存知じゃないですか?;-)

私がコンサルするときは、「どの受信メッセージポートで処理されたら、
次にどのオーケストレーションで処理されるか」などをドキュメントに残して下さいと言っています。
もちろんドキュメントの形式は、エクセルでもワードでも何でも構いません。
そうしないと、運用段階に入ったときにどこでエラーが発生しているかわからずに
復旧に時間がかかってしまうことになります。

BizTalk開発の際に必要とされるドキュメント(設計書)については、そのうちまとめたいと思います。
では、また。