次の方法で共有


BizTalk Adapter for SQL Server アダプターのバインド プロパティについて説明します

Microsoft BizTalk Adapter for SQL Server では、いくつかのバインド プロパティが表示されます。 これらのプロパティを設定することで、アダプターの動作の一部を制御できます。 このセクションでは、SQL アダプターによって公開されるバインディング プロパティについて説明します。 また、.NET プログラミングを使用するか、BizTalk Server 物理ポート バインドでプロパティを設定してアクセスする方法についても説明します。

アダプターのバインディングプロパティ

次の表は、カテゴリ別にグループ化された SQL アダプターバインドプロパティを示しています。 このカテゴリは、アダプター (またはバインド) を構成するために異なるアプリケーションによって表示されるダイアログ ボックスに各バインド プロパティが表示されるノードを参照します。

XMLストアドプロシージャルートノード名

カテゴリ: FOR XML
説明: SELECT ステートメントに FOR XML 句があるストアド プロシージャの応答スキーマのルート ノードの名前を指定します。 このルート ノードは、このようなストアド プロシージャの実行後に SQL Server から受信した XML 応答をカプセル化します。 BizTalk Server を使用した SQL Server での FOR XML 句を持つストアド プロシージャの実行に関するトピックの説明に従って、このルート ノードを応答スキーマに追加する必要があります。

Von Bedeutung

FOR XML 句を使用してストアド プロシージャを実行するときに、このバインド プロパティを設定する必要があります。

.NET 型: 文字列

XmlStoredProcedureRootNodeNamespace

カテゴリ: FOR XML
説明: SELECT ステートメントに FOR XML 句があるストアド プロシージャの応答スキーマのルート ノードのターゲット名前空間を指定します。
.NET 型: 文字列

クローズタイムアウト

カテゴリ: 全般
説明: WCF 接続の終了タイムアウト。 既定値は 1 分です。
.NET 型: System.TimeSpan

名前

カテゴリ: 全般
説明: WCF クライアント クラスを保持するためにアダプター サービス参照 Visual Studio プラグインの追加によって生成されたファイルの名前を返す読み取り専用の値。 アダプター サービス参照の追加プラグインは、Name プロパティの値に "Client" を追加してファイル を形成します。 このプロパティの既定値は "SqlAdapterBinding" です。この値の場合、生成されたファイルの名前は "SqlAdapterBindingClient" になります。
.NET 型: 文字列

オープンタイムアウト

カテゴリ: 全般
説明: WCF 接続オープン タイムアウトを指定します。 既定値は 1 分です。

Von Bedeutung

SQL アダプターは常に OpenTimeout を使用して、SQL Server への接続を開いたときに接続を開くタイムアウトを設定します。 アダプターは、通信オブジェクトを開いたときに渡されたタイムアウト (System.TimeSpan) パラメーターを無視します。 たとえば、アダプターは、チャネルを開くときに渡されたタイムアウト パラメーターを無視します。

.NET 型: System.TimeSpan

受信タイムアウト

カテゴリ: 全般
説明: WCF メッセージの受信タイムアウトを指定します。 基本的に、これは、アダプターが受信メッセージを待機する最大時間を意味します。 既定値は 10 分です。

Von Bedeutung

ポーリングなどの受信操作については、タイムアウトを可能な限り最大の値、つまり 24.20:31:23.6470000(24日間)に設定することをお勧めします。 BizTalk Server でアダプターを使用する場合、タイムアウトを大きな値に設定しても、アダプターの機能には影響しません。

.NET 型: System.TimeSpan

SendTimeout

カテゴリ: 全般
説明: WCF メッセージ送信タイムアウトを指定します。 既定値は 1 分です。
.NET 型: System.TimeSpan

BizTalk互換モードを有効にする

カテゴリ: BizTalk
説明: アダプターが BizTalk Server または .NET アプリケーションで使用されているかどうかを示します。

  • BizTalk Server からアダプターを使用する場合 (または BizTalk プロジェクトのアダプターを使用して SQL Server での操作のメタデータを生成する場合)、プロパティを常に True に設定する必要があります。 これにより、System.Data.DataSet 用に生成されたスキーマが BizTalk Server と互換性のある形式になります。 そうしないと、BizTalk プロジェクトのコンパイルに失敗します。
  • .NET アプリケーションで Visual Studio のアダプターを使用する場合、DataSet として応答を使用する場合は、プロパティを False に設定する必要があります。 これにより、System.Data.DataSet 用に生成されたスキーマが、WCF DataContractSerializer と互換性のある形式になります。

.NET 型: bool (System.Boolean)

バッチサイズ

