コネクティビティー 補足

よくある DB2 接続問題

この節では、DB2 コネクトの使用時に接続問題が生じたときの最も一般的な症状をリストします。どの場合でも、以下の形式で示されます。

注:

  1. ご使用の製品の概説およびインストールの資料や、推奨されるソフトウェア修正レベルについての最新の情報を収めた最新のリリース情報を参照してください。

  2. APPC 通信に固有のメッセージと戻りコードの組み合わせの場合、 SNA センス・コードも表示されます。今のところ、特定のメッセージと関連した SNA センス・コード情報は、 SNA サブシステムから入手する必要があります。

    システム・ログを見ていくと、SNA センス・コードを見られます。これが当てはまるかどうかは、使用する SNA サブシステムによって異なります。状況によっては、SNA トレースをアクティブにして問題を再現し、センス・コード情報を入手しなければならないこともあります。

  3. ゲートウェイという用語は、 DB2 コネクト エンタープライズ・エディションを指しています。

SQL0965 または SQL0969

症状

DB2 ユニバーサル・データベース (AS/400 版)、DB2 ユニバーサル・データベース (OS/390 版)、DB2 (MVS/ESA 版)、および DB2 (VM および VSE 版) からのさまざまな異なる戻りコードとともに、メッセージ SQL0965 および SQL0969 が発行されます。

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

解決方法

ホスト・データベースから受信された SQL コードを変換できません。そのエラー・コードに基づいて問題を訂正してから、失敗したコマンドを再発信してください。

CONNECT 時の SQL1338

症状 / 原因

記号宛先名が定義されていないか、適切に定義されていません。

たとえば、これは APPC ノードを使用していて、 DB2 ノード・ディレクトリーに指定した記号宛先名がローカル APPC 通信サブシステム構成の CPI-C 項目と一致しない場合に、生じることがあります。

別の原因として、複数の SNA スタックをマシンにインストールしてあることもあります。 PATH と LIBPATH を検査して、使用したいスタックがまず最初に参照されることを確認する必要があるかもしれません。

解決方法

  1. DB2 ノード・ディレクトリー項目に指定した CPIC サイド情報のプロファイル名が、 SNA 構成と一致するようにします (大文字小文字を区別します)。
  2. PATH と LIBPATH を検査して、使用したい SNA スタックがまず最初に参照されることを確認する必要があるかもしれません。

CONNECT 時の SQL1403N

症状

SQL1403N 指定されたユーザー名とパスワードのいずれか、またはその両方が正しくありません。

解決方法

  1. DB2 コネクト・ワークステーションで認証に失敗します。ユーザーが DB2 コネクト・ワークステーションで認証されるようになっているかを判別してください。

    認証されるようになっている場合、必要であれば CONNECT ステートメントに正しいパスワードを指定してあるか確認してください。

    認証されるようになっていない場合、システム・データベース・ディレクトリー項目は、 AUTHENTICATION SERVER (AUTHENTICATION を明示的に指定していない場合は、これが省略時値) を使用して不正にカタログ化されています。この場合、AUTHENTICATION DCS または CLIENT を使用して、項目を再カタログ化してください。

  2. ターゲット・サーバー・データベースへ送信するときに使用できないパスワードです。システム・データベース・ディレクトリー項目が AUTHENTICATION DCS を使用してカタログされている場合は、パスワードを DB2 クライアントからターゲット・サーバー・データベースに送信する必要があります。特定のプラットフォーム、たとえば AIX などでは、パスワードは CONNECT ステートメントに指定してある場合に限り、入手することができます。

SQL5043N

症状

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

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

diaglevel = 4 の場合、 db2diag.log に同様の項目が含まれている可能性があります。たとえば次のようになります。

   1997-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 コネクト (リモート・クライアントのゲートウェイとして動作している) が 1 つまたは複数のクライアント通信プロトコルを処理する際に問題が発生していることを示しています。これらのプロトコルは TCP/IP、 APPC その他のものであり、このメッセージは通常、 DB2 コネクトに定義されているこれらの通信プロトコルのいずれかが正しく構成されていないことを示しています。

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

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

一番多いのは、ゲートウェイに接続しているクライアントの 1 つが TCP/IP ポート上でハンドルを持ったままになるというケースです。ゲートウェイに接続している各クライアント・マシン上で、以下を発行します。

  1. db2 terminate
  2. db2stop

SQL30020

症状

SQL30020N 後続のコマンドまたは SQL ステートメントの正常な実行に影響を与える分散プロトコル・エラーのために、実行が失敗しました。

解決方法

このエラーが発生したら、サービス担当者に連絡してください。

