Liberty 集合のトラブルシューティング

Liberty をトラブルシューティングしている時に、いくつ かの共通の問題が発生する可能性があります。これらの問題は通常、集合コントローラー、メンバー、またはホスト・システムの構成に関係しています。 問題のリストを参照して、問題の解決方法を確認してください。

他の問題の修正については、ランタイム環境での既知の問題および制約事項を参照してください。

REST コネクターを使用した CLI、Jython、または MBean 接続に関する問題

CWWKX0217E: 指定された object_name に現在登録済みの MBean はありません
メッセージ:
Error: CWWKX0217E: 指定された ObjectName 'WebSphere:feature=collectiveController,type=CollectiveRegistration,name=CollectiveRegistration' に現在登録済みの MBean はありません
原因:

MBean がまだ使用可能でない可能性があります。 サーバー・ログをチェックして、MBean が作動可能と報告されているか確認してください。

集合リポジトリーが稼働していない可能性があります。集合リポジトリーが開始しているか確認してください。

ターゲットが集合コントローラーである場合、レプリカ・セットがアクティブであることを検証してください。 集合コントローラーのレプリカの大多数が開始していない場合に、このメッセージが表示されます。 残りのレプリカを開始してください。

サーバーの構成が不完全である可能性があります。サーバーが正しく構成されていることを確認してください。

CWWKX0215E: 指定したユーザー名またはパスワードに問題があります。
メッセージ:
Error: CWWKX0215E: There was a problem with the user name or password provided. The server responded with code 401 and message 'Unauthorized'
原因:

ユーザー名とパスワードが間違っている可能性があります。ユーザー名とパスワードがターゲット・サーバーに対して正しいことを確認してください。

ユーザーに管理者ロールが付与されていない可能性があります。 ユーザーに管理ロールが付与されていることを確認するか、別のユーザーを選択してください。

ターゲット・サーバーのセキュリティー構成が不完全である可能性があります。 セキュリティー構成が定義されていて、セキュリティー・サービスが作動可能として報告されている (CWWKS0008I) ことを確認してください。

CWWKX8057I: 集合メンバーがいずれの collective controller への接続も確立できません。構成されているコントローラー: [host_name:port_number]
メッセージ:
CWWKX8057I: 集合メンバーがいずれの collective controller への接続も確立できません。構成されているコントローラー: [test.ibm.com:8889]
原因:

サーバーが稼働していない可能性があります。集合コントローラーとメンバー・サーバーが実行中であるかを確認してください。

サーバーが実行中の場合、コントローラーまたはメンバーの server.xml の SSL 構成が最近変更されたかどうかを確認します。この CWWKX8057I メッセージがメンバーで発生した場合、恐らく、コントローラーの SSL 構成が正しくありません。このメッセージがコントローラーで発生した場合、恐らく、メンバーの SSL 構成が正しくありません。この問題は、構成で quickStartSecurity エレメントが使用されていない場合に発生することがあります。

SSL 構成の問題を修正するには、server.xml ファイルで以下を確認します。

  1. 管理者役割が構成されていることを確認します。Liberty での管理者ロールのマップでは、quickStartSecurity エレメントの設定を基本レジストリーまたは LDAP レジストリーのものと比較しています。
  2. 必要に応じて、SSL 構成を確認して更新します。
    1. デフォルト SSL 構成を確認します。<sslDefault sslRef="LDAPSSLSettings"></sslDefault> を探して、server.xml ファイルにデフォルト構成が含まれているかどうかを確認し、またデフォルトとして 1 つの SSL 構成を指定する必要があるかどうかを確認します。

      <sslDefault sslRef="LDAPSSLSettings"></sslDefault> 構成が不要な場合は、それを削除して、使用する 2 つ以上の SSL 構成 (例えば、集合用に 1 つ、LDAP 用に 1 つ) が構成に含まれるようにします。

      デフォルト構成が必要な場合は、<sslDefault sslRef="LDAPSSLSettings"></sslDefault> の行を保持し、ステップ b および c に進んで、クライアント認証を追加し、証明書をデフォルト SSL 構成にインポートします。『Liberty での LDAP ユーザー・レジストリーの構成』を参照してください。

    2. クライアント認証を有効にします。clientAuthenticationSupported="true を使用して、サーバーの HTTPS ポートを構成します。

      例えば、セキュリティーに LDAP SSL デフォルトを使用する集合コントローラーでは、集合メンバーと連携するためにその ssl エレメント内に clientAuthenticationSupported="true を設定する必要があります。

    3. 必要な証明書をインポートします。keytool を使用して証明書をインポートすることができます。デフォルト・トラストストアに、collectiveTrust.jks からの証明書を含める必要があります。
