10 トークンおよび論理クラスタの使用

ジョブ定義をテスト環境から本番環境に簡単に移植できるようにするには、ジョブ定義にホスト名やポート番号など環境固有の情報を含めないようにするのが最善の方法です。Oracle Enterprise Schedulerのトークン置換および論理クラスタ機能では、T2Pプロセス中にターゲット・デプロイメントに正しく適合するよう簡単に変更できるようにメタデータを抽象化できます。

この章の構成は、次のとおりです。

10.1 トークン置換の使用

構成の柔軟性を高め、プロビジョニングの必要性を削減するために、Oracle Enterprise Schedulerでは、置換可能トークンをリクエスト・パラメータおよび環境プロパティに含めることができます。

トークンの形式は、${TokenPrefix:token}となります。

ここでのtokenはトークンの名前で、TokenPrefixには置換値が指定されます。サポートされているトークンの接頭辞は、APP_ENVESS_ENVおよびESS_REQです。次に示す例は単純ですが、Oracle Enterprise Schedulerの置換機能を表しています。

  • APP_ENV

    置換値は、アプリケーション環境プロパティから取得されます。

    たとえば、次の環境変数は、Oracle Enterprise Manager Fusion Middleware ControlまたはWLSTを使用して、ホスティング・アプリケーションの構成プロパティで指定されます。

    AppEnvVar1=foo

    リクエスト・パラメータはジョブ定義で指定されます。

    MyParam=${APP_ENV:appEnvVar1}

    置換後、MyParamの値はfooです。

  • ESS_ENV

    置換値は、Oracle Enterprise Schedulerサーバー環境から取得されます。これには、次の3つの可能なソースがあります。

    • JVMシステム・プロパティ: トークン値は、システム・プロパティの名前です。

    • JVM環境変数: トークン値は、環境変数の名前です。

    • JRF: トークン値は、jrfServerLogPathjrfServerConfigDirectoryおよびjrfDomainConfigDirectoryです。

    次の例は、ホスティング・アプリケーション構成プロパティ内の環境変数の仕様におけるESS_ENVトークン接頭辞の使用方法を示しています。

    wlstLocation = ${ESS_ENV:common.components.home}/common/bin/wlst.sh

    置換の実行時、Oracle Enterprise Schedulerプロセス・ジョブ環境には、値が完全パスであるwlstLocationという名前の環境変数が含まれます。次に例を示します。

    /myInstallHome/mw_home/oracle_common/common/bin/wlst.sh

  • ESS_REQ

    ESS_REQ置換は、対象のOracle Enterprise Schedulerリクエスト固有の情報から取得されます。サポートされているトークンは次のとおりです。

    • REQUEST_ID

    • REQUEST_HANDLE

    • IS_RESUMED

    • PAUSED_STATE

    • リクエストのリクエスト・パラメータ名

10.1.1 ネストされている置換

最上位レベルの置換の実行時に、ネストされている置換は自動的に解決されます。たとえば、次のリクエスト・パラメータはプロセス・ジョブのジョブ定義で指定されます。

MyParam1=${ESS_REQ:MyParam2}
MyParam2=${APP_ENV:MyEnvProp1}

アプリケーションの環境プロパティには次が含まれます。

MyEnvProp1=${ESS_ENV:weblogic.Name}

JVMシステム・プロパティweblogic.Nameの値は、ess_server1と類似したものです。MyParam1で置換が実行されると、MyParam2の値に解決され、次にMyEnvProp1の値に解決されます。ネストされている置換の結果として、MyParam1の値はess_server1となります。

10.1.2 自動置換

Oracle Enterprise Schedulerの自動置換は、プロセス・ジョブ・コマンド行および環境プロパティの他、EJBおよびWebサービス・ジョブによって使用されるリクエスト・プロパティで使用可能です。

以下のセクションには、EJBジョブ、Webサービス・ジョブおよびプロセス・ジョブに対して自動的に置換されるリクエスト・パラメータがリストされています。

これらのプロパティの詳細は、次の章を参照してください。

EJBジョブ・タイプの自動置換プロパティ

