IBM Support

[Db2] Db2 コマンドや SQL ステートメントの実行が常に DB21015E で失敗する

Question & Answer


Question

Db2 コマンド行プロセッサー (CLP) からどんなコマンドやステートメントを実行しても、DB21015E で失敗するようになりました。 原因と解決方法を教えてください。

Cause

CLP はユーザーからのコマンドを受け付けるフロントエンド・プロセス (db2) と、サーバーとの接続を管理するバックエンド・プロセス (db2bp) から構成されています。
バックエンド・プロセスは起動時に /dev/null への書き込みをチェックし、これに失敗すると起動を中止します。
このとき、フロントエンド・プロセスはバックエンド・プロセスと通信できないため、DB21015E をユーザーに返します。

Answer

/dev/null がキャラクター・デバイスとして正しく定義され、すべてのユーザーの書き込み許可があることを確認してください。
たとえば、AIX で /dev/null は以下のように定義されます。
  • $ ls -al /dev/null
    crw-rw-rw-  1 root system   2,  2 Jan 25 09:04 /dev/null

a) /dev/null がキャラクター・デバイスとして正しく定義されており、group や other の書き込み許可がない場合、書き込み許可を与えてください。
  • /dev/null に書き込み許可を与える例
    $ su -
    # chmod +w /dev/null

b) /dev/null が通常ファイルになっている場合、キャラクター・デバイスとして再作成してください。
作成方法はオペレーティング・システムによって異なります。詳細はオペレーティング・システムのマニュアルを参照してください。
  • AIX で /dev/null を再作成する例
    $ su -
    # rm /dev/null
    # mknod /dev/null c 2 2

運用上の考慮点
同じユーザーで、ときどき DB21015E が返る場合は、不正な /dev/null とは別の問題の可能性があります。
たとえば、システムが高負荷のために db2bp の生成が遅れている場合は、DB2BQTIME および DB2BQTRY を調整して、フロントエンド・プロセスの待ち時間を延ばすことを検討してください。
DB2BQTIME および DB2BQTRYの詳細は、コマンド行プロセッサーのフィーチャーを参照してください。

関連情報
[Db2] パスポート・アドバンテージによく寄せられる質問
コマンド行プロセッサーのフィーチャー
DB21015E
AIX 7.1: mknod コマンド

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PmTAAU","label":"Programming Interface-\u003ECLP"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"All Versions"}]

Document Information

Modified date:
02 November 2023

UID

swg21623693