viernes, 8 de enero de 2021

OBIEE 12c: Connection failed, the server processes may be down, the host name, port number, service instance, or protocol may be incorrect.

Al tratar de hacer uso de los comandos para bajar o subir el archivo RPD para OBIEE se presenta el siguiente mensaje:

-bash-4.3$ ./datamodel.sh downloadrpd -O /temp/12122020_backup.rpd -W rpd123 -SI ssi -U weblogic -P welcome1

Connection failed, the server processes may be down, the host name, port number, service instance, or protocol (http/https) may be incorrect. Please check server logs, such as bi-lcm-rest.log.0 and obis1-diagnostic.log.. or refer to the error message: {0}

System exit code: 1

Al revisar los archivos logs no aparece mucha información útil que nos indique la causa del error, por lo que se procedió a aumentar el nivel del log para ver si así apareceía algo que nos ayude a solventar el problema.

Luego de aumentar el nivel del log desde el EM y al probar nuevamente, se muestra el siguiente mensaje de error:

bi_server1.out

-----------------------

<Dec 12, 2020 8:51:12,492 PM CST> <Warning> <oracle.bi.restkit.exp.DefaultExceptionHandler> <BEA-000000> <Default exception handler returning response javax.ws.rs.WebApplicationException: HTTP 401 Unauthorized

at oracle.bi.restkit.security.auth.RequiredGroupAuthoriser.authorise(RequiredGroupAuthoriser.java:60)

at oracle.bi.lcm.rest.PotentiallySecureLcmEndpoint.authorise(PotentiallySecureLcmEndpoint.java:33)


bi_server1-diagnostic.log

---------------------------------