背景情報:

デフォルトでは、<sslDefault sslRef> は、defaultSSLSettings を指します。defaultSSLSettings 以外のものを指すように集合コントローラー構成の <sslDefault sslRef> を変更すると (<sslDefault sslRef="LDAPSSLSettings"/> など)、構成に clientAuthenticationSupported="true" が設定されていて、クライアント証明書が含まれている SSL ピアを Liberty サーバーが信頼していない限り、CWWKX8057I エラーが発生します。

HTTPS の SSL 設定では、集合の証明書を信頼する必要があります。clientAuthenticationSupported="true" を指定せずに、defaultSSLSettings 以外のものを指すように <sslDefault sslRef> を変更すると、defaultSSLSettings が HTTPS 構成からアンバインドされることがあります。 集合の SSL 設定は、デフォルト構成の一部です。

詳しくは、『Liberty での管理者ロールのマップ』、『Liberty での LDAP ユーザー・レジストリーの構成』、および『デフォルト以外の SSL 構成を使用するための httpEndpoint の構成』を参照してください。

Error: Connection refused: connect
メッセージ:
Error: Connection refused: connect
原因:

ホストとポートが間違っている可能性があります。 ターゲット・サーバーのホストとポートが正しいことを確認してください。

サーバーが稼働していない可能性があります。 サーバーが稼働していることを確認してください。

java.net.SocketException エラー
メッセージ:
java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)(possibly others...)
原因:

トラストストアおよびトラストストアのパスワードが間違っている可能性があります。 トラストストアのパス、トラストストアのパスワード、およびトラストストアの内容が正しいことを確認してください。

start コマンドおよび stop コマンドに関係した問題

サーバーをリモート側で始動または停止すると、Java が見つからないエラーが発生する
メッセージ:

サーバーをリモート側で開始または停止すると (例えば、ClusterManager.startCluster または ServerCommands.startServer を使用するなどして)、以下のエラーが発生します。

{stderr=java: javaCmd 14: serverCmd 32: ./server 873: FSUM7351 not found, stdout=, returnCode=127}
解決策:

メンバー・サーバーに、JAVA_HOME 変数を指定した server.env ファイルが必要です。

CTGRI0000E: 提供された許可資格情報でターゲット・マシンへの接続を確立できませんでした。
メッセージ:
CTGRI0000E 提供された許可資格情報でターゲット・マシンへの接続を確立できませんでした。
原因:
ユーザー名またはパスワードを使用して認証が失敗します。
  • ターゲット・サーバーの server.xml<hostAuthConfig> エレメントで、ユーザー名とパスワードが正しいことを確認してください。
  • 集合の updateHost コマンドを使用してホストの認証構成を更新してください。
SSH 鍵を使用して認証が失敗します。
  • 以下の許可を確認してください。
    • ~/.ssh の許可は 0700 にする必要があります。
    • ~/.ssh/authorized_keys の許可は 0600 にする必要があります。
  • SELinux を使用している場合は、~/.ssh とすべての子が正しくなければなりません。 restorecon -R を使用して許可を修正してください。
CTGRI0001E: アプリケーションは、host_name への接続を確立できませんでした。
メッセージ:
{ExceptionMessage=メンバー webp1a.ibm.com,/P1A/WebSphere_LP/usr,memberA1 での stopCluster 操作の実行中に ConnectException が発生しました (ConnectException caught while performing stopCluster operation on member webp1a.ibm.com,/P1A/WebSphere_LP/usr,memberA1): java.net.ConnectException:
CTGRI0001E アプリケーションは、webp1a.ibm.com への接続を確立できませんでした。Exception=java.net.ConnectException: CTGRI0001E アプリケーションは、webp1a.ibm.com への接続を確立できませんでした。}
原因:

