インストールおよびアップグレード > 高度な展開の検討事項 > 高度な Windchill 設定 > バックグラウンドメソッドサーバーの設定 > 複数のバックグラウンドメソッドサーバーの設定
  
複数のバックグラウンドメソッドサーバーの設定
複数のバックグラウンドメソッドサーバーの設定では、以下の作業を行います。
バックグラウンドメソッドサーバーごとに、新しいサービス名を決定し、対応する起動コマンドのプロパティを作成する。
新しい各サービス名をサーバーマネージャが監視するサービスのリストに追加する。
バックグラウンドメソッドサーバーに対応する起動コマンドのプロパティを作成するには、wt.manager.cmd.BackgroundMethodServer プロパティのデフォルトを多数使用できます。必要な場合のみ、wt.manager.cmd.BackgroundMethodServer プロパティ内でネステッドされたプロパティに値を指定して、デフォルトをオーバーライドします。以下のフォーマットを使用して、新しいプロパティに名前を付けます。
wt.manager.cmd.<サービス名>
ここで、<サービス名> は、新しいバックグラウンドメソッドサーバーの名前です。
バックグラウンドメソッドサーバーを 1 つだけ使用する場合、サービス名は BackgroundMethodServer になります。バックグラウンドメソッドサーバーが複数ある場合の Windchill の一般的な命名規則では、下線と 0 から始まる番号が追加されます。たとえば、バックグラウンドメソッドサーバーが 3 つある場合は、以下の名前を使用できます。
BackgroundMS_0
BackgroundMS_1
BackgroundMS_2
以下のプロパティによって、wt.manager.cmd.BackgroundMethodServer プロパティのデフォルトを使用する、"BackgroundMS_1" という名前の新しいバックグラウンドサーバーを設定します。
wt.manager.cmd.BackgroundMS_1=$(wt.manager.cmd.BackgroundMethodServer)
wt.manager.cmd.BackgroundMS_1Launcher=
$(wt.manager.cmd.BackgroundMethodServerLauncher)
また、wt.manager.cmd.BackgroundMethodServer プロパティによって設定される以下のデフォルトを変更します。
通常、サーバーマネージャは、メソッドサーバーが応答不能になった場合に代替メソッドサーバーを起動します。ただし、サービス名が「BackgroundMethodServer」の場合、起動は行われません。このサービス名が使用されている場合、サーバーマネージャは、新しいインスタンスを起動する前に、前のインスタンスが単に停止しているのでなく、確かに存在しなくなっていることを確認します。前のインスタンスが存在しなくなっていることの確認は、データが破損する危険性を避ける上で重要です。"BackgroundMethodServer" という名前ではないバックグラウンドメソッドサーバーのインスタンスを 1 つだけ使用するには、次のプロパティを設定します。
wt.manager.cmd.BackgroundMS_1.singleton.enforce=true
メソッドサーバーの最大ヒープサイズは、wt.method.maxHeap プロパティで設定されます。"BackgroundMethodServer" という名前のサービスの場合、このサイズはオーバーライドされます。このサービスは、wt.method.bg.maxHeap プロパティで設定された値を使用します。"BackgroundMethodServer" という名前ではないバックグラウンドメソッドサーバーで、wt.method.bg.maxHeap プロパティで設定された値を使用するには、次のプロパティを設定します。
wt.manager.cmd.BackgroundMS_1.param.4=$(wt.method.bg.maxHeap)
代案としては、wt.method.bg.maxHeap プロパティに保存される値に設定する代わりに、このプロパティをバックグラウンドメソッドサーバーごとに異なる値に設定できます。
wt.manager.cmd.BackgroundMethodServer が設定するキューグループ名は、「デフォルト」です。次のプロパティを設定して、このキューグループ名をバックグラウンドメソッドサーバーに設定したグループ名に変更します。
wt.manager.cmd.BackgroundMS_1.param.5=<グループのリスト>
ここで、<グループのリスト> は、コンマ区切りのグループ名リストです。
BackgroundMethodServer を使用するようにシステムが設定されている場合、デフォルトでは、BackgroundMethodServer によって、Solr Web アプリケーションを含む Embedded Servlet Engine が実行されます。Solr Web アプリケーションは Windchill でサーチ機能を実行します。Windchill システム全体 (すべてのクラスタを含む) で 1 つの BackgroundMethodServer だけが、Solr Web アプリケーションを含む Embedded Servlet Engine を 1 つだけ実行します。ほかのバックグラウンドメソッドサーバーの Embedded Servlet Engine はすべて無効にする必要があります。
バックグラウンドメソッドサーバーで Embedded Servlet Engine を無効にするには、以下のプロパティを空の値に設定します。
wt.manager.cmd.<サービス名>.param.12
ここで、<サービス名> は、バックグラウンドメソッドサーバーの名前です。
たとえば、BackgroundMS_0 と BackgroundMS_1 という 2 つの BackgroundMethodServer が設定されており、BackgroundMS_0 を使用して Solr Web アプリケーションを実行している場合、BackgroundMS_1 の Embedded Servlet Engine を無効にするには、以下のプロパティを設定する必要があります。
wt.manager.cmd.BackgroundMS_1.param.12=
キューのグループ化の詳細については、バックグラウンドメソッドサーバー間で分散するためのキューのグループ化を参照してください。「デフォルト」キューグループを必ず 1 つのバックグラウンドメソッドサーバーに含めます。
* 
バックグラウンドメソッドサーバーの最小ポート番号が 3000 になるよう、wt.manager.cmd.BackgroundMethodServer プロパティは、wt.method.minPort プロパティの値をオーバーライドします。バックグラウンドメソッドサーバーごとにこの値を変更する必要はありません。使用環境で、ポート番号が 3000 から始まることが不適切であると考えられる場合は、wt.manager.cmd.BackgroundMethodServer のポート指定を変更して、3000 以外の番号をするだけです。
バックグラウンドメソッドサーバーの作成に使用する、ネステッドされたプロパティの詳細情報については、<Windchill>/codebase ディレクトリにある properties.html のプロパティに関する説明、および <Windchill>/codebase/wt/clients/library/api ディレクトリにある wt.manager.cmd.MethodServerLauncher クラスとその基本クラス wt.manager.BaseServerLauncher に関する Javadoc を参照してください。
キューグループを設定した後、xconfmanager を使用して、新しいバックグラウンドメソッドサーバーごとにプロパティを設定し、反映させます。たとえば、以下のような 2 つのバックグラウンドメソッドサーバーを設定するとします。
サービス名 : BackgroundMS_0、BackgroundMS_1
Solr Web アプリケーションを含む Embedded Servlet Engine は BackgroundMS_0 のみで設定されます。
バックグラウンドメソッドサーバーの最大ヒープサイズは、wt.method.bg.maxHeap で設定されます。
"group0" および "group1" という名前のキューグループ。"qroup0" は "BackgroundMS_0" に割り当てられ、group1 および Default は "BackgroundMS_1" に割り当てられます。
以下の xconfmanager コマンドを入力します。
xconfmanager -s
"wt.manager.cmd.BackgroundMS_0=$(wt.manager.cmd.BackgroundMethodServer)"
-s "wt.manager.cmd.BackgroundMS_0Launcher=
$(wt.manager.cmd.BackgroundMethodServerLauncher)"
-s wt.manager.cmd.BackgroundMS_0.singleton.enforce=true
-s "wt.manager.cmd.BackgroundMS_0.param.4=$(wt.method.bg.maxHeap)"
-s wt.manager.cmd.BackgroundMS_0.param.5=group0
-p
xconfmanager -s
"wt.manager.cmd.BackgroundMS_1=$(wt.manager.cmd.BackgroundMethodServer)"
-s "wt.manager.cmd.BackgroundMS_1Launcher=
$(wt.manager.cmd.BackgroundMethodServerLauncher)"
-s wt.manager.cmd.BackgroundMS_1.singleton.enforce=true
-s "wt.manager.cmd.BackgroundMS_1.param.4=$(wt.method.bg.maxHeap)"
-s "wt.manager.cmd.BackgroundMS_1.param.5=group1,Default"
-s wt.manager.cmd.BackgroundMS_1.param.12=
-p
* 
1 行に 1 コマンドずつ入力します。二重引用符を使用すると、$ 文字が可変指示子として正しく読み取られます。UNIX システムでは、$ 文字を \ 文字でエスケープする必要があります。以下に例を示します。
"wt.manager.cmd.BackgroundMS_0=\$(wt.manager.cmd.BackgroundMethodServer)"
新しいプロパティを設定した後、新しいバックグラウンドメソッドサーバーを含めるように、update wt.manager.monitor.services も更新する必要があります。
たとえば、メソッドサーバーと 2 つのバックグラウンドメソッドサーバーを監視するには、以下の xconfmanager コマンドを使用します。
xconfmanager -s
wt.manager.monitor.services="MethodServer BackgroundMS_0 BackgroundMS_1" -p
可用性の高いキュー処理を設定するには、同じキューグループを処理する 2 つのバックグラウンドメソッドサーバーを設定します。たとえば、以下のような 3 つのバックグラウンドメソッドサーバーを設定するとします。
サービス名: BackgroundMS_0、BackgroundMS_1、BackgroundMS_2
Solr Web アプリケーションを含む Embedded Servlet Engine は BackgroundMS_0 のみで設定されます。
バックグラウンドメソッドサーバーの最大ヒープサイズは、wt.method.bg.maxHeap で設定されます。
"group1" および "group0" という名前のキューグループ。"qroup0" は "BackgroundMS_0" に割り当てられ、"group1" および "Default" は "BackgroundMS_1" と "BackgroundMS_2" の両方に割り当てられます。
以下の xconfmanager コマンドを入力します。
xconfmanager -s
"wt.manager.cmd.BackgroundMS_0=$(wt.manager.cmd.BackgroundMethodServer)"
-s "wt.manager.cmd.BackgroundMS_0Launcher=
$(wt.manager.cmd.BackgroundMethodServerLauncher)"
-s wt.manager.cmd.BackgroundMS_0.singleton.enforce=true
-s "wt.manager.cmd.BackgroundMS_0.param.4=$(wt.method.bg.maxHeap)"
-s wt.manager.cmd.BackgroundMS_0.param.5=group0
-p
xconfmanager -s
"wt.manager.cmd.BackgroundMS_1=$(wt.manager.cmd.BackgroundMethodServer)"
-s "wt.manager.cmd.BackgroundMS_1Launcher=
$(wt.manager.cmd.BackgroundMethodServerLauncher)"
-s wt.manager.cmd.BackgroundMS_1.singleton.enforce=true
-s "wt.manager.cmd.BackgroundMS_1.param.4=$(wt.method.bg.maxHeap)"
-s "wt.manager.cmd.BackgroundMS_1.param.5=group1,Default"
-s wt.manager.cmd.BackgroundMS_1.param.12=
-p
xconfmanager -s
"wt.manager.cmd.BackgroundMS_2=$(wt.manager.cmd.BackgroundMethodServer)"
-s "wt.manager.cmd.BackgroundMS_2Launcher=
$(wt.manager.cmd.BackgroundMethodServerLauncher)"
-s wt.manager.cmd.BackgroundMS_2.singleton.enforce=true
-s "wt.manager.cmd.BackgroundMS_2.param.4=$(wt.method.bg.maxHeap)"
-s "wt.manager.cmd.BackgroundMS_2.param.5=group1,Default"
-s wt.manager.cmd.BackgroundMS_2.param.12=
-p
* 
可用性の高いキュー処理の設定を考慮する場合は、高可用性 Windchill クラスタでの Worker Agent の設定で詳細を参照してください。