miércoles, 11 de diciembre de 2019

Error oracle.as.scheduler.ejb.AsyncRequestBean desplegando BI Publisher 12c

Al tratar de desplegar el EAR del BI Publisher se presenta el siguiente error en la consola de Weblogic:

Unable to access the selected application.
Error oracle.as.scheduler.ejb.AsyncRequestBean
El siguiente mensaje puede aparecer también:

The configuration for xxxx is still being loaded from your last request, please wait a moment and retry.

CAUSA:

Las librerías compartidas del despliegue no se encuentran disponibles para el AdminServer.

SOLUCIÓN:

1. Entrar a la consola de Weblogic.
2. Activar sesión de cambios en la consola.
3. Navegar al apartado de Despliegues.
4. Ingresar a la librería bip-shared-libraries(11.1.1)
5. Seleccionar el tab "Targets".
6. Seleccionar el servidor AdminServer y guardar los cambios.
7. Activar los cambios en la consola.
8. Probar nuevamente el despliegue de la aplicación de BI Publisher... esta vez debe funcionar! ;)

NOTA:

Si aún con los pasos anteriores no funciona, los siguientes pasos pueden ayudar:

1. Bajar todos los servicios de BI:
    $DOMAIN_HOME/bitools/bin/stop.sh
2. Reemplazar el EAR (en caso de no haberlo borrado desde la consola).
3. Remover la carpeta tmp que se encuentra en la ruta:
    $DOMAIN_HOME/servers/bi_server1/tmp
4. Iniciar todos los servicios de BI:
    $DOMAIN_HOME/bitools/bin/start.sh




lunes, 4 de noviembre de 2019

Crear Wallet en Base de Datos Oracle: UTL_HTTP y SSL

Si estás tratando de consumir un servicio Web por medio de HTTPS a nivel de código PL/SQL o por otra vía en la Base de Datos y te da el siguiente error:

ORA-29024: Certificate validation failure

Es debido a que la base de datos no confía en el certificado digital que se le presenta cuando trata de establecer comunicación con el servidor donde se encuentra alojado el servicio web en cuestión.

Para solucionar ésto lo que debemos hacer es conseguir el certificado del servidor donde se encuentra alojado el servicio web y crear una Wallet a nivel del sistema operativo donde se encuentra instalada nuestra base de datos. El certificado se puede conseguir en la barra de dirección del navegador cuando ponemos el WSDL del servicio.

Una vez tenemos el certificado realizamos los siguientes pasos:

1. Crear carpeta que contendrá el wallet:

mkdir -p /u01/app/oracle/wallet

2. Configurar las variables de ambiente de la base de datos porque haremos uso de la utilidad de orapki

3. Crear wallet:

orapki wallet create -wallet /u01/app/wallet -pwd welcome123 -auto_login

4. Agregar certificado:

orapki wallet add -wallet /u01/app/oracle/wallet -trusted_cert -cert "/u01/Root.crt" -pwd welcome123

5. Probar la invocación del servicio, para ello agregar el wallet antes de la invocación del servicio:

En mi caso lo probaré desde el SQLPLUS, una sola sesión todo lo siguiente:

SET SERVEROUTPUT ON
EXEC UTL_HTTP.set_wallet('file:/u01/app/oracle/wallet', NULL);
Creamos el siguiente procedimiento almacenado:

CREATE OR REPLACE PROCEDURE show_html_from_url (
  p_url  IN  VARCHAR2,
  p_username IN VARCHAR2 DEFAULT NULL,
  p_password IN VARCHAR2 DEFAULT NULL
) AS
  l_http_request   UTL_HTTP.req;
  l_http_response  UTL_HTTP.resp;
  l_text           VARCHAR2(32767);
BEGIN
  -- Make a HTTP request and get the response.
  l_http_request  := UTL_HTTP.begin_request(p_url);

  -- Use basic authentication if required.
  IF p_username IS NOT NULL and p_password IS NOT NULL THEN
    UTL_HTTP.set_authentication(l_http_request, p_username, p_password);
  END IF;

  l_http_response := UTL_HTTP.get_response(l_http_request);

  -- Loop through the response.
  BEGIN
    LOOP
      UTL_HTTP.read_text(l_http_response, l_text, 32766);
      DBMS_OUTPUT.put_line (l_text);
    END LOOP;
  EXCEPTION
    WHEN UTL_HTTP.end_of_body THEN
      UTL_HTTP.end_response(l_http_response);
  END;
EXCEPTION
  WHEN OTHERS THEN
    UTL_HTTP.end_response(l_http_response);
    RAISE;
END show_html_from_url;
/
Por último probamos la invocación:

EXEC show_html_from_url('https://esb.rinnovo.com:8885/purchase/get-transactions');
Obtendremos la respuesta de nuestro servicio sin problemas:

