Hitachi

JP1 Version 12 JP1/Automatic Job Management System 3 メッセージ


付録B システムコールのリターンコード

代表的なシステムコールのリターンコードに対する原因と対策を次の表に示します。表にないエラーについては,使用しているOSのマニュアルを参照してください。

なお,特に断り書きがないかぎりHP-UXでのerrnoを記載しています。

主なシステムコールについてだけ記述しているので,正確に調べる場合には,メッセージで表示されたerrnoの値の該当するニモニックを,使用しているOSのerrno定義ファイル(HP-UX,およびSolarisの場合は/usr/include/sys/errno.h,WindowsおよびVisual C++の場合はヘッダerrno.hに定義されている内容)で調べてください。さらに,エラーとなったシステムコールについてマニュアルで調べて,該当するニモニックのエラーが返った原因を特定してください。

表B‒1 システムコールのリターンコードに対する原因と対策

システムコール

errno

ニモニック

考えられる主な原因

対策

fork

11

EAGAIN

プロセスの数が多過ぎるか,一時的なメモリー不足が発生しています。

再度実行しても繰り返し発生する場合は,不要なプロセスを停止させてください。

12

ENOMEM

次のどちらかの原因が考えられます。

  • スワップ領域または仮想メモリー不足のため,プロセスを新しく生成できません。

  • プロセスの数が多過ぎるか,または一部のプロセスが大量のメモリーを消費しています。

スワップ領域または仮想メモリーが足りない場合は,拡張してください。

これらを拡張できない場合は,不要なプロセスを停止させてください。

一部のプロセスが大量のメモリーを消費している場合は,該当するプロセスをいったん停止できないか検討してください。

malloc

12

ENOMEM

次のどちらかの原因が考えられます。

  • スワップ領域または仮想メモリー不足でプロセス固有メモリーを確保できません。

  • プロセスの数が多過ぎるか,または一部のプロセスが大量のメモリーを消費しています。

スワップ領域または仮想メモリーが足りない場合は,拡張してください。

これらを拡張できない場合は,不要なプロセスを停止させてください。

一部のプロセスが大量のメモリーを消費している場合は,該当するプロセスをいったん停止できないか検討してください。

22

EINVAL

メモリー管理情報の不正を検知しました。

システム管理者に連絡してください。

mkdir

13

EACCESS

アクセス権限が不正です。

組み込みDB運用ディレクトリ下の,ファイルに対するアクセス権限が正しいか確認してください。

28

ENOSPC

ファイルシステムに十分な空き領域がありません。

空き領域を確保してください。

msgget

28

ENOSPC

msgmni(メッセージキュー識別子数)の指定値が小さいです。

Windowsの場合,インストールドライブの容量,または使用リソース数が不足しています。

msgmniの該当するサーバマシン内で稼働する,全プログラムの所要量を見積もり,指定値を変更したあとに該当するサーバマシンを再起動してください。

Windowsの場合,インストールドライブに,共有メモリーサイズ以上の空き容量を確保してください。

msgrcv

22

36

EINVAL

EIDRM

組み込みDBが使用するメッセージキューが削除されました。

Windowsの場合,組み込みDB稼働中に,組み込みDBのインストール先ディレクトリ下の作業ファイルを削除したおそれがあります。

組み込みDBが異常終了していなければ,強制停止してください。その後,該当するサーバマシンを再起動してください(Windowsの場合,組み込みDBのサービスを再度開始してください)。

msgsnd

11

EAGAIN

msgmni(メッセージキュー識別子の数),またはmsgtql(メッセージ数)の指定値が小さいです。

msgmni,msgtqlの該当するサーバマシン内で稼働する,全プログラムの所要量を見積もり,指定値を変更したあとに該当するサーバマシンを再起動してください。

22

EINVAL

組み込みDBが使用するメッセージキューが削除されました。

組み込みDBが異常終了していなければ,強制停止してください。その後,該当するサーバマシンを再起動してください。

open

2

ENOENT

ファイル,またはディレクトリが見つかりません。

メッセージKFPO00107-Eの呼び出しモジュールにlogblib.cが出力されている場合は,メッセージテキストファイルが見つかりません。その場合,現在使用していない組み込みDBがOSに登録されているおそれがあります。

現在使用していない組み込みDBをajsembdbunsetコマンドで削除してください。

6

ENXIO

ファイルに対するアクセス権がありません。

