miércoles, 19 de diciembre de 2018

Oracle Reports 12c: OCI_INVALID_HANDLE. ==> select

Al tratar de ejecutar algún reporte en la versión 12c de Oracle Reports, se puede mostrar el siguiente mensaje de error de forma intermitente:

REP-300: OCI_INVALID_HANDLE. ==> select .....

Desde el Reports Builder el mensaje de error se puede ver de esta manera:



En el log de diagnostico se puede encontrar alguno de este estos errores: REP-300 : OCI_INVALID_HANDLE, REP-0501, and ORA-00002
CAUSA:

Este comportamiento se debe a los siguientes bugs:

Bug:10100777 "Reports Engine Crash With Rep-501"
Bug:13327994 "REP-300 / REP-501 AFTER A WHILE OF USING REPORTS SERVER EVEN WITH PATCH 10100777"
Bug:18595884 "REP-300 UNTIL ENGINE IS RESTARTED"



SOLUCIONES:

12c:

Usar versión R2 pues los fix a estos bugs ya están incluidos en las versiones 12.2.1.X

11gR2:

11.1.2.2 : Aplicar parche 18595884

11.1.2.1 : Los fix para los bugs 10100777 y 13327994 ya están incluidos en esta versión, no hay necesidad de aplicar nada.

11.1.2.0 : El fix para el bug 10100777 ya esta incluido en esta versión, solo es necesario aplicar el parche correspondiente para el bug 13327994

Otras versiones leer Doc ID 1270315.1

viernes, 7 de diciembre de 2018

BEA-000386 - Server subsystem failed. Reason: A MultiException has 20 exceptions

Al tratar de iniciar Weblogic 12c, se puede presentar el siguiente error y éste no inicia:

<Nov 25, 2018 12:01:56,844 PM MST> <Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: A MultiException has 20 exceptions.  They are:
1. java.lang.NullPointerException
2. java.lang.IllegalStateException: Unable to perform operation: post construct on weblogic.store.admin.DefaultStoreService
3. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.transaction.internal.TransactionService errors were found
4. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.transaction.internal.TransactionService
5. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.jdbc.common.internal.JDBCService errors were found
6. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.jdbc.common.internal.JDBCService
7. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.PartitionRuntimeStateManager errors were found
8. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.PartitionRuntimeStateManager
9. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.partition.admin.DomainLevelResourceGroupStateHelperImpl errors were found
10. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.partition.admin.DomainLevelResourceGroupStateHelperImpl
11. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.PartitionRuntimeStateManager errors were found
12. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.PartitionRuntimeStateManager
13. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.partition.admin.PartitionResourceGroupStateHelperImpl errors were found
14. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.partition.admin.PartitionResourceGroupStateHelperImpl
15. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.deploy.internal.ConfiguredDeployments errors were found
16. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.deploy.internal.ConfiguredDeployments
17. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.deploy.internal.DeploymentShutdownService errors were found
18. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.deploy.internal.DeploymentShutdownService
19. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.application.services.ApplicationShutdownService errors were found
20. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.application.services.ApplicationShutdownService


A MultiException has 20 exceptions.  They are:
1. java.lang.NullPointerException
2. java.lang.IllegalStateException: Unable to perform operation: post construct on weblogic.store.admin.DefaultStoreService
3. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.transaction.internal.TransactionService errors were found
4. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.transaction.internal.TransactionService
5. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.jdbc.common.internal.JDBCService errors were found
6. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.jdbc.common.internal.JDBCService
7. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.PartitionRuntimeStateManager errors were found
8. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.PartitionRuntimeStateManager
9. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.partition.admin.DomainLevelResourceGroupStateHelperImpl errors were found
10. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.partition.admin.DomainLevelResourceGroupStateHelperImpl
11. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.PartitionRuntimeStateManager errors were found
12. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.PartitionRuntimeStateManager
13. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.partition.admin.PartitionResourceGroupStateHelperImpl errors were found
14. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.partition.admin.PartitionResourceGroupStateHelperImpl
15. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.deploy.internal.ConfiguredDeployments errors were found
16. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.deploy.internal.ConfiguredDeployments
17. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.management.deploy.internal.DeploymentShutdownService errors were found
18. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.management.deploy.internal.DeploymentShutdownService
19. java.lang.IllegalArgumentException: While attempting to resolve the dependencies of weblogic.application.services.ApplicationShutdownService errors were found
20. java.lang.IllegalStateException: Unable to perform operation: resolve on weblogic.application.services.ApplicationShutdownService


        at org.jvnet.hk2.internal.Collector.throwIfErrors(Collector.java:89)
        at org.jvnet.hk2.internal.ClazzCreator.resolveAllDependencies(ClazzCreator.java:250)
        at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:358)
        at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:487)
        at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:305)
        Truncated. see log file for complete stacktrace