db2dump ディレクトリーに ffdc ダンプ (pid.000) があるかどうか調べてください。ある場合は、このダンプ・ファイルを db2fdump によってフォーマットし、結果ファイルで "ERROR" を調べてください。そこに MVS ABEND がリストされている可能性があります。その場合、MVS コンソールで詳細を調べ、 DB2 for MVS Messages and Codes の資料で異常終了コードを調べてください。

SQL30060

症状

SQL30060N "<authorization-ID>" が、処理 "<operation>" を実行する権限を持っていません。

解決方法

DB2 (MVS 版) または DB2 (OS/390 版) への接続時に、通信データベース (CDB) 表が正しく更新されていません。次を参照してください。

SQL30061

症状

誤ったホストまたは AS/400 データベース・サーバー・ロケーションに接続しています。ターゲット・データベースが見つかりません。

解決方法

DCS ディレクトリー項目に誤ったサーバー・データベース名を指定した可能性があります。これが生じた場合、SQLCODE -30061 がアプリケーションに戻されます。

DB2 ノード、データベース、および DCS ディレクトリー項目を調べてください。 DCS ディレクトリー項目の宛先データベース名のフィールドは、プラットフォームに基づいたデータベースの名前に対応していなければなりません。たとえば、DB2 ユニバーサル・データベース (OS/390 版) データベースの場合、使用する名前はブートストラップ・データ・セット (BSDS) の "LOCATION=locname" フィールドで使用した名前と同じでなければなりません。これは、分散データ機能 (DDF) を開始するときの DSNL004I メッセージにも示されています (LOCATION=location)。

ご使用の DB2 コネクト 概説およびインストール の資料には、 DB2 カタログの更新方法を示す例が収められています。 SNA 構成を説明する各章の『DB2 ディレクトリーの更新』を参照するか、『ホストおよび AS/400 データベースでの DB2 コネクトの構成』の章の『TCP/IP 接続の構成』を参照してください。

APPC または APPN ノードへの正しいコマンドは次のとおりです。

   db2 catalog appc node <node_name> remote <sym_dest_name> security program
   db2 catalog dcs database <local_name> as <real_db_name>
   db2 catalog database <local_name> as <alias> at node <node_name> 
                authentication dcs

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 dcs

その後にデータベースへ接続するには、次のコマンドを発行します。

   db2 connect to <alias> user <user_name> using <password>

CONNECT 時の SQL30073 (戻りコード 119C)

症状

メッセージ SQL30073 は戻りコード 119C とともに発行されます。これが発行されるのは、ターゲット・サーバー・データベースが DB2 クライアント (DB2 コネクトを使用する) のコード・ページをサポートしていない場合です。このコード・ページは、DB2 クライアントが実行されている操作環境の構成から派生します。

詳しくは、管理の手引き を参照してください。

解決方法

この問題は、ターゲット・サーバー・データベース・システムに修正ファイルをインストールすることにより、解決できることもあります。適切なサービス部門に連絡して、この症状に適した修正ファイルを入手し、それを適用してください。

一時的な作業環境として、ユーザーは DB2CODEPAGE 環境変数を設定することにより、省略時のコード・ページをオーバーライドすることができます。ロケールを調べるか、DB2CODEPAGE=850 を設定してください。

UNIX プラットフォームでは、LANG 環境変数を別の値に設定することにより、別のコード・ページに切り替えることができます。

SQL30081N (戻りコード 1)

症状

症状は、次のメッセージと SNA センス・コードです。

  db2 connect to <database name> user <userid>
  Enter password for <userid>:
  SQL30081N  A communication error has been detected.
  Communication protocol
  being used: "APPC".  Communication API being used: "CPI-C".
  Location where
  the error was detected: "".  Communication function detecting
  the error:
  "cmallc".  Protocol specific error code(s): "1", "*",
  "0x10030021".
  SQLSTATE=08001

解決方法

この例では、センス・コードは 10030021 です。

このエラー・メッセージと関連する最も一般的なセンス・コード、およびそれぞれの場合の提案されている解決方法は、以下のとおりです。

  1. SQL30081N with return code 1 and sna sense code 0877002C
    

    正しくないネットワーク名を指定しています。

  2. SQL30081N with return code 1 and SNA sense code ffff0003
    

    正しくない MAC アドレスを指定しているか、SNA リンクがアクティブではありません。

  3. SQL30081N with return code 1 and SNA sense code 10030021
    

    LU タイプのミスマッチがあります。

  4. SQL30081N with return code 1 and SNA sense code 084B6031
    

    DSNZPARM の MAXDBAT (DB2 (MVS 版) または DB2 (OS/390 版) ホスト) は、0 に設定されます。

