ファイル アダプター (BizTalk Server サンプル)
ファイル アダプター のサンプルは、Microsoft Visual C# .NET で記述され、Microsoft BizTalk Serverと連携します。 このサンプルでは動的アダプターまたは静的アダプターのいずれかをビルドするコードが提供されますが、 以下では静的アダプターの概要手順のみを説明します。 静的アダプターとは、静的な一連のスキーマが付属した、カスタム ユーザー インターフェイスのないアダプターのことです。 動的アダプターにはカスタム ユーザー インターフェイスが備わっており、動的な一連のスキーマが付属していることもあります。 静的アダプターと動的アダプターでは両方とも、アダプターの追加ウィザードを使用してスキーマを BizTalk プロジェクトに追加できます。
Note
ファイル アダプターのサンプルは、BizTalk Serverに付属するネイティブ FILE アダプターと同じではありません。 したがって、このサンプルで使用するトランスポートの種類を選択する際は、[FILE] ではなく [静的] を選択してください。
カスタム ユーザー インターフェイスと動的な一連のスキーマを備えた動的アダプターを使用する場合、アダプター管理側ではコードを追加する必要があります。 スキーマの動的セットの使用方法を理解するには、「 動的 Design-Time アダプターの構成」を参照してください。
このサンプルの処理
サンプル アダプターは、ファイル フォルダーからファイルをコピーし、メッセージとして BizTalk に送信するか、BizTalk Serverからメッセージを受け取ってファイル フォルダーにドロップします。 このサンプルでは動的アダプターまたは静的アダプターのいずれかをビルドするコードが提供されますが、以下では静的アダプターの概要手順のみを説明します。 静的アダプターとは、静的な一連のスキーマが付属した、カスタム ユーザー インターフェイスのないアダプターのことです。 動的アダプターにはカスタム ユーザー インターフェイスが備わっており、動的な一連のスキーマが付属していることもあります。 静的アダプターと動的アダプターでは両方とも、アダプターの追加ウィザードを使用してスキーマを BizTalk プロジェクトに追加できます。
このサンプル ファイル アダプターは、他のカスタム アダプターを作成する際にテンプレートとして使用できます。
このサンプルの場所
<サンプル パス>\AdaptersDevelopment\File Adapter
Note
32 ビット バージョンの < Windows を実行しているコンピューターにBizTalk Serverがインストールされている場合、サンプル パス>の既定の場所は %ProgramFiles%\Microsoft BizTalk Server\SDK\Samples です。 64 ビット バージョンの < Windows を実行しているコンピューターにBizTalk Serverがインストールされている場合、サンプル パス>の既定の場所は %ProgramFiles(x86)%\Microsoft BizTalk Server\SDK\Samples です。 %ProgramFiles% または %ProgramFiles(x86)% 環境変数に関連付けられている値を確認するには、コマンド プロンプトで echo %ProgramFiles% または echo %ProgramFiles(x86)% と入力し、Enter キーを押します。 このサンプルを 64 ビット オペレーティング システムで実行する場合は、.reg ファイルを実行する前に、いずれかの .reg ファイル内のすべての参照を %ProgramFiles% から %ProgramFiles(x86)% に変更する必要があります。
このサンプルに含まれるファイルとその目的を次の表に示します。
\File Adapter のファイル | 説明 |
---|---|
\BizTalk Project のファイル | サンプル アダプターのテストに使用するアダプター ハーネス プロジェクトが含まれています。 |
\Design Time のファイル | デザイン時および管理のプロジェクト (AdapterManagement.csproj) が含まれています。 |
\Runtime のファイル | ランタイム ファイル コピーの受信および送信プロジェクト (DotNetFile.csproj) が含まれています。 |
DynamicAdapterManagement.reg | サンプルの動的アダプターを登録します。 |
Instance.xml | ファイル アダプターを通過するサンプル ファイルです。 |
StaticAdapterManagement.reg | サンプルの静的アダプターを登録します。 |
\BizTalk Project\Adapter Harness のファイル | 説明 |
---|---|
AdapterHarness.odx、AdapterHarness.sln、AdapterHarnessProject.btproj | BizTalk プロジェクトのプロジェクト ファイル、ソリューション ファイル、その他の関連ファイルを提供します。 |
mySchema.xsd | アダプターの受信部分からのハーネス オーケストレーションに必要とされる Instance.xml スキーマのほか、オーケストレーションによりアダプターの送信部分に渡される Instance.xml のスキーマを提供します。 |
\Design Time\Adapter Management のファイル | 説明 |
---|---|
AdapterManagement.cs、AdapterManagement.csproj、AdapterManagement.sln | アダプター デザイン時用のプロジェクト ファイル、ソリューション ファイル、その他の関連ファイルです。 |
AssemblyInfo.cs | このサンプルのアセンブリ情報が含まれています。 |
CategorySchema2.xml | サンプル アダプターでは使用されません。 |
CategorySchema.xml | 静的アダプターのサービス構成ツリーが含まれています。 |
DotNetFileResource.resx | リソースが含まれています。 |
ReceiveHandler.xsd、ReceiveLocation.xsd | 受信側のハンドラーおよびエンドポイントのカスタム プロパティ スキーマが含まれています。 |
service1.wsdl | アダプターの操作定義が含まれています。 |
TransmitHandler.xsd、TransmitLocation.xsd | 送信側のハンドラーおよびエンドポイントのカスタム プロパティ スキーマが含まれています。 |
\Runtime のファイル | 説明 |
---|---|
DotNetFile.csproj、DotNetFile.sln、 AssemblyInfo.cs、 DotNetFileExceptions.cs、DotNetFileProperties.cs、DotNetFileReceiver.cs、DotNetFileReceiverEndPoint.cs、DotNetFileTransmitter.cs、 DotNetFileTransmitterEndpoint.cs、 DotNetFileAsyncTransmitterBatch.cs、 BatchMessage.cs |
ランタイム ファイル コピーの送信および受信アダプター用のファイルです。 これらのファイルをカスタム コンポーネント用に修正し、新しい名前で保存できます。 DotNetFile.csproj と DotNetFile.sln はプロジェクト ファイルとソリューション ファイルです。 AssemblyInfo.cs には、このサンプルのアセンブリ情報が含まれています。 DotNetFileReceiver.cs は受信場所からファイルを読み取り、BizTalk Server に送信します。 DotNetFileExceptions.cs はメッセージ処理で発生する例外を処理するコードを実装します。 DotNetFileProperties.cs には、送信操作と受信操作の両方に必要な共通プロパティが含まれています。 BatchMessage.cs は、バッチによるメッセージ処理を実装します。 DotNetFileReceiverEndPoint.cs は、受信場所/URI に対応するクラスで、 新しいメッセージ用の特定のフォルダーのポーリングを処理します。 DotNetFileTransmitter.cs は、DotNetFile 送信アダプターの単一クラスです。 この種類のアダプターの送信ポートに送られるすべてのメッセージは、このクラスで処理されます。 DotNetFileTransmitterEndpoint.cs はメッセージの送信を処理します。 |
\SDK\Samples\AdaptersDevelopment\BaseAdapter\v1.0.2 のファイル | 説明 |
---|---|
Adapter.cs、AdapterException.cs、AsyncTransmitter.cs、batch.cs、ConfigProperties.cs、ControlledTermination.cs、IManageEndpoints.cs、Receiver.cs、ReceiverEndpoint.cs | ベース アダプターを構成するクラスを提供します。 これらのクラスを使用して、独自のアダプターを作成できます。 |
このサンプルの使用方法
サンプル ファイル アダプターは、他のカスタム アダプターを作成するテンプレートとして使用します。
このサンプルのビルド
重要
BizTalk 環境が 64 ビットである、またはインストール場所が変更されている場合は、それに合わせて OutboundAssemblyPath、InboundAssemblyPath、および AdapterMgmtAssemblyPath を変更する必要があります。
次の手順を使用して、ファイル アダプターのサンプルをビルドおよび初期化します。
DotNetFileAdapter プロジェクトおよびベース アダプター プロジェクト用の厳密な名前のキーを作成するには
Visual Studio コマンド プロンプトを起動します。
Note
管理者としてコマンド プロンプトを実行します。
現在のディレクトリを <Samples Path>\AdaptersDevelopment\BaseAdapter\v1.0.2 ディレクトリに 変更します。
コマンド プロンプトで、「 sn –k BaseAdapter.snk 」と入力し、Enter キーを押します。 この .snk ファイルは、他のサンプルが以前に実行された結果として既に存在している可能性があります。 この場合は、手順 4. に進んでください。
現在のディレクトリを <Samples Path>\AdaptersDevelopment\File Adapter\Runtime ディレクトリに変更します。
コマンド プロンプトで、「 sn –k DotNetFileAdapter.snk 」と入力し、Enter キーを押します。
コマンド プロンプトで「 exit 」と入力し、Enter キーを押してコマンド プロンプト ウィンドウを閉じます。
レシーバー ランタイム プロジェクトをビルドするには
[スタート] ボタンをクリックし、[すべてのプログラム] をポイントし、[アクセサリ] をポイントして、[Windows エクスプローラー] をクリックします。
Samples Path>"\AdaptersDevelopment\File Adapter\Runtime" ディレクトリに<移動し、DotNetFile.sln をダブルクリックします。
アダプター レシーバーランタイム プロジェクトをリビルドするには、ソリューション エクスプローラーで [DotNetFile] を右クリックし、[リビルド] をクリックします。
[ ファイル ] メニューの [ 終了 ] をクリックして Visual Studio を閉じます。
アダプター デザイン時のプロジェクトをビルドするには
Windows エクスプローラーで、Samples Path>"\AdaptersDevelopment\File Adapter\Design Time\Adapter Management" ディレクトリに<移動し、[AdapterManagement.sln] をダブルクリックします。
ソリューション エクスプローラーで、AdapterManagement を右クリックし、[リビルド] をクリックします。
[ ファイル ] メニューの [ 終了 ] をクリックして Visual Studio を閉じます。
サンプルの静的アダプターを登録するには
Windows エクスプローラーで、Samples Path>"\AdaptersDevelopment\File Adapter" ディレクトリに<移動します。
サンプル アダプターをレジストリに追加するには、[ StaticAdapterManagement.reg] をダブルクリックします。
Note
StaticAdapterManagement.reg には、C:\Program Files\Microsoft BizTalk Server\ へのハードコーディングされたパスが含まれています。 %ProgramFiles%\Microsoft BizTalk Server\ ディレクトリにBizTalk Serverをインストールしなかった場合、BizTalk Serverインストールを BizTalk Server 2009 または BizTalk Server 2006 R2 からアップグレードした場合、またはインストールした場合64 ビット バージョンの Windows を実行しているコンピューターでBizTalk Server、StaticAdapterManagement.reg ファイルを適切なパスで変更する必要があります。 既定では、BizTalk Serverは、64 ビット バージョンの Windows を実行しているコンピューター上の %ProgramFiles(x86)%\Microsoft BizTalk Server\ ディレクトリにインストールされます。 "InboundAssemblyPath"、"OutboundAssemblyPath"、および "AdapterMgmtAssemblyPath" の値に関連付けられたパスを更新し、指定されたファイルの正しい場所を指すようにします。
重要
BizTalk を 64 ビット コンピューターにインストールする場合は、HKEY_CLASSES_ROOT\CLSID\ レジストリ エントリのすべてのインスタンスを StaticAdapterManagement.reg レジストリ ファイルの HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ に変更します。
[ レジストリ エディター ] ダイアログ ボックスで、[ はい ] をクリックしてサンプル アダプターをレジストリに追加し、[OK] をクリック します。
Windows エクスプローラーを閉じるには、[ファイル] メニューの [閉じる] をクリックします。
サンプルの静的アダプターをインストールするには
[スタート] をクリックし、[すべてのプログラム] を選択し、[Microsoft BizTalk Server 20xx] を選択して、[BizTalk Server管理] を選択します。
BizTalk Server管理コンソールで、[BizTalk Server管理] をクリックして展開し、[BizTalk グループ] をクリックして展開し、[プラットフォーム設定] をクリックして展開します。
[ アダプター] を右クリックし、[ 新規] をクリックし、[ アダプター] をクリックします。
[ アダプターの追加 ] ダイアログ ボックスで、次の操作を行います。
プロパティ 目的 名前 「 Static」と入力します。 アダプター ドロップダウン リストから [ Static DotNetFile ] を選択します。 解説 「 サンプル アダプター」と入力します。 [OK] をクリックします。
これで、BizTalk 管理コンソールの右ウィンドウにあるアダプターの一覧に静的アダプターが表示されます。
ホスト インスタンスを停止して再起動するには
[スタート] をクリックし、[すべてのプログラム] を選択し、[Microsoft BizTalk Server 20xx] を選択して、[BizTalk Server管理] を選択します。
BizTalk Server管理コンソールで、[BizTalk Server管理] をクリックして展開し、[BizTalk グループ] をクリックして展開し、[プラットフォーム設定] をクリックして [ホスト インスタンス] をクリックします。 右ペインで、[BizTalkServerApplication] を選択します。
結果ウィンドウで、ホスト インスタンス (通常はコンピューター名) を右クリックし、[ 再起動] をクリックします。
このサンプルの実行
ファイル アダプターのサンプルを実行するには
[スタート] ボタンをクリックし、[すべてのプログラム] をポイントし、[アクセサリ] をポイントして、[Windows エクスプローラー] をクリックします。
BizTalk Serverインストール ドライブに次のフォルダーを作成します。
<drive>:\Temp
<drive>:\Temp\Send
<drive>:\Temp\Receive
Windows エクスプローラーを閉じるには、[ファイル] メニューの [閉じる] をクリックします。
[スタート] ボタンをクリックし、[すべてのプログラム] をポイントし、[Microsoft BizTalk Server 20xx] をポイントして、[BizTalk Server管理] をクリックします。
[BizTalk Server管理] ノードを右クリックし、[既存のグループに接続] を選択します。
[既存のBizTalk Server構成データベースへの接続] ダイアログ ボックスで、次の操作を行います。
Note
BizTalk 管理データベースは、BizTalk 構成データベースとも呼ばれます。
プロパティ 目的 SQL Server 「 」 と入力します(ピリオド)。 [データベース] 構成ウィザードで作成された BizTalk 管理データベースの名前を選択します。 構成ウィザードで使用される既定のデータベース名は BizTalkMgmtDb です。 [OK] をクリックします。
BizTalk Server管理コンソールで BizTalk グループ [サーバー名] ノードを展開し、[アプリケーション] ノードを展開し、[BizTalk Application 1] ノードを展開します。
[ 送信ポート ] ノードを右クリックし、[ 新規作成] をクリックし、[ 静的 One-Way 送信ポート] を選択し、[ OK] をクリックします。
[ 送信ポートのプロパティ ] ダイアログ ボックスで、[ 全般] を選択し、次の操作を行います。
プロパティ 目的 名前 「 AdapterSend」と入力します。 トランスポートの種類 ドロップダウン リストから [ 静的 ] を選択し、[ 構成] をクリックします。
- [ディレクトリ] ボックスに「drive>:\Temp\Send」と入力<します。
- [ ファイル モード ] ボックスで、[ 作成][新規作成] の順に選択します。
- [ ファイル名 ] ボックスに 、「%MessageID%.xml」と入力します。
- [ OK] をクリックします。
- URI フィールドには drive>:\Temp\Send\%MessageID%.xmlが表示<されます。[送信パイプライン] [ PassThruTransmit (Microsoft.BizTalk.DefaultPipelines.PassThruTransmit)] を選択し、[ OK] をクリックします。 [BizTalk アプリケーション 1] ノードの [受信ポート] をクリックし、[新規/ One-Way 受信ポート] を選択します。
[ 新しい受信ポートの作成 ] ダイアログ ボックス の [受信ポートの種類の指定 ] ボックスで、ドロップダウン リストから [ 一方向の受信ポート ] を選択し、[OK] をクリック します。
[ 受信ポートのプロパティ ] ダイアログ ボックスの [名前 ] ボックスに「 AdapterReceive」と入力し、[OK] をクリック します。
BizTalk アプリケーション 1 ノードの [受信場所] を右クリックし、[新規/ 一方向の受信場所] を選択します。
[ 受信ポートの選択 ] ダイアログで、[ アダプター][回復 ] の順に選択し、[OK] をクリック します。
[ 受信場所のプロパティ ] ダイアログ ボックスで、次の操作を行います。
プロパティ 目的 名前 「 AdapterReceiveLocation」と入力します トランスポートの種類 ドロップダウン リストから [ 静的 ] を選択し、[ 構成] を クリックして、残りのプロパティにアクセスします。 URI - 省略記号ボタン (...) をクリックします。
- [ バッチ内のファイルの数 ] ボックスに「 20」と入力します。
- [ディレクトリ] ボックスに「drive>:\Temp\Receive」と入力<します。
- File Mask プロパティが *.xmlに設定されていることを確認します。
- [ ポーリング間隔 ] ボックスに「 5」と入力し、[OK] をクリック します。
- URI ラベルに drive>:\Temp\Receive\*.xmlが含まれていること<を確認します。受信ハンドラー ドロップダウン リストから [ BizTalkServerApplication ] を選択します。 受信パイプライン ドロップダウン リストから [ XMLReceive ] を選択します。 [OK] をクリックします。
「サンプル アダプターのビルド、展開、バインド」に進みます。
サンプル アダプターのビルド、展開、およびバインド
アダプターを実際に使用するには、その前にプロジェクトをビルドし、オーケストレーションにポートをバインドして、アダプターを参加させる必要があります。
静的アダプター用の厳密な名前のキーを作成するには
Visual Studio コマンド プロンプトを起動します。
コマンド プロンプトで、現在のディレクトリを <Samples Path>\AdaptersDevelopment\File Adapter\BizTalk Project\Adapter Harness ディレクトリに変更します。
コマンド プロンプトで、「 sn –k AdapterHarness.snk」と入力し、ENTER キーを押します。
[OK] をクリックします。
アダプター ハーネス プロジェクトをビルドするには
- ソリューション エクスプローラーで、[AdapterHarnessProject] を右クリックし、[リビルド] をクリックします。
アダプター ハーネス プロジェクトを展開するには
ソリューション エクスプローラーで、プロジェクトが再構築されたら、AdapterHarnessProject を右クリックし、[配置] をクリックします。
BizTalk Server管理コンソールで、デプロイしたプロジェクトを選択し、[更新] をクリックします。
オーケストレーションにポートをバインドするには
BizTalk Server管理コンソールで、適切なBizTalk Server アプリケーションの下にある [オーケストレーション] ノードを展開します。
[AdapterHarness.AdapterHarnessType] を右クリックし、[バインド] をクリックします。
[ ポート バインドのプロパティ - AdapterHarness.AdapterHarnessType- Binding Configurations ] ダイアログ ボックスで、次の操作を行います。
プロパティ 目的 [AdapterFileReceivePort] ドロップダウン リストから [ AdapterReceive ] を選択します。 [AdapterFileSendPort] ドロップダウン リストから [ AdapterSend ] を選択します。 左側のウィンドウで、[ ホスト] をクリックします。
[ ホスト ] ボックスの一覧から [ BizTalkServerApplication ] を選択し、[OK] をクリック します。
「サンプル アダプターの管理」に進みます。
サンプル アダプターの管理
BizTalk 管理コンソールで、サンプル アダプターに対する管理タスクを実行します。
ファイル アダプターのサンプルを管理するには
[スタート] ボタンをクリックし、[すべてのプログラム] をポイントし、[Microsoft BizTalk Server 20xx] をポイントして、[BizTalk Server管理] をクリックします。
左側のウィンドウで、[ アプリケーション] をクリックして展開し、[ BizTalk アプリケーション 1] をクリックして展開し、[ 受信場所] をクリックします。
AdapterReceive の状態が [有効] になっていることを確認します。
状態が [有効] でない場合は、右側のウィンドウで [AdapterReceive ] を右クリックし、[ 有効] をクリックします。
左側のウィンドウで [ オーケストレーション ] をクリックし、[ AdapterHarness.AdapterHarnessType ] が [参加済み] になっていることを確認します。 [AdapterHarness.AdapterHarnessType] を右クリックし、[参加] をクリックします (AdapterHarness.AdapterHarnessType が既に参加している場合は、[参加リスト] メニュー オプションは使用できません)。
[AdapterHarness.AdapterHarnessType] を右クリックし、[開始] を選択します。 このオーケストレーションの状態が [実行中] に変わる必要があります。
「サンプル アダプターのテスト」に進みます。
サンプル アダプターのテスト
サンプル アダプターを展開したら、ホスト インスタンスを停止して再起動する必要があります。 サンプル アダプターを運用する前には必ずテストしてください。
ホスト インスタンスを停止して再起動するには
BizTalk Server管理コンソールで、[BizTalk Server管理] をクリックして展開し、[BizTalk グループ] をクリックして展開し、[プラットフォーム設定] をクリックして [ホスト インスタンス] をクリックします。 右ペインで、[BizTalkServerApplication] を選択します。
ホスト インスタンス (通常はコンピューター名) を右クリックし、[ 停止] をクリックします。
ホスト インスタンスの状態が [停止済み] に変わります。
ホスト インスタンスを右クリックし、[ 開始] をクリックします。
ホスト インスタンスの状態が [実行中] に変わります。
サンプルの静的アダプターをランタイムでテストするには
Windows エクスプローラーで、Samples Path>\AdaptersDevelopment\File Adapter ディレクトリに<移動し、InstanceXML.xml ファイルをクリップボードにコピーします。
drive>:\Temp\Receive に<移動し、Instance.xml ファイルを フォルダーに貼り付けます。
送信アダプターと受信アダプターが動作している場合、ファイルは drive>:\Temp\Receive フォルダーから<drive>:\Temp\Send フォルダーに<移動する必要があります。
サンプルの静的アダプターで、サンプルのアダプターの追加ウィザード機能をテストするには
Visual Studio のソリューション エクスプローラーで、[AdapterHarnessProject] を右クリックし、[追加] をポイントして、[生成された項目の追加] をクリックします。
[ 生成された項目の追加 - AdapterHarnessProject ] ダイアログ ボックスで、[ アダプター メタデータの追加] をクリックし、[ 開く] をクリックします。
登録されたアダプターの一覧が表示されます。
[ 静的 DotNetFile] を選択し、[ 次へ] をクリックします。
アダプターで公開されるサービス構成が表示されます。
[ サービス組織]、[ 医療] の順に展開し、[ 管理] をクリックします。
適格性は他のノードとは異なる方法で表示されます。 適格性 は、選択できるサービス ノードです。 他のノードは構成ノードで、特定のサービスを表すものではありません。
[ 適格性 ] ノードを選択し、[ 完了] をクリックします。
BizTalk では .odx ファイルと .xsd ファイルがプロジェクトにインポートされます。
これで、アダプターからインポートしたスキーマ、ポートの種類、操作、およびメッセージの種類を BizTalk プロジェクトのスケジュールで使用できます。
このサンプルで使用するクラスまたはメソッド
インターフェイス: IBaseMessage、IPropertyBag、IBTTransportProxy
クラス (ベース アダプターから): AsyncTransmitterEndpoint、AsyncTransmitter、BatchMessage、ControlledTermination、ReceiverEndpoint、DotNetFileCommonProperties、BatchOperationType
説明
サンプル アダプターを完了したら、サンプル アダプターを変更してカスタムの静的アダプターまたは動的アダプターを作成できます。詳細については、「 アダプターの Design-Time 構成」を参照してください。