Caused By: java.lang.NullPointerException
        at weblogic.store.internal.PersistentStoreImpl.isDefaultStoreOfOtherServer(PersistentStoreImpl.java:322)
        at weblogic.store.internal.PersistentStoreImpl.isSpecialStore(PersistentStoreImpl.java:366)
        at weblogic.store.internal.PersistentStoreImpl.setFatalException(PersistentStoreImpl.java:303)
        at weblogic.store.internal.PersistentStoreImpl.open(PersistentStoreImpl.java:551)
        at weblogic.store.admin.AdminHandler.activate(AdminHandler.java:157)
        Truncated. see log file for complete stacktrace
>
<Nov 25, 2018 12:01:56,862 PM MST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED.>
<Nov 25, 2018 12:01:56,862 PM MST> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down.>
<Nov 25, 2018 12:01:56,865 PM MST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN.>
Stopping Derby server...
Derby server stopped.


Esto sucede cuando al parecer la tienda por defecto (default store) está corrupta.

Para su solución podemos realizar los siguientes pasos:

1. Movernos al directorio: $DOMAIN/servers/SERVERNAME/data/store/default
2. Sacar un backup del archivo: _WLS_SERVERNAME000000.DAT
3. Eliminar el archivo _WLS_SERVERNAME000000.DAT
4. Reiniciar Weblogic

Con esto se creará un nuevo archivo y el Weblogic subirá sin problemas.

viernes, 26 de octubre de 2018

Oracle Reports REP-110: Unable to open file

En ocasiones, en un ambiente donde se encuentra instalado Oracle Reports se puede dar que al tratar de ejecutar un reporte, se nos presente el siguiente error:



1
2
3
REP-110: No se ha podido abrir el archivo 'rinnovousers.'.
REP-1070: Error al abrir o guardar un documento.
REP-0110: No se ha podido abrir el archivo 'rinnovousers.'.
Este error se puede presentar de un día para otro y afectar a un reporte en especifico y lo demás reportes sigan funcionando sin problema. Si se intenta ejecutar el reporte con la ruta completa donde se encuentra éste o colocar la extensión RDF o REP si funciona el reporte.

¿Por qué sucede?

Existe en alguna ruta que no necesariamente este dentro del REPORTS_PATH un archivo con el mismo nombre que el del reporte.

¿Cómo se soluciona?

Se debe de realizar una búsqueda de aquellos archivos que tengan el mismo nombre del reporte y que no tengan extensión.

Ejemplo:

Si buscamos todos los archivos con el nombre del reporte rinnovousers, obtengo el siguiente resultado:

1
2
3
4
5
6
7
8
[oracle@rinnovoap1 ~]$ cd /u01
[oracle@rinnovoap1 u01]$ find . -name rinnovousers*
./app/oracle/product/101202/j2ee/home/rinnovousers
./app/oracle/product/101202/reports/cache/rinnovousersxrB0jMiM.pdf
./app/oracle/product/101202/reports/cache/rinnovouserstVHcTYZb.pdf
./app/oracle/product/101202/reports/cache/rinnovousersybPtAkG1.pdf
./app/oracle/product/101202/reports/cache/rinnovousersJESn9PWV.pdf
[oracle@rinnovoap1 u01]$

Como vemos en el ejemplo, el comando de búsqueda devolvió un archivo que tiene el mismo nombre que el reporte (linea 3) y como se puede observar no tiene extensión. Este archivo debemos eliminarlo.

Una vez eliminado el archivo, probamos y veremos que el reporte se ejecuta nuevamente sin problemas!!

viernes, 31 de agosto de 2018

jueves, 23 de agosto de 2018

Importación de certificados en Oracle Wallet por medio de orapki

Como administradores de servidores, una de las tareas comunes es administrar la parte de seguridad en nuestros Servidores, la cual conlleva entre otras tareas el manejo de los certificados que permiten la comunicación segura por medio de SSL.