デバイスが存在するか,またデバイスが有効化しているかどうかを確認してください。デバイスが有効化されていない場合は有効化してください。それ以外の原因の場合は,使用しているOSのマニュアルを参照し対策してください。

13

EACCES

ファイルに対する権限がありません。

  • 対象とするファイル,ディレクトリ,または組み込みDB運用ディレクトリの権限を見直してください。

  • 対象とするファイル,ディレクトリ,または組み込みDB運用ディレクトリに対して,実行者がアクセス権限を持っているか確認してください。

  • AJS管理者で運用している場合は,AJS管理者に対して権限があるか見直してください。

17

EEXIST

作成しようとしたファイルはすでに存在します。

ファイル名を変更して再度実行するか,または既存のファイルが不要であれば,削除してから再度実行してください。

23

ENFILE

ファイルのオープン数がシステムの上限を超えました。

Windows版の場合,インストールドライブの容量が不足しています。

OSのオペレーティングシステムパラメタ(カーネルパラメタ)の,システムでオープンできるファイル最大数(HP-UXの場合はnfile,AIX 5Lの場合はmaxuprocnofiles固定ライセンス数,Linuxの場合はNR_FILEまたはfs.file-max)の指定値を大きくしてください。また,不要なプロセスやウィンドウがありましたら停止してください。

Windows版の場合,インストールドライブに,共有メモリーサイズ以上の空き容量を確保してください。

24

EMFILE

該当するプロセスでオープンしているファイル数が多過ぎます。

Windows版の場合,インストールドライブの容量が不足しています。

OSのオペレーティングシステムパラメタ(カーネルパラメタ)の,プロセスでオープンできるファイル数の最大(HP-UXの場合はmaxfiles,Solarisの場合はrlim_fd_cur,AIX 5Lの場合はnofiles,Linuxの場合はINR_OPEN)の値を大きくしてください。Windows版の場合,インストールドライブに,共有メモリーサイズ以上の空き容量を確保してください。

999

ENOENT

Windowsの場合,組み込みDBの作業ファイルが破壊されているおそれがあります。

組み込みDBが停止しているのを確認してから,次に示すファイルをすべて削除して回復してください。

ただし,4以降のファイルはないことがあります。

  1. 組み込みDB運用ディレクトリ\uxpldir\spool\system\filmng.dat

  2. 組み込みDB運用ディレクトリ\uxpldir\spool\system\flg.dat

  3. 組み込みDB運用ディレクトリ\uxpldir\spool\system\shmmng.dat

  4. 組み込みDB運用ディレクトリ\spool\~pdatmode

  5. 組み込みDB運用ディレクトリ\spool\~pdipcid

  6. 組み込みDB運用ディレクトリ\spool\oslmqid

  7. 組み込みDB運用ディレクトリ\spool\oslsmid

  8. 組み込みDB運用ディレクトリ\spool\pdprcsts

  9. 組み込みDB運用ディレクトリ\spool\scdqid1

  10. 組み込みDB運用ディレクトリ\spool\scdqid2

  11. 組み込みDB運用ディレクトリ\tmp\pdommenv

  12. 組み込みDB運用ディレクトリ\uxpldir\spool\shm下の全ファイル

  13. 組み込みDB運用ディレクトリ\uxpldir\spool\system\semmng.dat

  14. 組み込みDB運用ディレクトリ\uxpldir\spool\system\msgmng.dat

これらのファイルを削除したあとに組み込みDBを開始する場合,エクスプローラなどの他アプリケーションで組み込みDB運用ディレクトリ\tmpにアクセスしたままの状態で,組み込みDBを開始しないでください。

semget

28

ENOSPC

semmni(セマフォ識別子の数),またはsemmns(システム内のセマフォ数)の指定値が小さいです。

Windowsの場合,インストールドライブの容量が不足しています。

semmni,およびsemmnsの該当するサーバマシン内で稼働する,全プログラムの所要量を見積もり,指定値を変更したあとに該当するサーバマシンを再起動してください。

Windowsの場合,インストールドライブに,共有メモリーサイズ以上の空き容量を確保してください。

semop

22

EINVAL

組み込みDBが使用するセマフォが削除されました。

Windowsの場合,組み込みDB稼働中に,組み込みDBのインストール先ディレクトリ下の作業ファイルを削除したおそれがあります。

組み込みDBが異常終了していなければ,強制停止してください。その後,該当するサーバマシンを再起動してください(Windowsの場合,組み込みDBのサービスを再開始してください)。

shmat

12

