管理および管理コンソールのトラブルシューティング
- アプリケーション・サーバー (server1 など) プロセス
- WebSphere Application Server Network Deployment 製品のデプロイメント・マネージャー・プロセス
管理コンソールを使用するためには、このプロセスが実行されていなければなりません。 wsadmin コマンド行ユーティリティーには、 サーバー・プロセスが稼働していないときでも何らかの管理機能を実行するために使用できるローカル・モードがあります。
コンソール・ビューのサーバー状況およびメッセージが最新でない
- 管理コンソール・パネルの「サーバー」ビューの「状況」列で、サーバーの状況が更新されません。
- 管理コンソールでサーバー・メッセージが更新されません。
- 多くのポートが作成されて、TIME_WAIT 状態のままとなるため、システム・リソースが減少します。
この問題は、SOAP コネクターが接続のプールをサポートしないために発生します。 アプリケーション・サーバーで、SOAP コネクターを使用する継続中のオペレーションが多数存在する場合、アプリケーション・サーバーは多くのポートを急速に開いたり閉じたりします。 TCP/IP プロトコルの基本的な性質により、これらのポートは、オペレーティング・システムがそれらを再利用できるようになる前に、しばらくの間 TIME_WAIT 状態のままとなります。 WebSphere Application Server は、オペレーティング・システムが設定する制限を超過する数のポートを開くことができます。 この条件では、オペレーティング・システムがポートを再利用するまで、SOAP コネクターを通じて追加のポートを開こうとしても失敗します。
- オペレーティング・システムの設定するポート数の上限を増やします。
- Rational® Application Developer、wsadmin ユーティリティー、または Java™ Management Extension (JMX) コネクターを使用する Java アプリケーションの場合、リモート・メソッド呼び出し (RMI) コネクターに切り替えます。
- Rational Application Developer または管理コンソールを通じて新規オペレーションを実行する前に、TIME_WAIT 状態にあるポートがほとんどまたは完全になくなるまで待機します。
ロール・ベースの許可が失敗する
SECJ0305I: Role based authorization check failed for securityname server.domain.name:3890/user.id,
accessId user:server.domain.name:3890/uid=user.id,ou=xxxx,dc=yyy,dc=zzz while invoking method
getNodeName on resource Server and module Server.
アプリケーションの呼び出し元に管理ロールの 1 つを割り当てることができない場合、アプリケーションは呼び出し元に代わってロールの 1 つを使用してログインできます。
以下に例を示します。 try
{
// Create a LoginContext to authenticate a user ID and password.
javax.security.auth.login.LoginContext lc = new javax.security.auth.login.LoginContext("WSLogin",
new com.ibm.websphere.security.auth.callback.WSCallbackHandlerImpl("adminuser",
"adminpassword"));
// perform the login
lc.login();
// Get the authenticated subject.
javax.security.auth.Subject adminSubject = lc.getSubject();
// Define the action that will take place using the authenticated Subject
// You can define this action anywhere in the code, the action
// is reference in the WSSubject.doAs that follows.
java.security.PrivilegedAction adminAction = new java.security.PrivilegedAction()
{
public Object run()
{
try
{
// Get the WebSphere AdminService. AdminService adminservice = AdminServiceFactory.getAdminService();
// Get the WebSphere Admin Local Server MBean instance. ObjectName objectname = adminservice.getLocalServer();
// Get the Node name. String nodeName = (String)adminservice.getAttribute(objectname, "nodeName");
// Get the Application Server name. String serverName = (String)adminservice.getAttribute(objectname, "name");
// Get the Application Server Process ID. String serverPid = (String)adminservice.getAttribute(objectname, "pid");
// Return a result, for this example, just return the serverPid.
return serverPid;
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
});
// Invoke an AdminClient resource using the authenticated subject.
// This example demonstrates the action of creating an
// administrative client and returning a String value to use outside
// the doAs block.
String myData = (String)
com.ibm.websphere.security.auth.WSSubject.doAs(adminSubject, adminAction);
// use "myData" later on....
}
catch (javax.security.auth.login.LoginException e)
{
e.printStackTrace();
}
wsadmin 対話式スクリプト・セッションを使ってサーバーを起動または終了する場合に、読み込みのタイムアウトを示す例外を受信する
WASX7015E: Exception running command: "$AdminControl startServer server1 Node1;"
exception information: com.ibm.websphere.management.exception.ConnectorException
org.apache.soap.SOAPException: [SOAPException: faultCode=SOAP-ENV:Client; msg=Read
timed out; targetException=java.net.SocketTimeoutException: Read timed out]
この例外はタイムアウト値が小さすぎるために発生します。
シングル・サーバー版の profile_root/properties ディレクトリーか、Network Deployment インストール・システムの profile_root/properties ディレクトリーにある soap.client.props ファイルの com.ibm.SOAP.requestTimeout プロパティーで指定されているタイムアウト値を大きくしてください。
選択する値は、サーバーにインストールされているアプリケーションのサイズおよび数、マシンのスピード、およびマシンの使用レベルなどの多くの要因によって変わります。
com.ibm.SOAP.requestTimeout プロパティーのデフォルト値は、180 秒です。
この例外はタイムアウト値が小さすぎるために発生します。
これを修正するには、シングル・サーバー版の profile_root/properties ディレクトリーか、Network Deployment インストール・システムの profile_root/properties ディレクトリーにある soap.client.props ファイルの com.ibm.SOAP.requestTimeout プロパティーで指定されているタイムアウト値を大きくしてください。
選択する必要がある値は、サーバーにインストールされているアプリケー
ションのサイズおよび数、ご使用のマシンのスピード、およびマシンの使用レベルなどの多くの要因によります。
com.ibm.SOAP.requestTimeout プロパティーのデフォルト値は、180 秒です。
管理コンソールまたは wsadmin ユーティリティーの始動時または使用中の問題
- アプリケーション・サーバー・プロセスに関しては、以下のファイルを参照してください。
profile_root/logs/server_name/startServer.log。このファイル内に、 サーバーが正常に始動されていることを示すメッセージ「ADMU3000I: サーバー server1 が e-business 用にオープンされました。プロセス ID は nnnn です。」があるかどうかを調べてください。
profile_root/logs/server_name/startServer.log。このファイル内に、 サーバーが正常に始動されていることを示すメッセージ「ADMU3000I: サーバー server1 が e-business 用にオープンされました。プロセス ID は nnnn です。」があるかどうかを調べてください。
profile_root/logs/server_name/SystemOut.log
profile_root/logs/server_name/SystemOut.log
サーバー・ログ・ファイル。このファイル内に、サーバーが正常に始動したことを示す「WSVR0001I: e-business のためにサーバー server がオープンされました」というメッセージがあるかどうかを調べてください。
- WebSphere Application Server Network Deployment 製品に関しては、以下のファイルを参照してください。
profile_root/logs/dmgr/startServer.log。このファイル内に、 サーバーが正常に始動されていることを示すメッセージ「ADMU3000I: サーバー dmgr が e-business 用にオープンされました。プロセス ID は nnnn です。」があるかどうかを調べてください。
profile_root/logs/dmgr/startServer.log。このファイル内に、 サーバーが正常に始動されていることを示すメッセージ「ADMU3000I: サーバー dmgr が e-business 用にオープンされました。プロセス ID は nnnn です。」があるかどうかを調べてください。
profile_root/logs/dmgr/SystemOut.log。このファイル内に、 サーバーが正常に始動されていることを示すメッセージ「ADMU3000I: サーバー dmgr が e-business 用にオープンされました。プロセス ID は nnnn です」があるかどうかを調べてください。
profile_root/logs/dmgr/SystemOut.log。このファイル内に、 サーバーが正常に始動されていることを示すメッセージ「ADMU3000I: サーバー dmgr が e-business 用にオープンされました。プロセス ID は nnnn です」があるかどうかを調べてください。
サーバー・ログ・ファイル。このファイル内に、サーバーが正常に始動したことを示す、「WSVR0001I: e-business のためにサーバー dmgr がオープンされました」というメッセージがあるかどうかを調べてください。
z/OS 製品の場合は、ジョブ出力を確認してください。
- メッセージ参照表内のこれらのファイルにあるすべてのエラー・メッセージを調べます。 インフォメーション・センターのナビゲーションで「Reference」ビューを選択し、 「Messages」をクリックしてください。 wsadmin の始動を試みている際の「WASX7213I: このスクリプト・クライアントは、サーバー・プロセスに接続されていません」といった内容のメッセージは、サーバー・プロセスが実行されていない、 wsadmin を実行しているホスト・マシンにアクセスできない、 または wsadmin ユーティリティーが使用しているポートまたはサーバー名が誤っている、のいずれかを示しています。
- 正しいポート番号を使用して管理コンソールまたは wsadmin サーバーと通信しているかどうかを確認してください。
SystemOut.log ファイルを調べます。
joblogs ファイルを調べます。
- 行「ADMC0013I: SOAP コネクターがポート nnnn で使用可能です」は、 wsadmin 機能を listen するためにサーバーが使用しているポートを示します。
profile_root/properties/wsadmin.properties ファイルの com.ibm.ws.scripting.port プロパティーは、wsadmin ユーティリティーがサーバーに要求を送信するために使用するポートを制御します。
profile_root/properties/wsadmin.properties ファイルの com.ibm.ws.scripting.port プロパティーは、wsadmin ユーティリティーがサーバーに要求を送信するために使用するポートを制御します。
ポート値が、SystemOut.log ファイルに示されている値と異なる場合は、wsadmin.properties ファイルでポート番号を変更するか、wsadmin ユーティリティーを始動する際にコマンド行で -port port_number プロパティーを使用して、正しいポート番号を指定します。
profile_root/properties/wsadmin.properties ファイルの com.ibm.ws.scripting.port プロパティーは、wsadmin ユーティリティーがサーバーに要求を送信するために使用するポートを制御します。
ポート値が、SystemOut.log ファイルに示されている値と異なる場合は、wsadmin.properties ファイルでポート番号を変更するか、wsadmin ユーティリティーを始動する際にコマンド行で -port port_number プロパティーを使用して、正しいポート番号を指定します。
profile_root/properties/wsadmin.properties ファイルの com.ibm.ws.scripting.port プロパティーは、wsadmin ユーティリティーがサーバーに要求を送信するために使用するポートを制御します。
ポート値が、サーバー・ログ・ファイルに示されている値と異なる場合は、wsadmin.properties ファイルでポート番号を変更するか、wsadmin ユーティリティーを始動する際にコマンド行で -port port_number プロパティーを使用して、正しいポート番号を指定します。
メッセージ「SRVE0171I: トランスポート http はポート nnnn に listen しています (デフォルトでは 9060)」は、サーバーが管理コンソールの要求を listen するために使用するポートを示します。
- ポート値が、管理コンソールの Web アドレスで指定されているものと異なる場合は、 ブラウザーの Web アドレスを正しい値に変更してください。 デフォルト値は、http://localhost:9060/ibm/console です。
- telnet コマンドを使用して、アプリケーション・サーバーま たはデプロイメント・マネージャーが実行されているホ スト名に、ブラウザーや wsadmin プログラムが使用されているシステムから到達できるかどうかをテストします。 ホスト名を ping できる場合は、ファイアウォールまたは接続に関する問題はありません。
- アプリケーション・サーバーまたはデプロイメント・マネージャーが稼働しているホストが、クライアント・ブラウザーまたは wsadmin コマンドを実行しているマシンに対してリモートである場合は、
以下のように、該当するホスト名パラメーターが正しいかどうかを確認してください。
以下のことを検証します。
- コンソールのブラウザー Web アドレスにあるホスト名。
- wsadmin ユーティリティーを正しいサーバーへ誘導するために使用する wsadmin コマンドの -host host name オプション。
『WebSphere Application Server』の技術サポートでは、 詳細な問題判別のために管理コンポーネントのトレースを行うよう指示される場合があります。 このコンポーネントのトレース仕様は、 com.ibm.websphere.management.*=all=enabled:com.ibm.ws.management.*=all=enabled" です。
AdminConfig.parents メソッドを使用して、一部の構成タイプの有効な親タイプを取得できない
wsadmin>print AdminConfig.parents( "JavaVirtualMachine")
次のような通知メッセージが戻されます。WASX7351I: parents コマンドはタイプ "JavaVirtualMachine" の親の検出には使用できません。
#---------------------------------------------------------------------
# Name: parentTypes()
# Role: To search for configuration types that may contain objects of
# the specified type should the result of calling
# AdminConfig.parents( Type )
# be:
# WASX7351I: The parents command cannot be used to find the parents of type ...
# Note: Unlike the AdminConfig.list() command, this routine will not
# raise an InvalidConfigDataTypeException for an unknow datatype
#---------------------------------------------------------------------
def parentTypes( Type ) :
import os
WSAStypes = AdminConfig.types().splitlines()
if Type in WSAStypes :
result = AdminConfig.parents( Type )
if result.startswith( 'WASX7351I' ) :
result = []
for thisType in WSAStypes :
if AdminConfig.attributes( thisType ).find( Type ) > -1 :
result.append( thisType )
result = (os.linesep).join( result )
else:
print 'parentTypes error: unknown / unrecognized type:', Type
result = None
return result
上記のステップで問題が解決されない場合は、
『インストールは完了したが、
管理コンソールが始動しない』トピックに、その問題に関する説明がないか確認してください。
トピック『問題の診断および修正: 学習用リソース』にあるリンクを使用して、
問題が特定され、文書化されているかどうかを確認してください。
類似した問題が見つからない場合や、提供されている情報では問題が解決されない場合は、IBM サポートに連絡してください。
上記のステップで問題が解決されない場合は、
『インストールは完了したが、
管理コンソールが始動しない』トピックに、その問題に関する説明がないか確認してください。
問題の診断および修正: 学習用リソースのトピックにあるリンクを使用して、問題が特定され、文書化されているかどうかを確認してください。