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ドメインの作成が失敗した場合は、次のステップを実行して問題を診断します:

  1. 次のコマンドを実行して、ドメイン作成ジョブを診断します:

    $ 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>
    

    出力を使用して問題を診断し、解決します。

  2. 失敗したドメイン作成をクリーンアップします:
    1. 次のコマンドを使用して、ドメイン・ネームスペースで失敗したドメイン作成ジョブを削除します:
      kubectl delete job <domain-creation-job-name> -n
          <domain-namespace>
      .
    2. ドメイン・ホーム・ディレクトリの内容を削除します
    3. 既存のRCUスキーマを削除します
  3. ドメインを再作成します:
    1. RCUスキーマを再作成します
    2. ドメインに使用される永続ボリュームおよび永続ボリューム要求が正しい権限で作成され、一緒にバインドされていることを確認します。
    3. ドメイン作成スクリプトを再実行します

一般的なドメイン作成の問題

ドメイン作成時によくある問題は次のエラーです
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スキーマ資格証明は
    soainfra-rcu-credentials
    次を使用してRCUスキーマを作成するときに指定した資格証明と異なります
    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を処理していない

この問題を診断するには:

  1. イングレス・コントローラが正常にインストールされていることを確認します。たとえば、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
    $
  2. イングレス・コントローラがドメイン・ネームスペースをモニターするように設定されていることを確認します。たとえば、Traefikイングレス・コントローラがsoansドメイン・ネームスペースを管理していることを確認するには、次のコマンドを実行して、namespacesセクションの値を確認します。

    $ helm get values traefik-operator -n traefik
    USER-SUPPLIED VALUES:
    kubernetes:
       namespaces:
       - traefik
       - soans
    $
  3. イングレス・チャートがドメイン・ネームスペースに正しくインストールされていることを確認します。たとえば、次のようなコマンドを実行します。

    $ 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
    $
    
  4. 次のコマンドを実行して、イングレス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.yamlJAVA_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"

詳細は、リンクを参照してください。