2011-11-23 48 views
17

Tengo que hacer la conexión de DB2 en java usando el número de puerto. ¿Hay algún comando en DB2 o de alguna manera que pueda obtener el número de puerto de DB2?Cómo identificar el número de puerto de DB2

No utilicé el puerto predeterminado 50000 mientras hacía la conexión de DB2, ya que este puerto puede cambiarse durante la instalación de DB2. Sugiera cualquier comando de DB2 o cualquier otra alternativa.

+2

si usted está en un Linux caja puedes probar 'netstat -pn | grep -i db' para listar todos los puertos que está escuchando DB2. –

+0

Pensé que habría algo similar para Windows. –

Respuesta

29

En el servidor DB2 en Windows, abra una ventana de mandatos de DB2 y ejecutar el comando

db2 get database manager configuration | findstr /i svce 

Esto debería proporcionar alguna salida como:

TCP/IP Service name       (SVCENAME) = db2c_DB2 
SSL service name       (SSL_SVCENAME) = 

SVCENAME es el puerto que DB2 está escuchando. Para resolver este nombre a un número de puerto real, debe consultar el archivo de servicios, que se encuentra en %SystemRoot%\system32\drivers\etc\services.

+3

Esto solo funciona para la instancia actual. Es necesario adjuntar a cada instancia en el servidor para conocer todos los puertos para las instancias de DB2 definidas en el archivo "servicios". – AngocA

+0

Lo anterior no funcionó. –

+0

@DurgadasKamath ¿Cuidar para elaborar? –

5

En el servidor DB2 de Linux/Unix, abra un terminal de shell e inicie sesión con el propietario de la instancia. Ejecutar el siguiente comando:

 db2 "get dbm cfg"|grep -i svce 

Al igual que la respuesta de Ian Bjorhvde mostrar el nombre TCP/IP de servicio, SVCENAME se puede ver en el archivo/etc/servicio.

+0

Esto solo funciona para la instancia actual. Si es necesario cambiar a cada instancia para obtener el nombre del servicio, y hacer coincidirlo en el archivo de servicios. – AngocA

3

Probablemente tenga instancias diferentes en su servidor, es decir, DB2 está escuchando en diferentes puertos. En primer lugar, hay que enumerar los casos en los que el servidor

db2ilist 

Usted recibirá un conjunto de nombres de instancia. Para cada uno usted tiene que conseguir el nombre del puerto

de Windows

set DB2INSTANCE=instname 
db2 get dbm cfg 

Linux

export DB2INSTANCE=instname 
db2 get dbm cfg 

Si no se cambia la instancia, sólo obtendrá el nombre del servicio de la instancia actual. Otra forma de obtener esa información del cliente es a través del Asistente de configuración (db2ca). Con la vista avanzada, haga clic con el botón derecho en una instancia y obtendrá los detalles de la instancia: número de puerto, nombre del servicio, etc.

0

Esto dará los puertos de toda la instancia de db2 instalada en la máquina (para Sistemas Linux o AIX)

netstat -aan | grep -i db2 
9

Vaya al símbolo del sistema de DB2.

Emita el comando para obtener la instancia de DB2

Comando: db2 get instance

Emita el mandato para encontrar el nombre del servicio TCP/IP

Comando: db2 get dbm cfg | grep Svce

Ejemplo

db2 get dbm cfg | grep Svce

nombre TCP/IP Service (SVCENAME) = db2c_db2inst9 El nombre de servicio TCP/IP es "db2c_db2inst9"

Usar el nombre de servicio TCP/IP para encontrar el número de puerto en el archivo/etc/servicios de archivos

de comando: grep TCP/IPservicename/etc/services

Cambio TCP/IPservicename con el nombre del servicio actual.

Ejemplo

grep db2c_db2inst9/etc/services

db2c_db2inst9 50090/tcp

La instancia de DB2 se ejecuta en el número de puerto

+0

Esto funcionó para mí simplemente usando: db2 get dbm cfg. Luego, leyendo un poco vi mi puerto, era 50000. – Airborne

Cuestiones relacionadas