Problemas de acceso a datos

Las herramientas de diagnóstico de WebSphere Application Server proporcionan servicios para ayudarle a la resolución de problemas de conexión de base de datos. Adicionalmente, el sitio web de IBM® proporciona funciones de búsqueda flexibles para buscar soluciones documentadas para problemas de conexión específicas de base de datos.

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.

Los pasos siguientes le ayudan a aislar rápidamente los problemas de conectividad.

  1. Examine los archivos de anotaciones cronológicas del servidor de aplicaciones para obtener alguna sugerencia.

    [z/OS]Consulte el tema Establecimiento del registro cronológico de errores.

    [AIX Solaris HP-UX Linux Windows][IBM i]Consulte el tema Visualización de registros de JVM. De forma predeterminada, estos archivos son: raíz_servidor_aplicaciones/nombre_servidor/SystemErr.log y SystemOut.log.
    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.
  2. Examine la propiedad de la clase de ayudante del origen de datos para comprobar que sea correcta y que esté en la classpath de WebSphere Application Server. Los errores o un comportamiento extraños pueden deberse a que falta un nombre de clase de ayudante o a que el nombre es incorrecto. Si WebSphere Application Server no puede cargar la clase especificada, utiliza una clase de ayudante por omisión que es posible que funcione de forma incorrecta con su gestor de bases de datos.
  3. Compruebe que el nombre de la JNDI (Java™ Naming and Directory Interface) del origen de datos coincida con el nombre que utiliza el cliente que intenta acceder a la misma. Si los mensajes de error indican que puede tratarse de un problema relacionado con el nombre, por ejemplo, si hacen referencia al servidor de nombres o al servicio de nombres, o si incluyen algún ID de error que empieza por NMSV, consulte los temas Problemas relacionados con nombres y Resolución de problemas del componente de servicio de nombres.
  4. Habilite el rastreo del adaptador de recursos utilizando la especificación de rastreo RRA=all=enabled. Siga las instrucciones para volcar y analizar la salida de rastreo para aislar el origen del problema. Consulte el tema "Habilitación del rastreo".

Para obtener una lista completa de las sugerencias de resolución de problemas específicas de la base de datos, consulte la página de soporte de WebSphere Application Server. (Puede encontrar el enlace al final de este artículo). En el campo de búsqueda de soporte, escriba un nombre de proveedor de base de datos entre sus términos de búsqueda. Seleccione Solve a problem y pulse Search.

Recuerde que siempre puede encontrar referencias sobre soporte en el tema Ayuda de IBM para la resolución de problemas que se encuentra en este Information Center.

Actualmente este centro de información proporciona un número limitado de sugerencias para la resolución de problemas para las bases de datos siguientes:

IllegalConnectionUseException

Este error puede deberse a que se ha obtenido una conexión desde un WAS40DataSource que se está utilizando en más de una hebra. Este uso es una violación del modelo de programación de J2EE 1.3 y se genera una excepción cuando se detecta en el servidor. Este problema le ocurre a los usuarios que acceden a un origen de datos mediante servlets o mediante enterprise beans BMP (Persistencia gestionada por bean).

Para confirmar este problema, examine el código del compartimiento de conexiones. Accidentalmente, el código puede ser la causa de que se compartan las conexiones si no sigue las recomendaciones del modelo de programación, por ejemplo, si almacena una conexión en una variable de instalación de un servlet, lo que puede hacer que la conexión se utilice en varias hebras al mismo tiempo.

WTRN0062E: Se ha producido un intento no permitido de utilizar varios recursos que sólo tienen capacidad de una fase.

Este error se puede producir porque:
  • Se ha intentado compartir una conexión de una sola fase pero no todas las llamadas getConnection utilizan las mismas propiedades de conexión como, por ejemplo, AccessIntent.
  • Se ha intentado que más de una conexión no compartible participe en una transacción global, cuando el origen de datos no es un recurso XA.
  • Se ha intentado que un recurso de una sola fase participe en una transacción global mientras que un recurso XAM u otro recurso de una fase ya ha participado en esta transacción global. La siguiente información puede ayudarle a identificar por qué la condición de error se produce:
    • Si está utilizando un origen de datos que no sea de XA y espera compartir una conexión, establezca todos los recursos resource-ref como compartibles. Si no utiliza un resource-ref, por omisión, pasará a conexiones que no se pueden compartir.
    • Su conexión no se comparte si no utiliza las mismas propiedades de conexión, como IsolationLevel o AccessIntent, en cada solicitud de conexión.
    • Sus conexiones no se pueden compartir si utiliza beans CMP que puedan utilizar varias configuraciones de AccessIntent. Para obtener más información sobre los beans CMP que comparten una conexión con componentes no de CMP, consulte la información sobre las extensiones de las API de acceso a datos.
