Solución al error ORA-27247 al intentar depurar con SqlDeveloper


Hola amig@s,

Si al intentar depurar con el SQLPLUS os devuelve el error ORA-27247 se debe a que el SQL developer trabaja con una especie de servidor de depuración, es decir abre un puerto TCP donde almacena toda la salida de la depuración.

El problema es que Oracle por defecto, bloquea todas las peticiones TCP a menos que se cree una ACL (Access control list) que permita dicho acceso.

Para crear la ACL tenemos que hacerlo como SYS. Donde host, ponemos la IP que nos devuelve el sqldeveloper al intentar depurar (con el icono de depuración). En el ejemplo 192.168.1.2. Luego necesitamos indicarle el usuario de bbdd, en este caso EJEMPLO.

begin
      dbms_network_acl_admin.append_host_ace
      (host=>'192.168.1.2',
       ace=> sys.xs$ace_type(privilege_list=>sys.XS$NAME_LIST('JDWP') ,
                             principal_name=>'EJEMPLO',
                             principal_type=>sys.XS_ACL.PTYPE_DB) );
      end;
    /

Por último ejecutamos estas sentencias tras la creación de la ACL, pasando como parámetro nuevamente el usuario de bbdd en caso, EJEMPLO y una vez ejecutadas, el sqldeveloper ya nos dejará depurar un paquete o función, dándole al botón de bichito rojo.

grant execute on dbms_debug to EJEMPLO;
grant debug connect session to EJEMPLO;
grant debug any procedure to EJEMPLO;

Salu2.


Share on Google Plus
    Blogger Comment

0 comentarios: