AG-TECH CORPAG-TECH CORP

ENGLISH

Tech Tip
PSQL Library

「システム エラーの理解」

Actian では、zen.log (Zen v13 以前のバージョンでは PVSW.log) ファイルに記録される特定のエラーについて、お客様から質問をいただくことがあります。今月の技術的なヒントとして、システム エラーの構造と意味の理解を深めていただくのに役立つ情報を提供したいと思います。

システム エラーは、MicroKernel エンジンが、何らかの問題に遭遇したか、オペレーティング システムから予期しない応答を受け取り解決不能であったことを意味します。これらの問題の一般的な原因はファイルの破損ですが、I/O 処理中の障害、あるいは、ユーザーによる DOS コピーの実行などのファイル ロックの問題もあり得ます。アクションが正当であるかどうかを判断するために、メッセージのパターンと頻度を調べることは重要です。

システム エラー MKDE-103 は、ID.OP.SC という形式になっています。
ID – ユニークなシステム エラー ID
OP – Btrieve オペレーション
SC – オペレーティング システムからの予期しない戻り値

最初の数字のセット(ID)は、これらのエラーが発生する可能性のあるコードの特定のセクションを参照するのに内部的に使用されます。

システム エラーの 2 番目の数字は、エラー発生時に処理されていた Btrieve オペレーションです。これは、一般的に読み取りまたは書き込み(3 ~ 14)ですが、Create オペレーションの場合もあります。

次の例のような、負数のオペレーション コード(xxx.yyy.zzz の y の値)について説明します。
システム エラー:116.-3.0 ファイル:D:\DB\HCF.DAT

-1 = システム トランザクションを行う通常のバックグラウンド(I/O)スレッド。
-2 = エンジン初期化スレッド。
-3 = キャッシュ エンジンのために物理ページを取得しようとしているページ サーバー スレッド。
 あるいは、 キャッシュ エンジンが無効なページ番号でページ サーバーからページをフェッチしようとしました。
-4 = キャッシュ エンジンのために FCR を検索しているページ サーバー スレッド。
-5 = キャッシュ エンジンのためにページ バージョンをチェックしているページ サーバー スレッド。

-3、-4、-5 は、ファイルの破損ではなく、第 2 レベルのページ サーバー キャッシュからのデータ取得の問題を示します。クライアントとサーバーの両方が最新のサービス パックを適用済みかどうか確認してください。

3 番目の数字は、オペレーティング システムによって返されるエラーです。これらに関する多数のリンクがあります。Microsoft の次のページを使用してください。

http://msdn.microsoft.com/library/default.asp?url=/library/ja-jp/wcecoreos5/html/wce50lrfSystemErrorsNumericalOrder.asp

たとえば、開いているデータ ファイルをバックアップすると、システム エラー 620.05.33 が発生します。620.05 は読み取りエラーを示します。33 は Windows が返したエラーで、ERROR_LOCK_VIOLATION(プロセスは、別のプロセスがファイルの一部をロックしたため、ファイルにアクセスできません)です。

オペレーティング システム エラー 33 の “ファイルがロックされています” は、1450 と共通です。1450 は ERROR_NO_SYSTEM_RESOURCES(システム リソースが不足するため、要求されたサービスを終了できません)を示します。

すべての MicroKernel システム エラーが直接オペレーティング システム呼び出しと関係があるわけではありません。場合によっては、3 番目の数字はゼロです。

OS 呼び出しは成功したが返されたものが正しくない場合も、3 番目の数字はゼロです。 これらのシステム エラーは、フォアグラウンド スレッドで発生した場合、ほとんど PSQL ステータス 2 に関係があります。バックグラウンド スレッド(ユーザーのリクエストによって開始されたものではなく MicroKernel による内部処理)がこれらのシステム エラーのいずれかを報告した場合、3 つの数字のうち 2 番目のオペレーション コードはゼロです。

たとえば、以下の MKDE システム エラーは、通常、オペレーティング システム呼び出しとは直接関係ありません。