Para corregir este error:
  • Compruebe qué pasa el código del cliente en sus peticiones getConnection, para asegurarse de que son coherentes entre sí.
  • Compruebe el ámbito en que se comparte la conexión en el enlace del recurso, utilizando una herramienta de ensamblaje. Consulte el tema Herramientas de ensamblaje.
    • Si ejecuta un ámbito de conexión que no se puede compartir, compruebe que el origen de datos sea un origen de datos XA.
    • Si ejecuta un ámbito de conexión que se puede compartir, compruebe que todas las propiedades de las conexiones, incluido AccessIntent, se puedan compartir.
  • Compruebe la clase de implementación del proveedor de JDBC en el panel Gestionar recurso JDBC de la consola administrativa para asegurarse de que se trata de una clase que da soporte a las transacciones de tipo XA.

La excepción ConnectionWaitTimeoutException al acceder un origen de datos o un adaptador de recursos

Si la aplicación recibe excepciones como com.ibm.websphere.ce.cm.ConnectionWaitTimeoutException o com.ibm.websphere.ce.j2c.ConnectionWaitTimeoutException cuando intenta acceder a un origen de datos de WebSphere Application Server o a un adaptador de recursos de conformidad con JCA, respectivamente, algunas causas posibles son:
  • El número máximo de conexiones para una agrupación determinada se ha establecido demasiado bajo. La demanda de uso simultáneo de conexiones es mayor que el valor máximo configurado para la agrupación de conexiones. Una indicación de que este puede ser el problema es cuando se reciben estas excepciones de forma regular, pero la utilización de CPU no es demasiado alta. Esta excepción indica que hay muy pocas conexiones disponibles para mantener las hebras del servidor ocupadas.
  • El valor de tiempo de espera de conexión se ha establecido demasiado bajo. La demanda actual de conexiones es lo suficientemente alta como para que algunas veces no haya una conexión disponible durante breves períodos de tiempo. Si el valor de tiempo de espera de conexión es demasiado bajo, es posible que sobrepase el tiempo de espera justo antes de que un usuario devuelva una conexión a la agrupación. Si ajusta el tiempo de espera de conexión es posible que mejore de algún modo. Una indicación de que este puede ser el problema es si utiliza prácticamente el número máximo de conexiones durante un período de tiempo prolongado y recibe este error de forma regular.
  • No está cerrando algunas conexiones o está devolviendo las conexiones a la agrupación a una velocidad muy baja. Esta situación puede darse cuando utiliza conexiones que no se pueden compartir, cuando se olvida de cerrarlas o si las cierra mucho después de haber acabado de utilizarla, lo que impide que la conexión se devuelva a la agrupación para que se pueda volver a utilizar. De este modo, la agrupación se vaciará rápidamente y todas las aplicaciones obtendrán ConnectionWaitTimeoutExceptions. Una indicación de este problema es cuando se queda sin conexiones en la agrupación de conexiones y recibe este error en la mayoría de solicitudes.
  • Está dirigiendo más carga de la que los recursos del servidor o del sistema de fondo pueden manejar. En este caso debe determinar qué recursos necesita más y actualizar las configuraciones o el hardware para cubrir esta necesidad. Una indicación de este problema es que el servidor de aplicaciones o el procesador de servidores de base de datos esté ocupado prácticamente al 100%.
Para corregir estos problemas tiene varias opciones:
  • Modifique una aplicación para que utilice menos conexiones
  • Cierre correctamente las conexiones.
  • Cambie los valores de la agrupación MaxConnections o ConnnectionWaitTimeout.
  • Ajuste los recursos y sus configuraciones.

com.ibm.websphere.ce.cm.StaleConnectionException: [IBM][CLI Driver] SQL1013N No se ha encontrado el nombre de alias o el nombre de base de datos "NULL"

com.ibm.websphere.ce.cm.StaleConnectionException: [IBM][CLI Driver] SQL1013N No se ha encontrado el nombre de alias o el nombre de base de datos "NULL". SQLSTATE=42705. Este error se produce cuando se ha definido un origen de datos pero el atributo databaseName y el valor correspondiente no se han añadido al panel de propiedades personalizadas.

Para añadir la propiedad databaseName:
  1. Pulse Recursos > Gestionar proveedores de JDBC en la consola administrativa.
  2. Seleccione el proveedor_JDBC que da soporte al origen de datos problemático.
  3. Seleccione Orígenes de datos y, a continuación, seleccione el origen de datos problemático.
  4. En Propiedades adicionales, pulse Propiedades personalizadas.
  5. Seleccione la propiedad databaseName, o añada una si no existe, y escriba el nombre real de la base de datos como el valor.
  6. Pulse Aplicar o Aceptar y, a continuación, pulse Guardar en la barra de acciones.
  7. Vuelva a acceder al origen de datos.

java.sql.SQLException: java.lang.UnsatisfiedLinkError

Este error indica que el directorio que contiene las bibliotecas binarias que dan soporte a una base de datos no están incluidas en la variable de entorno LIBPATH para el entorno en el que se inicia WebSphere Application Server.

