configureWindchill
configureWindchill ターゲットの実行は、以下の複数のステップで構成されます。
1. 使用される初期設定を記録し、使用される XCONF ファイルをバックアップする
2. システムのメモリおよび CPU をチェックする
3. メモリ領域を計算する
4. サーバーマネージャとメソッドサーバーの最適な設定を計算する
5. サーバーマネージャとメソッドサーバーのその他のオプションを設定する
6. Windchill キャッシュプロパティの値を設定する
7. データベースプロパティの値を設定する
8. 対話モードで実行している場合、ターミナルウィンドウを除去し、JMX クライアントからのリモートアクセスと Garbage Collection Baiting を設定する
上記の各ステップで、必要な処理を行うために内部ターゲットが実行されます。これらのターゲットの名前は、アシスタントがターゲットを実行したときの出力に表示されます。
内部ターゲットのデフォルトは <Windchill>/utilities/wca/Configurator.properties ファイルで管理されます。これらのデフォルトはリリース時の最良事例です。最新データを入手した時点で、PTC がデフォルト値を更新する可能性があります。ここで公開されている内容はデフォルト値に基づいているので、そのまま使用しないでください。このファイルを参照すれば、Windchill Configuration Assistant を使用する前のデフォルト値を確認できます。
以下のセクションで紹介するサンプル出力は、説明をわかりやすくするためのサンプルです。特定のシステム設定に関する正確なデータを表しているわけではありません。
Windchill Configuration Assistant 実行の初期設定を記録する
Windchill Configuration Assistant の実行中、以下を含む初期化情報が記録されます。
Windchill Configuration Assistant と ANT のバージョン (initWCAVersion)
Windchill で使用されている Java のバージョン (initWindchillJavaVersion)
Windchill のバージョン (initWindchillVersion)
既存の windchillconfigurator.xconf ファイルをバックアップする
変更を行う前に、Windchill Configuration Assistant は既存の windchillconfigurator.xconf ファイルを backupXconfFile に示すようにバックアップします。
システムのメモリおよび CPU をチェックする
configureWindchill ターゲットを実行したとき、Windchill Configuration Assistant によって行われる最初のステップは、オペレーティングシステムの特性、合計メモリ、空きメモリ、およびシステムに搭載されている CPU 数の確認です。
アシスタントの初期化中に、init ターゲットを使用した以下のようなサーバー情報が報告されます。
[echo] Number of CPUs detected: 8
[echo] Physical Memory: 12285 MB
[echo] Free Memory: 8473 MB
[echo] Maximum Java heap size=8000 MB
[echo] WT_HOME=D:\PTC\Windchill
[echo] VmVendor=Oracle Corporation
[echo] Operating System=Windows 7
[echo] OS Arch=amd64
Windchill にメモリを割り当てる前に、Windchill Configuration Assistant はシステムに搭載されているメモリ容量を確認します。上記のサーバー情報は、システムに搭載されている合計メモリと現在の空きメモリを示しています。
Windchill への不適切なメモリ割り当てを防ぐため、物理メモリの 20% がオペレーティングシステムに確保されます。オペレーティングシステムにどの程度割り当てるかは、percentPhysicalMemoryReservedForOS プロパティで指定します。Windchill Configuration Assistant は、RDBMS サーバーと LDAP サーバーの場所も検出します。いずれかのサーバーが Windchill と同じホスト上で稼働するように設定されている場合は、Windchill 用の空きメモリがさらに少なくなります。
メモリ割り当ての決定をサポートするため、Windchill コンフィギュレーションアシスタントは allocatePhysmem ターゲットを呼び出します。このターゲットを対話モードで実行する場合に表示されるプロンプトでは、次のことを行えます。
割り当てるメモリのパーセンテージを指定する。
合計物理メモリまたは空きメモリに基づいて、Windchill 全体のメモリフットプリントを調整するかどうかを選択する。
空きメモリを選択した場合、計算された値をオーバーライドする空きメモリ (RAM) の量を入力可能。
デフォルトでは、検出したメモリの 80% を Windchill Configuration Assistant が使用します。したがって、このステップを実行する前に Windchill を停止してください。また、サーバー上で実行中の、Windchill に関係のないその他のアプリケーションも停止してください。
percentMemoryRegionReservedForWindchill プロパティは、Windchill で使用するメモリのパーセンテージを管理します。デフォルト値は 80 です。前述のように、デフォルト値を変更するには Configurator.properties ファイルで値を編集します。
以下の例では、8125 MB が空きメモリとして報告されています。デフォルト値 (80%) に基づき、6500 MB のメモリが Windchill に割り当てられます。
allocatePhysMem:
[input] Percent of physical memory to reserve for Operating System [20]
[echo] OS memory requirement=2457 MB
[echo] Minimum memory requirement for MethodServer: 768 MB
[echo] Minimum memory requirement for ServerManager: 144 MB
[echo] Windchill Requires a minimum of 912 MB
[echo] Total Memory requirement: 3369.0 MB
[input] Allocate Windchill Memory region from total (12285 MB) or free (8473 MB) physical memory ([free], total)
[echo] Allocating Windchill Memory region from free memory
[input] Enter % of free RAM (8473 MB) to allocate to Windchill: [80]
[echo] % free memory allocated to Windchill: 80
[echo] Windchill Memory Region= 6778 MB
メモリ領域を計算する
次のステップでは、割り当てられたメモリを Windchill Configuration Assistant が 2 つの領域に分けます。これらの領域は、メソッドサーバー用とサーバーマネージャ用です。ここでは、パーセンテージを使用して 2 つのメモリ領域が計算されます。デフォルトの割り当ては以下のとおりです。
サーバーマネージャ: 10%
メソッドサーバー: 90 %
サーバーマネージャの割当設定 (パーセンテージ) を変更するには、Configurator.properties ファイルを編集するか、Windchill Configuration Assistant を対話モードで実行して新しい値を入力します。残りのメモリはメソッドサーバーに使用されます。
以下の例では、デフォルト設定をそのまま使用しています。最終的なメモリ割り当ても示されています。
[input] Enter % of Windchill Memory (6778) to allocate to ServerManager Heap: [10]
[echo] % Windchill memory to allocate to ServerManager: 10
[echo] ServerManager memory region..... 677 MB
[echo] MethodServer memory region..... 6100 MB
サーバーマネージャとメソッドサーバーの最適な設定を計算する
メモリ領域のサイズを計算した後、Windchill Configuration Assistant は、設定するメソッドサーバーの数をチェックします。その際、メソッドサーバーのメモリ領域のサイズと CPU 数が両方とも考慮されます。
configureMethodServerService ターゲットは、オペレーティングシステムから報告された CPU 数に基づいて、メソッドサーバーとバックグラウンドメソッドサーバーの数を計算します。次に、Configurator.properties で定義されているメソッドサーバーの CPU 比率を含むルックアップテーブルを参照して、CPU 数に適したメソッドサーバーの数を決定します。別のルックアップテーブルを使用し、オペレーティングシステムおよびメソッドサーバーのメモリ領域サイズに基づいて、最適なメソッドサーバー数を決定します。複数のメソッドサーバーが推奨され、現在対話モードで実行していない場合、そのうち 1 つのメソッドサーバーがバックグラウンドメソッドサーバーとして設定されます。その他すべてのメソッドサーバーは、フォアグラウンドメソッドサーバーとして設定されます。対話モードで実行しており、複数のメソッドサーバーを実行できるだけの十分なリソースが検出された場合、バックグラウンドメソッドサーバーを設定するためのプロンプトが表示されます。バックグラウンドメソッドサーバーを設定しない場合は、このプロンプトで n を入力します。
現在の Windchill システムがクラスタに属していると判断した場合、Windchill Configuration Assistant は、クラスタマスターとして構成されているホスト上にバックグラウンドメソッドサーバーを設定する方法のみを推奨します。
複数のバックグラウンドメソッドサーバーを設定する場合、追加のバックグラウンドメソッドサーバーを手動で設定する必要があります。複数のバックグラウンドメソッドサーバーの設定については、バックグラウンドメソッドサーバーの設定を参照してください。
以下の例では、8 CPU に対して 3 つのメソッドサーバーが推奨されており、バックグラウンドメソッドサーバーの設定を指定しています。
configureMethodServerService:
[echo] Recommended number of MethodServers for 8 CPUs = 3
[echo] set outputProperty to default =3
[echo] Recommended number of MethodServers for 6100MB on Windows 7 (64bit) is 3
[echo] Recommended number of MethodServers based on available resources=3
[input] Enter number of MethodServers to configure (current=1): [3]
[input] Enter MethodServer max heap size (MB): [2033]
[echo] Setting max heap size for MethodServer to 2033
[input] Enter MethodServer initial heap size (MB): [2033]
[echo] Setting initial heap size for MethodServer to 2033
[input] Do you want to configure a BackgroundMethodServer (y/n)? ([y], n)
[echo] Configuring Background MethodServer
Windchill Configuration Assistant がバックグラウンドメソッドサーバーを設定するとき、フォアグラウンドメソッドサーバーの 1 つをバックグラウンドメソッドサーバーとして指定し、フォアグラウンドメソッドサーバーの数を 1 つ減らします。メソッドサーバー (バックグラウンドメソッドサーバーを含む) のメモリは、メソッドサーバーのメモリ領域から割り当てられます。
メソッドサーバー (バックグラウンドメソッドサーバーを含む) には、すべて同じ Java ヒープサイズが割り当てられます。メソッドサーバーのヒープ領域を、バックグラウンドメソッドサーバーとフォアグラウンドメソッドサーバーの合計数で除算した値がヒープサイズとなります。計算されたヒープサイズは、オペレーティングシステムおよびメモリモデルで指定されているヒープサイズ制限 (32 ビット、64 ビットなど) を超えることはできません。上の例では、バックグラウンドメソッドサーバーとフォアグラウンドメソッドサーバーの両方に 2033 MB のヒープが割り当てられています。
次に、サーバーマネージャのヒープサイズが設定されています。対話的に、表示されたデフォルト (allocatePhysMem で計算されたサーバーマネージャメモリ領域) を使用するか、独自の値を入力できます。次の例では、デフォルト値が使用されています。
configureServerManager:
[input] Enter ServerManager max heap size (MB): [812]
[echo] Setting max heap size for ServerManager to 812
[input] Enter ServerManager initial heap size (MB): [812]
[echo] Setting initial heap size for ServerManager to 812
メソッドサーバーの数、およびメソッドサーバーとサーバーマネージャの両方のヒープサイズを設定すると、追加の Java コマンドラインオプションが設定されます。これらのコマンドラインオプションは、ガーベジコレクションのスループットを最大化するために、ヒープ生成サイズを細かく調整します (同時実行スレッドの数を含む)。
Windchill で使用する Java コレクターでは、ガーベジコレクション全体の一時停止時間を軽減するために複数の CPU が使用されます。Windchill では単一システム上で複数の JVM が使用されます。Windchill Configuration Assistant では、メソッドサーバーとサーバーマネージャの両方のガーベジコレクションに使用できる同時実行スレッドの数を指定することで、ガーベジコレクションを調整できます。Assistant はデフォルト値を決定し、Assistant の実行時にこれらの値を表示します。次の例では、メソッドサーバーごとに 2 つのスレッドが推奨されています。
[echo] Calculated ParallelGCThreads=2
[input] Enter MethodServer parallel GC threads: [2]
次の例では、サーバーマネージャごとに 2 つのスレッドが推奨されています。
[echo] Calculated ParallelGCThreads=2
[input] Enter ServerManager parallel GC threads: [2]
Windchill キャッシュプロパティの値を設定する
Windchill アプリケーションプロパティでキャッシュが設定されます。最初に考慮されるプロパティセットは、メモリ内データキャッシュのサイズです。
最適なキャッシュ調整は容易ではありません。Windchill Configuration Assistant は、データベースの特定のテーブル内にある行数に基づいて初期キャッシュサイズを提示します。
次の Windchill キャッシュプロパティが設定されます。
wt.admin.cache.maxDomains
wt.cache.size.AclCache
wt.cache.size.EnumerationDefinitionCache
wt.cache.size.IBADefViewManager$IBADefViewCache
wt.cache.size.IndexListCache
wt.cache.size.PagingSessionCache
wt.cache.size.PolicyAcl
wt.cache.size.PreferenceCache
wt.cache.size.RoleAccessCache
wt.cache.size.SessionCache
wt.cache.size.StandardFederatedServerHelper$RemoteObjectIdCache
wt.cache.size.StandardFvService$ActiveFolderCache
wt.cache.size.StandardUfidSrvService$RemoteObjectIdCache
wt.cache.size.StructEnumAttTemplateCache
wt.cache.size.TypeDefinitionCache2
wt.cache.size.WTPrincipalCache
wt.services/rsc/default/ObjectReferenceCacheTable/ContainerCache.Size
wt.services/src/default/ObjectReferenceCacheTable/ContainerTeamCache
それぞれのキャッシュは複数のエントリで構成されており、各エントリは、対応するデータベーステーブルの 1 行を表します。Windchill のキャッシュは、最近アクセスされたデータ行 (作業セット) のみを管理するようサイズ調整する必要があります。
Windchill Configuration Assistant は、2 つの基本的なアルゴリズムを使用してキャッシュサイズを計算します。最初のキャッシュサイズアルゴリズムは、データベーステーブルの合計行数を取得し、合計テーブル行数のコンフィギュレーション可能なパーセンテージに基づいてキャッシュサイズを指定します。
コンフィギュレーション可能なパーセンテージは、Configurator.properties の以下のプロパティで指定します。
WTContainer.cache.percent
ContainerTeam.cache.percent
WTPrincipal.cache.percent
PolicyAcl.cache.percent
RemoteObjectInfo.cache.percent
AdministrativeDomain.cache.percent
Session.cache.percent
RoleAccess.cache.percent
Preference.cache.percent
PagingSession.cache.percent
IBADefinition.cache.percent
EnumerationDefinitionCache.cache.percent
LWCStructEnumAttTemplate.cache.percent
LWCTypeDefinition.cache.percent
FvVault.cache.percent
IndexPolicyList.cache.percent
2 番目のキャッシュサイズアルゴリズムは、システムで定義されているユーザー数、およびピーク負荷時に Windchill の実行を同時に要求するユーザーのパーセンテージに基づいて、キャッシュサイズを調整します。同時にアクティブになるユーザーの予測パーセンテージは、peakActiveUsersPercent プロパティで管理されます。デフォルト値は 10 です。
どちらのアルゴリズムを実行する場合でも、デフォルトのサイズと計算されたサイズのうち、いずれか大きい方が使用されます。サイズ調整アルゴリズムによるメモリ割り当てが多すぎる場合に備え、コンフィギュレーション可能なサイズ制限が各キャッシュに適用されます。前述のすべてのキャッシュの最大サイズは、Configurator.properties で定義される <キャッシュ名>.cache.size.limit プロパティで管理されます。Windchill コンフィギュレーションアシスタントを対話的に実行している場合、計算された値をオーバーライドできます。たとえば、次の行では、セッションのキャッシュプロパティが設定されています。
[echo] Named users: 100
[input] Estimated peak number of active users: [10]
[echo] Expected peak active users: 10
[echo] Configuring wt.cache.size.SessionCache currentSize=500 rowcount=100 percent=20
[input] Set Session Cache Size (max=2000): [500]
データキャッシュのサイズを計算した後、Windchill Configuration Assistant は、データベース接続、JDBC ステートメントのキャッシュサイズなどさまざまなプロパティを考慮します。これらのプロパティはすべて <Windchill>/utilities/wca/Windchill/db/db.properties にあります。これらのプロパティの多くは、ラップトップシステムや小型デスクトップシステムなど、リソースが限られている環境に適した初期サイズが指定されます。ヒープサイズが大きいサーバー上で Windchill を設定する場合は、状況に応じてこれらのプロパティを調整してください。
WTPrincipalCache サイズを手動で計算する場合、このトピックを参照してください
データベースプロパティの値を設定する
Windchill コンフィギュレーションアシスタントは、メソッドサーバーのヒープサイズに基づいて次のデータベースプロパティ値を大きくします。以下の表は、ヒープサイズと予想プロパティ値の関係を示しています (推奨値は変わる可能性があります。最新の値セットは Configurator.properties ファイルを参照してください)。
プロパティ名
<1000 MB
1000 - 1999 MB
>=2000 MB
デフォルト
wt.pom.maxDbConnections
10
15
15
10
wt.pom.minDbConnections
5
5
5
5
wt.pom.refreshCache.size
100
200
300
100
wt.pom.rowPrefetchCount
20
20
20
20
wt.pom.statementCacheSize
50
50
50
50
Windchill Configuration Assistant が考慮するその他のデータベース関連のプロパティは、メモリや CPU リソースの制約を受けません。これらのプロパティを以下の表に示します。
プロパティ名
<1000 MB
1000 - 1999 MB
>=2000 MB
デフォルト
wt.pom.inClauseBindOptimizationCardinality
-1
-1
-1
-1
wt.pom.inClauseUseBindOptimization
true
true
true
true
wt.pom.oracle.disableAlwaysSemiJoin
false
false
false
false
対話モードの設定オプション
configureWindchill ターゲットを対話モードで実行する場合、以下のセクションで説明する設定オプションも使用できます。
ターミナルウィンドウを除去する
データベースプロパティを設定した後、ターミナルウィンドウを除去するかどうかが確認されます。次のプロンプトが表示されます。
[input] Do you want to remove the xterm/cmd terminal windows (y/n)? (y, [n])
デフォルトでは除去されません。除去するには、「y」と入力します。
JMX クライアントからリモートアクセスを設定
Windchill Configuration Assistant のプロンプトに従い、JMX クライアント (JConsole など) からのリモートアクセスを許可するようにサーバーマネージャを設定します。これらのクライアントを使用して Windchill MBeans とやり取りし、アプリケーションを管理および監視できます。ただし、リモートワークステーションから JMX クライアントを使用して接続するには、別の Windchill プロパティを設定する必要があります。
2 つのアクセスモードをサポート
認証
認証リモートアクセスを設定する場合、monitorRole と controlRole という 2 つのユーザーが作成され、それぞれにパスワードが割り当てられます。<JRE>/lib/management/jmxremote.access の JDK jmxremote.access ファイルに、これら両方のユーザーのエントリが存在する必要があります。
monitorRole には読み取り専用アクセスが与えられます。
controlRole には読み取り/書き込みアクセスが与えられます。
リモートユーザーが Windchill MBean にアクセスするには、これら 2 つのうちいずれかの役割名を入力し、さらに該当するパスワードを指定する必要があります。これら 2 つの役割のユーザー名とパスワードは <Windchill>/Windchill/jmxremote.password ファイルに書き込まれます。さらに、このファイルは、サーバーマネージャ Java コマンドラインのプロパティによって参照されます。
匿名
匿名リモートアクセスが有効な場合、リモートクライアントはユーザー名やパスワードを指定しなくても接続できます。
* 
匿名ユーザーには無制限のアクセス許可が与えられます。
以下の例は、認証リモートアクセスを設定する際に表示されるプロンプトを示しています。
[input] Do you want to enable authenticated (non SSL) remote JMX access to the ServerManager(y/n)? (y, [n])
y
[echo] Configuring authenticated remote JMX access
[input] servermanager monitor role name: [monitorRole]
[input] servermanager monitor role password: [bigBrother15]
[input] servermanager control role name: [controlRole]
[input] servermanager control role password: [autoCrat100]
Garbage Collection Baiting (GCBaiter) の設定
無制限のメモリ操作によってメソッドサーバーのヒープが足りなくなるのを防ぐため、Garbage Collection Baiting (GCBaiter) と呼ばれる機能が設定されます。メソッドサーバーヒープの使用率が 100% になると、多くの場合、OutOfMemoryError が発生して JVM がクラッシュします。GCBaiter は、OutOfMemoryError が発生する前に、使用可能なヒープを最も消費しているユーザー操作を特定し、これを強制終了します。空きメモリが少なくなると、JVM によって GCBaiter が自動的に開始されます (たとえば、JVM ガーベジコレクタが SoftReferences を収集する場合など)。GCBaiter は MethodServer.gcBaiting.suggestedMinAvailableHeapPercent プロパティを使用して、メソッドサーバーの使用可能ヒープ領域が最小要件を下回った状態を検出します。
GCBaiter が使用する最小使用可能ヒープ値は、Windchill Configuration Assistant により、メソッドサーバーの最大ヒープサイズのパーセンテージとして計算されます。デフォルト値は 5%。これは MethodServer.gcBaiting.suggestedMinAvailableHeapPercent プロパティで管理されます。GCBaiting が有効な場合、Windchill Configuration Assistant は DisableExplicitGC Java コマンドラインオプションを設定しません。
以下の例は、Garbage Collection Baiting ターゲットを設定するときに表示されるプロンプトを示しています。
configureGCBaiter:
[input] Do you want to enable automatic termination of requests to avoid OutOfMemory (y/n)? ([y], n)
[input] Minimum percentage of heap available: [5]
[xslt] Processing <Windchill>\codebase\WEB-INF\methodServerMBeanConfig.xml to <Windchill>\utilities\wca\conf\windchillmethodServerMBeanConfig.xml
[xslt] Loading stylesheet <Windchill>\utilities\wca\GCBaiter.xsl
[xslt] Add minAvailableHeapThreshold: 5
これは役に立ちましたか?