高度なカスタマイズ > Windchill アダプタ > Windchill アダプタ Webject の使用 > INSTANCE パラメータを使用したアダプタの名前の指定
INSTANCE パラメータを使用したアダプタの名前の指定
INSTANCE パラメータは、Webject を実行するアダプタの名前を指定します。アダプタ名は、Windchill 環境での使用のためにアダプタを設定する際に定義されます。このパラメータは必須です。
特定のアダプタを使用できない場合にほかのアダプタに接続できるように、このパラメータには複数の値を指定できます。Info*Engine は、決められた順番にアダプタへの接続を試みます。指定された最初のアダプタが利用できない場合は、リストの次のアダプタへの接続を試行し、接続が確立されるまで続行します。リストされているどのアダプタとも接続できない場合は、エラーを返します。
このパラメータとともに、フェイルオーバーとロードバランスを有効にする CONNECTION_ATTEMPTS および CONNECTION_ATTEMPT_INTERVAL パラメータを設定できます。
CONNECTION_ATTEMPTS
エラーを返す前にアダプタの接続の確立を試行する最大回数を定義します。デフォルト値は 1 です。このパラメータはオプションです。
複数の INSTANCE パラメータ値を指定する場合、CONNECTION_ATTEMPTS の値は、アダプタインスタンスのリストを繰り返す最大数を定義します。
CONNECTION_ATTEMPT_INTERVAL
接続の試行間の遅延時間を秒単位で定義します。デフォルト値は 60 秒です。このパラメータはオプションです。
複数の INSTANCE パラメータ値が指定されている場合、CONNECTION_ATTEMPT_INTERVAL の値は、アダプタインスタンスのリスト全体を繰り返す試行間の待機秒数を定義します。
アダプタ名の手動設定
Info*Engine プロパティ管理ユーティリティを使用してアダプタを設定する場合は、INSTANCE パラメータ内で使用するアダプタ名を定義します。
アダプタ名は次のいずれかのフォームになります。
単純名。
この名前は、 プロパティ管理 LDAP フォームの「サービス名」Info*Engineフィールドで定義します。
単純名は、アダプタの LDAP エントリの ptcServiceName 属性に保存されます。単純名を使用するには、アダプタの LDAP エントリが、ネーミングサービスのサーチパス内に配置されている必要があります。
たとえば、"com.myCompany.myHost.windchill" が、ネーミングサービスのサーチパス内に配置されているアダプタ LDAP エントリの ptcServiceName 属性である場合、以下の INSTANCE パラメータを使用できます。
<ie:param name="INSTANCE" data="com.myCompany.myHost.windchill"/>
完全修飾識別名。
アダプタを設定する場合は、Info*Engine プロパティ管理フォームを使用して識別名を指定します。完全修飾識別名は、ptcServiceName 属性と、LDAP エントリの場所を定義するその他の属性で構成されます。
たとえば、"com.myCompany.myHost.windchill" エントリが "dc=IeProps,dc=myHost,dc=myCompany, dc=com,ou=Applications,o=myCompany" で "host1" に配置されているとします。以下の INSTANCE パラメータを使用できます。
<ie:param name="INSTANCE" data="ldap://host1/
ptcServiceName=com.myCompany.myHost.windchill,
dc=IeProps,dc=myHost,dc=myCompany,dc=com,
ou=Applications,o=myCompany"/>
ドメインベース参照名。
この名前を使用して識別名を指定することも可能です。Info*Engine のドメインベース参照名では、次のフォーマットが使用されます。
ptcServiceName@dc_attributes
ptcServiceName は、ptcServiceName 属性の値です。
dc_attributes は、LDAP エントリのドメインの場所を構成する dc 属性です。各属性はピリオドで区切ります。
ドメインベース参照名を使用できるのは、次の状況のみです。
Info*Engine エントリが配置されている LDAP ディレクトリが、ルートレベルエントリとして dc=com を使用し、サブツリーエントリにその他の dc 属性を使用して構築されている場合。
ネーミングサービスの .serviceDomainBase  プロパティがエントリの識別名に使用される属性をドメインの後ろに配置するように設定されている場合。
たとえば、ptcServiceName 属性値が "com.myCompany.myHost.windchill" で、エントリが "dc=myHost,dc=myCompany,dc=com,ou=Applications, o=myCompany" ブランチに配置されている場合、.serviceDomainBase プロパティが "ou=Applications,o=myCompany" に設定されていると、INSTANCE パラメータ内では次のようなドメインベース参照名しか使用できません。
<ie:param name="INSTANCE" data="com.myCompany.myHost.
windchill@myHost.myCompany.com"/>
Info*Engine プロパティを設定するには、.serviceDomainBase の「プロパティ管理」ユーティリティを使用します。
プログラムによるアダプタ名の検出
* 
前の例では、Windchill アダプタの INSTANCE パラメータ名をハードコード化する方法を示しています。これは、手動で修正しないと、ほかのインストールで再使用できないという意味なので、タスクを作成する際に望ましいオプションではありません。
Windchill アダプタ名を検出するには、システム設定を使用するのが最適です。
タスクを JCA クライアントで使用するために作成する場合、supporting-adapter 入力パラメータを使用して、どのアダプタでシステムが設定されているかを調べる必要があります。
そうしないと、システム設定が無効になります。この場合、インスタンスパラメータは以下のようになります。
<ie:param name="INSTANCE" data="$(@FORM[]supporting-adapter[*])"
valueSeparator=";" delim=";"/>
タスクが JCA クライアントから呼び出されると、supporting-adapter 入力パラメータはシステムの設定に基づいて提供されます。通常、これは Windchill アダプタ Webject の INSTANCE パラメータを指定する最も一般的な方法です。
タスクが JCA クライアントで使用する対象でない場合は通常、Get-Properties MGT Webject を使用して wt.federation.ie.VMName プロパティを呼び出し、インスタンスパラメータへの入力として使用します。
<ie:webject name="Get-Properties" type="MGT">
<ie:param name="ATTRIBUTE" data="wt.federation.ie.VMName" />
<ie:param name="GROUP_OUT" data="properties" />
</ie:webject>
...
<ie:param name="INSTANCE"
data="$(properties[0]wt.federation.ie.VMName[0])" />
また、サーブレットでの実行中に VMName プロパティまたはシステムプロパティオブジェクトのいずれかを使用して Info*Engine から呼び出すことにより、INSTANCE パラメータの値をプログラムで提供できます。
例:
<%
String vmName = com.infoengine.au.NamingService.getVMName();
// if running in the servlet engine vmName points to the servlet's
// name and not the adapter's name
// the servlet will be configured with its server name pointing to
// the adapter
vmName = System.getProperty ( vmName + ".ieServerName", vmName );
// now VMName should point to the current Windchill adapter
// regardless of whether the task is being runn in the server or
// servlet engine
%>
...
<ie:param name="INSTANCE" data="$(@FORM[]supporting-adapter[*])"
valueSeparator=";" delim=";" default="<%=vmName%>" />
これは役に立ちましたか?