La vía de acceso que contiene las bibliotecas del proveedor de DBM varían según cada dbm. Una forma de localizarlas es explorar la biblioteca que falta y que se ha especificado en el mensaje de error. A continuación, se puede corregir la variable LIBPATH para que incluya el directorio que falta, ya sea en .profile de la cuenta desde la que se ejecuta WebSphere Application Server, o añadiendo una sentencia en un archivo .sh que ejecute a continuación el programa startServer.

[z/OS]Configure la propiedad LIBPATH Java (java.library.path) con la variable de entorno dominio_region_libpath, como control_region_libpath, server_region_libpath, adjunct_region_libpath. Consulte el tema acerca de cómo cambiar los valores de las variables a las que se hace referencia en los mensajes BBOM0001I para obtener instrucciones sobre cómo establecer las variables libpath de región.

Error J2CA0030E incluido en el error WTRN0063E

Recibe los mensajes "J2CA0030E: El método enlist ha captado java.lang.IllegalStateException" en el error "WTRN0063E: Se ha producido un intento no permitido de incluir un recurso con capacidad de una fase con recursos con capacidad de dos fases" cuando intenta ejecutar una transacción. Este error puede producirse cuando falta o está inhabilitado el soporte de último participante. El soporte de último participante permite que un recurso con capacidad de una fase y un recurso con capacidad de dos fases puedan utilizar la misma transacción.

El soporte de último participante solamente está disponible si se cumple lo siguiente:
  • Se han instalado las PME (Programming Model Extensions) de WebSphere Application Server. Las PME se incluyen con el producto Application Server Integration Server.
  • La opción Integration Server Extensions adicional se habilita cuando se instala PME. Si efectúa una instalación típica, esta función se habilita por omisión. Si efectúa una instalación personalizada, tiene la opción de inhabilitar esta función, que puede inhabilitar el soporte de último participante.
  • La aplicación que incluye el recurso de una fase se ha desplegado con la opción Aceptar riesgos heurísticos habilitada. Este despliegue se lleva a cabo con una herramienta de ensamblaje.

"J2CA0114W: No se ha encontrado ningún alias de autenticación gestionada por contenedor para la fábrica de conexiones o el origen de datos datasource" cuando se intenta una operación de base de datos

Este error se puede producir en el archivo SystemOut.log cuando se ejecuta una aplicación para acceder a un origen de datos después de crear el origen de datos utilizando el script JACL.

El mensaje de error aparece porque el script JACL no ha establecido el alias de autenticación gestionado por contenedor de la fábrica de conexiones CMP. En JACL falta la siguiente línea:
$AdminConfig create MappingModule $cmpConnectorFactory  "{mappingConfigAlias
DefaultPrincipalMapping} {authDataAlias $authDataAlias}

Para corregir este problema, añada la línea que falta al script JACL y vuelva a ejecutarlo. Consulte el tema Ejemplo: creación de un proveedor de JDBC y un origen de datos con la API de Java Management Extensions y la herramienta de scripts para obtener un ejemplo de script JACL.

Se genera un error al utilizar el mandato ws_ant para realizar la personalización de la base de datos para SQLJ en plataformas HP

Si utiliza el mandato ws_ant para realizar la personalización de la base de datos para SQLJ (Lenguaje de consulta estructurada Java) en plataformas HP, puede recibir un error parecido al siguiente:
[java] [ibm][db2][jcc][sqlj]
[java] [ibm][db2][jcc][sqlj] Begin customization
[java] [ibm][db2][jcc][sqlj] encoding not supported!!
La causa de este error puede ser que las bases de datos se han creado utilizando el juego de caracteres por omisión de HP. El controlador JCC (Java Common Client) depende del SDK (Software Development Kit) para realizar las conversiones de página de códigos. No obstante, el SDK que se suministra con este producto no admite la página de códigos por omisión de HP.
Deberá establecer LANG en el entorno local ISO antes de crear las bases de datos. Será parecido al siguiente:
export LANG=en_US.iso88591
Consulte el sitio de soporte de IBM de Information Management Software para acceder a las notas técnicas más recientes para DB2.

La persistencia gestionada por contenedor, CMP, no puede obtener correctamente la función de acceso a base de datos, como se ha definido

Cuando WebSphere Application Server guarda en la memoria caché un código generado concreto al que se accede en la base de datos de la fábrica de conexiones y si cualquier cambio en el archivo JAR (Java Archive) requiere que se vuelva a generar el acceso a la base de datos, los cambios no entran en vigor hasta que se detiene y reinicia el servidor.

Los ejemplos de cuándo es posible que se produzca este error son:
  • Al añadir un método finder personalizado de enterprise bean; se crea una excepción NullPointerException.
  • Al actualizar un método finder de enterprise bean; no se ejecuta la nueva sentencia SQL.
  • Al cambiar la correlación de esquemas; la nueva sentencia SQL no se ejecuta.

En resumen, si añade o actualiza un enterprise bean que contiene un método finder personalizado, debe detener y luego reiniciar el servidor.


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_dsaccess
File name: rtrb_dsaccess.html