Hitachi

ノンストップデータベース HiRDB Version 9 メッセージ


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版の場合:

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

  1. pdsetupコマンドが正常リターンする前にHiRDBのコマンドを実行しています。

  2. PDDIR環境変数が正しく設定されていません。

  3. 現在使用していないHiRDBがOSに登録されています。

Windows版の場合:

PDDIR環境変数が正しく設定されていないことが考えられます。

UNIX版の場合:

エラーの原因に応じて,次の対策をしてください。

  1. pdsetupコマンドが正常にリターンしたことを確認してから,HiRDBのコマンドを実行するようにしてください。

  2. PDDIR環境変数が正しく設定されているかどうかを見直してください。

    ユーザシェルの場合,envコマンドでPDDIRの値が正しく設定されているかどうか確認してください。

    exportが漏れていたり,setを使用してPDDIR環境変数を設定したりしていると,HiRDBのコマンドプロセスまで設定値が引き継がれないで,この現象が発生します。

    OpenTP1,HAモニタ,Hitachi HA Toolkit Extension,クラスタソフトウェア,JP1,DBPARTNER,HiRDB Datareplicator,HiRDB CMなどの製品を使用している場合は,それらの製品のPDDIR環境変数の設定方法が正しいかどうか確認してください。

  3. 現在使用していない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以降のファイルはないことがあります。

  1. %PDDIR%\uxpldir\spool\system\filmng.dat

  2. %PDDIR%\uxpldir\spool\system\flg.dat

  3. %PDDIR%\uxpldir\spool\system\shmmng.dat

  4. %PDDIR%\spool\〜pdatmode

  5. %PDDIR%\spool\〜pdipcid

  6. %PDDIR%\spool\oslmqid

  7. %PDDIR%\spool\oslsmid

  8. %PDDIR%\spool\pdprcsts

  9. %PDDIR%\spool\scdqid1

  10. %PDDIR%\spool\scdqid2

  11. %PDDIR%\tmp\pdommenv

  12. %PDDIR%\uxpldir\spool\shm下の全ファイル

  13. %PDDIR%\uxpldir\spool\system\semmng.dat

  14. %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

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

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

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

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

エラーの原因に応じて,次の対策をしてください。

  1. Windows版の場合,システム環境変数PDUXPLSHMMAXに必要なリソース数(共用メモリ使用数)の値を設定してください。共用メモリ使用数の計算式については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」の「リソース数に関連する環境変数の見積もり」を参照してください。

    なお,システム環境変数PDUXPLSHMMAXの省略時仮定値は4,096です。使用できるメモリを用意できない場合は,HiRDBのシステム定義を変更(グローバルバッファ面数を縮小するなど)して,共用メモリ所要量を小さくしてください。

  2. pdntenvコマンドの-shmfileオプションの指定値を確認してください。指定値がregular,page,及び空白以外の場合,Windowsのレジストリが破損している可能性があります。この場合,保守員に連絡してください。

  3. 共用メモリをページングファイルに割り当てている場合,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で設定したポート番号を見直し,重複しないようにしてください。

注※

内部的にシステムコールを発行する関数の戻り値のため,システムコールのerrnoはそのままではありません。

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

項番

共用メモリの割り当て場所※1

要因

確認方法

対処方法

1

ファイル,ページングファイル共通

リソースが不足している場合

システム環境変数PDUXPLSHMMAXの指定値を確認してください。

システム環境変数PDUXPLSHMMAXに必要なリソース数(共用メモリ使用数)の値を設定してください。共用メモリ使用数の計算式については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」を参照してください。なお,システム環境変数PDUXPLSHMMAXの省略時仮定値は4,096です。

2

ファイルの場合

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

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

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

3

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

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

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

4

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

仮想メモリ(ページングファイル)に十分な空き容量があるかを確認してください。

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

5

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

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

6

インストール情報が正しく参照できない場合

インストール情報を確認してください。インストール情報については,pdntenvコマンドで表示できます。pdntenvコマンドについては,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。

pdntenvコマンドでShmFileの値を確認してください。ShmFileの値がregular,page,又は空白以外の場合は,Windowsのレジストリファイルが破損しているおそれがあるため,保守員へ連絡してください。

7

メモリのページ固定に失敗した場合

HiRDBシステム定義,又はコマンドラインにメモリのページ固定をする設定があるかどうか確認してください。

メモリのページ固定をする場合,共用メモリの割り当て場所はページングファイルである必要があります。共用メモリの割り当て場所をページングファイルに変更してください。

8

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

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

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

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

9

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

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

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

10

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

仮想メモリ(ページングファイル)に十分な空き容量があるかを確認してください。

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

11

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

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

共用メモリのページ固定を有効にしている場合は,共用メモリ再利用機能の適用を検討してください。

共用メモリ再利用機能については,マニュアル「HiRDB Version9 システム導入・設計ガイド」の「システム設計」を参照してください。

12

インストール情報が正しく参照できない場合

