20040831

Problemes amb Oracle i el firewall

Durant aquest estiu he estat ajudant a un company a instal·lar l'Oracle 10g a una màquina amb Windows 2000.

Tot va anar com una seda fins que va arribar l'hora de connectar-se remotament amb un SQL*Plus a la Base de Dades. Localment funcionava, però externament no hi havia manera.

Evidentment vaig pensar que era alguna cosa de firewall, però els responsables del hosting m'asseguraven que el port 1521 estava obert.

De fet el diagnòstic era:
telnet host 1521 -> funciona, com a mínim connecta
tnsping tnshost -> timeout
sqlplus tnshost -> timeout


Finalment vaig trobar la solució al metalink. Resulta que el listener d'Oracle escolta pel port 1521 peró una vegada estableix connexió amb un client arranca un procés nou i aquest continua la comunicació amb el client amb un port diferent i exòtic de la màquina. Evidentment aquests ports no estaven oberts al firewall.

La solució "mano de Santo" en un W2K és posar al registre de windows (regedit) a la branca HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE un nou string value USE_SHARED_SOCKET=TRUE

Reiniciar tot el server "e voila"! Tota la comunicació entre listener i clients remots es farà exclusivament pel port 1521.

Escoltant Yann Tiersen - Le jour d'avant

1 comentario:

Alex Galletero Quer dijo...

Hola, bon dia, senyor.

Doncs si que és ben cert lo que dius. l'Oracle i els firewalls no s'entenen tant fàcilment (jo treballo en ambdos entorns); et diré més, per estrany que sembli, el problema que comentes té més fàcil solució en W2K que en Solaris.

salutacions