web-dev-qa-db-ja.com

WindowsでDB2ポート番号を検索する方法(注:サービスファイルにリストされているポートを使用せず、netstatコマンドの出力にdb2リストがない)は?

WindowsでDB2ポートを見つけたいので、助けてください。いくつかの情報:

  1. DB2 v 9.7 Personal Edition-新規/新規インストール
  2. netstatコマンドはdb2ポートをリストしません。
  3. system2\drivers\etc\servicesファイルにdb2エントリがないため、「db2c_DB2 50000/tcp」というエントリを作成しました
  4. コントロールセンターを使用してdb2を起動し、テーブルを作成して行を挿入できる
  5. cLPを使用してdb2を開始し、操作を実行できる

実際には、「jdbc:db2://127.0.0.1:50000/TEST」をJavaからの接続URLとして使用してDB2に接続しようとしていますが、「Exception Java .net.ConnectException:ポート50,000でサーバー/127.0.0.1へのソケットを開くときにエラーが発生し、次のメッセージが表示されます:接続参照が使用されました:接続。ERRORCODE= -4499、SQLSTATE = 08001 "

DBは稼働していますが、ポート50000でリッスンしていませんが、servicesファイルに記載されています。したがって、db2は他のポートでリッスンしていますが、

  1. それが使用しているポートは何ですか?
  2. servicesファイルに記載されているように、ポート#50000を使用しないのはなぜですか?
  3. netstatコマンドがdb2サービスとポート情報をリストしないのはなぜですか?

よろしくお願いします。

3
Sannidhi

まず、TCP通信がオンに設定されていることを確認し、

db2cmd -i -w
db2set DB2COMM=npipe,tcpip
db2stop
db2start

デフォルトのポートを使用していないかどうかを確認できます。

db2cmd -i -w
db2 get dbm cfg | find "SVCENAME"

このような行を取得する必要があります、

TCP/IP Service name                          (SVCENAME) = db2c_DB2

上記のポート番号がデフォルトのポートに設定されていない場合、私の構成がデフォルト(= 50000)であることがわかるように、ポート番号になるはずです。

3
user243539

DB2を起動して、コントロールセンターから(共有メ​​モリを使用するCLIドライバーを介して)ローカルデータベースに接続できるため、次の1つ以上の問題により、TCP/IPを介して通信するJDBC接続が妨げられる可能性があります。

  1. DB2SETは、DB2COMM設定のTCPIPを表示する必要があります。
  2. DBM構成のSVCENAMEは、有効なTCPサービス名、またはできれば、未使用のTCP 50000などのポート番号を反映している必要があります。
  3. Windowsファイアウォールは、DB2インスタンス用に選択したTCPポートでのインバウンド接続を許可する必要があります。

DB2レジストリー(DB2SETを使用)またはDBM構成のいずれかを変更するには、DB2を停止してから開始してから、変更を有効にする必要があります。

0
Fred Sobotka

サービス名のDBMパラメータが空白の場合、TCP接続できないことを意味します。DB2をローカルで使用する場合は、同じマシン。

TCP=接続を構成するには、他の回答で説明されている手順に従う必要があります。ただし、サービス名のないインスタンスがあることは問題を示すものではありません。

このページには問題に関する議論があります: http://groups.google.com/group/comp.databases.ibm-db2/browse_thread/thread/a515365a5d04af81

JDBCはTCP接続を使用するため、データベースに接続するためにインスタンスの構成を変更する必要があります。

0
AngocA

Javaからはできません。 dbadminまたはDB/2構成自体から調べる必要があります。あなたのアイテム(3)は実際には何も達成しませんでした。「services」ファイルは単なる表示であるか、一部のクライアントで使用するためのものです。 DB/2に何をすべきかを指示しません。それを行うのはDB/2独自の構成だけです。

0
user207421

まず最初に、インストールは最後にエラーを表示しました。エラーを覚えていませんが、db2を起動できませんでした。だから、ググって簡単な解決策を見つけてそれはうまくいった。 OPで確認できるように、db操作を開始して実行できます。しかし、ポート番号を見つけるためのハントはまだオンでした。さらにグーグルで検索したところ、「SVCENAME」の値が空白であることがわかりました。次に、パラメーターを更新し、servicesファイルにポート番号を入力しました。それでも助けにはならなかった。最後の手段として、DB2を再インストールするだけで、すべてが正常に機能しました。注:インストールが成功すると、構成の「SVCENAME」に値が含まれ、db2はサービス名とポートのエントリをservicesファイルに作成します。

0
Sannidhi