9.15.2 AIXの場合
AIXでの注意事項について説明します。
-
ページングスペース見積もりについて
J2EEサーバおよびWebコンテナサーバを起動するときは,プログラム稼動中にページング不足でプログラムを停止(SIGKILL)させられないようにするため,起動シェルでAIXの早期ページングスペース割り当てを指定する環境変数PSALLOC=earlyを指定してください。ただし,/etc/environmentファイルにPSALLOC=earlyを指定すると,すべてのプロセスが早期ページングスペース割り当て指定となり,ページングスペース不足に陥ります。このため,該当するサーバを起動するシェルだけで,環境変数を指定するようにしてください。また,環境変数NODISCLAIM=trueも同時に指定してください。早期ページングスペース割り当てのページングスペースを見積もる上で考慮する点については,AIXのマニュアルを参照してください。
-
ネイティブライブラリ検索パスについて
- javaコマンドを使用する場合
-
Developer's Kit for Javaに含まれるjavaコマンドを使ってJavaプログラムを実行する場合,System.loadLibrary()でローディングされるシステムライブラリのディレクトリ検索パスは,環境変数LIBPATH,および環境変数LD_LIBRARY_PATHで指定できます。検索順序は,LD_LIBRARY_PATH,LIBPATHの順に優先されます。
- javaコマンドを使用しない場合
-
JNIを使ってJavaVMを起動し,Javaプログラムを実行する場合,System.loadLibrary()でローディングされるシステムライブラリのディレクトリ検索パスは,環境変数LIBPATHで指定されたパスだけになります。
-
JNIを使用したJavaVMの起動について
JNIを使ってJavaVMを起動する場合は,次の点に注意してください。
-
次のAIX固有環境変数を必ず設定してください。
csh(Cシェル)の場合
setenv AIXTHREAD_MUTEX_DEBUG OFF
setenv AIXTHREAD_RWLOCK_DEBUG OFF
setenv AIXTHREAD_COND_DEBUG OFF
sh(標準シェル)およびkshの場合
export AIXTHREAD_MUTEX_DEBUG=OFF
export AIXTHREAD_RWLOCK_DEBUG=OFF
export AIXTHREAD_COND_DEBUG=OFF
これらの環境変数については,該当ページ(https://www.ibm.com/support/knowledgecenter/ja/ssw_aix_72/performance/thread_env_vars.html)を参照してください。
-
環境変数LIBPATHに次のパスを追加してから起動プログラム実行してください。
/opt/Cosminexus/jdk/lib
/opt/Cosminexus/jdk/lib/server
なお,起動プログラム生成時のリンケージオプションとして,これらのパスを設定している場合は,環境変数LIBPATHは設定不要です。
-
-
フォントパスについて
GUIで表示されるフォントは,システムのフォントパスから検索されます。Developer's Kit for Javaの起動前にシステムのフォントパスを変更するプログラムを実行すると,GUIが正しく表示されないことがあります。また,Developer's Kit for Javaによってもシステムのフォントパスが変更されます。このため,Developer's Kit for Javaの起動後にシステムのフォントパスを検索するようなプログラムでは,GUIが正しく表示されないことがあります。
Developer's Kit for Javaの起動前や起動後に次の設定をすると,システムのフォントパスをデフォルトの状態に戻すことができます。
% xset fp default
-
プログラムの起動時間について
Developer's Kit for JavaのJava仮想マシンの実装は,サーバVM(Java HotSpot Server VM)です。サーバVMは,旧バージョンのクライアントVM(Java HotSpot Client VM)に比べて,一般に,プログラムの実行速度は高速ですが,J2EEサーバなどのプログラムの起動が遅くなることがあります。プログラムの起動を速くしたい場合には,次のオプションを指定してください。ただし,このオプションを指定した場合,プログラムの実行速度は通常よりも遅くなることがあります。
-XX:CompileThreshold=3000
-
32ビット版のJavaVM(アプリケーションサーバ Version 8)から64ビット版のJavaVM(アプリケーションサーバ Version 9)に移行する際の注意事項
一般的に,64ビット版のJavaVMでは,32ビット版のJavaVMと比べて,大きなアドレス空間を利用できるという利点があります。また,オブジェクトのポインタ値は,32ビット版のJavaVMでは32ビット,64ビット版のJavaVMでは64ビットとなります。このため,32ビット版のJavaVMから64ビット版のJavaVMへ移行する際には,アプリケーションの見直し,メモリチューニング,環境の見直しなどが必要になることがあります。次の点に注意して移行してください。
-
オブジェクトへのアクセスコストの増加
オブジェクトのポインタ値が32ビットから64ビットになるため,オブジェクトへのアクセスが最大で2倍となります。オブジェクトへ頻繁にアクセスするようなアプリケーションの場合,64ビット版のJavaVMでは実行性能に影響が出ることがあります。
-
Javaヒープのメモリサイズの増加
オブジェクトのポインタ値が32ビットから64ビットになるため,オブジェクト1個あたりのサイズが最大で2倍に増加します。これに伴って,アプリケーションが使用するJavaヒープのメモリサイズも増加します。
-
プロセスが使用するメモリサイズの増加
64ビット版のJavaVMでは,Javaヒープのメモリサイズだけでなく,プロセスが使用するメモリサイズも増加します。プロセスが使用するメモリサイズの見積もり方法は,coreファイルサイズの見積もり方法と同じです。見積もり方法については,「3.3.16(1) coreファイルのサイズの上限値の設定」を参照してください。
-
JNIの互換性について
32ビットのバイナリとして作成された,JNIで呼び出されるネイティブプログラムは,64ビット版のJavaVM上では動作できません。また,一つのプロセス内で,32ビットと64ビットのネイティブプログラムを同時に動作させることもできません。そのため,JNIで呼び出されるネイティブプログラムが使用されている場合は,64ビット版のJavaVM用にそのプログラムをコンパイルし直す必要があります。
-