SubmitDirect (BizTalk Server サンプル)
SubmitDirect サンプルは、 から Microsoft BizTalk Serverに一方向メッセージと要求/応答メッセージをプログラムで送信する方法を示しています。NET ベースのアプリケーション。 このサンプルでは、アダプタに BizTalk Server API を使用する例を示します。 また、BizTalk Server にメッセージを送信するために使用できる、Submit という名前の受信アダプタを提供します。
前提条件
このサンプルを実行する前に、BizTalk 分離ホスト ユーザー グループに属するユーザーとしてログオンしていることを確認してください。
このサンプルの処理
このサンプルでは、BizTalk アダプタに関連するさまざまな作業を実行する方法を示します。 具体的には、次の方法を示します。
BizTalk Server プロセスの外部で実行される分離アダプタを操作します。 Submit アダプタは、BizTalk Server プロセスの外部のプロセスによって作成されるので、分離アダプタです (Submit アダプタは .NET アプリケーションとして起動されます)。
メッセージのバッチを BizTalk Server に送信します。 Submit アダプタは、バッチ メッセージ送信機能を使用して複数のメッセージを同時に送信します。
要求 - 応答パラダイムを使用したメッセージの同期送信と、一方向パラダイムを使用したメッセージの非同期送信を行います。
アダプタを BizTalk Server に登録します。 このサンプルでは、アダプタの登録方法を示し、アダプタの登録を自動化する登録実行可能ファイルを提供します。
このサンプルは、次の 2 つのサンプルを 1 つにまとめたものです。
一方向のメッセージのバッチ送信。 コンソール アプリケーション SubmitMessages.exe は、コマンド ラインから文字列を取得し、各文字列を別々のメッセージとして BizTalk Server に送信します。 送信された各メッセージは、受信場所で BizTalk Server によって取得され、パススルー受信パイプラインおよびパススルー送信パイプライン経由で送信された後、テキスト ファイルに書き込まれます。
要求 - 応答メッセージの送信。 コンソール アプリケーション SubmitRequest.exe は、コマンド ラインで指定された .xml ファイルを取得し、それを BizTalk Server に送信します。 この .xml ファイルのスキーマは、2 つの整数フィールドを含む要素を定義します。 BizTalk Server は .xml ファイルを取得し、それを 1 つの要求 - 応答ポートを使用するオーケストレーションによって処理します。 このとき、マップを使用して、要求に含まれる 2 つの整数の積を表す整数を返す XML 応答メッセージを生成します。 コンソール アプリケーションが応答を受け取ると、結果が表示されます。
このサンプルの場所
<サンプル パス>\AdaptersDevelopment\SubmitDirect\
次の表は、このサンプルのファイルとその目的を示しています。
ファイル | 説明 |
---|---|
Cleanup.bat | 必要に応じて、アセンブリの展開の解除とグローバル アセンブリ キャッシュ (GAC) からのアセンブリの削除、送信および受信ポートの削除、Microsoft インターネット インフォメーション サービス (IIS) の仮想ディレクトリの削除などを行います。 |
Setup.bat | このサンプルを作成および初期化します。 |
SubmitDirect.sln | ProcessRequest フォルダの BizTalk プロジェクトとその他のフォルダの Microsoft Visual C# プロジェクトを含むソリューション ファイルです。 |
SubmitMessagesBinding.xml、SubmitRequestBinding.xml | ポート バインドなどの自動セットアップに使用されます。 |
\ProcessRequest フォルダには、次のファイルが含まれます。 DocIn.xsd、DocOut.xsd、Multiplier.odx、Multiply.btm、ProcessRequest.btproj |
要求 - 応答シナリオで整数の乗算を実行する BizTalk プロジェクトを提供します。 |
\SubmitMessages フォルダには、次のファイルが含まれます。 AssemblyInfo.cs、SubmitMessages.cs、SubmitMessages.csproj |
コマンド ライン文字列パラメータを別々のメッセージのバッチとして渡すコンソール アプリケーションの Visual C# プロジェクトを提供します。 |
\SubmitRequest フォルダには、次のファイルが含まれます。 AssemblyInfo.cs、DocInstance.xml、SubmitRequest.cs、SubmitRequest.csproj |
乗算する 2 つの整数を含む .xml ファイル (DocInstance.xml) を渡すコンソール アプリケーションの C# プロジェクトを提供します。 |
\TransportProxyUtils フォルダには、次のファイルが含まれます。 AssemblyInfo.cs、MessageHelper.cs、MessagingAPIInterface.cs、MessagingAPIs.cs、ResponseCallBack.cs、TpBatchAsyncCallback.cs、TpBatchAsyncResult.cs、TpBatchStatus.cs、TransportProxyUtils.csproj |
Submit アダプタの、同期および非同期のメッセージ送信を行うメソッドとバッチおよび単一の要求メッセージ送信を行うメソッドを実装するランタイム部分の C# プロジェクトを提供します。 |
\TransportProxyUtilsReg フォルダには、次のファイルが含まれます。 AssemblyInfo.cs、RegisterAdapter.cs、TransportProxyUtilsReg.csproj |
BizTalk Server にアダプタを登録するために使用するコードを示す Visual C# プロジェクトを提供します。 |
\TransportProxyUtilsUI フォルダには、次のファイルが含まれます。 AssemblyInfo.cs、TransportProxyUtilsMgmt.cs、TransportProxyUtilsUI.csproj |
Submit アダプターのユーザー インターフェイス部分の Visual C# プロジェクトを提供します。 |
サンプルのビルドおよび初期化
SubmitDirect サンプルをビルドおよび初期化するには
コマンド ウィンドウで、次のフォルダーに移動します。
<サンプル パス>\AdaptersDevelopment\SubmitDirect
次のアクションを実行するファイル Setup.bat を実行します。
このサンプルのバッチ送信部分用に、次の出力フォルダを作成します。
<サンプル パス>\AdaptersDevelopment\SubmitDirect\Out
このサンプルのさまざまな Visual Studio プロジェクトをコンパイルします。
Submit アダプタを BizTalk Server に登録します。
BizTalk Server の受信場所、送信ポート、および受信ポートを作成してバインドします。
Note
このサンプルは、ポートを作成してバインドする際に、以下の警告を表示します。
Warning: Receive handler not specified for receive location "SubmitDirectRL"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "Microsoft.Samples.BizTalk.ProcessRequest.Multiplier"; updating with first available host.
これらの警告は、無視してもかまいません (インストールでの名前付け方法はユーザーによって異なる可能性があるため、ホスト名と受信ハンドラーはバインド ファイルから除外されています。)
受信場所を有効にし、送信ポートとオーケストレーションを開始します。
Note
このサンプルを実行する前に、ビルドと初期化のプロセス中に BizTalk Server でエラーが報告されていないことを確認する必要があります。
Note
ファイル Setup.bat を実行せずにこのサンプルのプロジェクトを開いてビルドする場合は、まず、.NET Framework厳密名ユーティリティ (sn.exe) を使用して厳密な名前キー ペアを作成する必要があります。 このキー ペアは、生成されたアセンブリの署名に使用します。
Note
Setup.bat によって行われた変更を元に戻すには、Cleanup.bat を実行します。 Setup.bat を 2 回目に実行する場合は、その前に Cleanup.bat を実行してください。
サンプルの実行
このサンプルではファイル アダプタを使用するため、BizTalk ホスト (BizTalkServerApplication) が実行されている必要があります。 次の手順を使用して、SubmitDirect サンプルを実行します。
SubmitDirect サンプルのバッチ送信部分を実行するには
コマンド ウィンドウで、次のフォルダーに移動します。
<サンプル パス>\AdaptersDevelopment\SubmitDirect\SubmitMessages\bin\Debug
ファイル SubmitMessages.exe を実行し、コマンド ラインで複数の文字列を渡します。
例: SubmitMessages msg1 msg2 msg3
出力フォルダー Out に作成された複数のテキスト ファイルを確認します。これらのファイルには、コマンド ラインで渡された文字列 (ファイルごとに 1 つ) が含まれています。
SubmitDirect サンプルの要求 - 応答部分を実行するには
コマンド ウィンドウで、次のフォルダーに移動します。
<サンプル パス>\AdaptersDevelopment\SubmitDirect\SubmitRequest\bin\Debug
ファイル SubmitRequest.exe を実行し、コマンド ラインで適切な .xml ファイル名を渡します。
例: SubmitRequest ..\..\DocInstance.xml
乗算演算の結果を含む応答 XML メッセージがコンソールに表示されることを確認します。
説明
Submit アダプタは、他のアプリケーションでも使用できます。 このアダプタを任意の .NET ベースのコードから使用すると、プログラムで BizTalk Server にメッセージを送信できます。 このアダプタをコードで使用するには、次の手順を実行します。
サンプル アダプタをコードで使用するには
送信アダプターをBizTalk Serverに登録します。 このサンプルで提供されているファイル Setup.bat を実行済みの場合、このアダプタは既に登録されて使用できる状態になっています。 それ以外の場合は、TransportProxyUtils.csproj、TransportProxyUtilsUI.csproj、および TransportProxyUtilsReg.csproj プロジェクトをビルドし、TransportProxyUtilsReg.csproj プロジェクトによって生成された実行可能ファイル RegisterAdapter.exe を実行するとアダプタを登録できます。
重要
BizTalk を 64 ビット コンピューターにインストールする場合は、HKEY_CLASSES_ROOT\CLSID\ レジストリ エントリのすべてのインスタンスを RegisterAdapter.cs ファイルの HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ に変更します。
Submit アダプタを使用する受信場所を指定して、受信ポートを作成します。 受信場所のアドレスを指定します。 アドレスには、このアダプタを使用する受信場所内で一意の、任意の文字列を指定できます。
Visual Studio プロジェクトでアセンブリ Microsoft.BizTalk.SDKSamples.AdaptersDevelopment.TransportProxyUtils.dll を参照します。
このアセンブリによって提供される次のメソッドを 1 つ以上使用して、BizTalk Server にメッセージを送信します。
メソッド 説明 SubmitMessage()
BeginSubmitMessage()
EndSubmitMessage()一方向のメッセージを BizTalk Server に送信するための同期メソッドおよび非同期メソッドです。 メッセージが送信される受信場所のアドレスは、メッセージ コンテキストで設定する必要があります。
送信の状態 (成功または失敗) を示すブール値が返されます。SubmitMessages()
BeginSubmitMessages()
EndSubmitMessages()一方向のメッセージの配列を BizTalk Server に送信するための同期メソッドおよび非同期メソッドです。 メッセージが受信される受信場所のアドレスをメッセージのコンテキストで設定する必要があります。
送信の状態 (成功または失敗) を示すブール値が返されます。SubmitSyncMessage()
BeginSubmitSyncMessage()
EndSubmitSyncMessage()要求メッセージを BizTalk Server に送信するための同期メソッドおよび非同期メソッドです。 メッセージが受信される受信場所のアドレスをメッセージ コンテキストで設定する必要があります。
応答メッセージが返されます。CreateMessageFromString() 文字列から BizTalk Server メッセージ オブジェクトを作成し、メッセージ コンテキストで受信場所のアドレスのプロパティを設定します。
BizTalk メッセージ オブジェクトを返します。CreateMessageFromStream() ストリームから BizTalk Server メッセージ オブジェクトを作成し、メッセージ コンテキストで受信場所のアドレスのプロパティを設定します。
BizTalk Server メッセージ オブジェクトを返します。これらのメソッドのパラメータおよび戻り値の型の詳細については、TransportProxyUtils フォルダの MessagingAPIInterface.cs ファイルを参照してください。