EJBジョブ・タイプに対して自動的に置換されるプロパティは次のとおりです。

  • SYS_EXT_jndiProviderUrl

  • SYS_EXT_essRuntimeJndiMappedName

  • SYS_EXT_essMetadataJndiMappedName

  • SYS_EXT_essAsyncRequestJndiMappedName

  • SYS_EXT_essJndiCsfKey

  • SYS_EXT_invokeMessage

Webサービス・ジョブ・タイプ: 自動置換プロパティ

Webサービス・ジョブ・タイプに対して自動的に置換されるプロパティは次のとおりです。

  • SYS_EXT_wsEndpointBaseUrl

  • SYS_EXT_wsEndpointUrl

  • SYS_EXT_wsWsdlBaseUrl

  • SYS_EXT_wsWsdlUrl

  • SYS_EXT_invokeMessage

  • SYS_EXT_wsCancelMessage

プロセス・ジョブ・タイプ: 自動置換プロパティ

プロセス・ジョブ・タイプに対して自動的に置換されるプロパティは次のとおりです。

  • SYS_cmdLine

  • SYS_EXT_cmdLine.Unix

  • SYS_EXT_cmdLine.Windows

  • SYS_environmentVariables

10.2 論理クラスタの使用

Oracle Enterprise Schedulerでは、EJBおよびWebサービスのジョブに抽象的なジョブの場所を定義できる手段が提供されています。ジョブの場所は、Oracle Enterprise SchedulerのSYS_logicalClusterNameシステム・プロパティで指定し、論理クラスタ名(LCN)を指定します。

EJBまたはWebサービス・ジョブのジョブ定義によりLCNの値が指定される場合、特定の環境固有のプロパティは、Oracle Enterprise Manager Fusion Middleware ControlまたはWLSTコマンドを使用して、ジョブ定義ではなくホスティング・アプリケーション・レベルで指定されます。同じLCNを持つすべてのジョブ定義は、Oracle Enterprise Manager Fusion Middleware ControlまたはWLSTコマンドを使用してホスティング・アプリケーション構成プロパティに入力されたプロパティ値を共有します。

ノート:

Oracle Enterprise Manager Fusion Middleware Controlは、論理クラスタ機能を「ジョブの場所」と呼びます。「論理クラスタ」および「ジョブの場所」という用語は同じ意味で使用できます。

ジョブ定義によりSYS_logicalClusterNameプロパティの値が指定されている場合、値は、論理クラスタの属性を定義するアプリケーション構成プロパティのセットに対する接頭辞として使用されます。表10-1は、ジョブの場所に関連付けられているプロパティをリストしており、ここでのprefixは論理クラスタ名を表します。これらのプロパティがホスティング・アプリケーションで構成されている場合、指定する必要があることに注意してください。

表10-1 ジョブの場所に関連付けられているプロパティ

プロパティ名 対応するシステム・プロパティ 説明

LCN.prefix.JndiProviderUrl

SYS_EXT_jndiProviderUrl

クラスタのJNDIプロバイダEJBジョブ・タイプで使用します。対応するシステム・プロパティであるSYS_EXT_jndiProviderUrlは、ジョブ内で指定しないようにする必要があります。

LCN.prefix.WsEndpointBaseUrl

SYS_EXT_wsEndpointBaseUrl

ホストとポート。たとえば、http://host:port/のようになります。EJBジョブ・タイプで使用します。対応するシステム・プロパティであるSYS_EXT_wsEndpointBaseUrlは、ジョブ内で指定しないようにする必要があります。

LCN.prefix.WsWsdlBaseUrl

SYS_EXT_wsWsdlBaseUrl

WSDLのホストとポート。たとえば、http://host:port/のようになります。EJBジョブ・タイプで使用します。対応するシステム・プロパティであるSYS_EXT_wsWsdlBaseUrlは、ジョブ内で指定しないようにする必要があります。

たとえば、ジョブによりSYS_logicalClusterNameプロパティがSOA_Cluster1として定義されている場合、アプリケーション構成には、次のプロパティが含まれている場合があります。

LCN.SOA_Cluster1.WsEndpointBaseURL=http://host:port/
LCN.SOA_Cluster1.WsWsdlBaseURL=http://host:port/
LCN.SOA_Cluster1.JndiProviderURL=t3://host1;port1;host2:port2/

ノート:

SYS_logicalClusterNameプロパティの値には、「.」文字を含められません。