以下について説明します。
リソース検証の注意事項
デフォルトでは、アプリケーションが使用する各リソースは、アプリケーション配備時に検証されます。停止しているGlassFish Serverクラスターに配備する場合は、GlassFish Serverクラスターを起動するタイミングで検証されます。これにより、全てのリソースが事前に作成されていることが保証されます。
リソース検証に失敗した場合は、以下のようなメッセージがサーバーログに出力されます。アプリケーション配備のタイミングで検証される場合は、アプリケーション配備に失敗します。これは Eclipse GlassFish V5で追加された機能です。
[#|20XX-10-10T15:00:100+0900|SEVERE||| <略> ;_MessageID=AS-DEPLOYMENT-00026;|JNDI lookup failed for the resource: <略>|#]
[#|20XX-10-10T15:00:55.400+0900|SEVERE|||<略>;_MessageID=NCLS-CORE-00026;|Exception during lifecycle processing org.glassfish.deployment.common.DeploymentException: JNDI lookup failed for the resource:<略> |#]
リソース検証に失敗した場合は、アプリケーションが使用するリソースを利用可能な状態にして、再度アプリケーションの配備、またはGlassFish Serverクラスターの再起動を行ってください。
リソースが利用できないときにアプリケーションを配備するためには、以下のJava VMオプション(またはシステムプロパティ)をfalseに設定してください。
ただし、アプリケーション実行時に依然リソースが利用できない場合には、アプリケーションでエラーが発生することがあります。
プロパティ名 | 説明 |
---|---|
deployment.resource.validation | trueまたはfalseを指定します。リソース検証を有効にする場合、trueを設定します。省略値はtrueです。 |
HotDeploy機能使用時の注意事項
通常業務中のHotDeploy機能は、以下のような問題があるため、推奨しません。夜間などリクエストが少ない状況で利用してください。
EJBアプリケーションでリクエストを処理中にHotDeployを実行した場合、以下のメッセージがサーバーログに出力されることがあります。
EJB6145
Webアプリケーションでリクエストを処理中にHotDeployを実行した場合、以下のメッセージを含むjava.lang.IllegalStateExceptionがスローされることがあります。({0}: リソース名)
WebappClassLoader unable to load resource [{0}], because it has not yet been started, or was already stopped
実装に問題がないアプリケーションを配備した時に以下のようなエラーが発生する場合は、GlassFish Serverクラスター内で不整合が発生している可能性があるため、GlassFish Serverクラスターを再起動してください。
java.lang.ClassNotFoundException
javax.naming.NameAlreadyBoundException
javax.naming.InvalidNameException
EJBクライアントを含むWARファイルのHotDeployを実行した場合、Javax.naming.NamingExceptionが発生し、サーバーアプリケーションの呼出しに失敗します。EJBクライアントを含むWARファイルのHotDeployは実施しないでください。
Webアプリケーション配備時の注意事項
以下の条件に該当する場合、コンテキストルートが同じWebアプリケーションを配備できません。
配備した場合は、メッセージ「WSC04122」が表示され配備に失敗します。
GlassFish ServerクラスターとWebサーバーを同じマシンで運用している場合、かつ
GlassFish Serverクラスターで同じWebサーバーを使用している場合、かつ
GlassFish Serverクラスターのいずれかがバーチャルホストを使用していない場合、または
GlassFish Serverクラスターが同じバーチャルホストを使用している場合
WSC04122については、「12.73 メッセージ番号に「WSC」を含むメッセージ」を参照してください。
リソースアダプタ再配備時の注意事項
リソースアダプタの再配備に失敗した場合、再配備対象のリソースアダプタは配備解除されますが、リソースアダプタと関係するコネクタ接続プール、コネクタリソース、管理オブジェクトリソース、およびリソースアダプタの定義情報は削除されません。再配備に失敗した原因を取り除き、再度リソースアダプタを配備することで関係するリソースなどの利用が可能となります。なお、関係するリソースなどを使用しない場合は、個別に削除を行ってください。
ライブラリー(--librariesオプション)指定文字列の注意事項
以下の指定は行わないでください。
2Byte文字
最後尾に空白文字(スペース、タブ)
アプリケーションのファイル名の注意事項
アプリケーション名(--nameオプション)に以下の文字を指定してください。
英数字または特殊文字(‘-’、‘_’、‘.’)
先頭には、英数字または‘_’だけが指定可能
オートリロード機能使用時の注意事項
配備モジュールのクラスファイルを頻繁に変更して動作確認する開発作業中は、オートリロード機能を使用することで開発効率を向上させることが可能です。
ただし、オートリロード機能は、以下の理由のためアプリケーションの開発時のみ使用してください。
".reload"ファイルの変更を絶えず監視するため、DASのCPU使用率が増加します。
リロード直前のアプリケーションが保有するセッション情報は破棄されます。
アプリケーションの入れ替え中はリクエストを受け付けることができません。
DASにアプリケーションを配備するときの注意事項
DASへアプリケーションを配備しているときにDASが異常終了した場合、DASを再起動してアプリケーションをもう一度配備しなおしても、正常に動作しない場合があります。配備しなおしたアプリケーションが正常に動作しなかったときは、アプリケーションの再配備を行ってください。
アプリケーションの再配備機能使用時の注意事項
再配備の対象に、ディレクトリー展開済みアプリケーションの配備を行ったエンタープライズアプリケーションを指定する場合は、サブモジュールを削除しないでください。ディレクトリー展開済みアプリケーションの配備を行ったエンタープライズアプリケーションのサブモジュールを削除する場合は、いったん配備解除をしてからもう一度配備してください。
もし、エンタープライズアプリケーションのサブモジュールを削除して再配備を行った場合は、削除したモジュールを追加した後、アプリケーションの配備解除をしてから、アプリケーションの配備を行ってください。