Liberar conexiones DBLINK en maquina remota

 Hola, soy nuevo por aqui. Lo primero felicitar este foro ya que estoy empezando como administrador de bbdd oracle y este me ha servido de gran ayuda. Os explico mi problema:

 

Tengo dos servidores A y B, con solaris y linux respectivamente. Resulta que en A he creado una serie de vistas que apuntan con un dblink a una tabla que esta en el servidor B. Hasta aqui todo normal, el problema que tengo es que cuando se realiza la consulta en A, el db_link crea la conexion en el servidor B y esta conexión NO la libera una vez haya terminado la consulta. ¿Que puedo hacer?

 

Para hacer el proposisto anterior, leí en alguna documentacion de oracle que habia que crear un db_link "shared public" y poner el el servidor A en modo compartido, para ello definí los parametros DISTPACHER y SHARED_SERVER.

 

Mi db_link:

CREATE SHARED PUBLIC DATABASE LINK SID_SERVIDOR_B

 CONNECT TO "USER_DBLINK" IDENTIFIED BY "XXX"

AUTHENTICATED BY "USER_DBLINK" IDENTIFIED BY "XXX"

 USING 'DIRECCION_IP:1521/SID_SERVIDOR_B'

 

Configuracion del servidor en modo compartido:

 

ALTER SYSTEM SET SHARED_SERVERS = 100;

ALTER SYSTEM SET DISPATCHERS="(PROTOCOL=TCP)(DISPATCHERS=4)";

 

 

La select con la que compruebo la conexiones abierta en el SID_SERVIDOR_B es:

select machine, count(*) as conexiones from v$session  group by machine;

 

¿Me falta algun paso? ¿Porque no me libera las conexiones en el servidor B?

 

Saludos y muchas gracias,

Jorge

 

 

 

 

Y la sesión del servidor A la cierras o te interesa dejarla abierta? Al cerrarla se tiene que liberar la conexión.

Otra opción, si no te interesa cerrar la sesión, es probar a cerrar directamente el DBLink utilizando el comando SQL:

SQL> ALTER SESION CLOSE DATABASE LINK nombre_dblink;