Java Required Files (JRF)ドメインは、Oracleビジネス・アプリケーションおよびアプリケーション・フレームワークに共通の機能を提供するWebLogic Serverインストールに含まれていないコンポーネントで構成されます。 これらは、共通のロケーションにデプロイされている、個別に開発された多数のライブラリおよびアプリケーションで構成されます。
通常、JRFドメインはFusion Middleware製品で使用されます。 JRFドメインにはデータベース要件があります。 データベース・コンポーネントは、リポジトリ作成ユーティリティ(RCU)を使用して作成されます。JRFベースのドメインを作成する前に、新しいRCUスキーマが作成されます。
オペレータがJRFドメインを作成するには、WDTモデルにdomainInfo
のRCUDbInfo
セクションが必要です。 これは、一般的なJRFドメインのサンプル・モデル・スニペットです
domainInfo:
RCUDbInfo:
rcu_prefix: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:rcu_prefix@@'
rcu_schema_password: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:rcu_schema_password@@'
rcu_db_conn_string: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:rcu_db_conn_string@@'
# DBA credentials: required if operator is running the rcu in Domain On PV
rcu_db_user: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:dba_user@@'
rcu_admin_password: '@@SECRET:@@ENV:DOMAIN_UID@@-rcu-access:dba_password@@'
詳細は、「WebLogic Deploy Toolingデータベースへの接続」を参照してください。
JRFドメインは、RCUスキーマと1対1の関係を持ちます。 特定のRCUスキーマを使用してドメインを作成した後、そのスキーマを別のドメインで再利用することはできず、同じスキーマを異なるドメイン間で共有することもできません。 すでに使用されたスキーマを使用して新しいドメインを作成しようとすると、エラーが発生します。
ドメイン・ホームが正しくバックアップされていない場合、ドメイン・ホームが破損または削除されると、既存のデータが失われる可能性があります。 これは、ドメインを再作成するには、既存のRCUスキーマを削除し、新しいRCUスキーマを作成する必要があるためです。 したがって、既存のドメイン・ホームのバックアップは、Kubernetes環境で最も高い優先度である必要があります。
これは、初期デプロイメント後にドメインが継続的に更新されるDomain on PVデプロイメントでは特に重要です。 たとえば、新しいアプリケーションをすでにデプロイし、カスタムOPSSキーストアを追加し、OWSMポリシーを追加したとします。 ドメインの作成に使用された元のモデルは、ドメインの既存の状態と一致しない(モデルは信頼できるソースではない)ため、元のモデルを使用してドメインを再度作成すると、行ったすべての更新が失われます。 ドメインの更新を保持するには、ドメイン・ホーム・ディレクトリのバックアップ・コピーからドメインをリストアし、データベース・バックアップから既存のRCUスキーマに接続する必要があります。
ドメインの作成後、オペレータはOPSSウォレットを自動的にエクスポートし、イントロスペクタConfigMapに格納します。ConfigMapの名前は、パターン<domain uid>-weblogic-domain-introspect-cm
の後にキーewallet.p12
が付きます。 このファイルをエクスポートして安全な場所に配置します。 オペレータは、このファイルを抽出してKubernetes walletFileSecret
に格納するための「OPSSウォレット・ユーティリティ」を提供します。 また、Kubernetesの外部で、安全にバックアップされたロケーションにウォレット・ファイルを保存する必要があります。
たとえば、
$ opss-wallet.sh -n sample-ns -d sample-domain1 -s -r -wf /tmp/ewallet.p12 -ws jrf-wallet-file-secret
JRFドメインが作成されると、ドメイン・ホームが存在するファイル・システムにOPSSウォレットが格納されます。 この特定のウォレット・キーをエクスポートして、新しいドメインを作成するために使用できます。 この特定のウォレット・キーなしで元のRCUスキーマを再利用する方法はありません。 したがって、障害時リカバリの場合は、「このOPSSウォレットをバックアップする必要があります」です。
オペレータがJRFドメインを作成すると、OPSSウォレットがConfigMapに格納されます。 「OPSSウォレットをダウンロードして保存」を参照してください。
Oracleでは、最初のJRFドメインの作成後に、OPSSウォレット・ファイルを安全なバックアップ・ロケーション「すぐに」に保存することをお薦めします。 また、必ず同じネームスペースのKubernetesシークレットにウォレットを格納してください。 これにより、ディザスタ・シナリオでドメインをリカバリする必要がある場合、またはドメイン・ディレクトリが破損した場合に、シークレットを使用できるようになります。
ドメイン・リソースのYAMLファイルでは、configuration.initializeDomainOnPV.domain
の下のopss
セクションに2つのシークレットを指定できます:
...
# For domain on PV, opss settings are under `configuration.initializeDomainOnPV.domain.opss`
# DO NOT specify it under `configuration`
#
configuration:
initializeDomainOnPV:
...
domain:
createIfNotExists: Domain
domainType: JRF
...
opss:
walletFileSecret: jrf-wallet-file-secret
walletPasswordSecret: sample-domain1-opss-wallet-password-secret
walletPasswordSecret
は、初期デプロイメント時に必要です。 このシークレットには、エクスポートされたOPSSウォレットの暗号化に使用されるパスワードが含まれています。 Kubernetesシークレットは、パスワードを含むキーwalletPassword
を使用して作成できます。 パスワードは、8文字以上の長さで、数字または特殊文字と組み合わせたアルファベット文字を含める必要があります。
ドメイン・ホーム・ディレクトリが破損しており、ドメイン・ホーム・ディレクトリの最近のバックアップがある場合は、次のステップを実行してドメインをリカバリします。
バックアップ・コピーからドメイン・ホーム・ディレクトリをリストアします。
ドメインを再起動するには、ドメイン・リソースのrestartVersion
を更新します。 たとえば、
$ kubectl -n sample-ns patch domain sample-domain1 --type='JSON' -p='[ { "op" : "replace", "path" : "/spec/restartVersion", "value" : "15" }]'
ドメインの再起動後、WebLogicドメイン構成を確認し、最新の変更があることを確認します。 ノート: 前回のバックアップ後にドメイン・ホーム・ディレクトリに保持されている変更を行った場合は、それらの変更をドメイン・ホーム・ディレクトリに再適用する必要があります。 ただし、オペレータが同じRCUスキーマに再接続されるため、OPSS表、MDS表またはOWSM表に格納されているデータが最新になります。
最後のバックアップの後、ドメイン・ホーム・ディレクトリ(データ・ソース接続、JMS宛先、新しいアプリケーションEARデプロイメントなど)に保持されているドメイン構成の変更をすべて再適用します。 これらの変更を行うには、WLST、WebLogic Server管理コンソールまたはEnterprise Managerを使用します。
ドメイン・ホーム・ディレクトリが破損し、ドメイン・ホーム・ディレクトリの最新のバックアップがない場合、またはバックアップ・コピーも破損している場合は、RCUスキーマ・データを失うことなく、WDTモデル・ファイルからドメインを再作成できます。
PVの既存のドメイン・ホーム・ディレクトリを削除します。
walletFileSecret
を指定 - 以前に作成したエクスポートされたOPSSウォレット・ファイルewallet.p12
を含むwalletFile
キーを持つKubernetesシークレット。
たとえば、
$ kubectl -n sample-ns patch domain sample-domain1 --type='JSON' -p='[ { "op" : "add", "path" : "/spec/configuration/initializeDomainOnPV/domain/opss/walletFileSecret", "value" : "jrf-wallet-file-secret" }]'
ドメイン・リソースのintrospectVersion
を更新します。
$ kubectl -n sample-ns patch domain sample-domain1 --type='JSON' -p='[ { "op" : "replace", "path" : "/spec/intropsectVersion", "value" : "15" }]'
オペレータは、既存のWDTモデルから新しいドメインを作成し、元のRCUスキーマを再利用します。
ノート: 最初のデプロイメント後にドメインに加えられたすべての更新は、回復されたドメインでは使用できません。 ただし、これにより、すべてのデータを失うことなく、元のRCUスキーマ・データベースにアクセスできます。
ドメイン・ホーム・ファイル・システムに保持されているすべてのドメイン構成変更(データ・ソース接続、JMS宛先、新しいアプリケーションEARデプロイメントなど)を適用します。この変更は、WDTモデル・ファイルには含まれません。 これらは、初期ドメイン・デプロイメント後に行った変更です。
ドメインを再起動するには、ドメイン・リソースのrestartVersion
を更新します。
$ kubectl -n sample-ns patch domain sample-domain1 --type='JSON' -p='[ { "op" : "replace", "path" : "/spec/restartVersion", "value" : "15" }]'
ノート: Model in ImageドメインでのJRFサポートは、オペレータ・バージョン4.1.0以降非推奨になりました。かわりに、Domain on PV ドメイン・ホーム・ソース・タイプを使用してください。
JRFドメインが作成されると、ドメイン・ホームが存在するファイル・システムにOPSSウォレットが格納されます。 この特定のウォレット・キーをエクスポートして、新しいドメインを作成するために使用できます。 この特定のウォレット・キーなしで元のRCUスキーマを再利用する方法はありません。 したがって、障害時リカバリの場合は、「このOPSSウォレットをバックアップする必要があります」です。
オペレータがJRFドメインを作成すると、OPSSウォレットがConfigMapに格納されます。 「OPSSウォレットをダウンロードして保存」を参照してください。
ドメイン・リソースのYAMLファイルでは、configuration
の下のopss
セクションに2つのシークレットを指定できます:
configuration:
model:
...
opss:
walletFileSecret: jrf-wallet-file-secret
walletPasswordSecret: sample-domain1-opss-wallet-password-secret
walletPasswordSecret
は、初期デプロイメント時に必要です。 このシークレットには、エクスポートされたOPSSウォレットの暗号化に使用されるパスワードが含まれています。 Kubernetesシークレットは、パスワードを含むキーwalletPassword
を使用して作成できます。 パスワードは、8文字以上の長さで、数字または特殊文字と組み合わせたアルファベット文字を含める必要があります。
ドメイン・ホーム・ディレクトリが破損しており、ドメインを再作成し、既存のRCUスキーマを再使用する必要がある場合:
walletFileSecret
を指定 - 以前に作成したエクスポートされたOPSSウォレット・ファイルewallet.p12
を含むwalletFile
キーを持つKubernetesシークレット。
たとえば、
$ kubectl -n sample-ns patch domain sample-domain1 --type='JSON' -p='[ { "op" : "add", "path" : "/spec/configuration/initializeDomainOnPV/domain/opss/walletFileSecret", "value" : "jrf-wallet-file-secret" }]'
ドメイン・リソースのintrospectVersion
を更新します。
$ kubectl -n sample-ns patch domain sample-domain1 --type='JSON' -p='[ { "op" : "replace", "path" : "/spec/intropsectVersion", "value" : "15" }]'
オペレータは、既存のWDTモデルから新しいドメインを作成し、元のRCUスキーマを再利用します。