一般的な Db2 Connect の問題

Db2 Connect を使用している際に発生する接続の問題には、共通の症状および共通の解決方法があります。

どの場合でも、以下の形式で示されます。
  • 表示されたメッセージに関連した、 メッセージ番号と戻りコード (またはプロトコル固有の戻りコード) の組み合わせ。 各メッセージと戻りコードの組み合わせには、個別の見出しがあり、 この見出しはメッセージ番号順、その後に戻りコードの順で並べられます。
  • 症状。通常は、サンプル・メッセージのリスト形式で示されます。
  • 解決方法。エラーの推定原因が示されます。 場合によっては、複数の解決方法が提示されることがあります。

SQL0965 または SQL0969

症状
メッセージ SQL0965 そして SQL0969 は、 IBM Db2 for IBM iDb2 for z/OS および Db2 Server for VM and VSE

いずれかのメッセージが出された場合、 そのメッセージを発行したデータベース・サーバー製品の資料で、 元の SQL コードを調べる必要があります。

解決方法
IBM メインフレーム・データベースから受け取った SQL コードを変換できません。 そのエラー・コードに基づいて問題を訂正してから、失敗したコマンドを再サブミットしてください。

SQL5043N

症状
1 つまたは複数の通信プロトコルに対するサポートが正常に開始できませんでした。 ただし、コアのデータベース・マネージャーの機能は正常に開始されました。

おそらく、TCP/IP プロトコルが Db2 Connect サーバーで開始されていません。 以前に成功したクライアント接続がまだ残っている可能性があります。

diaglevel = 4 の場合、db2diag ログ・ファイルに同様の項目が含まれている可能性があります。例えば次のようになります。
   2001-05-30-14.09.55.321092   Instance:svtdbm5   Node:000
   PID:10296(db2tcpcm)   Appid:none
   common_communication  sqlcctcpconnmgr_child   Probe:46
   DIA3205E Socket address "30090" configured in the TCP/IP
   services file and
   required by the TCP/IP server support is being used by another
   process.
解決方法
この警告は、Db2 Connect (リモート・クライアントのサーバーとして動作している) が 1 つまたは複数のクライアント通信プロトコルを処理する際に問題が発生していることを示しています。 これらのプロトコルは TCP/IP およびその他のものであり、このメッセージは通常、 Db2 Connect に定義されているこれらの通信プロトコルのいずれかが正しく構成されていないことを示しています。

DB2COMM プロファイル変数が定義されていないか、不正に定義されていることが原因かもしれません。 一般に、問題は DB2COMM 変数とデータベース・マネージャー構成で定義した名前 (例えば、svcename または nname) との間のミスマッチの結果です。

可能性のあるシナリオとしては、以前は接続に成功しており、 構成も変更していないのに、SQL5043 エラー・メッセージを受け取ってしまったというものです。 これは、TCP/IP プロトコルの使用時にリモート・システムが何らかの理由で接続を異常終了したときに発生する可能性があります。 これが発生した場合、接続はクライアント上にまだ存続しているように見えることがあり、 次のコマンドを実行することによってさらなる介入なしで、接続をリストアすることができます。

最も可能性が高いのは、 Db2 Connect Server に接続しているクライアントの 1 つが、TCP/IP ポート上にハンドルを持っている場合です。 Db2 Connect サーバー に接続されている各クライアント・マシンで、以下のコマンドを入力します。
   db2 terminate
   db2stop

SQL30020

症状
SQL30020N 実行が、後続のコマンドおよび SQL ステートメントの正常な実行に影響を与える分散プロトコル・エラーのために失敗しました。
解決方法
このエラーが発生したら、サービス担当者に連絡してください。 サービスに連絡する前に、 db2support コマンドを実行してください。

SQL30060

症状
SQL30060N "<authorization-ID>" に操作 "<operation>" の実行に必要な権限がありません。
解決方法
Db2 for z/OSへの接続時に、コミュニケーション・データベース (CDB) 表が正しく更新されていません。

SQL30061

