20 junio 2021

Tip rápido: Componentes de registro de base de datos Oracle 19c no válidos, tras un parcheo

 

Oracle JVM es un entorno estándar compatible con Java que ejecuta cualquier aplicación Java pura. Es compatible con las especificaciones JLS estándar y JVM. Es compatible con el formato binario estándar de Java y las API estándar de Java. Además, Oracle Database se adhiere a la semántica del lenguaje Java estándar, incluida la carga dinámica de clases en tiempo de ejecución.

Java en Oracle Database presenta los siguientes términos:
  • Sesión (session)
Una sesión en el entorno Java de Oracle Database es idéntica al uso estándar de Oracle Database. Una sesión suele estar limitada, aunque no necesariamente, por el momento en que un solo usuario se conecta al servidor. Como usuario que llama a un código Java, debe establecer una sesión en el servidor.
  • Llamada (call)
Cuando un usuario hace que un código Java se ejecute dentro de una sesión, se denomina llamada. Una llamada se puede iniciar de las siguientes formas diferentes:
  • Un programa de cliente SQL ejecuta un procedimiento almacenado de Java.
  • Un desencadenador ejecuta un procedimiento almacenado de Java.
  • Un programa PL / SQL llama a un código Java.
En todos los casos definidos, comienza una llamada, se ejecuta alguna combinación de código Java, SQL o PL / SQL hasta su finalización y la llamada finaliza.

Los siguientes componentes de JAVAVM no son válidos durante la revisión de la base de datos 19c.
Es necesario ejecutar los siguientes pasos para reparar los componentes dañados de la base de datos.




Primero: Verifica que el componente JAVAVM no sea válido
col comp_id for a10
col version for a11
col status for a10
col comp_name for a37
select comp_id,comp_name,version,status from dba_registry;


Segundo: Valida el componente JAVAVM
execute sys.dbms_registry.invalid(‘JAVAVM’);
execute sys.dbms_registry.valid(‘JAVAVM’);

SQL> execute sys.dbms_registry.invalid(‘JAVAVM’);

PL/SQL procedure successfully completed.

SQL> execute sys.dbms_registry.valid(‘JAVAVM’);

PL/SQL procedure successfully completed.

SQL> col comp_id for a10
col version for a11
col status for a10
col comp_name for a37
select comp_id,comp_name,version,status from dba_registry;