[2020-12-12T20:51:12.494-06:00] [bi_server1] [WARNING] [] [oracle.bi.restkit.exp.DefaultExceptionHandler] [tid: [ACTIVE].ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <anonymous>] [ecid: 08ea1bbf-b995-44ec-9b57-5b15d1c78dbb-000002e2,0] [APP: bi-lcm-rest] [partition-name: DOMAIN] [tenant-name: GLOBAL] [SI-Key: ssi] Default exception handler returning response[[

javax.ws.rs.WebApplicationException: HTTP 401 Unauthorized


¿Qué está pasando?

Resulta que en la investigación se determinó que el despliegue bi-lcm-rest no tiene atachada la política wss_http_token_service_policy por lo que es neceario atacharla nuevamente.


Solución:

Para volver a atachar la política al despliegue antes mencionado debemos realizar los siguientes pasos:

1. Ingresar al EM de OBIEE.

2. En el árbol de la izquierda, seleccionar despliegues.

3. Hacer clic en el despliegue con nombre "bi-lcm-rest".

4. Hacer clic donde dice "Modules and Components"

5. Hacer clic en "bi-lcm-rest" bajo la columna que dice "Web Service Endpoints"

Nota: Si el ambiente es un cluster de OBIEE el cambio se debe hacer en solo uno de los nodos, el cambio se replicará automáticamente al otro nodo.

6. Ahora en la esquina superior derecha debemos hacer clic donde dice "Attach/Detach Policies"

7. En la nueva ventana que aparece hacer clic en el botón "Attach/Detach"

8. Ahora debemos buscar y seleccionar la política con nombre "oracle/wss_http_token_service_policy"

9. Con la política seleccionada ahora presionamos el botón "Attach", la política debe mostrarse bajo la sección "Directly Attached Policies"

10. Presionamos el botón OK.

11. Ahora podemos probar el subir o bajar un RPD, en caso no funcione luego de haber realizado los pasos anteriores debemos reiniciar todos los servicios y servidores manejados de OBIEE.


Y eso es todo...


domingo, 26 de julio de 2020

Desbloquear cuenta de usuario o cuenta admin en Oracle Apex 20.1

De vez en cuando sucede que un usuario de la aplicación de Apex se le olvide su contraseña o la ingrese mal varias veces, esto hará que la cuenta del usuario en Oracle Apex se bloquee, lo mismo puede suceder para la cuenta de administración utilizada para administrar el entorno de Apex.

Una forma para desbloquear el usuario final o el usuario administrador es con los pasos siguientes como usuario SYS:

1. El siguiente comando nos permitirá ver los usuarios que actualmente se encuentran bloquedados: 

select * from APEX_200100.WWV_FLOW_FND_USER
where account_locked = 'Y';

2. Una vez hemos corroborado que el usuario en cuestión se encuentra bloqueado, podemos ejecutar el siguiente comando para desbloquear el usuario, acá desbloquearé un usuario con nombre CARLOS:

update APEX_200100.WWV_FLOW_FND_USER
set account_locked = 'N'
where user_name in ('CARLOS');

NOTA: si se fijan estoy usando el esquema de APEX_200100, esto es porque mi versión de APEX es la 20.1 si su versión es diferentes deben cambiarlo al nombre de esquema correspondiente a su versión, pueden determinar el nombre de su esquema ejecutando el siguiente comando siempre como usuario SYS:

select username from dba_users where username like 'APEX%';

El comando anterior nos mostrará una serie de esquemas entre los cuales deberemos utilizar el que tiene números ya que éstos indican la versión de Apex instalada en su entorno:



Con los pasos anteriores habremos desbloqueado el usuario sin problemas!

Saludos! 


viernes, 24 de julio de 2020

Oracle Apex 20.1: ORA-24247: network access denied by access control list (ACL)

Al tratar de utilizar un servicio REST en Oracle Apex 20.1 el siguiente mensaje puede aparecer:

ORA-24247: network access denied by access control list (ACL)



Este mensaje es normal es un ambiente recien creado de Apex, donde no se ha habilitado los servicios de red.

Los servicios de red nos permiten realizar las siguientes acciones:
  • Envío de correo saliente en Oracle Application Express.
  • Llamar a métodos desde el paquete APEX_MAIL.
  • Consumir servicios web de Oracle Application Express.
  • Realización de llamadas LDAP salientes desde Oracle Application Express.
  • Impresión de reportes en PDF.

Para solventar el mensaje anterior basta con ejecutar como usuario SYS de la Base de datos el siguiente script para brindar el acceso requerido:

BEGIN
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => '*',
        ace => xs$ace_type(privilege_list => xs$name_list('connect'),
                           principal_name => 'APEX_200100',
                           principal_type => xs_acl.ptype_db));
END;
/


Del script anterior cabe recalcar los siguientes puntos:

  • El asterisco indica que se brinda acceso desde cualquier host. Puede ser reemplazado el valor por la palabra localhost para restringir el acceso solamente desde el servidor donde se encuentra instalada la Base de Datos.
  • En el principal_name se brinda acceso al usuario APEX_200100.
  • Este Script asumen que la versión de la Base de Datos siendo utilizada es 12c o superior.

NOTA: Si en caso se está utilizando una Base de Datos previa a la versión 12c se puede usar el siguiente script:

DECLARE
  ACL_PATH  VARCHAR2(4000);
BEGIN
   
  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
 
  IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_200100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'APEX_200100', TRUE, 'connect');
  END IF;
 
EXCEPTION
  
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
    'ACL that lets power users to connect to everywhere',
    'APEX_200100', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;


miércoles, 8 de julio de 2020

REP-52262: Diagnostic output is disabled en Oracle Reports 12c

Este mensaje suele aparecer en una nueva instalación de Oracle Forms/Reports 11g o 12c.



Este mensaje nos indica que está deshabilitada la información de diagnostico de Reports y suele ser el siguiente mensaje en aparecer luego de haber solucionado el error REP-51019

Para solucionarlo debemos realizar lo siguiente:

1. Sacar respaldo del archivo rwservlet.properties

Este archivo se encuentra en la siguiente ubicación:

$DOMAIN_HOME\config\fmwconfig\servers\WLS_REPORTS\applications\reports_#\configuration


2.Agregar la siguiente linea debajo de la linea de <inprocess>

<webcommandaccess>L2</webcommandaccess>


3. Por último se debe reiniciar el servidor de Reportes.

Con los pasos anteriores ya no se presentará el mensaje en cuestión y podremos acceder sin problema a los comandos web del servlet de Reports.