Sybase 資料一覧
2007/9/11更新
対応バージョン: 11.9.2
Adaptive Serverによって実行されているプロセスは通常のUNIXプロセスと同じくユニークなプロセスIDが割り当てられる。
これらのID番号および各プロセスについてのその他の情報は、master..sysprocessesに保管される。
sp_whoにてこれらの情報のほとんどを参照することができる。
1> sp_who 2> go fid spid status loginame origname hostname blk dbname cmd --- ---- ---------- -------- -------- -------- --- ------ ---------------- 0 1 running sa sa hostA 0 master SELECT 0 2 sleeping NULL NULL 0 master NETWORK HANDLER 0 3 sleeping NULL NULL 0 master DEADLOCK TUNE 0 4 sleeping NULL NULL 0 master MIRROR HANDLER 0 5 sleeping NULL NULL 0 master CHECKPOINT SLEEP 0 6 sleeping NULL NULL 0 master HOUSEKEEPER 0 7 recv sleep user_1 user_1 hostB 0 db1 AWAITING COMMAND 0 8 recv sleep user_2 user_2 hostC 0 db2 AWAITING COMMAND :
シングルエンジンのサーバ上でsp_whoを実行すると「実行中の」sp_whoプロセスおよび他の全ての「実行可能」またはスリープ状態にあるプロセスを確認できる。
マルチエンジンのサーバではエンジンごとに「実行中の」プロセスが存在する。
実行中のプロセスを強制終了するにはkillを使用する。
1> kill <spid> 2> go
プロセスを強制終了する必要がある状況としては、例えばプロセスが暴走している時やロックを確保したままでプロセスがハングアップしている時などである。
また、データベース接続を多数保持したままスリープしていて他のプロセスが新たに接続できなくなっている場合などもある。
システム管理者は次のようなプロセスを強制終了できる。
システムプロセスでないプロセス(*)
waitforコマンドなどでアラームを待っているプロセス
ネットワークの送信または受信を待っているプロセス
ロックを待っているプロセス
ファミリ内の他のプロセスからの同期メッセージを待っているプロセス
ほとんどの実行中または「実行可能な」プロセス
(*) 前述のsp_whoの結果の例でいうと、spid 2〜6のプロセスは強制終了できない。これらはログイン名がNULLであることとホスト名がないことからシステムプロセスであることがわかる。
Adaptive Serverでは終了していない全てのトランザクションを正常にロールバックしてプロセスが使用している全てのシステムリソースを解放できる場合にかぎりプロセスの強制終了を実行できる。
ファミリの一部であるプロセスではファミリ内の全てのプロセスを同時に強制終了する必要がある。
sp_whoで確認できるプロセスの状態と、各状態においてkillコマンドを実行した時の挙動を以下に示す。
recv sleep
状態
ネットワークの読み取り待ち
killコマンドの効果
即時
send sleep
状態
ネットワークの送信待ち
killコマンドの効果
即時
alarm sleep
状態
「waitfor delay "10:00"」などのアラーム待ち
killコマンドの効果
即時
lock sleep
状態
ロックの取得待ち
killコマンドの効果
即時
sync sleep
状態
ファミリ内の他のプロセスからの同期メッセージ待ち
killコマンドの効果
即時。ファミリ内の他のプロセスも強制終了可能な状態にする
sleeping
状態
ディスクI/Oまたはその他のリソース待ち
killコマンドの効果
通常「ウェイクアップ」すると直ちに強制終了される。スリープしているいくつかのプロセスはウェイクアップせず、クリアするためにサーバをリブートする
runnable
状態
実行可能なプロセスのキュー内にある。
killコマンドの効果
即時
running
状態
サーバエンジンの1つでアクティブに実行されている。
killコマンドの効果
即時
infected
状態
サーバが重大なエラー状態を検出した。この状態はめったに発生しない。
killコマンドの効果
killコマンドは使用しないほうがよい。プロセスをクリアするためにサーバをリブートしなければならない可能性が高い
background
状態
ユーザプロセスではなくAdaptive Serverによって実行されるスレッショルドプロシージャのようなプロセス
killコマンドの効果
即時。細心の注意を払ってkillコマンドを実行する。慎重にsysprocessesをチェックしてからバックグラウンドプロセスを強制終了することをすすめる
log suspend
状態
プロセスがログのラストチャンススレッショルドに到達して中断された
killコマンドの効果
即時