ENOMEM

次のどれかの原因が考えられます。

  1. 使用できるリソース数が不足しています。共有メモリーをアタッチするプロセスの空間内に連続した空き領域を確保できない場合を含みます。

  2. Windowsの場合,Windowsのレジストリーを参照中にエラーが発生しました。

  3. Windowsの場合,組み込みDBのサービスが開始されていません(共有メモリーをページングファイルに割り当てている場合)。

  1. メモリーを確保して再実行してください。

  2. Windowsのレジストリーが破損しているおそれがあります。この場合,システム管理者に連絡してください。

  3. 組み込みDBのサービスが開始状態か確認してください。組み込みDBのサービスが停止状態の場合は,サービスを開始してください。

22

EINVAL

組み込みDBの共有メモリーがありません。

OS起動完了前(/etc/rc実行中)にコマンドを実行したことが考えられます。

Windowsの場合,組み込みDB稼働中に,組み込みDBのインストール先ディレクトリ下の作業ファイルを削除したおそれがあります。

または,組み込みDBの起動が完了していない状態でコマンドを実行したことが考えられます。

OS起動完了前にコマンドを実行したのであれば,OSの起動完了を待って再度コマンドを実行してください。組み込みDBが起動完了していない場合は,組み込みDBの起動が完了してからコマンドを実行してください。

Windowsの場合,組み込みDBが異常終了していなければ,強制停止してください。その後,組み込みDBのサービスを再開始してください。

shmdt

12

ENOMEM

Windowsの場合,次のどちらかの原因が考えられます。

  • Windowsのレジストリーを参照中にエラーが発生しました。

  • 組み込みDBのサービスが開始されていません(共有メモリーをページングファイルに割り当てている場合)。

  • Windowsのレジストリーが破損しているおそれがあります。この場合,システム管理者に連絡してください。

  • 共有メモリーをページングファイルに割り当てている場合,組み込みDBのサービスが開始状態か確認してください。組み込みDBのサービスが停止状態の場合は,サービスを開始してください。

shmctl

1

EPERM

オーナーではないので共有メモリーを処理できません。

メッセージKFPO00107-Eが出力されている場合は,そのメッセージを参照してください。

12

ENOMEM

Windowsの場合,次のどちらかの原因が考えられます。

  • Windowsのレジストリーを参照中にエラーが発生しました。

  • 組み込みDBのサービスが開始されていません(共有メモリーをページングファイルに割り当てている場合)。

  • Windowsのレジストリーが破損しているおそれがあります。この場合,システム管理者に連絡してください。

  • 組み込みDBのサービスが開始状態か確認してください。組み込みDBのサービスが停止状態の場合は,サービスを開始してください。

shmget

12

ENOMEM

UNIXの場合,要求されたサイズの共有メモリーを確保するだけのメモリー量がサーバマシンにはありません。

Windowsの場合は表B-2を参照してください。

UNIXの場合,サーバマシンのメモリー使用量を減らしてください。または,OSの実メモリーを増やしてください。

Windowsの場合は表B-2を参照してください。

22

EINVAL

UNIXの場合,獲得しようとした共有メモリーのサイズが,OSのオペレーティングシステムパラメタ(カーネルパラメタ)のshmmaxの指定値を超えました。

Windowsの場合,組み込みDB稼働中に,組み込みDBのインストール先ディレクトリ下の作業ファイルを削除したおそれがあります。

UNIXの場合,OSのオペレーティングシステムパラメタ(カーネルパラメタ)のshmmaxの指定値を大きくしてください。指定を変更したあとに該当するサーバマシンを再起動してください。

組み込みDBサーバがWindows版の場合,組み込みDBが異常終了していなければ,強制停止してください。その後,組み込みDBのサービスを再開始してください。

28

ENOSPC

UNIXの場合,共有メモリー識別子の数がOSの上限値を超えました。

Windowsの場合,インストールドライブの容量が不足しています。Windowsの場合,組み込みDBサーバがWindows版の場合,インストールドライブの容量が不足しています。また,共有メモリーとしてページングファイルを割り当てている場合は,組み込みDBのサービスが共有メモリーを管理するためのプロセス固有メモリーが不足していることが考えられます。

UNIXの場合,次に示す項目の中で対処できることを一つ以上してください。

  • 同一マシン上にある共有メモリーセグメント数を減らしてください。

  • OSのオペレーティングシステムパラメタ(カーネルパラメタ)のshmmniの指定値を大きくしてください。

