ここでは、管理上の既知の問題とその解決方法を示します。
デフォルトでは、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 がない場合、新たなドメインが作成されるたびにこれを行う必要があります。
Application Server では、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 プロパティーを設定してからサーバーを起動すると、Application Server VM 内に新たな jmx-connector サーバーが起動します。この場合は、望ましくない副作用の 1 つとして、管理機能が悪影響を受け、Application Server の管理コンソールやコマンド行インタフェースで予期しない結果が発生することがあります。問題は、組み込みの jmx-connector サーバーと新たな jmx-connector サーバーとの間で衝突が発生することにあります。
jconsole または何らかの JMX 互換クライアントを使用する場合には、Application Server とともに起動する標準の 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://hostnam e:8686/management/ rmi-jmx-connector]. This is where the remote administrative clients should connect us ing the JSR 160 JMX Connectors.|#] |
詳細については、『Sun Java System Application Server 9.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 サービスのコンテキストルート名に置き換えます。
既存の as-install/bin/asant スクリプトの名前を asant.bak に変更します。
as-install/lib/install/templates/ee (SE/EE バージョンの場合) にある asant.template ファイルを as-install/bin/ ディレクトリにコピーし、このファイルの名前を asant に変更します。
新しくコピーされた as-install/bin/asant スクリプトを編集して、%CONFIG_HOME% トークンを as-install/config に置き換えます。
元の asant.bak ファイルに対して行なった手作業の変更がある場合は、それを新しい asant スクリプトに結合します。
Application Server のマニュアルに .asadmintruststore ファイルが記述されていない。このファイルがサーバー管理者の home ディレクトリに存在しないと、そのサーバー上にホストされている特定のアプリケーションをアップグレードしたときに重大なバグが発生する場合があります。
可能であれば、そのサーバーをインストールしたユーザーが asadmin start-domain domain1 コマンドを実行してください。
そのユーザーがこのコマンドを実行できない場合は、.asadmintruststore を、インストールしたユーザーの home ディレクトリから実行中のユーザーの home ディレクトリに移動またはコピーしてください。
このファイルをインストールユーザーの home ディレクトリから実行中のユーザーの home ディレクトリに (コピーではなく) 移動した場合は、アップグレードまたはインストールしたユーザーのホームディレクトリ (Java ES では、通常 root) に .asadminstruststore ファイルが存在しなくなるため、バグ 6309079、6310428、および 6312869 で説明されているようなアプリケーションのアップグレードに関する問題が発生する可能性があることに注意してください。
Application Server クラスタインスタンスのデフォルト MQ 統合モードは LOCAL です。Application Server がインストールされている場所の PATH が長い、つまり短くない場合、クラスタインスタンス起動時に imqbrokerscv.exe で障害が発生します。imqbrokersvc のメモリー割り当てに問題があります。
クラスタインスタンスの JMS サービスタイプを、デフォルトの LOCAL から REMOTE に変更する必要があります。この設定では、すべてのインスタンスは DAS ブローカを指します。次の手順に従って、REMOTE モードでクラスタを設定してください。
REMOTE モード使用時には、すべてのインスタンスが 1 つのブローカ (DAS) を使用しているため、Application Server クラスタが起動してもブローカクラスタは作成されません。詳細については、http://www.glassfishwiki.org/gfwiki/attach/OnePagersOrFunctionalSpecs/as-mq-integration-gfv2.txt にある One Pager の 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 |
サポートされているブラウザを使用します。Application Server 9.1 Update 1 でサポートされているブラウザについては、「ブラウザ」を参照してください。
Application Server の過去 3 回のメジャーリリースのたびに、デフォルト管理ポートが変わっていました。具体的には、7.x、8. x、および 9.x のデフォルト管理ポートは次のようになっていました。
AS 7.x: 4848
AS 8.x: 4849
AS 9.x: 4848
これはバグではありませんが、このことに注意してください。デフォルト管理ポートは推奨値に過ぎません。今後の Application Server リリースでは、デフォルトに 4848 ポートが継続して使用されます。
AIX オペレーティングシステムで、カスタムマスターパスワードを使用してドメインを作成しようとすると、次のエラーが発生して失敗します。
keytool error (likely untranslated): java.lang.NullPointerException Enter keystore password: New keystore password: |
次に示す手順では、各手順に必須のオプションのみ指定されています。コマンドにそれ以外のオプションを必要とする場合は、それらのオプションをコマンドに指定してください。Application Server コマンドの詳細については、『Sun Java System Application Server 9.1 Update 1-9.1 Update 2 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 管理ユーザー名を入力してください>admin-user 管理パスワードを入力してください>admin-user-password 新しい管理パスワードをもう一度入力してください>admin-user-password マスターパスワードを入力してください [デフォルトを使用する場合は Enter キー]:> マスターパスワードを再度入力してください [デフォルトを使用する場合は Enter キー]:> |
デフォルトのマスターパスワードは changeit です。
作成したドメインのマスターパスワードを変更します。
マスターパスワードを変更するには、手順 1 で作成したスクリプトを実行します。
script-name domain-path old-password new-password |
手順 2 で作成したドメインを起動します。
asadmin start-domain domain-name |
ドメインにはカスタムマスターパスワードが設定されているため、マスターパスワードの入力を求めるプロンプトが表示されます。
プロンプトに応じて、新しいマスターパスワードを入力します。
クラスタをサポートするように設定されているドメインの場合、ノードエージェントを作成して起動します。
次の Application Server マニュアルページ
AIX オペレーティングシステムで、一部の OS に関連する操作で次のエラーが発生して失敗します。
0403-027 The parameter list is too long |
OS に関連する操作の例としては、アプリケーションの配備やアプリケーションクライアントコンテナの実行などがあります。
通常、この問題は CLASSPATH 環境変数のファイルパスが長いために発生します。
次の解決方法のいずれかを使用します。
コマンド行の最大長を増加します。詳細については、「(AIX) コマンド行の最大長を増加する」を参照してください。
xargs コマンドを使用して、引数リストを構築し、コマンドを開始します。xargs コマンドによって、コマンド行の最大長を超えるコマンドを実行できます。
ncargs 属性によって、環境変数を含むコマンド行の最大長を決定します。AIX オペレーションシステムでは、ncargs 属性のデフォルト値は 4 ブロック (4K バイト単位) です。Application Server コマンドがコマンド行の最大長を超えないようにするには、この値を 16 ブロック (4K バイト単位) に増加します。
ncargs 属性の値を変更しても、デーモンの再起動やリフレッシュは不要です。