Blobデータの扱い

Blobデータとは巨大なデータのことを指します。
BizTalkにとって、どれくらいのサイズ以上をBlobデータと呼ぶのか明確な基準はありませんが、
(個人的な感覚で言うと、メッセージサイズが1MBを超える可能性がある場合は注意してます。)
サイズが大きくなればなるほど、BizTalkのパフォーマンスは劣化します。
これは、BizTalkは受信したメッセージを全てメモリ上に展開し、
内部で処理するというアーキテクチャになっているためです。

これらを踏まえた上で、BizTalkでBlobデータを"うまく"扱うには...
データ自体は共有フォルダや共有データベースなどの外部データストアに保存し、
メッセージ内部ではそのパス情報を持ちまわるという手を使います。

BizTalkをEAIサーバとして利用する場合は、業務データを受け渡すためのコンテナとしてのスキーマ
定義するのが一般的なので、その中にパス情報の格納場所を用意します。
当然、業務データがメッセージに直接含まれないのでスキーマ変換や内容のチェックなどを
BizTalk内では行えないというデメリットもありますので、設計でそれらを考慮する必要があります。

Blobデータの扱いに関して、非常に参考になるBlogがあるので下記を参考にしてみてください。
(残念ながら? 英語です)

http://blogs.msdn.com/biztalk_core_engine/archive/2005/02/28/381700.aspx

また、MicrosoftのHP上にBizTalk Server 2004のパフォーマンス特性資料が
公開されているので、そちらも参考にしてください。
(こちらは日本語資料です)

http://www.microsoft.com/japan/BizTalk/techinfo/2004/performance.asp

それとGOTDOTNETのサンプルに”SQL Server Blob Adapter”というアダプタがUPされています。
今回は長文になってしまったので、この話はまた次回にでも。