ここでは、管理上の既知の問題とその解決方法を示します。
クラスタを作成するときに、Enterprise Server はハートビートポートを 1026 - 45556 の間でランダムに割り当てます。default-cluster (Enterprise Server のインストールが作成するデフォルトのクラスタ) では、0 - 45556 のランダムな数字が選択されます。クラスタの作成プロセスは、ハートビートポートがすでに別のサービスで使用されているかどうかを正確に検出しません。
自動クラスタ作成の設定で選択されるハートビートポートが、すでにそのポートを使用している別のサービスと競合する場合は、クラスタのハートビートポートをシステムが使用していないポートに更新します。
クラスタのハートビートポートを変更するには、次の asadmin コマンドを使用します。
asadmin set cluster-name.heartbeat-port= newportnumber
64 ビット Linux で動作している NFS サーバーで、NFS (ネットワークファイルシステム) マウント済みファイルシステム上にドメインを作成しているときに、asadmin create-domain コマンドが失敗する場合があります。
現在のところ解決策はありません。
サイズの大きなログファイルをローテーションするときに、応答時間にわずかな増加が見られます。
「ロガー」設定で「ファイルローテーション制限」と「ファイルローテーションの制限時間」の値を変更することで、パフォーマンスの低下を最小化できます。これらのプロパティーの値は、アプリケーションおよび環境に応じて決定してください。
IBM Message Queue 製品に対する Generic RA アダプタの配備が失敗します。server.policy ファイルで付与される権限は、次のようになります。
grant { permission java.util.logging.LoggingPermission "control"; permission java.util.PropertyPermission "*", "read,write"; } |
server.policy ファイル中の権限を、次のように変更します。
grant codeBase "file:${com.sun.aas.installRoot}/lib/install/applications/adminapp/-" { permission java.util.logging.LoggingPermission "control"; }; |
一部の環境で、特定のインスタンスと同期する目的で DAS にインストールしたファイルが、実際には別のインスタンスに送信されます。
現在のところ解決策はありません。
asadmin start-cluster コマンドが、起動中に重要でないコンポーネントのエラーでも多量のメッセージを表示します。重要でない (クラスタ内のインスタンスに関連する) 要素でエラーが発生した場合の、コマンド出力の例を示します。
./asadmin start-cluster --port 9898 cluster1 Please enter the admin user name>admin Please enter the admin password> The clustered instance, instance2, was successfully started. error 0 [#|2008-07-17T14:58:16.496+0200|WARNING|sun-appserver9.1|javax.jms| _ThreadID=10;_ThreadName=main; _RequestID=90bbbe3a-d654-4480-b295-7e317d945a4a;|[C4003]: Error occurred on connection creation [localhost:37676]. - cause: java.net.ConnectException: Connection refused|#] error 1 [#|2008-07-17T14:58:17.517+0200|WARNING|sun-appserver9.1|javax.jms| _ThreadID=10;_ThreadName=main; _RequestID=90bbbe3a-d654-4480-b295-7e317d945a4a;|[C4003]: Error occurred on connection creation [localhost:37676]. - cause: java.net.ConnectException: Connection refused|#] error 2 [#|2008-07-17T14:58:30.596+0200|WARNING|sun-appserver9.1| javax.enterprise.system.container.ejb| _ThreadID=13;_ThreadName=pool-1-thread-4;TimerBean; _RequestID=5954a044-df06-4a3e-902a-0c40b4b6cddb; |EJB5108:Unable to initialize EJB Timer Service. The likely cause is the database has not been started or the timer database table has not been created.|#] error 3 [#|2008-07-17T14:58:32.512+0200|WARNING|sun-appserver9.1| javax.enterprise.resource.resourceadapter|_ThreadID=10;_ThreadName=main; __CallFlowPool;_RequestID=90bbbe3a-d654-4480-b295-7e317d945a4a;| RAR5005:Error in accessing XA resource with JNDI name [__CallFlowPool] for recovery|#] The clustered instance, instance1, was successfully started. error 0 [#|2008-07-17T14:58:21.117+0200|WARNING|sun-appserver9.1| javax.enterprise.system.container.ejb| _ThreadID=13;_ThreadName=pool-1-thread-4;TimerBean; _RequestID=30827d9a-72ac-4854-b216-06494b6a9fb5; |EJB5108:Unable to initialize EJB Timer Service. The likely cause is the database has not been started or the timer database table has not been created.|#] error 1 [#|2008-07-17T14:58:23.106+0200|WARNING|sun-appserver9.1| javax.enterprise.resource.resourceadapter| _ThreadID=10;_ThreadName=main;__CallFlowPool; _RequestID=b41d76fa-0203-49f7-a2ae-83bf242d3e7a; |RAR5005:Error in accessing XA resource with JNDI name [__CallFlowPool] for recovery|#] Command start-cluster executed successfully. |
現在のところ解決策はありません。これらの例外メッセージは無視できます。
IBM Message Queue 製品に対する Generic RA アダプタの配備が失敗します。server.policy ファイルで付与される権限は、次のようになります。
grant { permission java.util.logging.LoggingPermission "control"; permission java.util.PropertyPermission "*", "read,write"; } |
server.policy ファイル中の権限を、次のように変更します。
grant codeBase "file:${com.sun.aas.installRoot}/lib/install/applications/adminapp/-" { permission java.util.logging.LoggingPermission "control"; }; |
デフォルトでは、as-install/lib/package-appclient.xml に、asenv.conf から参照される domain1 の AS_ACC_CONFIG 変数の値がハードコードされています。domain1 を削除して新たなドメインを作成した場合、AS_ACC_CONFIG 変数は新たなドメイン名で更新されません。その結果、package-appclient スクリプトの処理が失敗します。
次のいずれかの操作を行います。
domain1 はそのままにしておき、その前後に別のドメインを作成します。
domain1 を削除し、as-install/lib/package-appclient.xml 内のハードコードされた domain1 の値を、新しいドメイン名で置き換えます。
domain1 がない場合、新たなドメインが作成されるたびにこれを行う必要があります。
サーバーでは J2SE 1.4.x または 5.0 以降を設定できます。J2SE 5.0 プラットフォームの重要な特徴は、JMX エージェントを起動できることです。サーバーの起動時にシステムプロパティーを明示的に設定すると、JMX エージェントがアクティブになります。
次に例を示します。
name="com.sun.management.jmxremote" value="true" name="com.sun.management.jmxremote.port" value="9999" name="com.sun.management.jmxremote.authenticate" value="false" name="com.sun.management.jmxremote.ssl" value="false" |
JMX プロパティーを設定してからサーバーを起動すると、仮想マシン (VM) 内に新たな jmx-connector サーバーが起動します。この場合、思わぬ結果として管理機能が悪影響を受け、管理コンソールやコマンド行インタフェースで予期しない結果が発生することがあります。問題は、組み込みの jmx-connector サーバーと新たな jmx-connector サーバーとの間で衝突が発生することにあります。
jconsole または何らかの JMX 互換クライアントを使用する場合は、サーバーとともに起動する標準の JMX コネクタサーバーを再利用するようにしてください。
サーバーの起動時に、次に示すような行が server.log に記録されます。ここで指定されている JMXService の URL に接続し、資格を正常に指定した後、同様の管理および設定操作を実行することができます。次に例を示します。
[#|2004-11-24T17:49:08.203-0800|INFO|sun-appserver-ee8.1| javax.enterprise.system.tools.admin|_ThreadID=10;|ADM1501: Here is the JMXServiceURL for the JMXConnectorServer: [service:jmx:rmi:///jndi/rmi://hostname:8686/management/ rmi-jmx-connector]. This is where the remote administrative clients should connect using the JSR 160 JMX Connectors.|#] |
詳細は、『Sun GlassFish Enterprise Server v2.1.1 管理ガイド』を参照してください。
Web サービスの URL をエクスポートする EJB モジュールを含むアプリケーションを使用してロードバランサを設定しても、作成された loadbalancer.xml ファイルに、その Web サービスのコンテキストルートが存在しません。
loadbalancer.xml ファイルを編集して、作成されなかった Web モジュールを次のように追加します。
<web-module context-root="context-root-name" disable-timeout-in-minutes="30" enabled="true"/> |
context-root-name 値を、EJB として公開された Web サービスのコンテキストルート名に置き換えます。
Enterprise Server のドキュメントに .asadmintruststore ファイルが記述されていない。このファイルがサーバー管理者の home ディレクトリに存在しないと、そのサーバー上にホストされている特定のアプリケーションをアップグレードしたときに重大なバグが発生する場合があります。
可能であれば、そのサーバーをインストールしたユーザーが asadmin start-domain domain1 コマンドを実行してください。
そのユーザーがこのコマンドを実行できない場合は、.asadmintruststore を、インストールしたユーザーの home ディレクトリから実行中のユーザーの home ディレクトリに移動またはコピーしてください。
このファイルをインストールユーザーの home ディレクトリから実行中のユーザーの home ディレクトリに (コピーではなく) 移動した場合、アップグレードまたはインストールしたユーザーのホームディレクトリ (Java ES では、通常 root) に .asadminstruststore ファイルが存在しなくなるため、バグ 6309079、6310428、および 6312869 で説明されているような、アプリケーションのアップグレードに関する問題が発生する可能性があります。
Enterprise Server クラスタインスタンスのデフォルト MQ 統合モードは LOCAL です。Enterprise Server がインストールされている場所の PATH が長い、つまり短くない場合、クラスタインスタンス起動時に imqbrokerscv.exe で障害が発生します。imqbrokersvc のメモリー割り当てに問題があります。
クラスタインスタンスの JMS サービスタイプを、デフォルトの LOCAL から REMOTE に変更する必要があります。この設定では、すべてのインスタンスは DAS ブローカを指します。次の手順に従って、REMOTE モードでクラスタを設定してください。
REMOTE モード使用時には、すべてのインスタンスが 1 つのブローカ (DAS) を使用しているため、Enterprise Server クラスタが起動してもブローカクラスタは作成されません。詳細は、http://www.glassfishwiki.org/gfwiki/attach/OnePagersOrFunctionalSpecs/as-mq-integration-gfv2.txt の第 4.1 節「iii. Auto-clustering」を参照してください。それによると、上記の機能は将来使用できなくなります。
ご使用の環境に合わせて、ポートおよびパスワードファイルを変更してください。次に示す手順では、クラスタ名が racluster、DAS 管理ポートが 5858、および DAS JMS ポートが 7676 になっています。
JMS タイプを REMOTE に変更して、クラスタ設定を変更します。
as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \ as-install/bin/password_file racluster.jms-service.type=REMOTE |
DAS JMS ホストに対応する JMS ホストを作成します。
as-install/bin/asadmin.bat create-jms-host --port 5858 --user admin --passwordfile \ as-install/bin/password_file --target racluster --mqhost localhost --mqport 7676 \ --mquser admin --mqpassword admin dashost |
デフォルトの JMS ホストが前のステップで作成した DAS JMS ホストになるように設定します。
as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \ as-install/bin/password_file racluster.jms-service.default-jms-host=dashost |
「設定」->「cluster-name-config」->「Java メッセージサービス」->「JMS ホスト」の順に移動します。
「新規」をクリックして新規 JMS ホストを作成し、dashost という名前を付けます。
DAS の JMS サービスに対応する設定を入力します。デフォルト設定は次のとおりです。
ホスト名: localhost
ポート: 7676
管理者ユーザー: admin
パスワード: admin
これらの設定をご使用の DAS JMS サービスに適した値に変更してください。
「Java メッセージサービス」タブに戻って、JMS サービスタイプを REMOTE に変更します (デフォルトは LOCAL)。
default-jms-host ドロップダウンリストから dashost を選択します。
変更を保存してから、ノードエージェントまたはクラスタを起動します。
「ログ統計の監視」ページから一部のサポートされていないブラウザを使用してチャートを表示しようとすると、次のエラーがスローされます。
Error loading jmaki.widgets.jmaki.charting.line.Widget : id=form1:jmaki_chart11 Script: http://easqelx5.red.iplanet.com:4848/resources/jmaki/charting/ \ line/component.js (line:5437). Message: area.initialize is not a function |
サポートされているブラウザを使用します。Enterprise Server v2.1.1 でサポートされているブラウザについては、「ブラウザ」を参照してください。
Enterprise Server の過去 3 回のメジャーリリースのたびに、デフォルト管理ポートが変わっていました。具体的には、7.x、8. x、および 9.x のデフォルト管理ポートは次のようになっています。
AS 7.x: 4848
AS 8.x: 4849
AS 9.x: 4848
これはバグではありませんが、このことに注意してください。デフォルト管理ポートは推奨値に過ぎません。今後の Enterprise Server リリースでは、デフォルトに 4848 ポートが継続して使用されます。
AIX オペレーティングシステムで、カスタムマスターパスワードを使用してドメインを作成しようとすると、次のエラーが発生して失敗します。
keytool error (likely untranslated): java.lang.NullPointerException Enter keystore password: New keystore password: |
次に示す手順では、各手順に必須のオプションのみ指定されています。コマンドにそれ以外のオプションを必要とする場合は、それらのオプションをコマンドに指定してください。Enterprise Server コマンドの詳細は、『Sun GlassFish Enterprise Server v2.1.1 Reference Manual』を参照してください。
次のコード行を含むシェルスクリプトを作成します。
#!/bin/sh changeKeystorePass() { keytool -storepasswd -keystore ${KEYSTORE} -storepass ${OLD} -new ${NEW} } changeTruststorePass() { keytool -storepasswd -keystore ${TRUSTSTORE} -storepass ${OLD} -new ${NEW} } changeKeyPass() { keytool -keypasswd -alias s1as -keystore ${KEYSTORE} -storepass ${NEW} -keypass ${OLD} -new ${NEW} } changeDomainPasswordEntry() { keytool -storepasswd -storetype JCEKS -keystore ${DOMAINPASSWORDS} -storepass ${OLD} -new ${NEW} } deleteMasterPasswordFile() { if [ -f ${DOMAIN_PATH}/master-password ] ; then echo Deleting ${DOMAIN_PATH}/master-password rm -f ${DOMAIN_PATH}/master-password fi } DOMAIN_PATH=$1 OLD=$2 NEW=$3 if [ $# != 3 ] ; then echo Usage: $0 domain-path old-master-pass new-master-pass exit 1 fi echo Processing ... if [ ! -f ${DOMAIN_PATH}/config/domain.xml ] ; then echo "Domain with folder ${DOMAIN_PATH} does not exist, create it first" exit 2 else KEYSTORE=${DOMAIN_PATH}/config/keystore.jks TRUSTSTORE=${DOMAIN_PATH}/config/cacerts.jks DOMAINPASSWORDS=${DOMAIN_PATH}/config/domain-passwords changeKeystorePass changeTruststorePass changeKeyPass changeDomainPasswordEntry deleteMasterPasswordFile fi
デフォルトのマスターパスワードを指定して、ドメインを作成します。
aadmin create-domain {--adminport aminportno|--portbase portbase} domain-name Please enter the admin user name>admin-user Please enter the admin password>admin-user-password Please enter the admin password again>admin-user-password Please enter the master password [Enter to accept the default]:> Please enter the master password again [Enter to accept the default]:> |
デフォルトのマスターパスワードは changeit です。
作成したドメインのマスターパスワードを変更します。
マスターパスワードを変更するには、手順 1 で作成したスクリプトを実行します。
script-name domain-path old-password new-password |
手順 2 で作成したドメインを起動します。
asadmin start-domain domain-name |
ドメインにはカスタムマスターパスワードが設定されているため、マスターパスワードの入力を求めるプロンプトが表示されます。
プロンプトに応じて、新しいマスターパスワードを入力します。
クラスタをサポートするように設定されているドメインの場合、ノードエージェントを作成して起動します。
次の Enterprise Server マニュアルページ
AIX オペレーティングシステムで、一部の OS に関連する操作で次のエラーが発生して失敗します。
0403-027 The parameter list is too long |
OS に関連する操作の例としては、アプリケーションの配備やアプリケーションクライアントコンテナの実行などがあります。
通常、この問題は CLASSPATH 環境変数のファイルパスが長いために発生します。
次の解決方法のいずれかを使用します。
コマンド行の最大長を増加します。詳細については、「(AIX) コマンド行の最大長を増加する」を参照してください。
xargs コマンドを使用して、引数リストを構築し、コマンドを開始します。xargs コマンドによって、コマンド行の最大長を超えるコマンドを実行できます。
ncargs 属性によって、環境変数を含むコマンド行の最大長を決定します。AIX オペレーションシステムでは、ncargs 属性のデフォルト値は 4 ブロック (4K バイト単位) です。Enterprise Server コマンドがコマンド行の最大長を超えないようにするには、この値を 16 ブロック (4K バイト単位) に増加します。
ncargs 属性の値を変更しても、デーモンの再起動やリフレッシュは不要です。