En esta ocasión mostraré los pasos para importar los certificados de tipo root, intermedios y publico por medio de orapki, que es otra opción a parte de usar OWM.

Para comenzar, si no tenemos una cartera creada, podemos crear una con el siguiente comando:

orapki wallet create -wallet /u01/app/oracle/product/wallet -pwd wallet123 -auto_login

Primero importamos el certificado de tipo root CA:

orapki wallet add -wallet /u01/app/oracle/product/wallet -trusted_cert -cert /temp/rootca.cer

Luego importamos el certificado intermedio (en caso de existir):

orapki wallet add -wallet /u01/app/oracle/product/wallet -trusted_cert -cert /temp/intca.cer

Por último importamos el certificado público:

orapki wallet add -wallet /u01/app/oracle/product/wallet -trusted_cert -cert /temp/server.cer


Podemos revisar el contenido de nuestra cartera o wallet con el siguiente comando:

orapki wallet display –wallet /u01/app/oracle/product/wallet


La cartera se encuentra lista para ser usada por OHS u otro componente.

viernes, 27 de julio de 2018

ORA-01153: an incompatible media recovery is active

Al tratar de iniciar el proceso de recuperación en una Base de Datos Standby, aparece el siguiente mensaje de error:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT
*
ERROR at line 1:
ORA-01153: an incompatible media recovery is active

La causa del ORA-01153 se puede traducir en que ya existe una sesión de recuperación o backup de RMAN.

Si vemos que aunque ya existe una sesión de recuperación pero la Base Standby no se está sincronizando, entonces podemos parar la sesión actual con el siguiente comando:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

Posteriormente podemos ejecutar nuevamente el comando de inicio de recuperación y podremos ver que ahora ya no se muestra ningún mensaje de error:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Database altered.

Ahora el proceso de sincronización debe continuar sin problemas.

martes, 24 de julio de 2018

Manejo de caracteres como Ñ o tildes en Oracle Forms 12c

Si en nuestra Aplicación de Oracle Forms se deben manejar caracteres como el de la letra "Ñ" o tildes, pero al ser mostrados son reemplazados por caracteres como se ve a continuación:



Entonces debemos agregar a set de caracteres que contenga dichos caracteres a nuestro archivo de ambiente, que comúnmente es el archivo default.env

Debemos agregar la siguiente variable y con el siguiente valor:


NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1


Esta variable contiene el lenguaje, el territorio y el set de caracteres que permite que se vea la letra Ñ y tildes.

miércoles, 11 de julio de 2018

Como cambiar la contraseña del usuario ASMSNMP en ASM 12c

El cambio de contraseña se puede hacer de 2 maneras:

  • Por medio del comando "Alter user".
  • Por medio de linea de comando con ASMCMD

Por medio del comando "Alter user"

$ . oraenv
$ ORACLE_SID = [oracle] ? +ASM1
$ sqlplus / as sysasm

SQL> Alter user asmsnmp identified by <new_password>;

User altered


Por medio de linea de comandos con ASMCMD

Si lo hacemos de esta manera y es un RAC, se actualizará la contraseña en todos los nodos.


$ . oraenv
$ ORACLE_SID = [oracle] ? +ASM1
$ asmcmd -p

ASMCMD [+] > lspwusr

Username sysdba sysoper sysasm
SYS      TRUE   TRUE    TRUE
ASMSNMP  TRUE   FALSE   FALSE


ASMCMD [+] > orapwusr --modify asmsnmp
Enter password: ******

ASMCMD [+] > exit


Y así es como podemos cambiar el password del usuario ASMSNMP.

Configuración de un Cluster de Weblogic 12c

El siguiente post intenta mostrar los pasos necesarios a seguir para configurar un Cluster de Weblogic 12c de 2 nodos para el despliegue de aplicaciones Java EE.
Se asume lo siguiente:
  • JDK instalado y que los ejecutables de éste se encuentran en el PATH.
  • La instalación se realiza con usuario oracle.
  • El ambiente dónde se realiza la instalación es Unix y está certificado.


Instalación de Binarios de Weblogic

Procederemos con los siguientes pasos:

Nodo 1:


1. Iniciar el instalador de la siguiente manera:


$ java -jar fmw_12.2.1.1.0_infrastructure.jar

Continuar leyendo aquí.