カテゴリ: バッファリング
説明: SQL Server データベースのテーブルまたはビューに対する複数レコードの挿入、更新、および削除操作のバッチ サイズを指定します。 既定値は 20 です。 BatchSize の値が 1 より大きい場合、SQL アダプターは指定された数のレコードを 1 回の呼び出しにバッチ処理します。 値を大きくするとパフォーマンスが向上する可能性がありますが、メモリ消費量に影響します。
.NET 型: int (System.Int32)

チャンクサイズ

カテゴリ: バッファリング
説明: Set<column_name> 操作に使用されるバッファー サイズを指定します。 既定値は 4194304 バイトです。 値を大きくするとパフォーマンスが向上する可能性がありますが、メモリ消費量に影響します。

.NET 型: int (System.Int32)

暗号化する

カテゴリ: 接続
説明: SQL Server (有効な証明書がインストールされている) が、SQL Server とクライアント間のすべてのデータ転送に SSL 暗号化を使用するかどうかを指定します。 既定値は falseです。
.NET 型: bool (System.Boolean)

最大接続プールサイズ (MaxConnectionPoolSize)

カテゴリ: 接続 の説明: 特定の接続文字列の接続プールで許可される接続の最大数を指定します。 既定値は、100 です。 このプロパティは、パフォーマンスチューニングに使用されます。

Von Bedeutung

MaxConnectionPoolSize は慎重に設定する必要があります。 この値が大きすぎると、使用可能な接続の数を使い果たしてしまう可能性があります。

.NET 型: int (System.Int32)

WorkstationId

カテゴリ: 接続
説明: SQL アダプターを使用して SQL Server データベースに接続するワークステーション (クライアント コンピューター) の一意の ID を指定します。 このバインディング プロパティの値 (指定されている場合) は、SqlConnection.ConnectionString プロパティの Workstation ID キーワードに使用されます。 詳細については、「 SqlConnection.ConnectionString プロパティ」を参照してください。
.NET 型: 文字列

パフォーマンスカウンターを有効にする

カテゴリ: 診断
説明: WCF LOB アダプター SDK パフォーマンス カウンターと SQL アダプター LOB 待機時間パフォーマンス カウンターを有効にするかどうかを指定します。 既定値は False です。パフォーマンス カウンターは無効になっています。 LOB 待機時間パフォーマンス カウンターは、SQL Server データベースの呼び出しに SQL アダプターが費やした合計時間を測定します。

SQL アダプターのパフォーマンス カウンターの詳細については、「SQL アダプター でのパフォーマンス カウンターの使用」を参照してください
.NET 型: int (System.Int32)

入荷作業タイプ

カテゴリ: 受信
説明: ポーリングTypedPollingXmlPolling、または 通知 の受信操作を実行するかどうかを指定します。 既定値は ポーリングです

ポーリングTypedPollingおよび XmlPolling の詳細については、「ポーリングのサポート」を参照してください。 通知の詳細については、「SQL アダプターを使用したクエリ通知の受信に関する考慮事項」を参照してください
.NET 型: 列挙型

UseDatabaseNameInXsdNamespace

カテゴリ: メタデータ
説明: 特定の成果物に対して生成された XSD にデータベース名が含まれているかどうかを指定します。 データベース名を含めるには、 これを True に設定します。 それ以外の場合は、 False に設定します。 既定値は false です。

これは、1 つのアプリケーションが、異なるデータベース内の異なるメタデータを持つ同じ名前の成果物に対して操作を実行する場合に便利です。 名前空間にデータベース名がない場合、生成されたメタデータは競合します。 このバインド プロパティを設定すると、データベース名を名前空間に含めることができるため、一意になります。 名前空間の変更を強調表示する例を次に示します。

UseDatabaseNameInXsdNamespace = False
http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Employee

UseDatabaseNameInXsdNamespace = True
http://schemas.microsoft.com/Sql/2008/05/TableOp/MyDatabase/dbo/Employee

バインディング プロパティが True に設定されている場合、データベース名が名前空間に含まれていることに注意 してください

.NET 型: 列挙型

AllowIdentityInsert

カテゴリ: その他
説明: 挿入および更新操作中に、アダプターが ID 列の値を挿入できるかどうかを指定します。 ID 列の値を挿入または更新するには、このプロパティを True に 設定します。 それ以外の場合は 、これを False (既定値) に設定します。

このプロパティを True に設定すると、 SET IDENTITY_INSERT <table_name> ONを使用してアダプターに変換されます。 詳細については、「 SET IDENTITY_INSERT (Transact-SQL)」を参照してください。

