Problemas de acceso a datos para orígenes de datos Oracle

Utilice las sugerencias de resolución de problemas para ayudarle a acceder a orígenes de datos Oracle.

Se ha especificado un URL de Oracle no válido

Este error puede deberse a que se ha especificado incorrectamente un URL en la propiedad de URL del origen de datos de destino.

Examine en la propiedad del URL el objeto de origen de datos de la consola administrativa para asegurarse de que sea correcta.

Los ejemplos de URL de Oracle son:
  • Para el controlador ligero: jdbc:oracle:thin:@//hostname:1521/miBaseDatos
  • Para el controlador OCI: jdbc:oracle:oci:@tnsname1

"DSRA0080E: El adaptador del almacén de datos ha recibido una excepción. Consulte el mensaje de excepción original: ORA-00600"

Esta excepción puede deberse a que la versión del controlador Oracle JDBC que se está utilizando es anterior a la versión de la base de datos Oracle. Es posible que haya más de una versión del controlador Oracle JDBC configurada en WebSphere Application Server.

Examine la versión del controlador JDBC. Generalmente, se puede determinar la versión consultando la classpath para determinar en qué directorio está situado el controlador.

Si no puede determinar la versión de este modo, utilice el siguiente programa para determinar la versión. Antes de ejecutar el programa, establezca la classpath en la ubicación de los archivos del controlador JDBC.
import java.sql.*;
     import oracle.jdbc.driver.*;
     class JDBCVersion
     {
         public static void main (String args[])
         throws SQLException
         {
             // Cargar el controlador Oracle JDBC
             DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
             // Obtener una conexión con una base de datos
             Connection conn = DriverManager.getConnection
             ("jdbc:oracle:thin:@appaloosa:1521:app1","sys","change_on_install");
             // Crear el objeto Oracle DatabaseMetaData
             DatabaseMetaData meta = conn.getMetaData();
             // obtiene información del controlador:
             System.out.println("JDBC driver version is " + meta.getDriverVersion());
         }
     }

Si el controlador y la base de datos son de versiones diferentes, sustituya el controlador JDBC por la versión correcta. Si se han configurado varios controladores, elimine los que estén en el nivel incorrecto.

DSRA8100E: No se ha podido obtener un {0} del origen de datos. Explicación: Consulte linkedException para obtener más información.

Cuando se utiliza Oracle Thin Driver, Oracle crea un error java.sql.SQLException de argumentos no válidos en la llamada si no se especifica ningún nombre de usuario o contraseña cuando se obtiene una conexión. Si aparece este error cuando se ejecuta WebSphere Application Server, el alias no se ha establecido.

Para eliminar la excepción, defina el alias en el origen de datos.

"Error al intentar recuperar el texto del error"

La causa probable de este error es que se está utilizando el controlador Oracle OCI con una propiedad ORACLE_HOME que no se ha establecido o se ha establecido incorrectamente.

Para corregir el error, examine el perfil del usuario bajo el que se ejecuta WebSphere Application Server para comprobar que la variable de entorno $ORACLE_HOME se ha establecido correctamente.

Se producen errores del cargador de clases al utilizar un controlador Oracle OCI como proveedor JDBC

Si configura un controlador Oracle OCI como proveedor JDBC, debe especificar la vía de acceso en la que se hallan almacenadas las bibliotecas nativas. Si no ha especificado la vía de acceso a la biblioteca nativa, la primera vez que intente conectarse utilizando este proveedor se producirán errores del cargador.

Para corregir este problema, en la consola administrativa, pulse Recursos > JDBC > Proveedores de JDBC, seleccione el controlador Oracle OCI y especifique la vía de acceso a las bibliotecas nativas en el campo Vía de acceso de las bibliotecas nativas.

Se producen errores al hacer referencia a clases Oracle o al conectar con un origen de datos Oracle

Recepción de errores java.lang.NullPointerException al hacer referencia a las clases Oracle o "error interno: oracle.jdbc.oci.OCIEnv" cuando se conecta a un origen de datos Oracle

El problema puede ser que el controlador OCI está utilizándose en una máquina AIX, la variable LIBPATH se ha establecido correctamente, pero no se ha establecido la variable de entorno ORACLE_HOME o se ha establecido incorrectamente. Puede encontrar una excepción similar a cualquiera de las siguientes cuando la aplicación intenta conectarse a un origen de datos Oracle:

Para corregir el problema, examine el perfil del usuario bajo el que se ejecuta WebSphere Application Server para comprobar que la variable de entorno $ORACLE_HOME se ha establecido correctamente, y que $LIBPATH incluya $ORACLE_HOME/lib.

WSVR0016W: La entrada de classpath de Oracle JDBC Thin Driver tiene una variable no válida

Este error se produce cuando no hay ninguna variable de entorno definida para la propiedad ORACLE_JDBC_DRIVER_PATH.

Verifique este problema en la consola administrativa. Vaya a Entorno > Gestionar variables de WebSphere para verificar que se ha definido la variable ORACLE_JDBC_DRIVER_PATH.

Para corregir el problema, pulse Nuevo y defina la variable. Por ejemplo, nombre: ORACLE_JDBC_DRIVER_PATH, valor : c:\oracle\jdbc\lib. Utilice un valor que denomine el directorio del sistema operativo que contiene el archivo ojdbc6.jar (o el archivo ojdbc6_g.jar para habilitar el rastreo de Oracle).

Error de recuperación de transacciones (para orígenes de datos XA)

Problema

Cuando WebSphere Application Server intenta recuperar las transacciones de base de datos Oracle, el servicio de transacciones emite la excepción siguiente:
WTRN0037W: El servicio de transacción ha encontrado un error en una operación xa_recover. 
El recurso era com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl@1114a62. 
El código de error era XAER_RMERR. El rastreo de la pila de excepciones es el siguiente: 
javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:726)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:954)
at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:137)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:609)
at com.ibm.ws.Transaction.JTA.PartnerLogTable.recover(PartnerLogTable.java:511)
at com.ibm.ws.Transaction.JTA.RecoveryManager.resync(RecoveryManager.java:1784)
at com.ibm.ws.Transaction.JTA.RecoveryManager.run(RecoveryManager.java:2241)

Causa

Oracle requiere que servicios como, por ejemplo, el servicio de transacciones de WebSphere Application Server, tengan permisos especiales para realizar las recuperaciones de transacciones.

Solución

Como usuario SYS, ejecute los mandatos siguientes en el servidor Oracle:
grant select on pending_trans$ to public;
grant select on dba_2pc_pending to public;
grant select on dba_pending_transactions to public;
grant execute on dbms_system to < user>;
Usuario es un ID de usuario del servidor de aplicaciones autorizado a realizar la recuperación de transacciones para el origen de datos XA. Si no ha autorizado a ningún ID de usuario a realizar la recuperación de transacciones, el servidor de aplicaciones utiliza el alias de inicio de sesión como ID de usuario para el origen de datos.

Este problema se menciona en el error de Oracle: 3979190. Al ejecutar los mandatos anteriores se soluciona el problema.

El servidor de aplicaciones recibe un error en el archivo SystemOut.log cuando registra el Mbean JDBC Diagnosability

Se muestra el error siguiente en el archivo SystemOut.log cuando WebSphere Application Server intenta conectarse con una base de datos Oracle:
E Error al registrar el MBean de capacidad de diagnóstico Oracle JDBC. malformedobjectnameexception: Carácter no válido '' en la parte de valor de la propiedad

Este error se produce durante la conexión inicial con una base de datos Oracle porque el diagnóstico para el MBean no se ha inicializado correctamente.

Puede ignorar este error. Sin embargo, puede aplicar el parche número 6362104 de Oracle para evitar posteriores apariciones de este error. Compruebe con Oracle si tiene otros parches aplicados, ya que es posible que este parche no funcione con otros parches.
Nota: En este tema se hace referencia a uno o más de los archivos de registro del servidor de aplicaciones. Como alternativa recomendada, puede configurar el servidor para utilizar la infraestructura de registro y rastreo HPEL en lugar de utilizar los archivos SystemOut.log , SystemErr.log, trace.log y activity.log en sistemas distribuidos y de IBM® i. Puede también utilizar HPEL junto con sus recursos de registro nativos de z/OS. Si utiliza HPEL, puede acceder a toda la información de registro y rastreo utilizando la herramienta de línea de mandatos LogViewer desde el directorio bin de perfil de servidor. Consulte la información sobre la utilización de HPEL para resolver problemas de aplicaciones para obtener más información sobre la utilización de HPEL.

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_dsaccess2
File name: rtrb_dsaccess2.html