インストール情報を確認してください。インストール情報については,pdntenvコマンドで表示できます。pdntenvコマンドについては,マニュアル「HiRDB Version 9 コマンドリファレンス」を参照してください。

pdntenvコマンドでShmFileの値を確認してください。ShmFileの値がregular,page,又は空白以外の場合は,Windowsのレジストリファイルが破損しているおそれがあるため,保守員へ連絡してください。

13

HiRDBのサービスが開始していない場合

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

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

14

メモリのページ固定に失敗した場合

仮想メモリやページングファイルを配置したディスクに十分な空き容量があるかを確認してください。十分な空き容量があるにもかかわらず,このエラーになる場合は,物理メモリに連続領域がないため,ページ固定に失敗しています。

次に示すどれかの処置をしてください。

  • 共用メモリ再利用機能を適用する

  • メモリのページ固定をしないようにする

  • 共用メモリが物理メモリの連続領域上に配置できる容量になるように,SHMMAXオペランドの指定値を見直す

  • 物理メモリ上に連続領域を確保できるように,OSを再起動する※2

  • 物理メモリを増やし,共用メモリを固定できる領域を増やす

共用メモリ再利用機能については,マニュアル「HiRDB Version9 システム導入・設計ガイド」の「システム設計」を参照してください。

SHMMAXオペランドについては,マニュアル「HiRDB Version 9 システム定義」を参照してください。

15

共用メモリをメモリ内にページ固定できる権限がありません。

次に示すどちらかの処置をしてください。

  • OSの[ローカル セキュリティ設定]−[ローカル ポリシー]−[ユーザー権利の割り当て]の「メモリ内のページのロック」権限に,HiRDB管理者を設定してください。

  • HiRDB/シングルサーバで,IPアドレスを引き継がない系切り替え機能を使用しない場合,サービス実行時に使用するログオンのアカウントをローカルシステムアカウントに設定してください。

注※1

共用メモリの割り当て場所については,pdntenvコマンドが表示する値ShmFileで確認できます。pdntenvコマンドが表示する値と割り当て場所を次に示します。

項番

ShmFileの値

割り当て場所

1

regular

HiRDB運用ディレクトリ下のファイル

2

page

ページングファイル

3

空白

HiRDB運用ディレクトリ下のファイル

注※2

物理メモリが断片化すると,OSが再起動されるまで断片化した領域が結合されない場合があるため,確実に連続領域を作成するにはOSを再起動する必要があります。

表4‒6 vfork,waitpidで-1800番台のエラーが発生した場合の原因と対策

システムコール

errno

考えられる主な原因

対策

vfork

-1818

コマンド実行プロセスとの通信に失敗しました(コネクション切断を検出しました)。

コマンド実行プロセスが起動しているかどうかを確認してください

起動していない場合は保守員に連絡してください。

起動している場合は,システム全体でファイルディスクリプタが不足していないかを確認してください。

-1819

XDSプロセスでリソースが不足しました。

主に次の要因が考えられます。

  • ファイルディスクリプタ数が不足しました。

次のどちらかを行ってください。

  • XDSサーバ定義のpdq_max_descriptorsオペランドの指定値を見直してください。

  • システム全体でファイルディスクリプタが不足していないかどうかを確認してください。

-1871

コマンド実行プロセスでリソースが不足しました。

主に次の要因が考えられます。

  • プロセスの数が多過ぎます。

  • メモリが不足しました。

次のどちらかを行ってください。

  • システム内のプロセス数が上限に達していていないかどうかを確認してください。

  • システム内のメモリが不足していないかどうかを確認してください。

-1872

コマンド実行プロセスとのコネクション確立に失敗しました。

コマンド実行プロセスが起動しているかどうかを確認してください

起動していない場合は保守員に連絡してください。

起動している場合は,システム全体でファイルディスクリプタが不足していないかを確認してください。

waitpid

-1818

コマンド実行プロセスとの通信に失敗しました

(コネクション切断を検出しました)。

コマンド実行プロセスが起動しているかどうかを確認してください

起動していない場合は保守員に連絡してください。

起動している場合は,システム全体でファイルディスクリプタが不足していないかどうかを確認してください。

-1871

コマンド実行プロセスでリソースが不足しました。

主に次の要因が考えられます。

  • プロセスの数が多過ぎます。

  • メモリが不足しました。

次のどちらかを行ってください。

  • システム内のプロセス数が上限に達していていないかどうかを確認してください。

  • システム内のメモリが不足していないかどうかを確認してください。

-1873

コマンド実行プロセスとのコネクション切断が発生し,応答待ちが破棄されました。

コマンド実行プロセスが起動しているかどうかを確認してください

起動していない場合は保守員に連絡してください。

起動している場合は,システム全体でファイルディスクリプタが不足していないかどうかを確認してください。

注※

コマンド実行プロセスが起動しているかどうかは,pdls -d prc -aコマンドを実行し,サーバ名が_cmddとなっているプロセスが存在しているかどうかで確認できます。