Sybase 資料一覧

Adaptive Serverにおけるエラーレベルの種類と意味

2007/10/6更新

対応バージョン: 11.9.2

Adaptive Serverが出力するエラーにはその重大度によってレベル分けされている。

以下に、重大度レベルによるシステムへの影響度について説明する。

重大度レベル10〜18

重大度レベルが10〜16のエラーメッセージはユーザエラーが原因の問題によって生成される。

これらは常にユーザが解決できるエラーである。

重大度レベル17と18のエラーではユーザのセッションは停止されない。

重大度レベルが17以上のエラーメッセージはシステム管理者またはデータベース所有者に連絡すべきである。

重大度レベル10 : ステータス情報

重大度レベルが10のメッセージはエラーではない。

ある特定のコマンドの実行後に追加情報を提供するもので、通常はメッセージ番号や重大度レベルは表示されない。

たとえばcreate databaseコマンドを実行するとAdaptive Serverは要求された領域のどの程度が新しいデータベースに割り付けられたかを示すメッセージを表示する。

isqlでは重大度レベル10の(ステータスまたは情報)メッセージのメッセージ番号や重大度レベルは表示されない。

Open ClientアプリケーションではAdaptive Serverは重大度レベル10については0を返す。

重大度レベル11 : 指定されたデータベースオブジェクトが検出できない

重大度レベル11のメッセージはAdaptive Serverがコマンドで指定されたオブジェクトを見つけることができないことを示す。

主な原因にはデータベースオブジェクト名の入力ミス、オブジェクトの所有者名の指定洩れ、現在のデータベースの誤認などがある。

オブジェクト名が正しく入力されているかをチェックし、ユーザ自身または"dbo"がオブジェクトの所有者でない場合は所有者名を指定して正しいデータベースにいることを確認すること。

重大度レベル12 : 不正データ型の検出

重大度レベル12のメッセージはデータ型に問題があることを示す。

例えば、フィールドに正しくないデータ型の値を入力しようとした場合、または異なる(および互換性のない)データ型のフィールドを比較しようとした場合である。

比較の問題を訂正するにはselect文でconvert関数を使用する。

重大度レベル13 : ユーザトランザクションの構文エラー

重大度レベル13のメッセージは現在のユーザ定義トランザクションに問題があることを示す。

たとえばbegin transactionを発行しないでcommit transactionコマンドを実行したり、定義されていないセーブポイントにトランザクションをロールバックしようとした場合である(セーブポイント名の入力ミスの場合もある)。

重大度レベル13はデッドロックを示すこともある。

その場合にはデッドロックの原因となるプロセスはロールバックされる。

コマンドを再起動しなければならない。

重大度レベル14 : コマンド実行のパーミッションが不十分

重大度レベル14のメッセージはコマンドの実行やデータベースオブジェクトのアクセスに必要なパーミッションがないことを示す。

データベースオブジェクトの所有者、データベースの所有者、またはシステム管理者に連絡して問題のコマンドやオブジェクトの使用パーミッションを取得すること。

重大度レベル15 : SQL文の構文エラー

重大度レベル15のメッセージはコマンドの構文に誤りがあることを示す。

これらのエラーメッセージのテキストには間違いのある行番号およびその付近にある特定のワードが含まれている。

重大度レベル16 : その他のユーザエラー

重大度レベル16のエラーメッセージのほとんどは他のカテゴリに属さない致命的でない誤りがあったことを示す。

16以上の重大度レベルはソフトウェアまたはハードウェアのエラーも示す。

例えば、制約に違反する方法でビューを更新しようとした場合である。

また、あるフィールド名をもつテーブルを複数指定したコマンドの中でそのフィールド名を修飾しなかった場合である。

Adaptive Serverはユーザが意図するテーブルを判断することができないのでコマンドの構文と作業データベースのコンテキストをチェックして欲しい。

通常は重大度レベルが17以上のメッセージでもdbcc checktableまたはdbcc checkallocによって発生した場合は次のオブジェクトでもチェックが行われるように重大度レベル16と表示される。

dbccユーティリティを実行しているときに重大度レベル16のエラーメッセージが表示された場合は、2500〜2599のエラーメッセージを確認すること。

(*) システム管理者は重大度レベル17〜26までのエラーの発生をモニタすること。

重大度レベル17および18は通常はエラーログにレポートされない。ユーザには重大度レベル17および18のエラーが発生した場合にシステム管理者に連絡するよう指示を与えておくべきである。

重大度レベル17 : リソース不足

重大度レベル17のエラーメッセージはコマンドが原因でAdaptive Serverのリソース(通常はディスク上のデータベース用の領域)が不足したり、システム管理者が設定した制限を超えたことを示す。

実行中の作業を続行できるが実行できないコマンドもある。

システムの制限には同時にオープンできるデータベースの個数とAdaptive Serverに接続できる接続数などがある。

制限はシステムテーブルに保管され、sp_configureコマンドを使用してチェックできる。

領域が不足していることを示す重大度レベル17のエラーメッセージの場合、データベース所有者が訂正できる。

その他の重大度レベル17のエラーメッセージについては訂正するのはシステム管理者である。

重大度レベル18 : 致命的でない内部エラーが検出された

重大度レベル18のエラーメッセージはある種の内部ソフトウェアのバグを示す。