ClusterManager.startClusterServerCommands.startServer などのコマンドを使用してリモート側でサーバーを始動または停止すると、エラーが発生することがあります。

メッセージ CTGRI0001E およびメッセージ CTGRI0026E は、あまりにも多くの同時 SSH 接続がホストに対して行われていることを示している可能性があります。考えられる原因は、以下のとおりです。
  • スケーリング・コントローラーなどの自律機能
  • 単一のホスト上の複数のサーバーに対して ClusterManager.startClusterServerCommands.startServer、または他のシステム管理コマンドを実行したことによる、SSH デーモンへの同時非認証接続の最大数の超過

解決策:

RPC メカニズム (SSH など) が開始されているかを確認してください。また、ホストやポートなどの構成されている設定が正しいかを確認してください。

環境で SSH を使用している場合は、SSH 構成ファイルの設定を変更します。SSH 構成の MaxStartups 設定のデフォルトの同時非認証接続数は 10 です。SSH 構成ファイル /etc/ssh/sshd_configMaxStartups 設定を変更すると、問題が解決することがあります。MaxStartups 設定は、SSH デーモンへの同時非認証接続の最大数を指定します。認証が成功するか、いずれかの接続の LoginGraceTime の有効期限が切れるまで、これを超える接続はドロップされます。 コロンで区切った 3 つの値 (start:rate:full を指定して、ランダムな早期ドロップを有効にすることができます (例えば、10:30:60)。現在、start (10) の非認証接続がある場合、sshd(8) は、rate/100 (30%) の確立で接続試行を拒否します。確立は線形的に増加し、非認証接続数が full (60) に達すると、すべての接続試行が拒否されます。 以下のサンプル SSH 構成ファイル設定では、MaxStartups および接続の問題を緩和する可能性があるその他の設定を指定します。
ClientAliveInterval 60
ClientAliveCountMax 3
MaxSessions 100
MaxStartups 100:30:200
LoginGraceTime 180
セキュア・シェル (SSH) プロトコル、および /etc/ssh/sshd_config 設定の変更について詳しくは、Liberty 集合操作用 RXA のセットアップを参照してください。
CTGRI0026E 指定されたタイムアウトの時間間隔内に host_name への接続が完了しませんでした。
メッセージ:
CTGRI0026E 指定されたタイムアウトの時間間隔内に webp1a.ibm.com への接続が完了しませんでした。
原因:

ホストへの同時 SSH 接続数があまりにも多くなると、このエラーが発生することがあります。

解決策:

メッセージ CTGRI0001E の解決策を参照してください。

CWWKX6027E: collective controller の初期化が失敗しました。ホスト host_name およびポート port_number のソケット・バインドに失敗しました。 ポートが既に使用中であるか、またはホストがシステム構成と一致していない可能性があります。
メッセージ:
CWWKX6027E: collective controller の初期化が失敗しました。ホスト * およびポート 10,010 のソケット・バインドに失敗しました。ポートが既に使用中であるか、またはホストがシステム構成と一致していない可能性があります。
解決策:

集合コントローラー構成で指定しているホスト値を正しいものにしてください。例えば、集合コントローラーが myhost.com 上にある場合、コントローラーの server.xml ファイルを確認して、ホスト値が正しくなるようにしてください。

<variable name="defaultHostName" value="myhost.com" />

メッセージの例では、ホストとしてアスタリスク (*) が表示されており、これは、ホスト値が恐らく問題の原因ではないことを示しています。問題の考えられる原因は、ポートの競合です。

メッセージ内のポート番号がまだ使用されていないものかを確認してください。集合コントローラーがあるホスト・コンピューターのコマンド行で、netstat -a を実行して、ポート番号と接続状況のリストを表示します。 ポート番号が使用中の場合、リストに、以下のような項目が含まれています (port 10,010 の場合の例)。

TCP 127.0.0.1:10010 myhost:0 LISTENING

このポートの競合を修正するには、エディターで集合コントローラーの server.xml ファイルを開き、コンピューターで使用されていないポート番号に replicaPort を設定するステートメントを追加します。以下のいずれかのステートメントにより、replicaPort の値を設定できます。

  • <collectiveController replicaPort="10011"/>
  • <collectiveController replicaHost="myhost.com" replicaPort="10011"/>
  • <collectiveController replicaPort="${prop.controller_1.replica}"/>

    ポート番号の変数の名前は、上記ステートメントでは prop.controller_1.replica になっていますが、選択した任意の変数名を使用できます。変数名は、bootstrap.properties ファイルまたは <variable name="name" value="value"/> XML タグで設定します。

CWWKX7204E: 提供された資格情報でホスト host_name に接続できません。
メッセージ:
localhost,C:/wlp,member1 stop 操作により、例外が発生しました (localhost,C:/wlp,member1 stop operation resulted in an Exception): メンバー localhost,C:/wlp,member1 での stopCluster 操作の実行中に ConnectException をキャッチしました (ConnectException caught while performing stopCluster operation on member localhost,C:/wlp,member1): java.net.ConnectException:
CWWKX7204E: 提供された資格情報でホスト localhost に接続できません。
解決策:

クラスター・メンバーの認証情報が正しく設定されていること、Remote Execution and Access (RXA) の要件がすべて満たされていることを確認します。 RXA 操作の多くでは、 標準のユーザー・アカウントが通常はアクセスできないリソースにアクセスする必要があります。 『Liberty 集合操作用 RXA のセットアップ』を参照してください。

集合管理に関する問題

collective remove コマンドは自動スケーリングされるクラスター・メンバーを集合から削除しませんでした
メッセージ:
指定されたサーバー Cluster1 が
${wlp.install.dir}/Cluster1.zip/wlp/usr で見つかり
ませんでした (Specified server Cluster1 was not found at location
${wlp.install.dir}/Cluster1.zip/wlp/usr)
削除された集合リソースはありません。(No collective resources were removed.)
指定された userDir ${wlp.install.dir}/Cluster1.zip/wlp/usr が見つかり
ませんでした (Specified userDir ${wlp.install.dir}/Cluster1.zip/wlp/usr was not found)
解決策:

通常の操作では、自動スケーリングされたクラスター・メンバーは集合から手動 で削除されません。スケーリング・コントローラーは集合を自律的に管理します。 『プロビジョン可能なクラスターでの Liberty Elasticity の構成』を参照してください。

ただし、スケーリング・コントローラーが集合に追加したクラスター・メンバーを 削除する必要がある場合は、WLP_USER_DIR および JAVA_HOME 環 境変数を設定してから、collective remove コ マンドを実行して集合からクラスター・メンバーを削除することができます。

  1. 削除したい自動スケーリングされたクラスター・メンバーの場所に WLP_USER_DIR を設定します。
    export WLP_USER_DIR=/wlp.usr/defaultStackGroup.Cluster1/d16d298c-ea7f-4782-bef6-2e54fb80de20/Cluster1.zip/wlp/usr
  2. 自動スケーリングされたクラスター・メンバーの場所から Java を実行できな い場合は、JAVA_HOME を設定して、クラスター・メンバー を削除する Liberty コマンドを実行できるようにします。
    export JAVA_HOME=/wlp.jre/jre.18.zip/
  3. クラスター・メンバーを停止します。
    /wlp/wlp.855.zip/wlp/bin/server stop Cluster1
  4. collective remove コマンドを実行して、集合から クラスター・メンバーを削除します。
    /wlp/wlp.855.zip/wlp/bin/collective remove Cluster1 --host=controllerHost --port=9443 --user=admin --password=password

    Liberty 集合からのメンバーの削除』を参照してください。


トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=cwlp_collective_trouble
ファイル名: cwlp_collective_trouble.html