一般的な Db2 Connect の問題
Db2 Connect を使用している際に発生する接続の問題には、共通の症状および共通の解決方法があります。
- 表示されたメッセージに関連した、 メッセージ番号と戻りコード (またはプロトコル固有の戻りコード) の組み合わせ。 各メッセージと戻りコードの組み合わせには、個別の見出しがあり、 この見出しはメッセージ番号順、その後に戻りコードの順で並べられます。
- 症状。通常は、サンプル・メッセージのリスト形式で示されます。
- 解決方法。エラーの推定原因が示されます。 場合によっては、複数の解決方法が提示されることがあります。
SQL0965 または SQL0969
- 症状
- メッセージ SQL0965 そして SQL0969 は、 IBM Db2 for IBM i、 Db2 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 メインフレーム・データベース・サーバーに接続する場合にも発生することがあります。
- Db2 Connect サーバーで DB2COMM プロファイル変数が正しく設定されていない可能性があります。 このことを確認してください。 例えば、 Db2 Enterprise Server Edition on AIX®を実行している場合は、コマンド
db2set db2comm=tcpipが sqllib/db2profile に表示されるはずです。 - IBM データ・サーバー・クライアント と Db2 Connect Serverの TCP/IP サービス名とポート番号の指定が一致しない可能性があります。 両方のマシンで、TCP/IP services ファイル内の項目を確認してください。
- Db2 が Db2 Connect サーバーで開始されていることを確認します。 次のコマンドを使用して、データベース・マネージャー構成の diaglevel を 4 に設定してください。
Db2 を停止して再始動したら、db2diag ログ・ファイルを参照して、Db2 TCP/IP 通信が開始していることをチェックします。 次のような出力が含まれているはずです。db2 update dbm cfg using diaglevel 42001-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.
- Db2 Connect サーバーで DB2COMM プロファイル変数が正しく設定されていない可能性があります。 このことを確認してください。 例えば、 Db2 Enterprise Server Edition on AIX®を実行している場合は、コマンド
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 ステートメントで指定されている場合のみです。