lunes, 22 de octubre de 2018

Solucionar Error REP-501, database cannot be connected - Oracle Forms&Reports 12c


Forms & Reports 12c

Un Error muy recurrente en estos últimos tiempos de instalaciones del producto y migraciones de versiones 11g a 12c, es el siguiente:




    REP-501 generalmente significa que Oracle Reports no puede encontrar ninguna base de datos Oracle disponible. De forma predeterminada, Oracle Reports solo buscará las bases de datos disponibles en el archivo tnsnames.ora entre otros.

    Desde la pagina web de Oracle, podemos obtener la siguiente información de soporte:

Code
REP-501
Description
Unable to connect to the specified database
Cause
Reports Builder tried to but could not connect to ORACLE. The possible causes of this error include a case where Oracle is temporarily unavailable or your connect information was not valid.
Action
Retry the connection and check the network connectivity.  Note that after three attempts you will be disconnected from the SQL*Reports server


    Puede consultar el documento MOSC titulado "REP-501 Error When Connecting to Oracle Reports Using Externally Authorized User" (Doc. ID: 162457.1) para mas información conocida.



Causas Comunes Del Error

  • TNS: compruebe si hay una entrada faltante en el archivo tnsnames.ora. El archivo tnsnames.ora se encuentra en la ubicación $ORACLE_INSTANCE/config. En una instalación por defecto por ejemplo suele ser la siguiente ruta: /home/[user]/Oracle/Middleware/Oracle_Home/user_projects/domains/classic_domain/config/fmwconfig/
  • Configuración de Parámetros Sensibles a Mayusculas y Minusculas: Si el parámetro SEC_CASE_SENSITIVE_LOGON = TRUE, Oracle hará que las credenciales de inicio de sesión de los reportes sean sensibles a mayúsculas y minúsculas, y el servidor de reports no podrá conectarse a la base de datos de manera predeterminada; y puede lanzar el error REP-501. Debe establecer el parámetro SEC_CASE_SENSITIVE_LOGON = FALSE y el parámetro FORMS_USERNAME_CASESENSITIVE = 1 en $ORACLE_HOME/forms/server/default.env. En una instalación tipica, por ejemplo, la ruta puede ser la siguiente: /home/[user]/Oracle/Middleware/Oracle_Home/user_projects/domains/[domain_name]/config/fmwconfig/servers/[WLS_FORMS]/applications/formsapp_12.2.1/config/default.env
  • User ID o cadena de conexión incorrecta: ejecute el forms en modo de depuración y encuentre el nombre de usuario, la contraseña y la cadena de conexión. Si pasa por una línea de comando con userid=schema/password@SID al servidor de reports, se generará un error REP-501 porque intentará usar el nombre de usuario del proceso del servidor de reports en lugar del nombre de usuario del cliente.
  • TNS_ADMIN: también puede ser TNS_ADMIN. La variable de entorno TNS_ADMIN puede estar apuntando a un directorio donde el archivo tnsnames.ora falta o los valores no coinciden con el nombre del servicio de la base de datos de conexión, lo que provoca el error REP-501.
  • ons.conf: además, el servidor de reports da el error REP-501 al cambiar el valor de "nodos" en el archivo ons.conf en el servidor de nivel medio.
  • Fuga de memoria: ponga los servidores en el sistema de limpieza.



Solución
            En particular, lo que suele suceder a menudo es que se produzca un cambio de base de datos, o de puerto, o de esquema, y las configuración a la base de datos queden desconfiguradas u obsoletas.
Por tal, otra opción a tener en cuenta es comprobar si los siguientes archivos están bien configurados:

  1. $ORACLE_HOME/reports/conf/cgicmd.dat
  2. $ORACLE_HOME/user_projects/domains/[domain_name]/config/fmwconfig/servers/[WLS_REPORTS]/applications/reports_12.2.1/configuration/cgicmd.dat

          Lo que sucede es que normalmente en instalaciones productivas, para evitar que tanto el usuario como la contraseña o algún dato sensible aparezca en la URL, se ofuscan dichos datos enmascarando los mismos a través de un alias (normalmente llamado default), por tanto reports busca dicho alias y se conecta a la base datos establecida en aquel alias. Un ejemplo de esta configuración en los archivos antes mencionados es el siguiente:

default: userid=esquema/contraseña@SID


    Una vez realizado los cambios pertinentes, hay que reiniciar por completo el dominio (AdminServer + Manejados) para que los cambios surtan efecto.




Cualquier duda puede ser debatido con el debido respeto en la caja de comentarios ubicada mas abajo al final del articulo.

No hay comentarios:

Publicar un comentario