Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
こんにちは、BizTalk Server サポートチームの村岡達也です。
HelloWorld オーケストレーションサンプルの解説 2 回目は、実際に HelloWorld サンプルをインストールして動かしてみたいと思います。
(※BizTalk Server が正しくインストールされていることが前提となりますので、セットアップは完了させておいてください)
HelloWorld アプリケーションの中身の解説は、前回のコチラをご覧ください。⇒ HelloWorld オーケストレーション (開発編)
◆HelloWorld サンプルのインストール
HelloWold サンプルは、In フォルダに置かれたファイル (PO) を BizTalk が自動的に取り込んで、オーケストレーションで Invoice の形式へと変換したあと、Out フォルダに Invoice 形式のファイルを出力するという流れになります。
管理者権限のコマンドプロンプトで、サンプルの格納場所にある setup.bat を実行するとインストールが開始します。
プロジェクトのビルドとデプロイ、ファイルの送受信場所の作成、ポートのバインドの構成が自動的に行われます。
コマンドが成功したことを確認します。
黄色のホストインスタンスの再起動の警告が出ると思いますが、初回デプロイであれば特に再起動は必要ありません。
インストールはこれだけで完了です。続いて動作確認を行います。
◆HelloWorld サンプルの動作確認
インストールが完了すると、サンプルの HelloWorld フォルダには In と Out の 2 つのフォルダが作成されます。フォルダ内の SamplePOInput.xml がテスト用の入力データです。このファイルを In フォルダにコピーします。
しばらくして、In フォルダにコピーしたファイルが消えて、Out フォルダにファイルが作成されれば動作確認は成功です。
入力ファイルの SamplePOInput.xml をメモ帳などで編集して、データを変更してから受信フォルダに投入した場合でも、出力先の Invoice ファイルに結果が正しく反映されることを確認してください。
◆グループハブを使用した追跡データの表示
動作確認としては以上で完了なのですが、もう少し範囲を広げて、処理が行われたことを後から確認するための「追跡」の構成をご紹介します。
HelloWorld オーケストレーションのプロパティ画面の「追跡」は既定で無効になっていますので、「イベントの追跡」すべてにチェックをいれます。
オーケストレーションの追跡を構成する方法
https://msdn.microsoft.com/ja-jp/library/aa561347.aspx
これでオーケストレーションのイベント履歴が追跡データベース (BizTalkDTADb) に保存されるようになり、処理結果を後から参照できるようになります。
追跡を有効にしてから、もう一度メッセージを投入してください。
次に BizTalk 管理コンソールの BizTalk Group を選択して「グループの概要」画面の「完成したインスタンス」をクリックします。
すると [完了] タブが開き、クエリ結果に完了したオーケストレーションが表示されるはずです。
さらに、クエリ結果に表示されている項目で右クリック - [オーケストレーションデバッガー] で、実行されたオーケストレーション処理を確認できます。
(ここで気づいたのですが、SDK の HelloWorld サンプルのオーケストレーション名が HelloSchedule になっているのは単に誤植と思われます。気にしないでください。。)
「グループの概要」画面は、正常終了している場合だけでなく、問題発生時のトラブルシューティングにも役立ちます。オーケストレーションの途中で処理が止まっていたり、発生しているエラーを把握するうえで大変役に立つ機能ですので、ぜひ活用ください。
◆BizTalk 管理コンソールでの構成確認
最後に BizTalk 管理コンソールを起動して、HelloWorld アプリケーションの構成を確認していきます。既定では BizTalk Application 1 の配下のオーケストレーション内に、サンプルの HelloWorld オーケストレーションが配置されています。
HelloWorld オーケストレーションをダブルクリックしてプロパティを開き、バインド情報を確認してみます。
ホストには BizTalkServerApplication が指定され、受信ポート・送信ポートがそれぞれオーケストレーションにバインドされていることが分かります。「論理ポート」はこのオーケストレーション内で定義されているポート名をあらわします。その隣にある受信ポート・送信ポートが、それらに対応する実体の受信ポート・送信ポートをあらわしています。
続けてポートの実体である、受信ポート HelloWorldReceivePort と送信ポート HelloWorldSendPort をみていきます。
BizTalk 管理コンソール左ツリーの送信ポートには、HelloWorldSendPort が作成されているはずです。
さらに HelloWorldSendPort のプロパティを開いてみると、この送信ポートはファイルアダプターを使用して、HelloWorld ディレクトリ内の Out フォルダを送信先に指定していることが確認できます。
送信ファイル名の「%MessageID%.xml」は定義済みマクロを使用したもので、BizTalk Server が内部でメッセージを処理するときに割り当てる固有のメッセージ ID をファイル名にしています。他に %SourceFileName% や %time% なども指定することができます。
ファイル名でのマクロの使用に関する制限事項
https://msdn.microsoft.com/ja-jp/library/aa578022.aspx
受信ポートについても同様に確認していきます。送信ポートとは異なり、受信ポートには「受信場所」という概念があります。アダプターの種類や受信フォルダの指定などは、受信ポートではなく、受信場所で構成しています。
送信ポートとは異なり、1 つの受信ポートに対して、メッセージを受信する箇所 (つまり受信場所) は複数持つことができるため、このような管理方法となっています。余裕があれば、サンプルに In2 フォルダのような別の受信場所を新規作成して、動作確認してみてください。(新しく受信場所を作成したあとは、手動で「有効」にする必要があるのでお忘れなく)
最後に [プラットフォームの設定] > [ホスト インスタンス] を確認します。これは BizTalk アプリケーションが動作しているインスタンスをあらわします。
既定では BizTalkServerApplication ホストインスタンスの中で、オーケストレーションや受信・送信アダプターなどが共通して動作します。
ホストインスタンスの実体は Windows 上のサービスです。 BTSSvc$BizTalkServerApplication のようなサービス名で、BTSNTSvc.exe プロセス上で動作していることが、タスクマネージャーで確認できます。
(※上記例では Orch ホストというホストを独自に作成している環境のため、2 つの BTSNTSvc.exe が起動しています)
今回のまとめです。
・BizTalk 管理コンソールでは送信ポート・受信ポート (受信場所) を構成できる。
・送信ポートはひとつの送信先を、受信ポートは複数の受信場所を持つことができる。
・ホストインスタンスはサービスとして起動していて、BTSNTSvc.exe
プロセスとして動作する。
・実行した処理は追跡データで確認できる。
以上でサンプルの動作確認は一通り終わりです。他にも SDK には多数のサンプルが含まれています。ぜひ確認してみてください。