修正: 入力メッセージに空の要素が含まれている場合、エラーが発生するか、WCF ベースの SQL アダプターによって Null 値が誤って BizTalk Adapter Pack に挿入される

適用先
BizTalk Adapters

この記事は、次の製品に適用されます。

  • Microsoft BizTalk Adapter Pack 2.0
  • Microsoft BizTalk Adapter Pack 2010
  • スタンドアロンの WCF ベース BizTalk Adapter for SQL Server

現象

たとえば次のようなシナリオを考えてみます。

  • Windows Communication Foundation (WCF) ベースの SQL アダプターを使用して、Microsoft SQL Server テーブルの列に行を挿入するストアド プロシージャを呼び出す送信ポートを作成します。 テーブルの列に NULL 値を格納することはできません。

    注: WCF ベースの SQL アダプターは、Microsoft BizTalk Adapter Pack 2010 に含まれています。

  • 送信ポートに到着した入力メッセージに空の要素が含まれている。

    たとえば、メッセージに <ns0:input></ns0:input> または <ns0:input/> の空の要素があるとします。

このシナリオでは、次のようなエラー メッセージがアプリケーション ログに記録されます。

送信ポート "<送信ポート>" でアダプター "WCF-SQL" に URI "mssql://<URI>" で送信されたメッセージが中断されています。
エラーの詳細: System.Data.SqlClient.SqlException (0x80131904): 列 '<列名>'、テーブル '<テーブル名>' に値 NULL を挿入できません。列では NULL は許可されません。 INSERT 失敗。
ステートメントは終了しました。

テーブルの列に NULL 値を格納できる場合、NULL 値はテーブルの列に誤って挿入されます。

メモ

  • この問題は、送信ポートがストアド プロシージャではなくテーブル操作を呼び出してテーブルの列に行を挿入する場合には発生しません。
  • 空の要素の正しい値は空の文字列です。

      

解決策

累積的な更新プログラムの情報

BizTalk Adapter Pack 2009

この問題を解決する修正プログラムは、BizTalk Adapter Pack 2.0 の累積的な更新プログラム パッケージ 4 に含まれています。 累積的な更新プログラム パッケージを入手する方法の詳細については、以下のサポート技術情報番号をクリックしてください。

2604327 BizTalk Adapter Pack 2.0 の累積的な更新プログラム パッケージ 4

BizTalk Adapter Pack 2010

この問題を解決する修正プログラムは、BizTalk Adapter Pack 2010 の累積的な更新プログラム パッケージ 2 に含まれています。

累積的な更新プログラム パッケージを入手する方法の詳細については、以下のサポート技術情報番号をクリックしてください。

2572999 BizTalk Adapter Pack 2010 の累積的な更新プログラム パッケージ 2

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

参考資料

BizTalk Server のサービス パックと累積的な更新プログラムの一覧の詳細については、次の記事番号をクリックして Microsoft サポート技術情報の記事を参照してください。

2555976 BizTalk Server の Service Pack と累積的な更新プログラムの一覧 BizTalk Server 修正プログラムの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

2003907 BizTalk Server の修正プログラムに関する情報