症状
誤った IBM メインフレーム・データベース・サーバー・ロケーションに接続しています-ターゲット・データベースが見つかりません。
解決方法
DCS ディレクトリー項目に誤ったサーバー・データベース名を指定した可能性があります。 これが生じた場合、SQLCODE -30061 がアプリケーションに戻されます。

をチェックする。 Db2® ノード、データベース、およびDCSディレクトリ・エントリを確認してください。 DCS ディレクトリー項目のターゲット・データベース名のフィールドは、 プラットフォームに基づいたデータベースの名前に対応していなければなりません。 例えば、 Db2 for z/OS データベースの場合、使用する名前は、 DSNL004I メッセージ (LOCATION=location) で指定されているブート・ストラップ・データ・セット (BSDS) の「LOCATION=locname」フィールドで使用される名前と同じでなければなりません。

TCP/IP ノードへの正しいコマンドは次のとおりです。
   db2 catalog tcpip node node_name remote host_name_or_address
                server port_no_or_service_name
   db2 catalog dcs database local_name as real_db_name
   db2 catalog database local_name as alias at node node_name
                authentication server
その後にデータベースへ接続するには、次のコマンドを実行します。
   db2 connect to alias user user_name using password

SQL30081N (戻りコード 79)

症状
   SQL30081N  A communication error has been detected.
   Communication protocol
   being used: "TCP/IP".  Communication API being used: "SOCKETS".
   Location
   where the error was detected: "".  Communication function
   detecting the error:
   "connect".  Protocol specific error code(s): "79", "*", "*".
   SQLSTATE=08001
解決方法
このエラーは、リモート・クライアントが Db2 Connect サーバーへの接続に失敗した場合に発生することがあります。 また、 Db2 Connect Server から IBM メインフレーム・データベース・サーバーに接続する場合にも発生することがあります。
  1. Db2 Connect サーバーDB2COMM プロファイル変数が正しく設定されていない可能性があります。 このことを確認してください。 例えば、 Db2 Enterprise Server Edition on AIX®を実行している場合は、コマンド db2set db2comm=tcpipsqllib/db2profile に表示されるはずです。
  2. IBM データ・サーバー・クライアントDb2 Connect Serverの TCP/IP サービス名とポート番号の指定が一致しない可能性があります。 両方のマシンで、TCP/IP services ファイル内の項目を確認してください。
  3. Db2Db2 Connect サーバーで開始されていることを確認します。 次のコマンドを使用して、データベース・マネージャー構成の diaglevel4 に設定してください。
       db2 update dbm cfg using diaglevel 4
    Db2 を停止して再始動したら、db2diag ログ・ファイルを参照して、Db2 TCP/IP 通信が開始していることをチェックします。 次のような出力が含まれているはずです。
       2001-02-03-12.41.04.861119   Instance:svtdbm2   Node:00
       PID:86496(db2sysc)   Appid:none
       common_communication  sqlcctcp_start_listen   Probe:80
       DIA3000I "TCPIP" protocol support was successfully started.

SQL30081N (プロトコル固有のエラー・コード 10032)

症状
   SQL30081N  A communication error has been detected.
   Communication protocol
   being used: "TCP/IP".  Communication API being used: "SOCKETS".
   Location
   where the error was detected: "9.21.85.159".  Communication
   function detecting
   the error: "send".  Protocol specific error code(s): "10032",
   "*", "*".
   SQLSTATE=08001
解決方法
このエラー・メッセージは、TCP/IP 通信に失敗したマシンから切断しようとするときに受け取ることがあります。 TCP/IP サブシステムの問題を修正してください。

ほとんどのマシンでは、単にそのマシンの TCP/IP プロトコルを再始動すれば問題は修正されます。 時には、マシン全体を再生しなければならないこともあります。

CONNECT 時の SQL30082 RC=24

症状
SQLCODE -30082 指定されたユーザー名またはパスワードが正しくありません。
解決方法
CONNECT ステートメントにパスワードを指定する必要がある場合、正しく指定されているか確認してください。 IBM データ・サーバー・クライアント からターゲット・サーバー・データベースにパスワードを送信する必要があります。 特定のプラットフォーム ( AIXなど) では、パスワードを取得できるのは、そのパスワードが CONNECT ステートメントで指定されている場合のみです。