ただしコマンドは最後まで実行されAdaptive Serverとの接続は保たれる。

実行中の作業を続行できるが実行できないコマンドもある。

重大度レベル18になる状況には正当な理由もなく特定のクエリのためにアクセスパスが決定されたことをAdaptive Serverが検出した場合がある。

重大度レベル18のメッセージの原因になる問題ではユーザの作業は中断されないためユーザが問題を報告しない場合がある。

システム管理者が重大度レベル18の問題をレポートできるようにするため、重大度レベル18以上のエラーメッセージが発行された場合には必ずシステム管理者に報告するようにユーザに指示を与えたほうがよいだろう。

重大度レベル19〜

致命的な問題が起きると重大度レベル19以上のエラーメッセージが生成される。

この場合Adaptive Serverとユーザとの接続は切断される。

作業を続けるにはユーザはクライアントプログラムを再起動しなければならない。

致命的なエラーが発生するとプロセス(コマンドで指定したタスクを達成するために実行中のプログラムコード)は中止される。

プロセスは停止する前にいったん静止状態となり、発生した問題についての情報を記録する。

その後処理は強制終了され消滅する。

ユーザの接続が切断された場合はユーザは再接続して作業を再開できないこともある。

この範囲の重大度レベルの問題では1人のユーザおよび1つのプロセスだけに影響を与えるものと、データベースの全てのプロセスに影響を与えるものとがある。

場合によってはAdaptive Serverを再起動する必要がある。

これらの問題は必ずしもデータベースまたはそのオブジェクトに損傷を与えるわけではないが損傷を与える場合もある。

また、問題発生の原因が過去のデータベースまたはそのオブジェクトの損傷である場合もある。

ハードウェアの故障が原因の問題もある。

カーネルからの致命的エラーメッセージのバックトレースはエラーログファイルに送られる。

システム管理者はこのファイルを参照してエラーを見直すことができる。

重大度レベル19 : リソースでのAdaptive Serverの致命的なエラー

重大度レベル19のエラーメッセージは、設定可能でない内部制限値を超えたこと、およびAdaptive Serverが正しい順序でリカバリできないことを示す。

この場合はAdaptive Serverに再接続する必要がある。

このエラーメッセージを受け取った場合はシステム管理者に連絡すること。

重大度レベル20 : 現在のプロセスでのAdaptive Serverの致命的なエラー

重大度レベル20のエラーメッセージはAdaptive Serverがコマンドのなかにバグを検出したことを示する。

問題は現在のプロセス以外には影響を与えていない。

データベース自体が損傷した可能性はほとんどない。

dbcc診断を実行すること。

また、Adaptive Serverに再接続する必要がある。

このエラーメッセージを受け取った場合はシステム管理者に連絡すること。

重大度レベル21 : データベースプロセスでのAdaptive Serverの致命的エラー

重大度レベル21のエラーメッセージはAdaptive Serverが現在のデータベースでの全てのプロセスに影響を与えるバグを検出したことを示す。

ただしデータベース自体が損傷した可能性はほとんどない。

Adaptive Serverを再起動して、dbcc診断を実行して欲しい。

また、Adaptive Serverに再接続する必要がある。

このエラーメッセージを受け取った場合はシステム管理者に連絡すること。

重大度レベル22 : Adaptive Serverの致命的なエラー(テーブルの整合性の損傷)

重大度レベル22のエラーメッセージはメッセージに示されたテーブルまたはインデックスが以前にソフトウェアまたはハードウェアの問題によって損傷を受けたことを示する。

まずAdaptive Serverを再起動してデータベース内の他のオブジェクトも損傷を受けているかどうかを判断するためにdbccを実行する。

dbccから何かレポートされた場合は問題はディスク自体ではなくキャッシュ内だけであると考えられる。

その場合はAdaptive Serverを再起動すると問題が解決される。

再起動しても問題が解決できない場合、問題はディスクにも存在する。

エラーメッセージに示されたオブジェクトを削除すると問題が解決できる場合がある。

例えばAdaptive Serverがノンクラスタードインデックスの中に長さ0のローを見つけたことをメッセージが示す場合はテーブル所有者はインデックスを削除して作り直すことができる。

Adaptive Serverに再接続する必要がある。

このエラーメッセージを受け取った場合はシステム管理者に連絡すること。

重大度レベル23 : 致命的なエラー(データベースの整合性の損傷)

重大度レベル23のエラーメッセージは以前にソフトウェアまたはハードウェアの問題によって発生した損傷が原因でデータベース全体の整合性が失われた可能性があることを示す。

Adaptive Serverを再起動してdbcc診断を実行すること。

データベース全体に問題の可能性がある場合でも実際にはキャッシュだけの損傷で、ディスク自体には問題がないことがある。

その場合にはstartserverを使用してAdaptive Serverを再起動すると問題が解決される。

重大度レベル24 : ハードウェアエラーまたはシステムテーブルの損傷

重大度レベル24のエラーメッセージはある種のメディア障害または(まれに)sysusagesの矛盾を示す。

この場合システム管理者がデータベースを再ロードする必要がある。

またハードウェアの購入元に連絡する必要がある場合もある。

重大度レベル26 : ルールエラー

重大度レベル26のエラーメッセージは内部ロックまたは同期ルールが破損していることを示す。

Adaptive Serverをいったん停止して再起動する必要がある。