Liberty 集合のトラブルシューティング
Liberty をトラブルシューティングしている時に、いくつ かの共通の問題が発生する可能性があります。これらの問題は通常、集合コントローラー、メンバー、またはホスト・システムの構成に関係しています。 問題のリストを参照して、問題の解決方法を確認してください。
- 接続に関する問題
- start コマンドおよび stop コマンドに関係した問題
- サーバーをリモート側で始動または停止すると、Java が見つからないエラーが発生する
- CTGRI0000E: 提供された許可資格情報でターゲット・マシンへの接続を確立できませんでした
- CTGRI0001E: アプリケーションは、host_name への接続を確立できませんでした
- CTGRI0026E 指定されたタイムアウトの時間間隔内に host_name への接続が完了しませんでした
- CWWKX6027E: collective controller の初期化が失敗しました。ホスト host_name およびポート port_number のソケット・バインドに失敗しました。 ポートが既に使用中であるか、またはホストがシステム構成と一致していない可能性があります。
- CWWKX7204E: 提供された資格情報でホスト host_name に接続できません
- 集合管理に関する問題
他の問題の修正については、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 ファイルで以下を確認します。
デフォルトでは、<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 鍵を使用して認証が失敗します。 - 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.startCluster や ServerCommands.startServer などのコマンドを使用してリモート側でサーバーを始動または停止すると、エラーが発生することがあります。
メッセージ CTGRI0001E およびメッセージ CTGRI0026E は、あまりにも多くの同時 SSH 接続がホストに対して行われていることを示している可能性があります。考えられる原因は、以下のとおりです。- スケーリング・コントローラーなどの自律機能
- 単一のホスト上の複数のサーバーに対して ClusterManager.startCluster、ServerCommands.startServer、または他のシステム管理コマンドを実行したことによる、SSH デーモンへの同時非認証接続の最大数の超過
解決策:
RPC メカニズム (SSH など) が開始されているかを確認してください。また、ホストやポートなどの構成されている設定が正しいかを確認してください。
環境で SSH を使用している場合は、SSH 構成ファイルの設定を変更します。SSH 構成の MaxStartups 設定のデフォルトの同時非認証接続数は 10 です。SSH 構成ファイル /etc/ssh/sshd_config で MaxStartups 設定を変更すると、問題が解決することがあります。MaxStartups 設定は、SSH デーモンへの同時非認証接続の最大数を指定します。認証が成功するか、いずれかの接続の LoginGraceTime の有効期限が切れるまで、これを超える接続はドロップされます。 コロンで区切った 3 つの値 (start:rate:full を指定して、ランダムな早期ドロップを有効にすることができます (例えば、10:30:60)。現在、start (10) の非認証接続がある場合、sshd(8) は、rate/100 (30%) の確立で接続試行を拒否します。確立は線形的に増加し、非認証接続数が full (60) に達すると、すべての接続試行が拒否されます。 以下のサンプル SSH 構成ファイル設定では、MaxStartups および接続の問題を緩和する可能性があるその他の設定を指定します。
セキュア・シェル (SSH) プロトコル、および /etc/ssh/sshd_config 設定の変更について詳しくは、Liberty 集合操作用 RXA のセットアップを参照してください。ClientAliveInterval 60 ClientAliveCountMax 3 MaxSessions 100 MaxStartups 100:30:200 LoginGraceTime 180
- 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 コ マンドを実行して集合からクラスター・メンバーを削除することができます。
- 削除したい自動スケーリングされたクラスター・メンバーの場所に
WLP_USER_DIR を設定します。
export WLP_USER_DIR=/wlp.usr/defaultStackGroup.Cluster1/d16d298c-ea7f-4782-bef6-2e54fb80de20/Cluster1.zip/wlp/usr
- 自動スケーリングされたクラスター・メンバーの場所から Java を実行できな
い場合は、JAVA_HOME を設定して、クラスター・メンバー
を削除する Liberty コマンドを実行できるようにします。
export JAVA_HOME=/wlp.jre/jre.18.zip/
- クラスター・メンバーを停止します。
/wlp/wlp.855.zip/wlp/bin/server stop Cluster1
- collective remove コマンドを実行して、集合から
クラスター・メンバーを削除します。
/wlp/wlp.855.zip/wlp/bin/collective remove Cluster1 --host=controllerHost --port=9443 --user=admin --password=password
『tagt_wlp_remove_member.html』を参照してください。
- 削除したい自動スケーリングされたクラスター・メンバーの場所に
WLP_USER_DIR を設定します。