このトピックでは、「手順 1: BizTalk Server に ドキュメントを送信する単体テストを作成する」および「手順 3: 複数の単体テスト を 同時に実行するロード テストを作成する」で説明されているサンプル コードを実行するために必要な BizTalk Server 受信場所、受信ポート、および送信ポートを作成する方法について説明します。
ロード テスト用に BizTalk Server 環境を構成する
「手順 3: 複数の単体テストを同時に実行するロード テストを作成する」の説明に従って、ロード テスト BTS_Messaging_Stepは、単体テスト BTSMessaging と BTSMessaging2 を実行するように構成されます。 次に、これらの単体テストでは、メッセージ C:\Projects\LoadTest\BTSLoad\TestMessages\TestXmlDocument.xml のコピーを読み込み、プロジェクトのアプリケーション構成 (app.config) ファイルの次のセクションで定義されているように、 BTSMessagingEP と BTSMessagingEP2 のエンドポイントに送信します。
<-- BTSMessagingEP --><endpoint address="net.tcp://BizTalk Server Computer:8123/btsloadtest" binding="netTcpBinding" bindingConfiguration="netTcpBinding" contract="System.ServiceModel.Channels.IRequestChannel" name="BTSMessagingEP" /><endpoint address="net.tcp://BizTalk Server Computer:8123/btsloadtest" binding="netTcpBinding" bindingConfiguration="netTcpBinding" contract="System.ServiceModel.Channels.IRequestChannel" name="BTSMessagingEP2" />
注
前述のように、 BizTalk Server コンピューター は、実際の BizTalk Server コンピューター名のプレースホルダーです。また、BizTalk Server コンピューターがネットワーク負荷分散 (NLB) クラスターのメンバーとして構成されている場合はプレースホルダーです。 BizTalk Server コンピューター は、対応する NLB 仮想サーバーの名前またはアドレスのプレースホルダーです。
この例では、2 台の BizTalk Server コンピューターが使用され、BizTalk Server メッセージ ボックス データベースがリモート SQL Server コンピューター上にありました。
BizTalk Server 送受信ホストを作成する
BizTalk Server ドキュメント トピック「 新しいホストを作成する方法 」の手順に従って、送信ポートと送信アダプター ハンドラー用の BizTalk Server "送信" ホストを作成します。 次のプロパティを使用してホストを構成します。
プロパティ | 価値 |
---|---|
名前 | TxHost |
タイプ | In-Process |
ホスト追跡を許可する | このボックスがオフになっていることを確認します。 |
認証信頼済み | このボックスがオフになっていることを確認します。 |
32 ビットのみ | このボックスがオフになっていることを確認します。 |
これをグループ内の既定のホストにする | このボックスがオフになっていることを確認します。 |
Windows グループ | このホストおよび関連付けられているホスト インスタンスへのアクセスを制御するために使用される Windows グループ。 既定のインプロセス ホスト用に作成されたウィンドウ グループの名前は、<Computer Name>\BizTalk Application Users (単一サーバー BizTalk Server インストールの場合) または <Domain Name>\BizTalk Application Users (ドメイン グループの使用が必要な複数サーバー BizTalk Server インストールの場合) です。
注:<Computer Name> と <Domain Name> は、グループの作成時に使用される実際のコンピューター名またはドメイン名のプレースホルダーです。 このホスト用に新しいグループを作成する場合は、トピック「 ホスト グループ」で説明されている権限が必要です。 |
"送信" ホストを作成するときに従った手順を繰り返して、"受信" ホストを作成します。 次のプロパティ値を使用して、"Receive" ホストを構成します。
プロパティ | 価値 |
---|---|
名前 | RxHost |
タイプ | In-Process |
ホスト追跡を許可する | このボックスがオフになっていることを確認します。 |
認証信頼済み | このボックスがオフになっていることを確認します。 |
32 ビットのみ | このボックスがオフになっていることを確認します。 |
これをグループ内の既定のホストにする | このボックスがオフになっていることを確認します。 |
Windows グループ | このホストおよび関連付けられているホスト インスタンスへのアクセスを制御するために使用される Windows グループ。 既定のインプロセス ホスト用に作成されたウィンドウ グループの名前は、<Computer Name>\BizTalk Application Users (単一サーバー BizTalk Server インストールの場合) または <Domain Name>\BizTalk Application Users (ドメイン グループの使用が必要な複数サーバー BizTalk Server インストールの場合) です。
注:<Computer Name> と <Domain Name> は、グループの作成時に使用される実際のコンピューター名またはドメイン名のプレースホルダーです。 このホスト用に新しいグループを作成する場合は、トピック「 ホスト グループ」で説明されている権限が必要です。 |
BizTalk Server 送受信ホストのインスタンスを作成する
BizTalk Server のドキュメント トピック「 ホスト インスタンスを追加して BizTalk Server "送信" ホストのインスタンスを作成および開始する方法」の手順に従います。 BizTalk Server グループ内の各 BizTalk Server で実行する "送信" ホストのインスタンスを構成し、次のプロパティ値を使用して各ホスト インスタンスを構成します。
プロパティ | 価値 |
---|---|
ホスト名 | [ホスト名] の横にあるドロップダウン リストから [TxHost] を選択します。 |
サーバー | [サーバー] の横にあるドロップダウン リストから、このホスト インスタンスを実行する BizTalk Server を選択 します。 |
ログオン | 1. [ 構成 ] ボタンをクリックして、[ ログオン資格情報 ] ダイアログ ボックスを表示します。 2. [ ログオン資格情報 ] ダイアログ ボックスで、指定したプロパティに対して次の値を入力します。 財産 ログオン: この BizTalk Server ホストに関連付けられている Windows グループのメンバーであるユーザー アカウントの名前。 パスワード: [ログオン ] ボックスに指定されたユーザー アカウントのパスワード。 3. [ OK] を クリックして、[ ログオン資格情報 ] ダイアログ ボックスを閉じます。 |
ホスト インスタンスの起動を無効にします。 | このボックスがオフになっていることを確認します。 |
ホスト インスタンスを作成したら、ホスト インスタンスを右クリックし、コンテキスト メニューから [スタート] を選択します。
"送信" ホスト インスタンスを作成するときに従った手順を繰り返して、"受信" ホスト インスタンスを作成します。 BizTalk Server グループ内の各 BizTalk Server で実行する "受信" ホストのインスタンスを構成し、次のプロパティ値を使用して各ホスト インスタンスを構成します。
プロパティ | 価値 |
---|---|
ホスト名 | [ホスト名] の横にあるドロップダウン リストから RxHost を選択します。 |
サーバー | [サーバー] の横にあるドロップダウン リストから、このホスト インスタンスを実行する BizTalk Server を選択 します。 |
ログオン | 1. [ 構成 ] ボタンをクリックして、[ ログオン資格情報 ] ダイアログ ボックスを表示します。 2. [ ログオン資格情報 ] ダイアログ ボックスで、指定したプロパティに対して次の値を入力します。 財産 ログオン: この BizTalk Server ホストに関連付けられている Windows グループのメンバーであるユーザー アカウントの名前。 パスワード: [ログオン ] ボックスに指定されたユーザー アカウントのパスワード。 3. [ OK] を クリックして、[ログオン資格情報] ダイアログ ボックスを閉じます。 |
ホスト インスタンスの起動を無効にする | このボックスがオフになっていることを確認します。 |
ホスト インスタンスを作成したら、ホスト インスタンスを右クリックし、コンテキスト メニューから [スタート] を選択します。
BizTalk Server 受信ポートを作成する
BizTalk Server ドキュメントの「 受信ポートを作成する方法 」トピックの手順に従って、One-Way 受信ポートを作成します。 受信ポートを作成するときは、次の表に示すように、すべてのプロパティを既定値のままにします。
プロパティ | 価値 |
---|---|
一般\名前 | BTSLoadTestMessaging.OneWay.ReceivePort |
一般\ポートタイプ | One-Way |
一般\認証 | 認証なし |
全般\失敗したメッセージのルーティングを有効にする | このボックスがオフになっていることを確認します。 |
概要\説明 | 空白のままにする |
受信マップ | 無し |
トラッキング | すべてのボックスがチェックされていないことを確認します。 |
受信場所 | [ 新規] をクリックすると、[ 受信場所のプロパティ ] ダイアログ ボックスが表示されます。このダイアログ ボックスは、次のセクション「 BizTalk Server の受信場所を作成する」で説明するように構成する必要があります。 |
BizTalk Server の受信場所を作成する
BizTalk Server 受信ポートの作成時に表示される [ 受信場所のプロパティ ] ダイアログ ボックスで、指定したプロパティ値を適用します。
プロパティ | 価値 |
---|---|
名前: | BTSLoadTest.Messaging.OneWay.WCF-Customer.ReceiveLocation |
受信ハンドラー: | RxHost |
受信パイプライン: | パススルー受信 |
説明: | 空白のままにします |
型: | ドロップダウン リストから [WCF-Custom] を選択し、[構成] ボタンをクリックすると、次のセクション「WCF-Custom 受信トランスポートの構成」で説明するように構成する必要がある [WCF-Custom トランスポートのプロパティ] ダイアログ ボックスが表示されます。 |
WCF-Custom 受信トランスポートを構成する
BizTalk Server の受信場所の作成時に表示される [ WCF-Custom トランスポートのプロパティ ] ダイアログ ボックスで、次の表に示す場合を除き、すべてのプロパティを既定値のままにします。
プロパティ | 価値 |
---|---|
一般\アドレス (URI) | net.tcp://localhost:8123/btsloadtest |
製本\製本の種類 | ネットTcpバインディング |
Binding\NetTcpBindingElement\listenBacklog | 400 |
Binding\NetTcpBindingElement\maxConnections | 400 |
バインディング\Security\NetTcpSecurityElement\モード | 無し |
Behavior\ServiceBehavior\serviceThrottling\ServiceThrottlingElement 注: serviceThrottling 動作を動作の一覧に追加するには、ServiceBehavior を右クリックし、[ 拡張機能の追加] をクリックし、動作拡張機能の一覧から serviceThrottling を選択して 、[OK] をクリックします。 |
ServiceThrottlingElement プロパティを次の値に設定します。 - maxConcurrentCalls 400 - maxConcurrentInstances 400 - maxConcurrentSessions 400 |
Behavior\ServiceBehavior\serviceDebug\ServiceDebugElement 注: serviceDebug の動作を動作の一覧に追加するには、ServiceBehavior を右クリックし、[ 拡張機能の追加] をクリックし、動作拡張機能の一覧から serviceDebug を選択して、[ OK] をクリックします。 |
ServiceDebugElement プロパティの一覧は、次のプロパティを除き、既定値 (空) のままにします。値は True に変更する必要があります。 - httpHelpPageEnabled true - httpsHelpPageEnabled 有効 - includeExceptionDetailInFaults true |
[ OK] を クリックして [WCF-Custom トランスポートのプロパティ] ダイアログ ボックスを閉じ、もう一度 [OK] をクリックして [受信場所のプロパティ] ダイアログ ボックスを閉じます。
BizTalk Server 送信ポートを作成する
BizTalk Server ドキュメントの「 送信ポートを作成する方法 」トピックの手順に従って、 静的一方向 送信ポートを作成します。 送信ポートを作成するときは、次の表に示すように、すべてのプロパティを既定値のままにします。
プロパティ | 価値 |
---|---|
一般\名前 | BTSLoadTest.Messaging.Send.WCF-Custom |
一般\送信ハンドラー | TxHost |
一般\送信パイプライン | PassThruTransmit |
フィルター\名前 | BTS.ReceivePortName |
フィルター\オペレーター | == |
フィルター\値 | BTSLoadTest.Messaging.OneWay.ReceivePort(受信ポート) |
フィルター\グループ化 |
注: これらのプロパティが正しい値で構成されている場合は、[送信ポートのプロパティ] ダイアログ ボックスの [フィルター] ページの下部に表示されるように、フィルターをBTS.ReceivePortName == BTSLoadTest.Messaging.OneWay.ReceivePort として表示する必要があります。 このフィルターを適用した結果、この送信ポートは、BTSLoadTest.Messaging.OneWay.ReceivePort という名前の受信ポートを介して BizTalk Server によって受信されたすべてのメッセージをサブスクライブします。 |
トラッキング | すべてのボックスがチェックされていないことを確認します。 |
一般\タイプ | ドロップダウン リストから [WCF-Custom ] を選択し、[ 構成 ] ボタンをクリックすると、[トランスポートの WCF-Custom のプロパティ ] ダイアログ ボックスが表示されます。このダイアログ ボックスは、次のセクション「 WCF-Custom 送信トランスポートの構成」で説明するように構成する必要があります。 |
WCF-Custom 送信トランスポートを構成する
BizTalk Server 送信ポートの作成時に表示される [WCF-Custom トランスポートのプロパティ ] ダイアログ ボックスで、次の表に示す場合を除き、すべてのプロパティを既定値のままにします。
プロパティ | 価値 |
---|---|
一般\アドレス (URI) | net.tcp://<Computer Name>:2001/TCP1 Important:<Computer Name> は、WCF 経由で送信されたメッセージを使用するように設計された、IndigoService.exeをホストするために使用される実際のコンピューター名のプレースホルダーです。 IndigoService.exe はリソースをほとんど必要としないため、多くの場合、BizTalk Server グループ データベースに使用される SQL Server コンピューターで IndigoService.exe を実行することは完全に許容されます。 |
製本\製本の種類 | customBinding |
ほとんどの WCF-Custom バインド型と同様に、 customBinding バインド型は、いくつかのプロパティを公開します。このプロパティは次の値に設定する必要があります。
バインド セクションの下に、設定 セクションが関連付けられている CustomBindingElement プロパティがあります。 CustomBindingElement プロパティの [構成] セクションのすべての値は既定値のままにします。
次に、CustomBindingElementでtextMessageEncodingを右クリックし、拡張子の削除 (Del)を選択します。 同様に、 httpTransport を右クリックし、 拡張機能の削除 (Del) を選択します。
ここで、 CustomBindingElement を右クリックし、[ 拡張機能の追加 ] を選択して [ バインド要素拡張機能の選択 ] ダイアログ ボックスを表示します。
binaryMessageEncoding を選択し、[OK] をクリックして binaryMessageEncoding 要素拡張機能を追加します。 この手順を繰り返して、[ バインド要素拡張機能の選択 ] ダイアログ ボックスを表示し、 tcpTransport 要素拡張機能が表示されるまで使用可能な要素拡張の一覧を下にスクロールし、 tcpTransport を選択して [OK] をクリックします。
CustomBindingElement で tcpTransport 要素を選択し、tcpTransport の [構成] セクションで、次の表に示す場合を除き、すべてのプロパティを既定値のままにします。
プロパティ 価値 接続バッファサイズ 2097152 maxBufferSize(最大バッファサイズ) 2097152 maxPendingAccepts 400 maxPendingConnections 400 バックログを監視する 400 maxBufferPoolSize 2097152 maxReceivedMessageSize 2097152 tcpTransport 要素の下で ConnectionPoolSettings 要素を選択し、maxOutboundConnectionsPerEndpoint プロパティを除くすべてのプロパティを既定値のままにします。このプロパティの値は 400 に変更する必要があります。
[ OK] を クリックして [WCF-Custom トランスポートのプロパティ] ダイアログ ボックスを閉じ、もう一度 [OK] をクリックして BTSLoadTest.Messaging.Send を閉じます。WCF-Custom – [送信ポートのプロパティ] ダイアログ ボックス。
BizTalk Server 送信ポートによって送信されたメッセージを使用するようにコンピューターを構成する
前述のように、IndigoService.exe は WCF 経由で送信されたメッセージを使用するように設計されています。 これには次の 4 つのファイルが含まれており、IndigoService.exe実行するコンピューター上にある必要があります。
\IndigoService\bin\Release\IndigoService.exe
\IndigoService\bin\Release\IndigoService.exe.config
\IndigoService\bin\Release\Response.xml
\IndigoService\bin\Release\StartIndigoService.bat
次に、StartIndigoService.batをダブルクリックして IndigoService.exe を開始します。 IndigoService.exe は、IndigoService.exe.config ファイルで指定されたエンドポイントに送信されたメッセージを使用します。
<endpoint address="net.tcp://localhost:2001/TCP1" binding="netTcpBinding" bindingConfiguration="Binding1" name="endpoint1" contract="IndigoService.IServiceTwoWaysVoidNonTransactional" />
このため、送信ポート アドレスは net.tcp://<Computer Name>:2001/TCP1 のアドレス (URI) で構成されます。
IndigoService.exe はリソースをほとんど必要としないため、多くの場合、BizTalk Server データベースに使用される SQL Server コンピューターで IndigoService.exe を実行することは完全に許容されます。
BizTalk Server グループの追跡と制限を無効にする
システムの持続可能な最大スループットを決定するには、ロード テストを開始する前に、メッセージの追跡と調整の両方を無効にする必要があります。 これは、次の手順に従って BizTalk Server 管理コンソールを使用して行うことができます。
BizTalk Server 管理コンソールを起動します。 [ スタート] をクリックし、[ すべてのプログラム] をポイントし、[ BizTalk Server 2010 ] をポイントし、[ BizTalk Server の管理] をクリックします。
BizTalk Server 管理で、BizTalk グループが一覧に表示されている場合、または表示されていない場合は、BizTalk Server 管理を右クリックし、[既存のグループに接続] を選択し、SQL Server 名の横に BizTalk グループの BizTalk Server 管理データベースを格納する SQL Server 名を入力します。次のように、BizTalk グループの管理データベース名の名前をデータベース名の横に入力します。をクリックし、[OK] をクリックします。
BizTalk グループ ノードを右クリックし、[ 設定] を選択して BizTalk 設定ダッシュボードを表示します。
クリックして、BizTalk 設定ダッシュボードの左側のウィンドウで [ホスト ] を選択します。
[ ホスト ] の横にあるドロップダウン リストをクリックして、パフォーマンス テスト中に使用するホストの 1 つを選択します。
次の表に示す場合を除き、プロパティは既定値のままにします。
プロパティ 価値 全般\追跡データを DTA DB に移動する オンになっている場合は、このチェック ボックスをオフにします。 General\32 ビットのみ オンになっている場合は、このチェック ボックスをオフにします。 一般\ポーリング間隔\メッセージング 値 200000000 に設定 一般\ポーリング間隔\オーケストレーション 値 200000000 に設定 Resource-Based 制限処理\インプロセスメッセージ 値 10000 に設定する Resource-Based スロットリング\「内部メッセージキュー」のサイズ 値 10000 に設定する DB 内のメッセージ数制限Resource-Based Throttling 値 0 に設定 Resource-Based スロットリング\メモリ使用量\プロセスの仮想 値 0 に設定 Rate-Based スロットリング\公開\スロットリングのオーバーライド [スロットルしない] に設定 Rate-Based スロットリング\配送\スロットリングオーバーライド [スロットルしない] に設定 パフォーマンス テストの過程で使用されるすべてのホストについて、手順 6 で説明したプロセスを繰り返します。
クリックして、BizTalk 設定ダッシュボードの左側のウィンドウで ホスト インスタンス を選択します。
[ ホスト インスタンス: ] の横にあるドロップダウン リストをクリックして、パフォーマンス テストに使用するホスト インスタンスのいずれかを選択します。
.NET CLR の最大ワーカー スレッド数を 100 に変更し、.NET CLR の最小ワーカー スレッドを 25 の値に変更する以外は、プロパティ値を既定の設定のままにします。
パフォーマンス テスト中に使用されるすべてのホスト インスタンスについて、手順 10 で説明したプロセスを繰り返します。
追跡と調整を無効にしても、運用環境のシナリオで何を行うべきかを表すものではありませんが、これらの操作はパフォーマンスの観点から非常にコストがかかるため、BizTalk Server 環境の真の持続可能なスループット (MST) を調べるには無効にするのが理にかなっています。 これにより、テスト担当者は、環境に適用されたパフォーマンス調整の影響を明確に確認できます。 確かに、追跡を無効にしてはならないという引数を指定できます。BizTalk Server アプリケーションで追跡が必要になることがわかっている場合は、追跡を有効にする必要があります。 つまり、パフォーマンス テストを行うために、スロットリングを無効化するよう万全を尽くす必要があります。 調整は、運用環境での過剰な負荷が原因で BizTalk Server が "フェールオーバー" するのを防ぐのに非常に役立ちます。 ただし、パフォーマンス テスト中に調整を有効にするのは、パフォーマンスの観点からコストがかかるためです。また、ロード テスト中に調整が開始された場合、BizTalk Server アプリケーションが実際に達成できるパフォーマンスのレベルを判断するのは非常に困難であるためです。 次のトピックでは、ステップ ロード テストを実行して、BizTalk Server 環境を MST を超えてプッシュし、一定のロード テストを使用して実際の MST にスケール バックする方法について説明します。 調整が有効になっている場合、真の MST が何であるかを検出できるように、MST を超えて BizTalk 環境をプッシュすることはほぼ不可能になります。