bizTalk Adapter for SQL Server アダプターのバインド プロパティについて説明します
microsoft BizTalk Adapter for SQL Serverでは、いくつかのバインディング プロパティが表示されます。 これらのプロパティを設定することで、アダプターの動作の一部を制御できます。 このセクションでは、SQL アダプターによって公開されるバインド プロパティについて説明します。 また、.NET プログラミングを使用するか、BizTalk Server物理ポート バインドにプロパティを設定してアクセスする方法についても説明します。
アダプターバインドのプロパティ
次の表は、カテゴリ別にグループ化された SQL アダプターのバインド プロパティを示しています。 カテゴリは、アダプター (またはバインド) を構成するために異なるアプリケーションによって表示されるダイアログ ボックスに各バインド プロパティが表示されるノードを参照します。
XmlStoredProcedureRootNodeName
カテゴリ: FOR XML
説明: SELECT ステートメントに FOR XML 句があるストアド プロシージャの応答スキーマのルート ノードの名前を指定します。 このルート ノードは、このようなストアド プロシージャの実行後にSQL Serverから受信した XML 応答をカプセル化します。 このルート ノードを応答スキーマに追加する必要があります。これについては、「BizTalk Serverを使用してSQL Serverで FOR XML 句を持つストアド プロシージャを実行する」のトピックで説明されています。
重要
FOR XML 句を使用してストアド プロシージャを実行するときに、このバインド プロパティを設定する必要があります。
.NET 型: string
XmlStoredProcedureRootNodeNamespace
カテゴリ: FOR XML
説明: SELECT ステートメントに FOR XML 句があるストアド プロシージャの応答スキーマのルート ノードのターゲット名前空間を指定します。
.NET 型: string
CloseTimeout
カテゴリ: 全般
説明: WCF 接続の終了タイムアウト。 既定値は 1 分です。
.NET 型: System.TimeSpan
名前
カテゴリ: 全般
説明: WCF クライアント クラスを保持するアダプター サービス参照 Visual Studio プラグインの追加によって生成されたファイルの名前を返す読み取り専用の値。 アダプター サービス参照の追加プラグインは、 Name プロパティの値に "Client" を追加することで、ファイル名を形成します。 このプロパティの既定値は "SqlAdapterBinding" です。この値の場合、生成されたファイルの名前は "SqlAdapterBindingClient" になります。
.NET 型: string
OpenTimeout
カテゴリ: 全般
説明: WCF 接続オープン タイムアウトを指定します。 既定値は 1 分です。
重要
SQL アダプターは常に OpenTimeout を使用して、SQL Serverへの接続を開いたときに接続を開くタイムアウトを設定します。 アダプターは、通信オブジェクトを開いたときに渡されたタイムアウト (System.TimeSpan) パラメーターを無視します。 たとえば、アダプターはチャネルを開くときに渡されたタイムアウト パラメーターを無視します。
.NET 型: System.TimeSpan
ReceiveTimeout
カテゴリ: 全般
説明: WCF メッセージの受信タイムアウトを指定します。 基本的に、これはアダプターが受信メッセージを待機する最大時間を意味します。 既定では 10 分です。
重要
ポーリングなどの受信操作では、タイムアウトを可能な最大値 (24.20:31:23.6470000 (24 日間) に設定することをお勧めします。 BizTalk Serverでアダプターを使用する場合、タイムアウトを大きな値に設定しても、アダプターの機能には影響しません。
.NET 型: System.TimeSpan
SendTimeout
カテゴリ: 全般
説明: WCF メッセージ送信タイムアウトを指定します。 既定値は 1 分です。
.NET 型: System.TimeSpan
EnableBizTalkCompatibilityMode
カテゴリ: 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)
BatchSize
カテゴリ: バッファリング
説明: SQL Server データベースのテーブルまたはビューに対する複数のレコードの挿入、更新、および削除操作のバッチ サイズを指定します。 既定値は 20 です。 BatchSize の値が 1 より大きい場合、SQL アダプターは指定された数のレコードを 1 つの呼び出しにバッチ処理します。 値を大きくするとパフォーマンスが向上する可能性がありますが、メモリ消費量に影響します。
.NET 型: int (System.Int32)
ChunkSize
カテゴリ: バッファリング
説明: set<column_name 操作に使用されるバッファー サイズを> 指定します。 既定値は 4194304 バイトです。 値を大きくするとパフォーマンスが向上する可能性がありますが、メモリ消費量に影響します。
Note
set column_name操作の詳細については、「SQL アダプターを使用した大規模なデータ型を含むテーブルおよびビューに対する操作」を参照してください。><
.NET 型: int (System.Int32)
暗号化
カテゴリ: 接続
説明: (有効な証明書がインストールされている) SQL Serverが、SQL Serverとクライアント間のすべてのデータ転送に SSL 暗号化を使用するかどうかを指定します。 既定値は falseです。
.NET 型: bool (System.Boolean)
MaxConnectionPoolSize
カテゴリ: 接続の説明: 特定の接続文字列の接続プールで許可される接続の最大数を指定します。 既定値は 100 です。 このプロパティは、パフォーマンスチューニングに使用されます。
重要
MaxConnectionPoolSize は慎重に設定する必要があります。 この値が大きすぎると、使用可能な接続の数を使い果たしてしまう可能性があります。
.NET 型: int (System.Int32)
WorkstationId
カテゴリ: 接続
説明: SQL アダプターを使用してSQL Server データベースに接続するワークステーション (クライアント コンピューター) の一意の ID を指定します。 このバインディング プロパティの値 (指定されている場合) は、SqlConnection.ConnectionString プロパティのワークステーション ID キーワード (keyword)に使用されます。 詳細については、「 SqlConnection.ConnectionString プロパティ」を参照してください。
.NET 型: string
EnablePerformanceCounters
カテゴリ: 診断
説明: WCF LOB アダプター SDK パフォーマンス カウンターと SQL アダプター LOB 待機時間パフォーマンス カウンターを有効にするかどうかを指定します。 既定値は False です。パフォーマンス カウンターは無効になっています。 LOB 待機時間パフォーマンス カウンターは、SQL アダプターがSQL Server データベースを呼び出すために費やした合計時間を測定します。
SQL アダプターのパフォーマンス カウンターの詳細については、「SQL アダプター でパフォーマンス カウンターを使用する」を参照してください。
.NET 型: int (System.Int32)
InboundOperationType
カテゴリ: 受信
説明: ポーリング、 TypedPolling、 XmlPolling、または Notification 受信操作を実行するかどうかを指定します。 既定値は ポーリングです。
ポーリング、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 (既定値) に設定します。
Note
このプロパティを True に設定すると、 を使用して SET IDENTITY_INSERT <table_name> ON
アダプターに変換されます。 詳細については、「 SET IDENTITY_INSERT (Transact-SQL)」を参照してください。
このバインディング プロパティを使用するときは、次の点を考慮する必要があります。
- アダプターは、ID 列に渡す値を検証しません。 たとえば、テーブルに "Identity Seed" が 100 に設定され、"Identity Increment" が 1 に設定された ID 列があり、アダプター クライアントが ID 列に値 (95 など) を渡す場合、アダプターはこの値を単にSQL Serverに渡します。
- AllowIdentityInsert を True に設定した場合でも、アダプター クライアントが要求メッセージの ID 列の値を指定することは必須ではありません。 ID 列に値が存在する場合、アダプターはそれをSQL Serverに渡します。 値が存在しない場合、SQL Serverは ID 列の仕様に基づいて値を挿入します。
.NET 型: bool (System.Boolean)
NotificationStatement
カテゴリ: 通知 (受信)
説明: SQL Server通知の登録に使用する SQL ステートメント (SELECT または EXEC <ストアド プロシージャ>) を指定します。 次の SELECT ステートメントに示すように、ステートメントに列名を具体的に入力する必要があります。
SELECT Employee_ID,Designation FROM dbo.Employee WHERE Status=0
Note
データベース オブジェクト名とスキーマ名を指定する必要があります。 たとえば、「 dbo.Employee
」のように入力します。
アダプターは、指定した SQL ステートメントの結果セットが変更された場合にのみ、SQL Serverから通知メッセージを取得します。
.NET 型: string
NotifyOnListenerStart
カテゴリ: 通知 (受信)
説明: アダプターがアダプター クライアントに通知メッセージを送信し、リスナーの起動時に受信場所が実行されていることを通知するかどうかを指定します。 既定値は 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)
PolledDataAvailableStatement
カテゴリ: ポーリング (受信)
説明: 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
ストアド プロシージャを使用している場合は、 PolledDataAvailableStatement を として EXEC <procedure_name>
指定します。
重要
このバインディング プロパティに対して指定したステートメントは 、アダプターによって開始される トランザクション内では実行されず、実際のポーリング ステートメントが実行される前に複数回呼び出される可能性があります (ポーリングに使用できる行があることを示すステートメントを実行した場合でも)。
.NET 型: string
PollingIntervalInSeconds
カテゴリ: ポーリング (受信)
説明: SQL アダプターが PolledDataAvailableStatement バインディング プロパティに指定されたステートメントを実行する間隔を秒単位で指定します。 既定値は 30 秒です。 ポーリング間隔は、連続するポーリング間の時間間隔を決定します。 指定した期間内に ステートメントが実行された場合、アダプターはその間隔の残りの時間非アクティブになります。
.NET 型: int (System.Int32)
PollingStatement
カテゴリ: ポーリング (受信)
説明: SQL Serverデータベース テーブルをポーリングする SQL ステートメントを指定します。 ポーリング ステートメントには、単純な SELECT ステートメントまたはストアド プロシージャを指定できます。 既定値は null です。 ポーリングを有効にするには、 PollingStatement の値を指定する必要があります。 ポーリング ステートメントは、ポーリングに使用できるデータがある場合にのみ実行されます。これは、 PolledDataAvailableStatement バインド プロパティによって決定されます。
任意の数の SQL ステートメントをセミコロンで区切って指定できます。 ポーリング ステートメントを使用して、SQL Server データベース テーブル内のデータを読み取りまたは更新できます。 SQL アダプターは、1 つのトランザクション内でポーリング ステートメントを実行します。 アダプターをBizTalk Serverと共に使用すると、同じトランザクションを使用して、SQL Serverから BizTalk メッセージ ボックスにメッセージを送信します。
.NET 型: string
PollWhileDataFound
カテゴリ: ポーリング (受信)
説明: ポーリング対象のテーブルでデータが使用可能な場合に、SQL アダプターがポーリング間隔を無視し、 PolledDataAvailableStatement バインディング プロパティに指定された SQL ステートメントを継続的に実行するかどうかを指定します。 テーブルに使用可能なデータがない場合、アダプターは、指定されたポーリング間隔で SQL ステートメントを実行するように戻します。 既定値は falseです。
ポーリング間隔が 60 秒に設定され、 PolledDataAvailableStatement に指定された ステートメントによって、ポーリングに使用できるデータが返されるシナリオを考えてみましょう。 その後、アダプターは 、PollingStatement バインディング プロパティに指定されたステートメントを実行します。 アダプターがポーリング ステートメントを実行するのにわずか 10 秒かかると仮定すると、50 秒待ってから PolledDataAvailableStatement を再度実行し、その後ポーリング ステートメントを実行する必要があります。 代わりに、パフォーマンスを最適化するために、 PollWhileDataFound バインド プロパティを true に設定して、アダプターが前のポーリング サイクルが終了するとすぐに次のポーリング サイクルの実行を開始できるようにします。
.NET 型: bool (System.Boolean)
UseAmbientTransaction
カテゴリ: トランザクション
説明: 呼び出し元によって提供されるトランザクション コンテキストを使用して、SQL アダプターが操作を実行するかどうかを指定します。 既定値は true です。これは、アダプターが常にトランザクション コンテキストで操作を実行することを意味します。 トランザクションに他のリソースが参加していて、トランザクションにも参加SQL Server場合、トランザクションは MSDTC トランザクションに昇格されます。
ただし、アダプターがトランザクション コンテキストで操作を実行したくない場合があります。 次に例を示します。
- SQL Server データベースで簡単な Select 操作を実行している間
- Select 操作を実行し、Delete ステートメントまたはストアド プロシージャを呼び出してテーブルに変更を加えないポーリング ステートメントを指定する場合。
これらの操作はどちらもデータベース テーブルを更新しないため、MSDTC トランザクションを使用するようにこれらの操作を昇格すると、パフォーマンスのオーバーヘッドが発生する可能性があります。 このようなシナリオでは、SQL アダプターがトランザクション コンテキストで操作を実行しないように、バインド プロパティを false に設定できます。
Note
- UseAmbientTransaction が False に設定されている場合、PolledDataAvailableStatement は呼び出されません。 代わりに、アダプターは PollingStatement を直接呼び出します。
- トランザクション コンテキストで操作を実行しないのは、データベースに変更を加えない操作に対してのみお勧めします。 データベース内のデータを更新する操作の場合は、バインド プロパティを true に設定することをお勧めします。 それ以外の場合は、受信操作と送信操作のどちらを実行しているかに応じて、メッセージの損失または重複メッセージが発生する可能性があります。
.NET 型: bool (System.Boolean)
SQL Server バインド プロパティを設定する方法
SQL Serverへの接続を指定するときに、SQL Serverバインド プロパティを設定できます。 次の場合にバインド プロパティを設定する方法については、以下を参照してください。
アダプター サービス BizTalk プロジェクト アドインまたはアダプター サービス参照の追加 Visual Studio プラグインを使用します。「SQL アダプターで Windows 認証を使用してSQL Serverに接続する」を参照してください。
重要
アダプター サービス アドインの使用またはアダプター サービス参照の追加プラグインを使用しているときに、string 型のバインド プロパティの値を指定せず、既定値が null の場合、バインド ファイル (XML ファイル) または app.config ファイルでバインド プロパティを使用することはできません。 必要に応じて、バインド プロパティとその値をバインド ファイルまたは app.config ファイルに手動で追加する必要があります。
BizTalk Server ソリューションで送信ポートまたは受信ポート (場所) を構成する方法については、「SQL アダプターへの物理ポート バインドを手動で構成する」を参照してください。
プログラミング ソリューションで WCF チャネル モデルを使用する方法については、「 SQL アダプターを使用してチャネルを作成する」を参照してください。
プログラミング ソリューションで WCF サービス モデルを使用する方法については、「 SQL アダプターのクライアント バインドの構成」を参照してください。