2011-11-23 6 views
17

Devo eseguire la connessione DB2 in java utilizzando il numero di porta. Esiste un comando in DB2 o in qualsiasi modo in grado di ottenere il numero di porta DB2?Come identificare il numero di porta DB2

Non ho utilizzato la porta predefinita 50000 durante l'esecuzione della connessione DB2 poiché questa porta può essere modificata durante l'installazione di DB2. Si prega di suggerire qualsiasi comando DB2 o qualsiasi altra alternativa.

+2

se siete su un linux box puoi provare 'netstat -pn | grep -i db' per elencare tutte le porte che DB2 sta ascoltando. –

+0

Ho pensato che ci sarebbe stato qualcosa di simile per Windows. –

risposta

29

Sul server DB2 di Windows, aprire una finestra comandi DB2 ed eseguire il comando

db2 get database manager configuration | findstr /i svce 

Ciò dovrebbe fornire un output simile:

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

SVCENAME è la porta che DB2 è in ascolto. Per risolvere questo nome con un numero di porta effettivo, è necessario fare riferimento al file dei servizi, che si trova in %SystemRoot%\system32\drivers\etc\services.

+3

Questo funziona solo per l'istanza corrente. È necessario collegarsi a ciascuna istanza nel server per conoscere tutte le porte per le istanze DB2 definite nel file "servizi". – AngocA

+0

Quanto sopra non ha funzionato. –

+0

@DurgadasKamath Cura da elaborare? –

5

Sul server Linux/Unix DB2, aprire un terminale shell e accedere con il proprietario dell'istanza. Eseguire il comando di seguito:

 db2 "get dbm cfg"|grep -i svce 

come la risposta di Ian Bjorhvde si mostra il nome del servizio TCP/IP, SVCENAME è possibile visualizzare nel file/etc/servizio.

+0

Funziona solo per l'istanza corrente. Se è necessario modificare ciascuna istanza per ottenere il nome del servizio e farlo corrispondere nel file dei servizi. – AngocA

3

Probabilmente nel server ci sono istanze diverse, il che significa che DB2 sta ascoltando in porte diverse. In primo luogo, è necessario elencare le istanze nel server

db2ilist 

Si otterrà una serie di nomi di istanza. Per ciascuno di essi è necessario ottenere il nome della porta

di Windows

set DB2INSTANCE=instname 
db2 get dbm cfg 

Linux

export DB2INSTANCE=instname 
db2 get dbm cfg 

Se non si modifica l'istanza, si otterrà solo il nome del servizio dell'istanza corrente. Un altro modo per ottenere tali informazioni dal client è tramite Configuration Assistant (db2ca). Con la visualizzazione avanzata, fai clic con il pulsante destro del mouse su un'istanza e otterrai i dettagli dell'istanza: numero di porta, nome del servizio, ecc.

0

Ciò fornirà le porte di tutte le istanze di db2 installate sulla macchina (per Sistemi Linux o AIX)

netstat -aan | grep -i db2 
9

Passare al prompt dei comandi DB2.

Eseguire il comando per ottenere l'istanza DB2

Comando: DB2 ottiene esempio

Immettere il comando per trovare il nome del servizio TCP/IP

Comando: db2 get dbm cfg | grep Svce

Esempio

db2 get dbm cfg | grep Svce

TCP/Nome servizio IP (SVCENAME) = db2c_db2inst9 Il nome del servizio TCP/IP è "db2c_db2inst9"

Utilizzare il nome del servizio TCP/IP per trovare il numero di porta nel file/etc/File Services

comando: grep TCP/IPservicename/etc/services

Modificare TCP/IPservicename con il nome del servizio corrente.

Esempio

grep db2c_db2inst9/etc/services

db2c_db2inst9 50090/tcp

L'istanza DB2 è in esecuzione sul numero di porta

+0

Questo ha funzionato solo usando: db2 get dbm cfg. Poi leggendo un po 'ho visto il mio porto, era 50000. – Airborne