ポート番号を使用してJavaでDB2接続を確立する必要があります。DB2にコマンドがあるか、DB2ポート番号を取得できる方法はありますか?
このポートはDB2のインストール中に変更できるため、DB2接続の確立中にデフォルトのポート50000を使用していません。 DB2コマンドまたはその他の代替手段を提案してください。
Windows DB2サーバーで、DB2コマンドウィンドウを開き、コマンドを実行します
db2 get database manager configuration | findstr /i svce
これにより、次のような出力が得られます。
TCP/IP Service name (SVCENAME) = db2c_DB2
SSL service name (SSL_SVCENAME) =
SVCENAMEは、DB2がリッスンしているポートです。この名前を実際のポート番号に解決するには、%SystemRoot%\system32\drivers\etc\services
にあるservicesファイルを参照する必要があります。
DB2コマンドプロンプトに移動します。
コマンドを発行して、db2インスタンスを取得します
コマンド:db2 get instance
コマンドを発行してTCP/IPサービス名を見つけます
コマンド:db2 get dbm cfg | grep SVCE
例
db2 get dbm cfg | grep SVCE
TCP/IPサービス名(SVCENAME)= db2c_db2inst9 TCP/IPサービス名は "db2c_db2inst9"
TCP/IPサービス名を使用して、/ etc/servicesファイルでポート番号を見つけます
コマンド:grep TCP/IPservicename/etc/services
TCP/IPservicenameを現在のサービス名に変更します。
例
grep db2c_db2inst9/etc/services
db2c_db2inst9 50090/tcp
DB2インスタンスはポート番号で実行されています5009
Linux/Unix DB2サーバーで、シェルターミナルを開き、インスタンス所有者でログオンします。以下のコマンドを実行します。
db2 "get dbm cfg"|grep -i svce
Ian Bjorhvdeの答えのように、TCP/IPサービス名を表示します。SVCENAMEは、ファイル/ etc/serviceで表示できます。
サーバーに異なるインスタンスがある可能性があります。つまり、DB2は異なるポートでリッスンしています。まず、サーバー内のインスタンスをリストする必要があります
db2ilist
インスタンス名のセットを取得します。それぞれについて、ポート名を取得する必要があります
ウィンドウズ
set DB2INSTANCE=instname
db2 get dbm cfg
Linux
export DB2INSTANCE=instname
db2 get dbm cfg
インスタンスを変更しない場合、現在のインスタンスのサービス名のみを取得します。クライアントからその情報を取得する別の方法は、構成アシスタント(db2ca)を使用することです。詳細ビューでは、インスタンスを右クリックすると、ポート番号、サービス名などのインスタンスの詳細が表示されます。
これにより、マシンにインストールされているすべてのdb2インスタンスのポートが提供されます(LinuxまたはAIXシステムの場合)
netstat -aan | grep -i db2