このバインディング プロパティを使用するときは、次の点を考慮する必要があります。

  • アダプターは、ID 列に渡す値を検証しません。 たとえば、テーブルに "Identity Seed" が 100 に設定され、"Identity Increment" が 1 に設定されている ID 列があり、アダプター クライアントが ID 列の値 (たとえば 95) を渡す場合、アダプターはこの値を SQL Server に渡すだけです。
  • AllowIdentityInsertTrue に設定した場合でも、アダプター クライアントが要求メッセージの ID 列の値を指定することは必須ではありません。 ID 列の値が存在する場合、アダプターはそれを SQL Server に渡します。 値が存在しない場合、SQL Server は ID 列の仕様に基づいて値を挿入します。

.NET 型: bool (System.Boolean)

通知声明

カテゴリ: 通知 (受信)
説明: SQL Server 通知の登録に使用する SQL ステートメント (SELECT または EXEC < ストアド プロシージャ>) を指定します。 次の SELECT ステートメントに示すように、ステートメントに列名を具体的に入力する必要があります。

SELECT Employee_ID,Designation FROM dbo.Employee WHERE Status=0

データベース オブジェクト名とスキーマ名を指定する必要があります。 たとえば、dbo.Employee のようにします。

アダプターは、指定された SQL ステートメントの結果セットが変更された場合にのみ、SQL Server から通知メッセージを取得します。

.NET 型: 文字列

リスナー開始通知

カテゴリ: 通知 (受信)
説明: アダプターが通知メッセージをアダプター クライアントに送信し、リスナーの起動時に受信場所が実行されていることを通知するかどうかを指定します。 既定値は True です。

受信した通知メッセージは次のようになります。

<?xml version="1.0" encoding="utf-8" ?>
 <Notification xmlns="http://schemas.microsoft.com/Sql/2008/05/Notification/">
   <Info>ListenerStarted</Info>
    <Source>SqlBinding</Source>
    <Type>Startup</Type>
  </Notification>

.NET 型: bool (System.Boolean)

ポーリングデータ利用可能ステートメント

カテゴリ: ポーリング (受信)
説明: SQL Server データベース内の特定のテーブルのポーリングに使用できるデータがあるかどうかを判断するために実行される SQL ステートメントを指定します。 指定したステートメントは、行と列で構成される結果セットを返す必要があります。 結果セットの最初のセルの値は、アダプターが PollingStatement バインディング プロパティに指定された SQL ステートメントを実行するかどうかを示します。 結果の最初のセルに正の値が含まれている場合、アダプターはポーリング ステートメントを実行しました。

このバインディング プロパティに指定できる有効なステートメントの例を次に示します。

  • SELECT ステートメントを指定する場合:

    SELECT COUNT(*) from <table_name>

  • ストアド プロシージャを指定する場合、ストアド プロシージャは次のように定義できます。

    CREATE PROCEDURE <procedure_name>
    AS BEGIN
    SELECT COUNT(*) FROM <table_name>
    END
    GO
    

    又は

    CREATE PROCEDURE <procedure_name>
    AS BEGIN
    DECLARE @count int
    SELECT @count = SELECT(*) FROM <table_name>
    SELECT @count
    END
    GO
    

ストアド プロシージャを使用している場合は、 PolledDataAvailableStatementEXEC <procedure_name>として指定します。

Von Bedeutung

このバインディング プロパティに指定したステートメントは 、アダプター開始 トランザクション内では実行されず、実際のポーリング ステートメントが実行される前に複数回呼び出される可能性があります (ステートメントの実行で、ポーリングに使用できる行があることを示した場合でも)。

.NET 型: 文字列

ポーリング間隔(秒単位)

カテゴリ: ポーリング (受信)
説明: SQL アダプターが PolledDataAvailableStatement バインディング プロパティに指定されたステートメントを実行する間隔を秒単位で指定します。 既定値は 30 秒です。 ポーリング間隔は、連続するポーリング間の時間間隔を決定します。 指定した期間内にステートメントが実行された場合、アダプターは、その間隔の残りの時間は非アクティブになります。
.NET 型: int (System.Int32)

投票に関する声明

カテゴリ: ポーリング (受信)
説明: SQL Server データベース テーブルをポーリングする SQL ステートメントを指定します。 ポーリング ステートメントには、単純な SELECT ステートメントまたはストアド プロシージャを指定できます。 既定値は null です。 ポーリングを有効にするには、 PollingStatement の値を指定する必要があります。 ポーリング ステートメントは、 PolledDataAvailableStatement バインディング プロパティによって決定されるポーリングに使用できるデータがある場合にのみ実行されます。