100 = シャドウ FCR は CommitFileChanges 中は利用できません。
101 = 旧形式
102 = 保留中のシャドー ページがコミットされていて、まだ書き込まれていませんが、Background Writer キュー上にありません。
103 = 不適切なオペレーションが SQL トリガを要求しています。
104 = ファイル上でアクティブな Writer を所有しないスレッドがそれを解放しようと試みました。
110 = レコード アドレスまたはページ番号が、物理ファイルの終わりから少なくとも 2 ページ超えた PAT ページ範囲を参照しています。
111 = 参照されたページの検索を試行中に、現在の PAT ページは、現在のコミットされたページのイメージが解放されていることを示します。
112 = 参照されたページの検索を試行中に、現在の PAT ページは、現在のコミットされたページのイメージが異なった種類のページとして定義されることを示します。
113 = プライマリ ページの読み取りを試行中にシャドー ページが見つかりました。
114 = コミットされたプライマリ ページの読み取りを試行中に、保留中の新しいページが見つかりました。
115 = バージョン 6.x ファイルに間違ったページ タイプが見つかりました(間違って 7.x とリストされていました)。
116 = ファイルから読み込まれた物理ページ上の論理ページ番号は、エンジンが探していたものではありません。ページが破損しているか PAT ページが正しくないかのどちらかです。
120 = 新しいキー値を挿入するとき、プライマリ ページが正しくないことが検出されました。
121 = 新しいキー値を挿入するとき、シャドー ページが正しくないことが検出されました。
124= ステータス 54 可変ページの破損が検出されました。

以下は 600 シリーズのシステム エラーの定義です。説明文はありません。

600 = SYSERR_READ_CLOSED_FILE
601 = SYSERR_READ_ERR
602 = SYSERR_WRITE_CLOSED_FILE
603 = SYSERR_UNKNOWN_READ_ERR
604 = SYSERR_UNKNOWN_WRITE_ERR
605 = SYSERR_UNKNOWN_OPEN_ERR
606 = SYSERR_UNKNOWN_CLOSE_ERR
607 = SYSERR_UNKNOWN_RENAME_ERR
608 = SYSERR_INVALID_BUFFER_LENGTH_ERR
609 = SYSERR_UNALIGNED_READ_BUFFER
610 = SYSERR_INVALID_READ_BUFFER_LENGTH
611 = SYSERR_UNALIGNED_WRITE_BUFFER
612 = SYSERR_INVALID_WRITE_BUFFER_LENGTH
613 = SYSERR_INVALID_SEEK_OFFSET
614 = SYSERR_IMPERSONATION_ERR
615 = SYSERR_GET_TOKEN_ERR
616 = SYSERR_ASYNC_IOERROR
617 = SYSERR_ASYNC_LASTIOERROR
618 = ASYNCXSYSWRITE_OVERLAPPEDERROR
619 = XSYSWRITE_IOERROR
620 = XSYSREAD_IOERROR
621 = ASYNCPREP_MEMORYEXHAUSTED

システム エラーとその意味について、いくつかの例を示します。

(例 1)
システム エラー:620.6.33 ファイル:D:\PROD\FILES\ISA12.BTR
33 は OS がファイルをロックしていることを示します。通常、DOS コピー、または開いているファイルのバックアップが原因です。影響されたファイルがすべてのユーザーによって閉じられるか、サービスが再起動されるまで、ユーザー エラーを発生させます。最適な方法は、すべてのユーザーがサービスを終了および/または停止するか、Backup Agent や Continuous オペレーションのような開いているファイルを対象にできるバックアップ エージェントを使用します。

(例 2)
システム エラー:115.7.0 ファイル:VOL1:APPS//DB/SCHEDULE.DAT
システム エラー:115.7.0 ファイル:VOL1:APPS//DB/CHKLIST.DAT
115 = バージョン 6.x またはそれ以降のファイルに間違ったページ タイプが見つかりました。
7 = Get Previous レコード(前レコードの取得)
0 = OS からのエラーなし。

特に、これらが何回もリストされている場合は、2 つのファイルをリビルドすると改善する可能性があります。

(例 3)
システム エラー 116.5.0、116.36.0 および 116.5.0 はすべてファイルの破損を示しています。
システム エラー 116 はファイルから読み込まれた物理ページ上の論理ページ番号がエンジンが探していたものではないことを意味します。ページが破損しているか PAT ページが正しくないかのどちらかです。ファイルをリビルドする必要があります。

この情報はシステム エラーの全範囲を示すものではありませんが、システム エラーの解釈方法について理解を深めるのに役立つでしょう。システム エラーの根本原因を判断する手助けとして、弊社サポート をご利用ください。

Contactお問い合わせ

お気軽にお問い合わせください。

お問い合わせ
必須会社名

個人のお客様は「個人」と入力してください。

必須お名前
必須メールアドレス
必須メールアドレス(確認)
必須ライセンス ありなし
ダウンロード目的