Javaで開発する場合に、運用時によくある質問と、その回答について説明します。
JDBCドライバのネーミングサービスを停止するには?(Solarisの場合)
ネーミングサービスの停止方法は、起動方法によって異なります。
【コマンドプロンプトやコンソールから直接入力して起動させた場合】
[Ctrl]キーと[C]キーを同時に押してください。
【“&”を付けて、バックグラウンドで起動した場合】
ネーミングサービス起動時に使用した、“java com.fujitsu ... &”を書いたシェルの実行状態により、以下のように操作します。
シェルを実行したコンソールが残っている場合
fgコマンドを実行し、バックグランドで動いているジョブをフォアグランドに戻します。
[Ctrl]キーと[C]キーを同時に押して、停止してください。
例
fg 1
シェルを実行したコンソールが残っていない場合
killコマンドで、ネーミングサービスのプロセスを終了させてください。
例
kill -9 12345
なお、該当プロセスのプロセスIDを特定するには、以下のコマンドを実行してください。ネーミングサービスのプロセスIDが表示されます。
ps -ef | grep fujitsu.symfoware.
コネクションプーリングとコネクション関連情報の初期化について
JDBCドライバは、コネクションオブジェクトをプールする際に、以下の情報をデータベースの初期値に戻します。
自動コミットモード(初期値:自動コミットが有効)
トランザクションアイソレーションレベル(初期値:TRANSACTION_SERIALIZABLE)
読み込み専用モード(初期値:読み込み専用モードが無効)
多数のユーザーがコネクション要求を行うシステムの場合、どのユーザーがプールされたコネクションオブジェクトを再利用するのか、特定することが困難なケースが考えられます。
コネクションオブジェクトに設定された情報を初期化しないで再利用すると、再利用したユーザーにとって、本来設定しないはずの情報がすでに設定されているため、予期しない動作が発生してしまう恐れがあります。
このような運用上の誤動作を防止するため、JDBCドライバでは、コネクションオブジェクトをプールする際に、コネクションオブジェクトに関する情報を初期化してから、オブジェクトをプールしています。