他の提案:

  1. ローカル LU プロファイルを作成しているときに、その LU を省略時の LU として定義します。たとえば、CM/2 の「SNA 機能 (SNA Feature)」リスト・パネルでは、以下のいずれかを行います。
  2. DB2 コネクト・ゲートウェイで SNA が開始していることをチェックします。
  3. DB2 (MVS 版) または DB2 (OS/390 版) を使用している場合、分散データ機能 (DDF) アドレス空間が開始されており、DB2 が実行中であることを確認します。

SQL30081N (戻りコード 2)

症状

戻りコード 2 および SNA センス・コード 08120022 であるメッセージ SQL30081N を受け取ります。

解決方法

NCP (リンクのホスト端) の NUMILU パラメーターは、省略時値 (0) に設定されている可能性があります。このことを確認してください。再試行前、あるいは変更を有効にした後、必要であれば NCP 定義を変更します。

SQL30081N (戻りコード 9)

症状

症状は次のメッセージです (この場合は、SNA センス・コードは必要ありません)。

   db2 connect to <database> user <userid>
   SQL30081N  A communication error has been detected.
   Communication protocol
   being used: "APPC".  Communication API being used: "CPI-C".
   Location where
   the error was detected: "".  Communication function detecting
   the error:
   "cmsend".  Protocol specific error code(s): "9", "*",
   "0x10086021".
   SQLSTATE=08001

解決方法

問題は、 DB2 コネクト・システム上でトランザクション・プログラム名 (TPNAME) が正しく定義されていないことにあります。たとえば、ご使用の SNA 構成は更新してあっても、 DB2 コネクト・ゲートウェイで検証されていない場合があります。詳細は、DB2 コネクト エンタープライズ・エディション (OS/2 および Windows NT 版) 概説およびインストール、または DB2 コネクト パーソナル・エディション 概説およびインストール の資料を参照してください。

SQL30081N (戻りコード 10)

症状

症状は次のメッセージです (SNA センス・コードは必要ありません)。

   SQL30081N  A communication error has been detected.
   Communication protocol
   being used: "APPC".  Communication API being used: "CPI-C".
   Location where
   the error was detected: "".  Communication function detecting
   the error:
   "cmrcv".  Protocol specific error code(s): "10", "*", "*".
   SQLSTATE=08001

解決方法

DB2 を正しくインストールしたことを確認してください。

DB2 コネクト (OS/2 版) ゲートウェイを使用している場合は、 TP 名が正しく定義されていないと次のように表示されます。

   Protocol specific error code(s): "10", "*", "0x084C0000".
   SQLSTATE=08001

たとえば CM/2 では、この場合次のように定義する必要があります。

   Transaction program name        = 'tpname'    (user defined)
   OS/2 program path and file name = notused

および (次の CM/2 構成画面)

   Presentation type - background
   Operation type - Queued, operator preloaded

SQL30081N (戻りコード 20)

症状

   SQL30081N  A communication error has been detected.
   Communication protocol
   being used: "APPC".  Communication API being used: "CPI-C".
   Location where
   the error was detected: "".  Communication function detecting
   the error:
   "xcstp".  Protocol specific error code(s): "20", "*", "*".
   SQLSTATE=08001

解決方法

DB2 コネクト・システムで SNA サブシステムが開始していることを確認します。

SQL30081N (戻りコード 27)

症状

戻りコード 27 および SNA センス・コード 800Axxxx であるメッセージ SQL30081N を受け取ります。

解決方法

VTAM パス情報単位 (PIU) が大きすぎます。

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 コネクト・ゲートウェイへの接続に失敗した場合に発生する可能性があります。さらに、DB2 コネクト・ゲートウェイからホストへの接続時にも発生することがあります。

  1. DB2COMM プロファイル変数が、 DB2 コネクト・ゲートウェイで正しく設定されていない可能性があります。このことを確認してください。たとえば、DB2 エンタープライズ拡張エディションを AIX 上で実行している場合は、コマンド db2set db2comm=tcpipsqllib/db2profile に存在していなければなりません。
  2. DB2 クライアントと DB2 コネクト・ゲートウェイで、 TCP/IP サービス名またはポート番号 (あるいはその両方) の仕様の間にミスマッチがある可能性があります。両方のマシンで、TCP/IP services ファイル内の項目を確認してください。
  3. DB2 コネクト・ゲートウェイで DB2 が開始していることをチェックします。次のコマンドを使用して、データベース・マネージャー構成の diaglevel を 4 に設定してください。

       db2 update dbm cfg using diaglevel 4
    
    DB2 を停止して再始動したら、 db2diag.log ファイルを参照して、 DB2 TCP/IP 通信が開始していることをチェックします。次のような出力が含まれているはずです。

       1998-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 プロトコルを再始動することになります。マシン全体を再生しなければならないこともあります。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]