4.3 システムコールのリターンコード
代表的なシステムコールのリターンコードに対する原因と対策を表「システムコールのリターンコードに対する原因と対策」に示します。この表にないエラーについては,使用しているOSのマニュアルを参照してください。
- UNIX版の場合:
-
表「システムコールのリターンコードに対する原因と対策」は,特に断り書きがないかぎりHP-UXでのerrnoを記載しています。
主なシステムコールについてだけ記述しているので,正確に調べる場合には,メッセージで表示されたerrnoの値の該当するニモニックを,使用しているOSのerrno定義ファイル(HP-UX,及びSolarisの場合は/usr/include/sys/errno.h)で調べてください。さらに,エラーとなったシステムコールについてマニュアルで調べて,該当するニモニックのエラーが返った原因を特定してください。
- Windows版の場合:
-
主なシステムコールについてだけ記述しているので,正確に調べる場合には,メッセージで表示されたerrnoの値の該当するニモニックを,使用しているOSのerrno定義ファイルで調べてください。さらに,エラーとなったシステムコールについてマニュアルで調べて,該当するニモニックのエラーが返った原因を特定してください。
表4‒4 システムコールのリターンコードに対する原因と対策 システムコール
errno
ニモニック
考えられる主な原因
対策
fcntl
22
EINVAL
Windows版でraw I/O機能を使用している場合に,使用できない形式のパーティションを指定しています。
raw I/O機能で使用できる形式のパーティションを指定してください。raw I/O機能で使用できるパーティションの形式については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。
fork
11
EAGAIN
プロセスの数が多過ぎるか,一時的なメモリ不足が発生しています。
再度実行しても繰り返し発生する場合は,不要なプロセスを停止させてください。
12
ENOMEM
次のどちらかの原因が考えられます。
-
スワップ領域(Windows版の場合は仮想メモリ)不足のため,プロセスを新しく生成できません。
-
プロセスの数が多過ぎるか,又は一部のプロセスが大量のメモリを消費しています。
スワップ領域(Windows版の場合は仮想メモリ)が足りない場合は,拡張してください。
これらを拡張できない場合は,不要なプロセスを停止させてください。
一部のプロセスが大量のメモリを消費している場合は,該当するプロセスをいったん停止できないか検討してください。
malloc
12
ENOMEM
次のどちらかの原因が考えられます。
-
スワップ領域(Windows版の場合は仮想メモリ)不足でプロセス固有メモリを確保できません。
-
プロセスの数が多過ぎるか,又は一部のプロセスが大量のメモリを消費しています。
スワップ領域(Windows版の場合は仮想メモリ)が足りない場合は,拡張してください。
これらを拡張できない場合は,不要なプロセスを停止させてください。
一部のプロセスが大量のメモリを消費している場合は,該当するプロセスをいったん停止できないか検討してください。
22
EINVAL
メモリ管理情報の不正を検知しました。
保守員に連絡してください。
mkdir
13
EACCESS
アクセス権限が不正です。
HiRDB運用ディレクトリ下の,ファイルに対するアクセス権限が正しいか確認してください。
28
ENOSPC
ファイルシステムに十分な空き領域がありません。
ファイルシステム内の不要なファイルを削除するか,又は空き領域に余裕があるファイルシステムにファイルを移行してください。
msgget
28
ENOSPC
UNIX版の場合:
msgmni(メッセージキュー識別子数)の指定値が小さいです。
Windows版の場合:
インストールドライブの容量,又は使用リソース数が不足しています。
UNIX版の場合:
msgmniの該当するサーバマシン内で稼働する,全プログラムの所要量を見積もり,指定値を変更した後に該当するサーバマシンを再起動してください。
Windows版の場合:
インストールドライブに,共用メモリサイズ以上の空き容量を確保してください。
又は,システム環境変数PDUXPLMSGMNIに必要なリソース数(メッセージキュー識別子数)の値を設定してください。メッセージキュー識別子数の計算式については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。なお,システム環境変数PDUXPLMSGMNIの省略時仮定値は50です。
msgrcv
22
36
EINVAL
EIDRM
UNIX版の場合:
HiRDB稼働中に,OSのipcrmコマンドやHiRDBのpdsetupコマンドを誤って実行したため,HiRDBが使用するメッセージキューが削除されました。
Windows版の場合:
HiRDB稼働中に,HiRDBのインストールディレクトリ下の作業ファイルを削除した可能性があります。
HiRDBが異常終了していなければ,強制終了してください。その後,該当するサーバマシンを再起動してください(Windows版の場合,HiRDBのサービスを再度開始してください)。
msgsnd
11
EAGAIN
msgmni(メッセージキュー識別子の数),又はmsgtql(メッセージ数)の指定値が小さいです。
UNIX版の場合:
msgmni,msgtqlの該当するサーバマシン内で稼働する,全プログラムの所要量を見積もり,指定値を変更した後に該当するサーバマシンを再起動してください。
Windows版の場合:
システム環境変数PDUXPLMSGTQLに必要なリソース数(メッセージキューテーブル数)の値を設定してください。メッセージキューテーブル数の計算式については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。なお,システム環境変数PDUXPLMSGTQLの省略時仮定値は80です。
22
EINVAL
HiRDB稼働中に,OSのipcrmコマンドやHiRDBのpdsetupコマンドを誤って実行したため,HiRDBが使用するメッセージキューが削除されました。
HiRDBが異常終了していなければ,強制終了してください。その後,該当するサーバマシンを再起動してください。
open
2
ENOENT
ファイル,又はディレクトリが見付かりません。
KFPO00107-Eメッセージの呼び出しモジュールにlogblib.cが出力されている場合は,メッセージテキストファイルが見付かりません。その場合の原因を次に示します。
UNIX版の場合:
次のどれかの原因が考えられます。
-
pdsetupコマンドが正常リターンする前にHiRDBのコマンドを実行しています。
-
PDDIR環境変数が正しく設定されていません。
-
現在使用していないHiRDBがOSに登録されています。
Windows版の場合:
PDDIR環境変数が正しく設定されていないことが考えられます。
UNIX版の場合:
エラーの原因に応じて,次の対策をしてください。
-
pdsetupコマンドが正常にリターンしたことを確認してから,HiRDBのコマンドを実行するようにしてください。
-
PDDIR環境変数が正しく設定されているかどうかを見直してください。
ユーザシェルの場合,envコマンドでPDDIRの値が正しく設定されているかどうか確認してください。
exportが漏れていたり,setを使用してPDDIR環境変数を設定したりしていると,HiRDBのコマンドプロセスまで設定値が引き継がれないで,この現象が発生します。
OpenTP1,HAモニタ,Hitachi HA Toolkit Extension,クラスタソフトウェア,JP1,DBPARTNER,HiRDB Datareplicator,HiRDB CMなどの製品を使用している場合は,それらの製品のPDDIR環境変数の設定方法が正しいかどうか確認してください。
-
現在使用していないHiRDBをpdsetup -dコマンドでOSから登録解除してください。実行環境をすべて削除したい場合は,pdsetup -dコマンドの応答でyを応答してください。
Windows版の場合:
PDDIR環境変数が正しく設定されているかどうかを見直してください。コマンドプロンプトからコマンドを実行した場合は,setコマンドでPDDIRが正しく設定されているかどうかを確認してください。
OpenTP1,JP1,DBPARTNER,HiRDB Datareplicator,HiRDB CMなどの製品を使用している場合は,それらの製品のPDDIR環境変数の設定方法が正しいかどうか確認してください。
6
ENXIO
ファイルに対するアクセス権がありません。
デバイスが存在するか,またデバイスが有効化しているかどうかを確認してください。デバイスが有効化されていない場合は有効化してください。それ以外の原因の場合は,使用しているOSのマニュアルを参照し対策してください。
13
EACCES
ファイルに対するアクセス権がありません。
-
対象とするファイル,ディレクトリ,又はHiRDB運用ディレクトリの権限を見直してください。
-
対象とするファイル,ディレクトリ,又はHiRDB運用ディレクトリに対して,実行者がアクセス権限を持っているか確認してください。
17
EEXIST
作成しようとしたファイルは既に存在します。
ファイル名を変更して再度実行するか,又は既存のファイルが不要であれば,削除してから再度実行してください。
23
ENFILE
UNIX版の場合:
ファイルのオープン数がシステムの上限を超えました。
Windows版の場合:
インストールドライブの容量が不足しています。
UNIX版の場合:
OSのオペレーティングシステムパラメタ(カーネルパラメタ)の,システムでオープンできるファイル最大数(HP-UXの場合はnfile,AIXの場合はmaxuproc×nofiles×固定ライセンス数,Linuxの場合はNR_FILE又はfs.file-max)の指定値を大きくしてください。また,不要なプロセスやウィンドウがありましたら停止してください。
Windows版の場合:
インストールドライブに,共用メモリサイズ以上の空き容量を確保してください。
24
EMFILE
UNIX版の場合:
該当するプロセスでオープンしているファイル数が多過ぎます。
Windows版の場合:
インストールドライブの容量が不足しています。
UNIX版の場合:
HiRDBのコマンドやユティリティのプロセスで発生した場合は,OSのオペレーティングシステムパラメタ(カーネルパラメタ)の,プロセスでオープンできるファイル数の最大(HP-UXの場合はmaxfiles,Solarisの場合はrlim_fd_cur,AIXの場合はnofiles,Linuxの場合はINR_OPEN)の値を大きくしてください。
HiRDBのサーバプロセスで発生した場合は,保守員に連絡してください。
Windows版の場合:
インストールドライブに,共用メモリサイズ以上の空き容量を確保してください。
999
ENOENT
Windows版の場合,HiRDBの作業ファイルが破壊されている可能性があります。
HiRDBが停止しているのを確認してから,次に示すファイルをすべて削除して回復してください。
ただし,4以降のファイルはないことがあります。
-
%PDDIR%\uxpldir\spool\system\filmng.dat
-
%PDDIR%\uxpldir\spool\system\flg.dat
-
%PDDIR%\uxpldir\spool\system\shmmng.dat
-
%PDDIR%\spool\〜pdatmode
-
%PDDIR%\spool\〜pdipcid
-
%PDDIR%\spool\oslmqid
-
%PDDIR%\spool\oslsmid
-
%PDDIR%\spool\pdprcsts
-
%PDDIR%\spool\scdqid1
-
%PDDIR%\spool\scdqid2
-
%PDDIR%\tmp\pdommenv
-
%PDDIR%\uxpldir\spool\shm下の全ファイル
-
%PDDIR%\uxpldir\spool\system\semmng.dat
-
%PDDIR%\uxpldir\spool\system\msgmng.dat
これらのファイルを削除した後にHiRDBを開始する場合,エクスプローラなどの他アプリケーションで%PDDIR%¥tmpにアクセスしたままの状態で,HiRDBを開始しないでください。
semget
12
ENOMEM
使用リソース数が不足しています。
システム環境変数PDUXPLSEMMAXに必要なリソース数(セマフォ識別子数)の値を設定してください。セマフォ識別子数の計算式については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。なお,システム環境変数PDUXPLSEMMAXの省略時仮定値は64です。
28
ENOSPC
UNIX版の場合:
semmni(セマフォ識別子の数),又はsemmns(システム内のセマフォ数)の指定値が小さいです。
Windows版の場合:
インストールドライブの容量が不足しています。
UNIX版の場合:
semmni,及びsemmnsの該当するサーバマシン内で稼働する,全プログラムの所要量を見積もり,指定値を変更した後に該当するサーバマシンを再起動してください。
Windows版の場合
インストールドライブに,共用メモリサイズ以上の空き容量を確保してください。
semop
22
EINVAL
UNIX版の場合:
HiRDB稼働中にOSのipcrmコマンドやHiRDBのpdsetupコマンドを誤って実行したため,HiRDBが使用するセマフォが削除されました。
Windows版の場合:
HiRDB稼働中に,HiRDBのインストールディレクトリ下の作業ファイルを削除した可能性があります。
HiRDBが異常終了していなければ,強制終了してください。その後,該当するサーバマシンを再起動してください(Windows版の場合,HiRDBのサービスを再開始してください)。
shmat
12
ENOMEM
次のどれかの原因が考えられます。
-
使用できるリソース数が不足しています。共用メモリをアタッチするプロセスの空間内に連続した空き領域を確保できない場合を含みます。
-
Windows版の場合,Windowsのレジストリを参照中にエラーが発生しました。
-
Windows版の場合,HiRDBのサービスが開始されていません(共用メモリをページングファイルに割り当てている場合)。
エラーの原因に応じて,次の対策をしてください。
-
Windows版の場合,システム環境変数PDUXPLSHMMAXに必要なリソース数(共用メモリ使用数)の値を設定してください。共用メモリ使用数の計算式については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」の「リソース数に関連する環境変数の見積もり」を参照してください。
なお,システム環境変数PDUXPLSHMMAXの省略時仮定値は4,096です。使用できるメモリを用意できない場合は,HiRDBのシステム定義を変更(グローバルバッファ面数を縮小するなど)して,共用メモリ所要量を小さくしてください。
-
pdntenvコマンドの-shmfileオプションの指定値を確認してください。指定値がregular,page,及び空白以外の場合,Windowsのレジストリが破損している可能性があります。この場合,保守員に連絡してください。
-
共用メモリをページングファイルに割り当てている場合,HiRDBのサービスが開始状態になっているか確認してください。HiRDBのサービスが停止状態の場合は,サービスを開始してください。
22
EINVAL
UNIX版の場合:
HiRDBの共用メモリがありません。
OS起動完了前(/etc/rc実行中)にHiRDBのコマンドを実行した,又は/etc/localrcなどのOS起動完了に実行される環境ファイルに,HiRDBのコマンドを記述したことが考えられます。
Windows版の場合:
HiRDB稼働中に,HiRDBのインストールディレクトリ下の作業ファイルを削除した可能性があります。
又は,HiRDBの起動が完了していない状態でコマンドを実行したことが考えられます。
UNIX版の場合:
OS起動完了前にHiRDBのコマンドを実行したのであれば,OSの起動完了を待って再度コマンドを実行してください。
また,OSの環境ファイル/etc/localrcにはHiRDBのコマンドを記述しないでください。
HiRDBが起動完了していない場合は,HiRDBの起動が完了してからコマンドを実行してください。
Windows版の場合:
HiRDBが起動完了していない場合は,HiRDBの起動が完了してからコマンドを実行してください。HiRDBが異常終了していなければ,強制終了してください。その後,HiRDBのサービスを再開始してください。
shmdt
12
ENOMEM
Windows版の場合,次のどちらかの原因が考えられます。
-
Windowsのレジストリを参照中にエラーが発生しました。
-
HiRDBのサービスが開始されていません(共用メモリをページングファイルに割り当てている場合)。
-
pdntenvコマンドの-shmfileオペランドの指定値を確認してください。regular,page,及び空白以外の場合,Windowsのレジストリが破損している可能性があります。この場合,保守員に連絡してください。
-
共用メモリをページングファイルに割り当てている場合,HiRDBのサービスが開始状態か確認してください。HiRDBのサービスが停止状態の場合は,サービスを開始してください。
shmctl
1
EPERM
オーナーではないので共用メモリを処理できません。
KFPH23015-E,KFPO00107-Eメッセージが出力されている場合は,そのメッセージを参照してください。
12
ENOMEM
Windows版の場合,次のどちらかの原因が考えられます。
-
Windowsのレジストリを参照中にエラーが発生しました。
-
HiRDBのサービスが開始されていません(共用メモリをページングファイルに割り当てている場合)。
-
pdntenvコマンドの-shmfileオペランドの指定値を確認してください。regular,page,及び空白以外の場合,Windowsのレジストリが破損している可能性があります。この場合,保守員に連絡してください。
-
共用メモリをページングファイルに割り当てている場合,HiRDBのサービスが開始状態か確認してください。HiRDBのサービスが停止状態の場合は,サービスを開始してください。
shmget
1
EPERM
Linux版の場合:
Hugepage機能を用いた共用メモリの固定化を適用している場合,獲得しようとした共用メモリのサイズが,OSのオペレーティングシステムパラメタ(カーネルパラメタ)の指定値を超えました。
Linux版の場合:
次に示すOSのオペレーティングシステムパラメタ(カーネルパラメタ)の指定値を見直してください。
-
soft memlock
-
hard memlock
OSの各オペレーティングシステムパラメタ(カーネルパラメタ)の指定値及び指定方法は,マニュアル「HiRDB Version 9 システム導入・設計ガイド」の「LinuxのHugepage機能の指定」を参照してください。
Linux版の場合:
Hugepage機能を用いた共用メモリの固定化を適用している場合,共用メモリを確保する権限がありません。
Linux版の場合:
OSのオペレーティングシステムパラメタ(カーネルパラメタ)のvm.hugetlb_shm_groupの指定値を見直してください。
vm.hugetlb_shm_groupの指定値及び指定方法は,マニュアル「HiRDB Version 9 システム導入・設計ガイド」の「LinuxのHugepage機能の指定」を参照してください。
12
ENOMEM
UNIX版の場合:
要求されたサイズの共用メモリを確保するだけのメモリ量がサーバマシンにはありません。
AIX版の場合:
HiRDBは早期ページングスペース割り当てを実施します。共用メモリを確保するだけの,ページングスペースが不足しています。
Linux版の場合:
Hugepage機能を用いた共用メモリの固定化を適用している場合,hugepagesの数が不足しました。
Windows版の場合:
表「shmgetでエラーが発生した場合の対処方法(Windows版の場合)」を参照してください。
UNIX版の場合:
サーバマシンのメモリ使用量を減らしてください。又は,OSの実メモリを増やしてください。
AIX版の場合:
HiRDBのメモリ所要量よりも大きなページングスペースを確保してください。
Linux版の場合:
OSのオペレーティングシステムパラメタ(カーネルパラメタ)のvm.nr_hugepagesの指定値を見直してください。
vm.nr_hugepagesの指定値及び指定方法は,マニュアル「HiRDB Version 9 システム導入・設計ガイド」の「LinuxのHugepage機能の指定」を参照してください。
Windows版の場合:
表「shmgetでエラーが発生した場合の対処方法(Windows版の場合)」を参照してください。
22
EINVAL
UNIX版の場合:
獲得しようとした共用メモリのサイズが,OSのオペレーティングシステムパラメタ(カーネルパラメタ)のshmmaxの指定値を超えました。
Windows版の場合:
HiRDB稼働中に,HiRDBのインストールディレクトリ下の作業ファイルを削除した可能性があります。
UNIX版の場合:
OSのオペレーティングシステムパラメタ(カーネルパラメタ)のshmmaxの指定値を大きくしてください。指定を変更した後に該当するサーバマシンを再起動してください。
Windows版の場合:
HiRDBが異常終了していなければ,強制終了してください。その後,HiRDBのサービスを再開始してください。
28
ENOSPC
UNIX版の場合:
共用メモリ識別子の数がOSの上限値を超えました。
Windows版の場合:
インストールドライブの容量が不足しています。また,共用メモリとしてページングファイルを割り当てている場合は,HiRDBのサービスが共用メモリを管理するためのプロセス固有メモリが不足していることが考えられます。
UNIX版の場合:
次に示す項目の中で対処できることを一つ以上してください。
(1)同一マシン上にある共用メモリセグメント数を減らしてください。
(2)OSのオペレーティングシステムパラメタ(カーネルパラメタ)のshmmni,及びshmallの指定値を大きくしてください。
Windows版の場合:
インストールドライブに,共用メモリサイズ以上の空き容量を確保してください。また,共用メモリとしてページングファイルを割り当てている場合は,システム全体のメモリの最大使用量を確認して,物理メモリ又はページングファイルを拡張してください。
vfork
-1800番台※
−
表「vfork,waitpidで-1800番台のエラーが発生した場合の原因と対策」を参照してください。
waitpid
-1800番台※
−
表「vfork,waitpidで-1800番台のエラーが発生した場合の原因と対策」を参照してください。
write
5
EIO
入出力エラーが発生しました。
OSやハードウェアの情報に従って対策してください。
14
EFAULT
アクセスできない領域に書き込みしようとしました。書き込みしようとしたディスクが切り離された可能性があります。
系切り替えに伴うディスクの切り替え中の場合は,問題ありませんので無視してください。HiRDB稼働中に誤ってディスクを切り離してしまった場合は,該当するファイルをバックアップから回復するか,初期化してから使用してください。それ以外の場合は,保守員に連絡してください。
27
EFBIG
ファイルの大きさがシステム制限値を超えました。
HiRDB管理者,及びルートユーザでのファイルサイズの制限値をHiRDBで使用するファイルより大きく,又は無制限に変更してください。又は使用するファイルサイズを小さくしてください。
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版の場合,次に示す項目の中で対処できることをしてください。
-
システム共通定義にpd_ntfs_cache_disable=Nの指定がある場合は削除してください。
-
サーバマシン内のデータベースの総容量を減らしてください。
-
グローバルバッファのサイズを小さくしてください。
-
次に示すオペランドの指定値を小さくしてください。
pd_max_users
pd_process_count
pd_max_bes_process
pd_max_dic_process
pd_max_server_process
pd_max_rdarea_no
pd_max_file_no
pd_max_access_tables
pd_lck_pool_size
pd_fes_lck_pool_size
-
システムの仮想メモリの初期サイズと最大サイズを同じ値(固定値)にしてください。
-
統計情報,各種トレース情報などを取得している場合は,取得しないようにしてください。
tempnam
12
ENOMEM
UNIX版の場合:
次のどちらかの原因が考えられます。
-
スワップ領域不足でプロセス固有メモリを確保できません。
-
プロセス数が多過ぎるか,又は一部のプロセスが大量のメモリを消費しています。
Windows版の場合:
次のどちらかの原因が考えられます。
-
仮想メモリ不足でプロセス固有メモリを確保できません。
-
プロセス数が多過ぎるか,又は一部のプロセスが大量のメモリを消費しています。
UNIX版の場合:
スワップ領域が足りない場合は,スワップ領域を拡張してください。拡張できない場合は,不要なプロセスを停止させてください。
一部のプロセスが大量のメモリを消費している場合は,該当するプロセスをいったん停止できないか検討してください。
Windows版の場合:
仮想メモリが足りない場合は,仮想メモリを拡張してください。拡張できない場合は,不要なプロセスを停止させてください。
一部のプロセスが大量のメモリを消費している場合は,該当するプロセスをいったん停止できないか検討してください。
13
EACCES
ディレクトリパスに対するアクセス権がありません。
tempnamが作成するファイル名称のディレクトリパスに,実行者のアクセス権限があるか確認してください。アクセス権限がない場合にはアクセス権限を与えてください。ディレクトリパスを次に示します。
UNIX版の場合:
-
/tmp又は/var/tmp
-
環境変数TMPDIRに設定されたディレクトリパス
-
HiRDB運用ディレクトリ下のtmpディレクトリ
-
OSインクルードヘッダファイルstdio.hに定義されたP_tmpdir設定値
Windows版の場合:
-
%PDDIR%\tmp
-
環境変数TEMP又はTMPに設定されたディレクトリパス
-
HiRDB運用ディレクトリ下のtmpディレクトリ
24
EMFILE
UNIX版の場合:
次のどちらかの原因が考えられます。
-
TMP_MAX値以上の一時ファイルが存在しています。
-
該当するプロセスでオープンしているファイル数が多過ぎます。
Windows版の場合:
次のどちらかの原因が考えられます。
-
32,767個以上の一時ファイルが存在しています。
-
インストールドライブ,又は環境変数TEMP若しくはTMPに設定されたドライブの容量が不足しています。
UNIX版の場合:
-
TMP_MAX値以上の一時ファイルが存在していた場合,EACCESの項に記載されているディレクトリパス下に作成されている一時ファイルのうち,不要なものを削除してください。一時ファイルには次のファイルがあります。
・運用コマンド又はユティリティ実行時の結果ファイル
・接頭辞pdで始まるファイル
-
オープンしているファイル数が多かった場合で,HiRDBのコマンド又はユティリティのプロセスでエラーが発生したときは,OSのオペレーティングシステムパラメタ(カーネルパラメタ)のmaxfilesの値を大きくしてください。
-
上記に該当しない場合は,保守員に連絡してください。
Windows版の場合:
-
32,767個以上の一時ファイルが存在していた場合,EACCESの項に記載されているディレクトリパス下に作成されている一時ファイルのうち,不要なものを削除してください。一時ファイルには次のファイルがあります。
・運用コマンド又はユティリティ実行時の結果ファイル
・接頭辞pdで始まるファイル
-
インストールドライブ,又は環境変数TEMP若しくはTMPに設定されたドライブの容量が不足した場合は,該当するドライブに共用メモリサイズ以上の空き容量を確保してください。
-
上記に該当しない場合は,保守員に連絡してください。
bind
UNIX版の場合:
226(HP-UX)
67(AIX)
125(Solaris)
98(Linux)
Windows版の場合:
10048
EADDRINUSE
WSAEADDRINUSE
HiRDBで設定したポート番号がほかのプログラムと重複しているか,又はHiRDBで複数設定したポート番号の中で重複しているおそれがあります。
HiRDBで設定したポート番号を見直し,重複しないようにしてください。
項番
ShmFileの値
割り当て場所
1
regular
HiRDB運用ディレクトリ下のファイル
2
page
ページングファイル
3
空白
HiRDB運用ディレクトリ下のファイル
表4‒6 vfork,waitpidで-1800番台のエラーが発生した場合の原因と対策 システムコール
errno
考えられる主な原因
対策
vfork
-1818
コマンド実行プロセスとの通信に失敗しました(コネクション切断を検出しました)。
コマンド実行プロセスが起動しているかどうかを確認してください※。
起動していない場合は保守員に連絡してください。
起動している場合は,システム全体でファイルディスクリプタが不足していないかを確認してください。
-1819
XDSプロセスでリソースが不足しました。
主に次の要因が考えられます。
-
ファイルディスクリプタ数が不足しました。
次のどちらかを行ってください。
-
XDSサーバ定義のpdq_max_descriptorsオペランドの指定値を見直してください。
-
システム全体でファイルディスクリプタが不足していないかどうかを確認してください。
-1871
コマンド実行プロセスでリソースが不足しました。
主に次の要因が考えられます。
-
プロセスの数が多過ぎます。
-
メモリが不足しました。
次のどちらかを行ってください。
-
システム内のプロセス数が上限に達していていないかどうかを確認してください。
-
システム内のメモリが不足していないかどうかを確認してください。
-1872
コマンド実行プロセスとのコネクション確立に失敗しました。
コマンド実行プロセスが起動しているかどうかを確認してください※。
起動していない場合は保守員に連絡してください。
起動している場合は,システム全体でファイルディスクリプタが不足していないかを確認してください。
waitpid
-1818
コマンド実行プロセスとの通信に失敗しました
(コネクション切断を検出しました)。
コマンド実行プロセスが起動しているかどうかを確認してください※。
起動していない場合は保守員に連絡してください。
起動している場合は,システム全体でファイルディスクリプタが不足していないかどうかを確認してください。
-1871
コマンド実行プロセスでリソースが不足しました。
主に次の要因が考えられます。
-
プロセスの数が多過ぎます。
-
メモリが不足しました。
次のどちらかを行ってください。
-
システム内のプロセス数が上限に達していていないかどうかを確認してください。
-
システム内のメモリが不足していないかどうかを確認してください。
-1873
コマンド実行プロセスとのコネクション切断が発生し,応答待ちが破棄されました。
コマンド実行プロセスが起動しているかどうかを確認してください※。
起動していない場合は保守員に連絡してください。
起動している場合は,システム全体でファイルディスクリプタが不足していないかどうかを確認してください。
-