任意の数の SQL ステートメントをセミコロンで区切って指定できます。 ポーリング ステートメントを使用して、SQL Server データベース テーブルのデータを読み取ったり更新したりできます。 SQL アダプターは、1 つのトランザクション内でポーリング ステートメントを実行します。 アダプターを BizTalk Server と共に使用すると、SQL Server から BizTalk メッセージ ボックスにメッセージを送信するために同じトランザクションが使用されます。

.NET 型: 文字列

データが見つかるまでポーリング

カテゴリ: ポーリング (受信)
説明: ポーリング対象のテーブルでデータが使用可能な場合に、SQL アダプターがポーリング間隔を無視し、 PolledDataAvailableStatement バインディング プロパティに指定された SQL ステートメントを継続的に実行するかどうかを指定します。 テーブルに使用可能なデータがない場合、アダプターは指定されたポーリング間隔で SQL ステートメントを実行するように戻ります。 既定値は falseです。

ポーリング間隔が 60 秒に設定され、 PolledDataAvailableStatement に指定されたステートメントによって、ポーリングに使用できるデータが返されるシナリオを考えてみましょう。 その後、アダプターは PollingStatement バインディング プロパティに指定されたステートメントを実行します。 アダプターがポーリング ステートメントを実行するのにわずか 10 秒かかると仮定すると、 PolledDataAvailableStatement を再度実行する前に 50 秒間待機してから、ポーリング ステートメントを実行する必要があります。 代わりに、パフォーマンスを最適化するために、 PollWhileDataFound バインド プロパティを true に設定して、アダプターが前のポーリング サイクルが終了するとすぐに次のポーリング サイクルの実行を開始できるようにします。

.NET 型: bool (System.Boolean)

アンビエントトランザクションを使用する

カテゴリ: トランザクション
説明: 呼び出し元によって提供されるトランザクション コンテキストを使用して SQL アダプターが操作を実行するかどうかを指定します。 既定値は true です。つまり、アダプターは常にトランザクション コンテキストで操作を実行します。 トランザクションに他のリソースが参加していて、SQL Server もトランザクションに参加している場合、トランザクションは MSDTC トランザクションに昇格されます。

ただし、トランザクション コンテキストでアダプターが操作を実行しないようにするシナリオもあります。 例えば次が挙げられます。

  • SQL Server データベースで簡単な選択操作を実行している間
  • Select 操作を実行し、Delete ステートメントまたはストアド プロシージャを呼び出すことによってテーブルに変更を加えないポーリング ステートメントを指定する場合。

どちらの操作もデータベース テーブルを更新しないため、MSDTC トランザクションを使用するようにこれらの操作を昇格すると、パフォーマンスのオーバーヘッドが発生する可能性があります。 このようなシナリオでは、SQL アダプターがトランザクション コンテキストで操作を実行しないように、バインド プロパティを false に設定できます。

  • UseAmbientTransaction が False に設定されている場合、PolledDataAvailableStatement は呼び出されません。 代わりに、アダプターは PollingStatement を直接呼び出します。
  • トランザクション コンテキストで操作を実行しないのは、データベースに変更を加えない操作に対してのみお勧めします。 データベース内のデータを更新する操作では、バインディング プロパティを true に設定することをお勧めします。 それ以外の場合は、受信操作と送信操作のどちらを実行しているかに応じて、メッセージの損失または重複メッセージが発生する可能性があります。

.NET 型: bool (System.Boolean)

SQL Server のバインド プロパティを設定する方法

SQL Server への接続を指定するときに、SQL Server のバインド プロパティを設定できます。 次の場合にバインディング プロパティを設定する方法について説明します。

  • アダプター サービス BizTalk プロジェクト アドインを使用するか、アダプター サービスの追加参照 Visual Studio プラグインを使用します。「 SQL アダプターで Windows 認証を使用して SQL Server に接続する」を参照してください。

    Von Bedeutung

    使用アダプター サービス アドインまたはアダプター サービスの追加参照プラグインを使用しているときに、文字列型のバインド プロパティの値を指定せず、既定値が null の場合、バインド ファイル (XML ファイル) または app.config ファイルでバインド プロパティを使用することはできません。 必要に応じて、バインド プロパティとその値をバインド ファイルまたは app.config ファイルに手動で追加する必要があります。

  • BizTalk Server ソリューションで送信ポートまたは受信ポート (場所) を構成する方法については、「 SQL アダプターへの物理ポート バインドを手動で構成する」を参照してください。

  • プログラミング ソリューションで WCF チャネル モデルを使用する方法については、「 SQL アダプターを使用したチャネルの作成」を参照してください。

  • プログラミング ソリューションで WCF サービス モデルを使用する方法については、「 SQL アダプターのクライアント バインドの構成」を参照してください。

こちらもご覧ください

SQL アプリケーションを開発する