Problemas de acceso a datos para orígenes de datos Sybase
Este artículo proporciona sugerencias para la resolución de problemas de acceso a orígenes de datos Sybase
¿Qué clase de problema tiene cuando accede a la base de datos Sybase?
- Recibe el error "Error de Sybase 7713: El procedimiento almacenado solamente se puede ejecutar en modalidad de transacciones no encadenadas".
- "JZ0XS: El servidor no da soporte a las transacciones de tipo XA. Compruebe que la característica de transacción esté habilitada y tenga licencia en este servidor."
- Un enterprise bean CMP (persistencia gestionada por contenedor) está causando excepciones.
- Cuando se utiliza Sybase, se producen puntos muertos en la base de datos y errores XA_PROTO
- Sybase no genera una excepción cuando se especifica un nombre de base de datos incorrecto
Recibe el error "Error de Sybase 7713: El procedimiento almacenado solamente se puede ejecutar en modalidad de transacciones no encadenadas"
- JDBC intenta colocar la conexión en modalidad de autocommit(true).
- Un procedimiento almacenado no se crea en una modalidad compatible.
Para solucionar el problema de modalidad autocommit(true), deje que la aplicación modifique la conexión a modalidad encadenada utilizando la modalidad Connection.setAutoCommit(false) o utilice un mandato de lenguaje set chained on.
Para resolver el problema de procedimiento almacenado, utilice el mandato sp_procxmode nombre_procedimiento "anymode".
"JZ0XS: El servidor no da soporte a las transacciones de tipo XA. Compruebe que la característica de transacción esté habilitada y tenga licencia en este servidor"
Este error se produce cuando se intenta realizar transacciones de tipo XA en un servidor que no tiene instalado DTM (Distributed Transaction Management).
- Instale la opción DTM.
- Compruebe el archivo license.dat para verificar que la opción DTM está instalada.
- Reinicie el gestor de licencias.
- Habilite DTM en ISQL.
- Reinicie el servicio ASE.
Un enterprise bean CMP (persistencia gestionada por contenedor) está causando excepciones
Este error puede deberse a un uso indebido de las palabras reservadas. Las palabras reservadas no se pueden utilizar como nombres de columnas.
Para corregir este problema: cambie el nombre de la variable para suprimir la palabra reservada. Puede encontrar una lista de palabras reservadas en la publicación Quick Reference Guide for Sybase Adaptive Server Enterprise 15.5. Esta publicación está disponible en línea en: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc70202.1550/html/quickref/CACIGGEB.htm.
Cuando se utiliza Sybase, se producen puntos muertos en la base de datos y errores XA_PROTO
- Cambie el nivel de aislamiento de transacciones en la conexión a TRANSACTION_READ_COMMITTED. Establezca el nivel de aislamiento en la conexión para conexiones no compartibles o, para las conexiones compartibles, defina los niveles de aislamiento en la referencia de recursos del origen de datos utilizando una herramienta de ensamblaje.
- Modifique Sybase realizando una de las operaciones siguientes:
- Si desea utilizar las tablas existentes, modifique el esquema de bloqueo de tablas utilizando el mandato alter table nombre_tabla lock datarows para obtener una granularidad de nivel de bloqueo de filas.
- Si desea establecer el esquema de bloqueo de todo el sistema en filas de datos,
todas las tablas que cree a continuación heredarán ese valor y tendrán un esquema de
bloqueo de filas de datos. Nota: Deberá eliminar las bases de datos y las tablas originales.
Sybase no genera una excepción cuando se especifica un nombre de base de datos incorrecto
Compruebe que el nombre de la base de datos se ha especificado correctamente en las propiedades del origen de datos.
La mayoría de bases de datos (DB2, Oracle, Informix , MS SQL Server y Apache Derby) generan una excepción cuando no existe la base de datos especificada. Pero Sybase no genera una excepción cuando se especifica un nombre de base de datos incorrecto. Sybase genera un aviso SQL y, a continuación, se conecta con la base de datos predeterminada. Si ha escrito mal el nombre de la base de datos solicitada, Sybase se conecta con la base de datos maestra o la base de datos predeterminada donde no se encuentra la tabla solicitada.
Si ninguno de estos pasos soluciona el problema, compruebe si el problema se ha identificado y documentado consultando el soporte en línea disponible (ideas y sugerencias, notas técnicas y arreglos). Si no encuentra su problema, póngase en contacto con el soporte de IBM.