Windowsの場合,インストールドライブに,共有メモリーサイズ以上の空き容量を確保してください。

また,共有メモリーとしてページングファイルを割り当てている場合は,システム全体のメモリーの最大使用量を確認して,物理メモリーまたはページングファイルを拡張してください。

write

5

EIO

入出力エラーが発生しました。

OSやハードウェアの情報に従って対策してください。

14

EFAULT

アクセスできない領域に書き込みしようとしました。書き込みしようとしたディスクが切り離されたおそれがあります。

系切り替えに伴うディスクの切り替え中の場合は,問題ありませんので無視してください。組み込みDB稼働中に誤ってディスクを切り離してしまった場合は,該当するファイルをバックアップから回復するか,初期化してから使用してください。それ以外の場合は,システム管理者に連絡してください。

27

EFBIG

ファイルの大きさがシステム制限値を超えました。

組み込みDBシステム管理者,およびルートユーザでのファイルサイズの制限値を組み込みDBシステムで使用するファイルより大きく,または無制限に変更してください。または使用するファイルサイズを小さくしてください。

28

ENOSPC

ファイルシステムに十分な領域がありません。

空き領域を確保してください。

abort,creat,execl,execle,execlp,execv,execvp,fopen,fork,gethostbyaddr,gethostbyname,mmap,msgctl,msgget,msgrcv,msgsnd,open,read,readv,select,semctl,semget,semop,shmat,shmctl,shmdt,shmget,signal,sigrelse,sigset,sigsetmask,sigvector,stat,system,write,writevなど

22

EINVAL

Windows版の場合,メモリー不足が考えられます。

Windows版の場合,次に示す項目の中で対処できることをしてください。

  • サーバマシン内のデータベースの総容量を減らしてください。

  • システムの仮想メモリーの初期サイズと最大サイズを同じ値(固定値)にしてください。

表B‒2 shmgetでエラーが発生した場合の対処方法(Windowsの場合)

共有メモリーの割り当て場所

要因

確認方法

対処方法

ファイルの場合

インストールディスクの空き容量が不足している場合

組み込みDBをインストールしたドライブに,十分な空き容量があるかを確認してください。

空き容量が少ないときは,不要なファイルを削除してください。

仮想メモリーの初期値と最大値の指定が異なるため,ディスクページングファイルを配置したディスクに空き容量がない場合

ディスクページングファイルを配置したディスクに空き容量があるかを確認してください。

ディスクに空き容量がないときは,仮想メモリーを再配置してください。仮想メモリーを再配置するときは,ドライブに連続した領域を作成するように,初期サイズと最大サイズを同じ値(固定値)にしてください。

メモリーが不足している場合

メモリーの使用量を確認してください。

仮想メモリーを拡張または再配置してください。仮想メモリーを拡張または再配置するときは,ドライブに連続した領域を作成するように,初期サイズと最大サイズを同じ値(固定値)にしてください。

ページングファイルがあるディスクに十分な空き容量があるかを確認してください。

仮想メモリーに拡張が必要ならば拡張してください。このとき,仮想メモリーの指定値は,初期値と最大値を同じ値に指定してください。

ページングファイルの場合

インストールディスクの空き容量が不足している場合

組み込みDBをインストールしたドライブに,十分な空き容量があるかを確認してください。

空き容量が少ないときは,不要なファイルを削除してください。

仮想メモリーの初期値と最大値の指定が異なるため,ディスクページングファイルを配置したディスクに空き容量がない場合

ディスクページングファイルを配置したディスクに空き容量があるかを確認してください。

ディスクに空き容量がないときは,仮想メモリーを再配置してください。仮想メモリーを再配置するときは,ドライブに連続した領域を作成するように,初期サイズと最大サイズを同じ値(固定値)にしてください。

メモリーが不足している場合

メモリーの使用量を確認してください。

仮想メモリーを拡張または再配置してください。仮想メモリーを拡張または再配置するときは,ドライブに連続した領域を作成するように,初期サイズと最大サイズを同じ値(固定値)にしてください。

ページングファイルがあるディスクに十分な空き容量があるかを確認してください。

仮想メモリーに拡張が必要ならば拡張してください。このとき,仮想メモリーの指定値は,初期値と最大値を同じ値に指定してください。

組み込みDBのサービスが開始していない場合

組み込みDBのサービスが開始状態かどうかを確認してください。

組み込みDBのサービスが停止状態のときはサービスを開始してください。