SQL> EXEC show_html_from_url('https://esb.rinnovo.com:8885/purchase/get-transactions');
{"generalResponse":{"responseDescription":"Version no
especificada","errors":[{"code":"400","id":"4b157gda-a7fc
","detail":"No se especificado un encabezado URI
existente","title":"Version no especificada"}],"responseCode":"700"}}

PL/SQL procedure successfully completed.

SQL>

Con el procedimiento anterior, solo bastará agregar la linea donde configuramos el Wallet sin el EXEC.

miércoles, 16 de octubre de 2019

FRM-10256 User is not authorized to run Oracle Forms Menu

Migrando una aplicación de Oracle Forms de una versión 11g a la última versión 12c se presenta el siguiente error al ejecutar una forma:


La razón del error anterior es que la aplicación está haciendo uso de seguridad por medio de los menús y no se ha migrado/creado la vista y sinónimos pertinentes.

Solución:


1. Ejecutar como usuario SYS el script que se encuentra en la ruta:
$ORACLE_HOME/tools/dbtab/forms/frmsec.sql

2. Ejecutar el siguiente grant:
Grant select on frm50_enabled_roles to public;

Verificación:

Por último se puede verificar los roles ingresando con un usuario y ejecutando la siguiente consulta que debe retornar los roles:

Select * from frm50_enabled_roles; 

Nota: este procedimiento también aplica para versión 10g y 11g.

domingo, 6 de octubre de 2019

Contraseña por defecto de DemoIdentity.jks y DemoTrust.jks

Al instalar Oracle Weblogic, la instalación trae por defecto 2 keystores que se utilizan para la comunicación segura cuando activamos el puerto SSL en los servidores manejados, uno de los  keystore contiene los certificados de identidad y otro contiene los certificados de las autoridades certificadores (CA).

A continuación detallo las rutas y contraseñas de estos Keystores tanto para Weblogic como para OHS:

Propiedad                       Valor

Ubicación Keystore              Trust $MW_HOME/wlserver_10.3/server/lib/DemoTrust.jks
Contraseña Keystore Trust DemoTrustKeyStorePassPhrase
Ubicación Keystore Identidad $MW_HOME/wlserver_10.3/server/lib/DemoIdentity.jks
Contraseña Keystore Identidad DemoIdentityKeyStorePassPhrase
Contraseña llave privada DemoIdentityPassPhrase

miércoles, 18 de septiembre de 2019

Exception in thread "main" java.lang.UnsatisfiedLinkError: no frmjapi in java.library.path

Si al tratar de hacer uso de la librería de JDAPI para hacer modificaciones en nuestras formas, nos aparece el error siguiente:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no frmjapi in java.library.path

Es porque en nuestra variable PATH no está especificada la DLL (frmjapi.dll) que requiere el JDAPI y que se encuentra en la ruta: %DOMAIN_HOME%\bin

Una vez se agrega la ruta donde se encuentra la DLL en la variable PATH y se reinicia el IDE ya no nos dará el error antes mencionada y nuestro código funcionara correctamente.

viernes, 23 de agosto de 2019

FIX: The program can't start because MSVCP100.dll is missing from your computer. Try reinstalling the program to fix this problem.

Luego de haber instalado Oracle Forms 12c en Windows aparece el siguiente mensaje al tratar de abrir el Forms Builder:

The program can't start because MSVCP100.dll is missing from your computer. 
Try reinstalling the program to fix this problem.

Versiones afectadas:

12.2.1.0 a 12.2.1.3 Windows 64 bits.

Causa:

La guía de instalación solicita la instalación de MS Visual C++ 11.0
https://docs.oracle.com/en/middleware/fusion-middleware/12.2.1.3/sysrs/index.html#SYSRS3057

Aunque hayan instalado dicha librería el mensaje les aparecerá.

Solución:

Instalar las librerías de versión 10, además de las librerías de la versión 11 que ya previamente debemos haber instalado.

domingo, 14 de julio de 2019

WUC-21 Luego de parchar la instalación de Oracle Forms 10gR2 o 11gR1

Versiones afectadas:

Desde versión 10.1.2.3 to 11gR1

Error presentado:

WUC-21 : System Library http://hostname/forms/webutil/jacob.dll incorrect size in WebUtil Config. Download will be canceled.

Síntoma y solución:

Luego de haber realizado un parchado de la instalación de Forms o de haber hecho un upgrade del Jacob se puede presentar el error WUC-21 mencionando que el tamaño del archivo jacob.dll tiene un tamaño equivocado.

Para arreglar este error mostrado debemos seguir los siguientes pasos:

1. Bajar los servicios de la instancia OC4J.
2. Tomar respaldo del archivo webutil.cfg que se encuentra en la ruta:  %ORACLE_HOME%\forms\server
3. Editamos el archivo webutil.cfg y modificamos la siguiente linea:

install.syslib.0.7.1=jacob.dll|106496|1.10|true
install.syslib.0.9.1=JNIsharedstubs.dll|65582|1.0|true


4. Iniciamos los servicios nuevamente y al probar correr una forma no debe aparecer nada.


lunes, 27 de mayo de 2019

Create wlfullclient.jar for client applications - Weblogic 11g

If you need a way to connect your client applications to deploy, undeploy on Weblogic, you may create a JAR file for that, just follow the next steps:

1. Login to your server installation and go to the following path:

$FMW_HOME/wlserver_10.3/server/lib/

2. Run the following command with you JAVA_HOME set:

java -jar wljarbuilder.jar

3. The previous command creates a file with name "wlfullclient.jar", now just add the previous file to your application's classpath.