12 トラブルシューティング
このドキュメントでは、Kubernetes上のOracle SOA Suiteのデプロイメント中に発生する可能性のある一般的な問題と、それらをトラブルシューティングするステップについて説明します。頻繁に発生する問題や解決手順については、「FAQ」ページも参照してください。
WebLogic Kubernetes Operatorのインストールの失敗
WebLogic Kubernetes Operatorのインストールがタイムアウトで失敗した場合:
- コマンド
helm ls -n <operator-namespace>
を使用して、オペレータHelmリリースのステータスを確認します。 - オペレータ・ネームスペースにオペレータ・ポッドが正常に作成されているかどうかを確認します。
kubectl describe pod <operator-pod-name> -n <operator-namespace>
を使用してオペレータ・ポッドの詳細を確認し、明らかなエラーを特定します。
RCUスキーマの作成の失敗
create-rcu-schema.sh
を使用してRCUスキーマを作成する場合、RCUスキーマ作成失敗の考えられる原因は次のとおりです:
- データベースが稼働していません
- 使用されているデータベース接続URLが正しくありません
- 使用されているデータベース資格証明が無効です
- スキーマ接頭辞がすでに存在します
前述の原因がすべて確認され、必要に応じて修正されていることを確認してください。
また、create-rcu-schema.sh
を正しい値で再実行する前に、同じ接頭辞を持つ既存のスキーマを削除します。
ドメインの作成の失敗
create-domain.sh
の実行時にOracle SOA Suiteドメインの作成が失敗した場合は、次のステップを実行して問題を診断します:
-
次のコマンドを実行して、ドメイン作成ジョブを診断します:
$ kubectl logs jobs/<domain_job> -n <domain_namespace>
例:
$ kubectl logs jobs/soainfra-create-soa-infra-domain-job -n soans
次も実行します:
$ kubectl describe pod <domain_job> -n <domain_namespace>
出力を使用して問題を診断し、解決します。
- 失敗したドメイン作成をクリーンアップします:
- 次のコマンドを使用して、ドメイン・ネームスペースで失敗したドメイン作成ジョブを削除します:
kubectl delete job <domain-creation-job-name> -n <domain-namespace>
. - ドメイン・ホーム・ディレクトリの内容を削除します。
- 既存のRCUスキーマを削除します。
- 次のコマンドを使用して、ドメイン・ネームスペースで失敗したドメイン作成ジョブを削除します:
- ドメインを再作成します:
- RCUスキーマを再作成します
- ドメインに使用される永続ボリュームおよび永続ボリューム要求が正しい権限で作成され、一緒にバインドされていることを確認します。
- ドメイン作成スクリプトを再実行します
一般的なドメイン作成の問題
Failed to build JDBC Connection objectドメイン作成ジョブのログに表示されます。
スタック・トレース
Configuring the Service Table DataSource...
fmwDatabase jdbc:oracle:thin:@orclcdb.soainfra-domain-ns-293-10202010:1521/orclpdb1
Getting Database Defaults...
Error: getDatabaseDefaults() failed. Do dumpStack() to see details.
Error: runCmd() failed. Do dumpStack() to see details.
Problem invoking WLST - Traceback (innermost last):
File "/u01/weblogic/..2021_10_20_20_29_37.256759996/createSOADomain.py", line 943, in ?
File "/u01/weblogic/..2021_10_20_20_29_37.256759996/createSOADomain.py", line 75, in createSOADomain
File "/u01/weblogic/..2021_10_20_20_29_37.256759996/createSOADomain.py", line 695, in extendSoaB2BDomain
File "/u01/weblogic/..2021_10_20_20_29_37.256759996/createSOADomain.py", line 588, in configureJDBCTemplates
File "/tmp/WLSTOfflineIni956349269221112379.py", line 267, in getDatabaseDefaults
File "/tmp/WLSTOfflineIni956349269221112379.py", line 19, in command
Failed to build JDBC Connection object:
at com.oracle.cie.domain.script.jython.CommandExceptionHandler.handleException(CommandExceptionHandler.java:69)
at com.oracle.cie.domain.script.jython.WLScriptContext.handleException(WLScriptContext.java:3085)
at com.oracle.cie.domain.script.jython.WLScriptContext.runCmd(WLScriptContext.java:738)
at sun.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
com.oracle.cie.domain.script.jython.WLSTException: com.oracle.cie.domain.script.jython.WLSTException: Got exception when auto configuring the schema component(s) with data obtained from shadow table:
Failed to build JDBC Connection object:
ERROR: /u01/weblogic/create-domain-script.sh failed.
このエラーは、ドメインの作成中にデータベース・スキーマ・アクセスに問題がある場合に報告されます。考えられる原因は次のとおりです。
- 次で不正なスキーマ名が指定されています
。create-domain-inputs.yaml
- 次のシークレットに指定されたRCUスキーマ資格証明は
次を使用してRCUスキーマを作成するときに指定した資格証明と異なりますsoainfra-rcu-credentials
。create-rcu-schema.sh
これらの考えられる原因を解決するには、ドメインの作成時に使用されたスキーマ名と資格証明がRCUスキーマの作成時のものと同じであることを確認します。
ドメイン構成ファイルの適用後にサーバー・ポッドが開始されない
ドメイン構成ファイル(YAML)がデプロイされ、イントロスペクタまたはサーバー・ポッドが開始されず、オペレータ・ログにドメインに関する記述がない場合は、ドメインのネームスペースがWebLogic Kubernetes Operatorによって管理されるように構成されていることを確認します。
詳細は、ネームスペース管理:: WebLogic Kubernetes Operatorを参照してください。
デフォルト値はLabelSelector
です。オペレータは、Helmチャート構成domainNamespaceLabelSelector
属性で定義されたラベル・セレクタと一致するKubernetesラベルを使用してネームスペースを管理します(デフォルトはweblogic-operator=enabled
)。
次のコマンドを実行して、オペレータが管理するドメイン・ネームスペースにラベルweblogic-operator=enabled
が指定されているかどうかを確認します:
$ kubectl get ns --selector="weblogic-operator=enabled"
たとえば、ドメイン・ネームスペースがsoans
で、前述のコマンドでsoans
ネームスペースがリストされていない場合は、オペレータがドメイン・ネームスペースを管理するために次のコマンドを実行します:
$ kubectl label namespace soans weblogic-operator=enabled
イングレス・コントローラがドメインURLを処理していない
この問題を診断するには:
-
イングレス・コントローラが正常にインストールされていることを確認します。たとえば、Traefikイングレス・コントローラのステータスを確認するには、次のコマンドを実行します:
$ helm list -n traefik NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION traefik traefik 2 2022-11-30 11:31:18.599876918 +0000 UTC deployed traefik-20.5.3 v2.9.5 $
-
イングレス・コントローラがドメイン・ネームスペースをモニターするように設定されていることを確認します。たとえば、Traefikイングレス・コントローラがsoansドメイン・ネームスペースを管理していることを確認するには、次のコマンドを実行して、namespacesセクションの値を確認します。
$ helm get values traefik-operator -n traefik USER-SUPPLIED VALUES: kubernetes: namespaces: - traefik - soans $
-
イングレス・チャートがドメイン・ネームスペースに正しくインストールされていることを確認します。たとえば、次のようなコマンドを実行します。
$ helm list -n soans NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION soainfra-traefik soans 1 2021-10-27 11:24:31.7572791 +0000 UTC deployed ingress-per-domain-0.1.0 1.0 $
-
次のコマンドを実行して、イングレスURLパスおよびホスト名が正しく構成されていることを確認します:
コマンドと出力の例については、次を参照してください:
$ kubectl get ingress soainfra-traefik -n soans NAME CLASS HOSTS ADDRESS PORTS AGE soainfra-traefik <none> <Hostname> 80 20h $ $ kubectl describe ingress soainfra-traefik -n soans Name: soainfra-traefik Namespace: soans Address: Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>) Rules: Host Path Backends ---- ---- -------- <Hostname> /console soainfra-adminserver:7001 (10.244.0.123:7001) /em soainfra-adminserver:7001 (10.244.0.123:7001) /weblogic/ready soainfra-adminserver:7001 (10.244.0.123:7001) /soa-infra soainfra-cluster-soa-cluster:8001 (10.244.0.126:8001,10.244.0.127:8001) /soa/composer soainfra-cluster-soa-cluster:8001 (10.244.0.126:8001,10.244.0.127:8001) /integration/worklistapp soainfra-cluster-soa-cluster:8001 (10.244.0.126:8001,10.244.0.127:8001) /EssHealthCheck soainfra-cluster-soa-cluster:8001 (10.244.0.126:8001,10.244.0.127:8001) Annotations: kubernetes.io/ingress.class: traefik meta.helm.sh/release-name: soainfra-traefik meta.helm.sh/release-namespace: soans Events: <none> $
WebLogicリモート・コンソールで報告されるセキュリティ警告
WebLogic Serverは、ドメイン構成設定を一連のセキュリティ構成ガイドラインに照らし合せて定期的に検証し、ドメインがOracleが推奨する主要なセキュリティ・ガイドラインを満たしているかどうかを判断します。ドメインがセキュリティ構成設定の推奨事項を満たしていない場合、WebLogicリモート・コンソールのセキュリティ警告レポートに警告が記録されます。
詳細は、Oracle WebLogic Server本番環境の保護の潜在的なセキュリティの問題の確認を参照してください。
リモート匿名RMI T3およびIIOPリクエストを無効にします
Remote Anonymous RMI T3 or IIOP requests are enabled
というセキュリティ警告メッセージが表示された場合は、次のようにドメインを起動する前に、domain.yaml
でJAVA_OPTIONS
を使用してRemoteAnonymousRMIT3Enabled
およびRemoteAnonymousRMIIIOPEnabled
属性をfalseに設定し、この警告を解決します:
serverPod:
# an (optional) list of environment variable to be set on the servers
env:
- name: JAVA_OPTIONS
value: "-Dweblogic.StdoutDebugEnabled=false -Dweblogic.ssl.Enabled=true -Dweblogic.security.SSL.ignoreHostnameVerification=true -Dweblogic.security.remoteAnonymousRMIT3Enabled=false -Dweblogic.security.remoteAnonymousRMIIIOPEnabled=false"
詳細は、リンクを参照してください。