You are on page 1of 211

IBM Informix

Versión 3.5

IBM Data Server Driver para JDBC y SQLJ para IDS

SC11-3675-00

IBM Informix

Versión 3.5

IBM Data Server Driver para JDBC y SQLJ para IDS

SC11-3675-00

Nota: Antes de utilizar esta información y el producto al que da soporte, lea la información contenida en el apartado “Avisos” en la página B-1.

Esta publicación es la traducción del original inglés IBM Informix IBM Data Server Driver for JDBC and SQLJ for IDS Version 3.5, (SC23-7687-00). Este documento contiene información sobre productos patentados de IBM. Se proporciona según un acuerdo de licencia y está protegido por la ley de la propiedad intelectual. La información contenida en esta publicación no incluye ninguna garantía de producto, por lo que ninguna declaración proporcionada en este manual deberá interpretarse como tal. Cuando envía información a IBM, otorga a IBM un derecho no exclusivo a utilizar o distribuir dicha información en la forma en que considere adecuada, sin contraer por ello ninguna obligación con el remitente. © Copyright International Business Machines Corporation 2007. Reservados todos los derechos.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-51 Seguridad basada en ID de usuario y contraseña cuando se utiliza IBM Data Server Driver para JDBC y SQLJ 1-52 Seguridad mediante los ID de usuario cuando se utiliza IBM Data Server Driver para JDBC y SQLJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-41 Excepciones y avisos cuando se utiliza IBM Data Server Driver para JDBC y SQLJ . . . . 1-107 Soporte de controladores para las API de JDBC . . . . . . . 1-66 Enterprise Java Beans . . . 1-43 Desconexión respecto de fuentes de datos en aplicaciones JDBC . . . . . . . . . . . . . . . . . . . . . . . 1-71 Soporte para sondeo de conexiones JDBC y SQLJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-61 Java 2 Platform. . . . . . . . . . . . . . . . . . . 1-55 Ejemplo de utilización de propiedades de configuración para iniciar un rastreo de JDBC . . . . . . . . . . . vi Señalización para funciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Cumplimiento de los estándares industriales . . . . . vii Cómo leer un diagrama de sintaxis de línea de mandatos . . . . . . . . . . . . . . . seguridad por ID de usuario cifrado o seguridad por ID de usuario cifrado y contraseña cifrada cuando se utiliza IBM Data Server Driver para JDBC y SQLJ . . . . . . . . 1-65 Servidor Java 2 Platform Enterprise Edition . . . . . . . . . . . . . . . . . v Supuestos sobre la configuración local . . 1-17 Control de transacciones en aplicaciones JDBC . 1-66 Requisitos de la base de datos de Java 2 Platform Enterprise Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 Conexión de las aplicaciones JDBC a una fuente de datos . . . . 1-54 Diagnóstico de problemas con IBM Data Server Driver para JDBC y SQLJ . . . . . . 1-50 Seguridad cuando se utiliza IBM Data Server Driver para JDBC y SQLJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 Instalación de IBM Data Server Driver para JDBC y SQLJ . . . . . . . 1-53 Seguridad por contraseña cifrada. . . . . . . . . . . . vi Convenios para código de ejemplo . . . . . . . . . . . . . . . . . . . . . . 1-109 Extensiones para JDBC de IBM Data Server Driver para JDBC y SQLJ . . . . 1-66 Gestión de transacciones Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-57 Ejemplo de un programa de rastreo que se ejecuta bajo IBM Data Server Driver para JDBC y SQLJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Identificadores y nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-74 Tipos de datos que se correlacionan con tipos de datos de base de datos en aplicaciones Java . Enterprise Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-74 Propiedades de IBM Data Server Driver para JDBC y SQLJ . . . v Convenios de la documentación . . . . . . . . . . x IBM Data Server Driver para JDBC y SQLJ para IDS . . 1-64 Soporte para componentes de aplicación de Java 2 Platform. 1-3 Personalización de propiedades de configuración de IBM Data Server Driver para JDBC y SQLJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contenido Introducción . . . . . . . . . . 1-5 Ejemplo de una aplicación JDBC simple . . . . . . . 1-66 Java Naming and Directory Interface (JNDI) . . . . . . . . . . . . . . . 1-3 Programación de aplicaciones JDBC . . . . . . . . . . . . . . . . . . . . . . . . . x IBM agradece sus comentarios . . . . . . . . . . . . 1-7 Paquetes Java para el soporte JDBC . . . . . . . . . . . . . . . . . vii Diagramas de sintaxis . . . . . . . . . . . . . vi Documentación adicional . . . . . . . . . . 2007 iii . . . 1-73 Información de consulta sobre JDBC y SQLJ . . . . . . . . . v Acerca de esta publicación . . . . . . . . v Convenios tipográficos . . . 1-1 Controladores soportados para JDBC y SQLJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17 Interfaces JDBC para ejecutar SQL . . . . . . . . . . . . v Tipos de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Palabras clave y signos de puntuación . . . . . . . . 1-15 Variables en aplicaciones JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . Enterprise Edition . . . . . . . . . . . . . . . . . . . . . . . 1-130 © Copyright IBM Corp. . . . . . . . . . . 1-1 Restricciones de IBM Data Server Driver para JDBC y SQLJ para IDS . . 1-79 Propiedades de configuración del IBM Data Server Driver para JDBC y SQLJ . . . . . . . . . . . 1-14 Obtención de información acerca de una fuente de datos mediante métodos DatabaseMetaData . . . . . . . . . . . . . . . . . . . . productos y plataformas . . . . . . . . . . . . . . . . . . . . . . . . . . 1-64 Contenedores de Java 2 Platform Enterprise Edition . . . . . . . . . . . . . . 1-58 Supervisión del sistema para IBM Data Server Driver para JDBC y SQLJ . .

. . . Navegación mediante el teclado . . . . . . . . . . . . . . . . . . . . . . . . . B-1 Marcas registradas . . . . . . . . . . . . . . . . . Accesibilidad . . . . . . . B-3 Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-166 1-173 1-180 1-182 Apéndice. Códigos de error emitidos por IBM Data Server Driver para JDBC y SQLJ . . . . . . . . . . . . . . . . . . A-1 Funciones de accesibilidad de IBM Informix Dynamic Server Funciones de accesibilidad . Diagramas de sintaxis en formato decimal con puntos . . . . . . . . . . . . . . . . . . . . Búsqueda de información de versión y de entorno sobre IBM Data Server Driver para JDBC y SQLJ . . . . . . . . . . . . . . . . . . . . A-1 A-1 A-1 A-1 A-1 A-1 Avisos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Diferencias entre IBM Data Server Driver para JDBC y SQLJ y el IBM Informix JDBC Driver . . . . . . . . . . . . . . . . . Información afín sobre accesibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estados de SQL emitidos por IBM Data Server Driver para JDBC y SQLJ . . . X-1 iv IBM Data Server Driver para JDBC y SQLJ para IDS . . . . . . . IBM y accesibilidad . . . . . . . . . . . . . . . . . . .

Para utilizar esta guía. Esta publicación asume que su base de datos utiliza por omisión el entorno local. o si piensa utilizar otras reglas de intercalación para clasificar datos de tipo carácter. 2007 v . que incluye el juego de códigos ASCII más muchos caracteres de 8 bits como por ejemplo é. Convenios de la documentación Esta sección describe los convenios siguientes. Toda la información relacionada con conjuntos de caracteres. Esta configuración local da soporte a los convenios de formato de inglés de EE. la sintaxis adicional y otras consideraciones relacionadas con configuraciones locales de GLS. Para ver instrucciones sobre cómo especificar una configuración local que no es la configuración por omisión.8859-1 (ISO 8859-1) en las plataformas UNIX o en_us. Este valor por omisión es en_us. Tipos de usuarios Esta guía está destinada a los programadores de Java que utilizan la API de JDBC para conectar con bases de datos Informix utilizando el IBM Data Server Driver para JDBC y SQLJ. moneda. debe tener conocimientos sobre programación Java y en particular debe conocer las clases y los métodos de la API JDBC.Introducción Acerca de esta publicación Esta publicación es una guía para utilizar el IBM Data Server Driver para JDBC y SQLJ para conectar a los servidores de datos IBM Informix Dynamic Server. productos y plataformas v Diagramas de sintaxis v Convenios de la línea de mandatos v Convenios para código de ejemplo © Copyright IBM Corp. que recibe el nombre de configuración local de Soporte Global de Idiomas (GLS). Si tiene intención de utilizar caracteres que no sean los caracteres por omisión en sus datos o identificadores de SQL. para visualizar los valores de fecha. fecha y hora se reúne en un solo entorno. hora. clasificación y representación de datos numéricos. Esta configuración local también da soporte al juego de códigos ISO 8859-1 (en UNIX and Linux) o Microsoft 1252 (en Windows). número y moneda.UU. los cuales se utilizan en la documentación de producto de IBM Informix Dynamic Server: v Convenios tipográficos v Convenios para componentes. è y ñ. tiene que especificar la configuración local que no es la configuración por omisión adecuada.1252 (Microsoft 1252) en entornos Windows. culturas y juegos de códigos. consulte el manual IBM Informix Guía del usuario de GLS. Supuestos sobre la configuración local Los productos IBM Informix pueden dar soporte a varios idiomas.

mostrar capturas de pantalla. productos y plataformas identifica párrafos que contienen información específica de un componente. los nombres de archivos. negrita monoespaciado PULSACIÓN > Señalización para funciones. Convenio PALABRA CLAVE cursiva Significado Las palabras clave de SQL. Cuando un apartado completo es aplicable a un producto o plataforma determinados. En el texto. etc. las sentencias no están delimitadas por signos de punto y coma. Por ejemplo. Excepto cuando se indique. el código no es específico de ninguna herramienta individual de desarrollo de aplicaciones de IBM Informix. Si el ejemplo solamente contiene sentencias de SQL.Convenios tipográficos Esta publicación utiliza los convenios siguientes para presentar términos nuevos. producto o plataforma. describir la sintaxis de mandatos. con un font con remate. las variables de entorno. aparecen en cursiva valores de variable que debe especificar el usuario. esto se indica en el texto de cabecera. En la sintaxis y ejemplos de código. Las teclas que debe pulsar aparecen en letras mayúsculas escritas con un font sin remate (sans serif). A continuación sigue un código de ejemplo: vi IBM Data Server Driver para JDBC y SQLJ para IDS . La información que visualiza el producto y la información que especifica el usuario aparecen con el tipo de letra de monoespaciado. productos y plataformas La señalización para componentes. “Elija Herramientas > Opciones” significa que tiene que elegir el elemento Opciones en el menú Herramientas. aparecen en cursiva términos nuevos y palabras que se destacan. Este símbolo indica un elemento de menú. A continuación. sucesos y tablas). SPL y algunos otros lenguajes de programación aparecen escritos en mayúsculas. se muestran algunos ejemplos de esta señalización: Dynamic Server Identifica información que es específica de IBM Informix Dynamic Server Fin de Dynamic Server Windows solamente Identifica información que es específica del sistema operativo Windows Fin de Windows solamente Esta señalización puede aplicarse a uno o más párrafos de un apartado. Aparecen en negrita los nombres de entidades de programas (tales como clases. opciones de menú y botones). las vías de acceso y los elementos de la interfaz (tales como iconos. por ejemplo: Ordenación de tablas (Windows) Convenios para código de ejemplo Esta publicación contiene ejemplos de código de SQL a lo largo de toda ella.

situada en http://www. Diagramas de sintaxis Esta guía utiliza diagramas de sintaxis creados con los componentes siguientes para describir la sintaxis de las sentencias y todos los mandatos distintos de los que estén en el nivel del sistema. si está utilizando DB–Access.135-1992). consulte la documentación correspondiente al producto.com/software/data/informix/pubs/library/.. Para obtener documentación adicional sobre IBM Informix Dynamic Server y productos asociados. DELETE FROM customer WHERE customer_num = 121 .CONNECT TO stores_demo .com/infocenter/idshelp/v111/index. consulte la página de la biblioteca de productos en línea. Si está utilizando una API de SQL.. puede consultar o instalar la documentación del producto a partir del CD de Iniciación rápida que se proporciona con el producto. COMMIT WORK DISCONNECT CURRENT Para utilizar este código de SQL para un producto específico. Los productos basados en SQL de IBM Informix se ajustan totalmente a la norma SQL-92 Entry Level (publicada como ANSI X3.. que es idéntica a ISO 9075:1992.jsp. debe utilizar EXEC SQL al principio de cada sentencia y un signo de punto y coma (u otro delimitador apropiado) al final de la sentencia. situado en esta dirección de la Web: http://publib. Como alternativa. Consejo: Los puntos suspensivos en un ejemplo de código indican que se añadiría más código en una aplicación completa. Por ejemplo. Cumplimiento de los estándares industriales Las instituciones American National Standards Institute (ANSI) e International Organization of Standardization (ISO) han establecido conjuntamente un conjunto de normas de la industria para el Lenguaje de consulta estructurado (SQL). debe delimitar varias sentencias con signos de punto y coma.. muchas funciones de los servidores de bases de datos IBM Informix cumplen las normas SQL-92 Intermediate y Full Level y X/Open SQL de Common Applications Environment (CAE). tales como notas de release. Además.ibm.ibm. Documentación adicional Puede ver. buscar e imprimir toda la documentación del producto desde el Centro de información de IBM Informix Dynamic Server. Introducción vii . debe aplicar las reglas de sintaxis de ese producto.boulder. pero no es necesario mostrarlo para describir el concepto que se explica. Para obtener instrucciones detalladas sobre la utilización de sentencias de SQL para una herramienta determinada de desarrollo de aplicaciones o para una API de SQL. notas de máquina y notas de documentación.

Segmento de sintaxis. ----+----------------+--+---PRIOR--------+ ’---PREVIOUS-----’ Los elementos opcionales a elegir se muestran debajo de la línea principal. Los valores debajo de la línea principal son opcionales. Si no especifica uno. nombre_índice nombre_tabla .Tabla 1. Debe haber un solo elemento. La sentencia finaliza. Elemento necesario.-----------. V | ---+-----------------+--+--nombre_índice-+ ’--nombre_tabla--’ Referencia a tabla Referencia a tabla >>-| Referencia a tabla |->< Referencia a tabla |--+-----view--------+--| +------table------+ ’----synonym------’ Referencia a un segmento de la sintaxis. Elemento opcional. viii IBM Data Server Driver para JDBC y SQLJ para IDS . de los cuales puede especificar uno. . La sentencia continúa desde la línea anterior.-------. Están permitidos varios elementos.---NEXT---------. FOR UPDATE FOR READ ONLY NEXT PRIOR PREVIOUS ---+------------------+--+--FOR UPDATE-----+ ’--FOR READ ONLY--’ . cada repetición debe ir precedida de una coma. Elementos opcionales. view table synonym Cómo leer un diagrama de sintaxis de línea de mandatos El siguiente diagrama de sintaxis de línea de mandatos utiliza algunos de los elementos listados en la tabla contenida en Diagramas de sintaxis. se utilizará como valor por omisión el valor por encima de la línea. Componentes del diagrama de sintaxis Componente representado en PDF Componente representado en HTML >>---------------------Significado Comienza la sentencia. >--------------------------------------------->< SELECT --------SELECT-----------+-----------------+--’------LOCAL------’ ---+-----ALL-------+--+--DISTINCT-----+ ’---UNIQUE------’ LOCAL ALL DISTINCT UNIQUE Elemento necesario a elegir. -----------------------> La sentencia continúa en la línea siguiente. de los cuales puede especificar uno.

Creación de un trabajo sin conversión
onpladm create job trabajo -p proyecto -n -d dispositivo -D base de datos -t tabla

(1) Establecimiento de la modalidad de ejecución -S servidor -T destino

Notas: 1 Vea la página Z-1

La segunda línea de este diagrama contiene un segmento definido como “Establecimiento de la modalidad de ejecución”, que de acuerdo con la nota al pie del diagrama, se encuentra en la página Z-1. Si se trataba de una referencia cruzada real, debería encontrar este segmento en la primera página del apéndice Z. En lugar de ello, este segmento se muestra en el diagrama de segmento siguiente. Observe que el diagrama utiliza componentes de comienzo y de final de segmento. Establecimiento de la modalidad de ejecución:
l c -f d p a u n N

Para ver el modo de construir un mandato correctamente, comience por la parte superior izquierda del diagrama principal. Siga el diagrama hacia la derecha, incluyendo los elementos que desee. Los elementos de este diagrama son sensibles a may/mín debido a que ilustran la sintaxis de programas de utilidad. Otros tipos de sintaxis, como por ejemplo de SQL, no son sensibles a may/mín. diagrama Creación de un trabajo sin conversión ilustra los pasos siguientes: Escriba onpladm create job y, a continuación, el nombre del trabajo. Opcionalmente, escriba -p y, a continuación, el nombre del proyecto. Escriba los siguientes elementos necesarios: v -n v -d y el nombre del dispositivo v -D y el nombre de la base de datos v -t y el nombre de la tabla 4. Opcionalmente, puede elegir uno o más de los elementos siguientes y repetirlos un número arbitrario de veces: v -S y el nombre del servidor v -T y el nombre del servidor de destino v La modalidad de ejecución. Para establecerla, siga el diagrama de segmento Establecimiento de la modalidad de ejecución hasta escribir -f, escriba opcionalmente, d, p o bien a, y, a continuación, escriba opcionalmente l o bien u.
Introducción

El 1. 2. 3.

ix

5. Siga el diagrama hasta el elemento final.

Palabras clave y signos de puntuación
Las palabras clave son palabras reservadas para las sentencias y todos los mandatos, excepto los mandatos de nivel del sistema. Cuando aparece una palabra clave en un diagrama de sintaxis, se muestra en letras mayúsculas. Cuando utilice una palabra clave en un mandato, puede escribirla en letras mayúsculas o minúsculas, pero debe representar la palabra clave exactamente tal como aparezca en el diagrama de sintaxis. También debe utilizar cualquier símbolo de puntuación en las sentencias y mandatos exactamente tal como se muestre en los diagramas de sintaxis.

Identificadores y nombres
Las variables sirven de contenedores para los identificadores y nombres en los diagramas de sintaxis y ejemplos. Puede sustituir una variable por un nombre, identificador o literal arbitrario, según el contexto. Las variables también se utilizan para representar elementos de sintaxis complejos que se amplían en diagramas de sintaxis adicionales. Cuando aparece una variable en un diagrama de sintaxis, ejemplo o texto, se muestra en cursiva en minúsculas. En el diagrama de sintaxis siguiente se utilizan variables para ilustrar el formato general de una sentencia SELECT simple.
SELECT nombre_columna FROM nombre_tabla

Cuando escribe una sentencia SELECT de esta forma, debe sustituir las variables nombre_columna y nombre_tabla por el nombre de una columna y tabla determinadas.

IBM agradece sus comentarios
Deseamos conocer cualquier corrección o clarificación que considere que pueda ser útil en nuestros manuales, lo cual nos ayudará a mejorar las ediciones futuras. Incluya la información siguiente: v Nombre y versión de la publicación que está utilizando v Apartado y número de página v Sus sugerencias sobre la publicación Envíenos sus comentarios a la siguiente dirección de correo electrónico: hojacom@es.ibm.com Esta dirección de correo electrónico está reservada para notificar errores y omisiones de nuestra documentación. Para obtener ayuda inmediata para un problema técnico, póngase en contacto con el Centro de soporte técnico de IBM. Para obtener instrucciones, visite el sitio Web de Soporte técnico de IBM Informix que se encuentra en http://www.ibm.com/planetwide/. Valoramos en gran medida sus sugerencias.

x

IBM Data Server Driver para JDBC y SQLJ para IDS

IBM Data Server Driver para JDBC y SQLJ para IDS
IBM Data Server Driver para JDBC y SQLJ, Versión 3.50 proporciona soporte a las aplicaciones cliente que se escriben en Java utilizando JDBC. El controlador, que está basado en el protocolo de Distributed Relational Database Architecture (DRDA), está asimismo integrado con DB2. Esta capacidad significa que las funciones comunes de IBM Data Server Driver para JDBC y SQLJ le permiten escribir aplicaciones clientes que puedan utilizar tanto servidores de datos IDS como DB2. IBM Informix Dynamic Server sólo da soporte a la versión de tipo 4 de IBM Data Server Driver para JDBC y SQLJ, lo que significa que las sesiones se conectan directamente a la base de datos o servidor de datos, sin una capa intermedia. IBM Data Server Driver para JDBC y SQLJ satisface la especificación de Sun Microsystems JDBC 3.0.

Restricciones de IBM Data Server Driver para JDBC y SQLJ para IDS
Antes de efectuar la instalación y utilizar la IBM Data Server Driver para JDBC y SQLJ en IDS, debería tener en cuenta las restricciones siguientes: v Las conexiones deben estar basadas en DRDA; el protocolo patentado Informix no está soportado. v Requiere IBM Informix Dynamic Server, Versión 11.10. v SQLJ no está soportado para IBM Data Server Driver para JDBC y SQLJ en este release para IDS. v Las conexiones de tipo 2 no están soportadas. Sólo se da soporte a las conexiones de tipo 4. v Ciertos tipos de datos Informix no están soportados: INTERVAL, tipos de datos opacos, tipos de datos definidos por el usuario y tipos de datos de recopilación. IBM Data Server Driver para JDBC y SQLJ es diferente del controlador IBM Informix JDBC 3.10. Para obtener más información, consulte el apartado “Diferencias entre IBM Data Server Driver para JDBC y SQLJ y el IBM Informix JDBC Driver” en la página 1-166.

Controladores soportados para JDBC y SQLJ
El producto IDS incluye soporte para un solo tipo de arquitectura de controlador JDBC. De acuerdo con la especificación JDBC, existen cuatro tipos de arquitecturas de controlador JDBC: Tipo 1 Son controladores que implementan la API de JDBC como una correlación con otra API de acceso a datos, como por ejemplo Open Database Connectivity (ODBC). Los controladores de este tipo generalmente dependen de una biblioteca nativa, lo cual limita su portabilidad. El sistema de bases de datos IDS no es compatible con el controlador de tipo 1.

© Copyright IBM Corp. 2007

1-1

Tipo 2 Son controladores que están escritos parcialmente en el lenguaje de programación Java y parcialmente en código nativo. Estos controladores utilizan una biblioteca cliente nativa que es específica de la fuente de datos a la que se conectan. Debido al código nativo, la portabilidad de estos controladores es limitada. Tipo 3 Son controladores que utilizan un cliente Java puro y se comunican con una base de datos utilizando un protocolo independiente de la base de datos. A continuación, la base de datos transmite las peticiones del cliente a la fuente de datos. El sistema de bases de datos IDS no es compatible con un controlador de tipo 3. Tipo 4 Estos controladores son Java puro e implementan el protocolo de red de una fuente de datos determinada. El cliente se conecta directamente con la fuente de datos. IBM Informix Dynamic Server (IDS) es compatible con los controladores siguientes:
Nombre de controlador IBM Informix JDBC Driver IBM Data Server Driver para JDBC y SQLJ Tipo de controlador Tipo 4 Tipo 2 y Tipo 4

IBM Data Server Driver para JDBC y SQLJ (tipo 4)
El IBM Data Server Driver para JDBC y SQLJ es un controlador individual que incluye comportamiento propio de los tipos 2 y 4 de JDBC. Para las conexiones con bases de datos IDS, solamente está permitida la funcionalidad del tipo 4. La funcionalidad del controlador de tipo 4 de IBM Data Server Driver para JDBC y SQLJ se denomina IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. El IBM Data Server Driver para JDBC y SQLJ es compatible con estas funciones de JDBC: v Todos los métodos que se describen en las especificaciones de JDBC 3.0. Consulte ″Soporte de controlador para las API de JDBC″. v Conexiones que están habilitadas para la agrupación de conexiones. WebSphere Application Server u otro servidor de aplicaciones realiza la agrupación de conexiones. v Soporte para la gestión de transacciones distribuidas. Este soporte implementa las especificaciones Java 2 Platform, Enterprise Edition (J2EE) Java Transaction Service (JTS) y Java Transaction API (JTA), que se ajustan al estándar de X/Open para transacciones distribuidas (vea la publicación Distributed Transaction Processing: The XA Specification en el sitio Web http://www.opengroup.org).

IBM Informix JDBC Driver (tipo 4)
IBM Informix JDBC Driver es un controlador Java puro, de protocolo nativo. Únicamente IDS 11.10 da soporte a IBM Informix JDBC Driver 3.10. Consulte la publicación IBM Informix JDBC Driver Programmer’s Guide para obtener más información sobre IBM Informix JDBC Driver.

1-2

IBM Data Server Driver para JDBC y SQLJ para IDS

podrá compilar y ejecutar aplicaciones JDBC.ibm. Configure un nuevo alias de servidor en el archivo SQLHOSTS o el registro de Windows que utiliza el protocolo de conexiones drtlitcp o drsoctcp. Para establecer permanentemente la variable de entorno CLASSPATH utilice el programa de utilidad del sistema en el panel de control. Extráiga el archivo zip en un directorio vacío.jar Donde <dir> es la ubicación del archivo db2jcc.jar en CLASSPATH. 3. 2.50. 4.jar y un archivo sqlj. Versión 3. en el indicador de mandatos escriba: java -classpath <dir>/db2jcc. Para establecer permanentemente la variable de entorno CLASSPATH. pídale al administrador del sistema UNIX para actualizar el perfil. un archivo db2jcc4. si resultan inapropiados algunos de los valores por omisión. que es IBM Data Server Driver para JDBC y SQLJ. para establecer la CLASSPATH para una sesión.do?lang=en_US&source=swg-informixfpd.zip) en: https://www14.jar para las conexiones con IBM Informix Dynamic Server.software.com/webapp/iwm/web/ preLogin.jar. Modifique la variable de entorno CLASSPATH para incluir el archivo db2jcc. v En UNIX. Personalización de propiedades de configuración de IBM Data Server Driver para JDBC y SQLJ Las propiedades de configuración del IBM Data Server Driver para JDBC y SQLJ permiten establecer los valores de las propiedades que tienen un ámbito a nivel de IBM Data Server Driver para JDBC y SQLJ para IDS 1-3 . Importante: IBM Informix Dynamic Server sólo da soporte a db2jcc. en el indicador de mandatos escriba: java -classpath <dir>\db2jcc. para establecer la CLASSPATH para una sesión. debe tener un SDK para Java.jar.jar Donde <dir> es la ubicación del archivo db2jcc. El archivo zip contiene un archivo db2jcc. Siga estos pasos para instalar IBM Data Server Driver para JDBC y SQLJ: 1.jar: Importante: Incluya sólo db2jcc. 5. Requisito de SDK: Antes de instalar IBM Data Server Driver para JDBC y SQLJ.4.jar. consulte el tema sobre Configuración del servidor dinámico para las conexiones con IBM Data Server Clients (Configuring Dynamic Server for Connections to IBM Data Server Clients) en la IBM Informix Administrator’s Guide. Consulte el apartado “Personalización de propiedades de configuración de IBM Data Server Driver para JDBC y SQLJ” para ver detalles.jar.zip. Para obtener más información.2 o posterior instalado en el sistema. 1. v En Windows. Personalice las propiedades de configuración del controlador. No incluya db2jcc4.Instalación de IBM Data Server Driver para JDBC y SQLJ Después de instalar IBM Data Server Driver para JDBC y SQLJ. Descargue el archivo de controlador (db2_db2driver_for_jdbc_sqlj.

properties es un archivo autónomo.propertiesFile.properties tiene algún otro esquema de codificación. debe utilizar el conversor Java native2ascii para convertir el contenido a Latin-1 o Unicode. puede establecer las propiedades de configuración especificando la opción -Ddb2. v Establezca las propiedades de configuración en un recurso denominado DB2JccConfiguration.properties está en un archivo JAR.override.properties tiene el esquema de codificación ISO 8859-1 (Latin-1) o si tiene el esquema de codificación Latin-1 con algunos caracteres Unicode (\udddd). Si DB2JccConfiguration.default.jcc.jcc.jcc. Puede establecer las propiedades de configuración de estas formas: v Establezca las propiedades de configuración como propiedades del sistema Java.propertiesFile. En el caso de las aplicaciones Java autónomas. Los valores de las propiedades de Connection o DataSource prevalecen sobre ese valor. puede establecer las propiedades de configuración como propiedades del sistema Java.jcc o db2.jcc. no es necesario realizar la conversión de los caracteres para que el IBM Data Server Driver para JDBC y SQLJ pueda utilizar el archivo. Si el archivo DB2JccConfiguration. el valor de la propiedad de configuración es un valor por omisión.jcc. el archivo JAR debe estar en la concatenación CLASSPATH. v Establezca las propiedades de configuración en un recurso cuyo nombre se especifica en la propiedad del sistema Java db2. 1-4 IBM Data Server Driver para JDBC y SQLJ para IDS .jcc.properties. DB2JccConfiguration.override.jcc. En el caso de las aplicaciones Java autónomas.controlador. Si DB2JccConfiguration. Por ejemplo.nombre_propiedad Si la propiedad de configuración comienza por db2.properties.properties debe estar en la concatenación CLASSPATH.propertiesFile.jcc. Cada valor de propiedad de configuración del IBM Data Server Driver para JDBC y SQLJ tiene este formato: propiedad=valor propiedad puede tener uno o varios de los formatos siguientes: v db2. Estos valores se aplican en las aplicaciones e instancias de DataSource. El IBM Data Server Driver para JDBC y SQLJ busca este recurso solamente si no ha establecido la propiedad del sistema Java db2.nombre_propiedad v db2.default. esta propiedad se aplica a todas las conexiones y prevalece sobre cualquier propiedad de Connection o DataSource con el mismo valor nombre_propiedad.propertiesFile=vía_acceso cuando ejecute el mandato java.nombre_propiedad v db2.jcc. para ello. puede especificar un nombre de vía de acceso absoluta para el valor db2. especifique -Dpropiedad=valor para cada propiedad de configuración cuando ejecute el mandato java.properties puede ser un archivo autónomo o puede estar incluido en un archivo JAR. Se utiliza una búsqueda de recursos Java estándar para localizar DB2JccConfiguration. la vía de acceso de DB2JccConfiguration. Puede cambiar los valores sin tener que cambiar el código fuente de aplicación ni las características de DataSource. Si la propiedad de configuración comienza por db2. Estos valores prevalecen sobre cualquier otro. Si el archivo DB2JccConfiguration.

DB2Driver"). String url. try { // Cargar el controlador Class. (args. v Ejecute sentencias de SQL.out."). // // // // // // // // if { Comprobar que el primer argumento tenga el formato correcto para la parte del URL jdbc:ids:.out.println ("**** Especificar clase EzJava"). Por ejemplo.db2. System. public class EzJava { public static void main(String[] args) { String urlPrefix = "jdbc:ids:". Ejemplo de una aplicación JDBC simple Aplicación JDBC simple que muestra los elementos básicos que es necesario incluir en una aplicación JDBC.err. Figura 1-1.exit(1). tal como se describe en el tema Conexión a una fuente de datos utilizando la interfaz DriverManager con IBM Data Server Driver para JDBC y SQLJ. String empNo.sql. ResultSet rs.*.jcc. System. v Conecte con una fuente de datos. Statement stmt. Aunque las tareas que necesita realizar son similares a las que se ejecutan en otros lenguajes. la forma de ejecutarlas es algo diferente.println("**** Controlador JDBC cargado"). Connection con. Primer argumento añadido a "+ "jdbc:ids: debe especificar un URL válido.Programación de aplicaciones JDBC La escritura de una aplicación JDBC tiene mucho en común con la escritura de una aplicación SQL en cualquier otro lenguaje. es necesario que realice las acciones siguientes: v Acceda a los paquetes de Java donde residen los métodos JDBC. v Trate los errores y avisos de SQL. En general. para la conectividad de tipo 4 de IBM Data Server Driver para JDBC y SQLJ.ibm. args[0] podría ser myhost:9999/idsdb.forName("com. 1 2 3a IBM Data Server Driver para JDBC y SQLJ para IDS 1-5 . v Declare variables para enviar datos a tablas de IDS o recuperar datos de ellas.println ("Valor no válido. Aplicación JDBC sencilla import java. } url = urlPrefix + args[0]. v Desconecte de la fuente de datos. System.length==0) System.

println("Información sobre SQLException").out.println("**** Cerrado el conjunto de resultados de JDBC"). System. System.sin errores"). 4a // Ejecutar una consulta y generar instancia del conjunto de resultados rs = stmt. // Cerrar el conjunto de resultados rs.getErrorCode()). 4b System.out.out.// Crear conexión utilizando IBM Data Server Driver para JDBC y SQLJ con = DriverManager.println("**** Salida de JDBC de la clase EzJava .println("**** Cerrado el objeto Statement de JDBC"). System. e.err. while(ex!=null) { System.println("**** Buscadas todas las filas del conjunto de resultados de JDBC"). System.getConnection (url).getString(1).out. 3b // Confirmar los cambios manualmente con.setAutoCommit(false).err.printStackTrace(). System.err.println ( "**** Transacción confirmada" ).err. // Cierre la conexión con.printStackTrace().close(). } catch (ClassNotFoundException e) { System.out.println("**** Desconectado de la fuente de datos").println("Exception: " + e). // Imprimir todos los números de empleado en el dispositivo de salida estándar while (rs. System. System.getMessage()).close().out.executeQuery("SELECT EMPNO FROM EMPLOYEE").println("No se pudo cargar el controlador JDBC"). ex = ex. // Para controladores que soportan // excepciones encadenadas } } } // Fin main } // Fin EzJava 5 1-6 IBM Data Server Driver para JDBC y SQLJ para IDS .err.commit(). } System.out.getNextException(). // Crear el objeto Statement stmt = con.println ("Código de error: " + ex. ex. System.out. // La conexión debe estar en un límite de unidad de trabajo para permitir el cierre con. 6 System.println("**** Creado el objeto Statement de JDBC"). System.close(). } catch(SQLException ex) { System.next()) { empNo = rs.println("**** Creado el objeto JDBC ResultSet").out.out. System.println ("SQLSTATE: " + ex.println("**** Creada una conexión JDBC con la fuente de datos").out.println("Número de empleado = " + empNo).createStatement().println ("Mensaje de error: " + ex. // Cerrar el objeto Statement stmt.getSQLState()).

2 3a y 3b 4a y 4b 5 6 Conexión de las aplicaciones JDBC a una fuente de datos Para poder ejecutar sentencias de SQL en un programa SQL cualquiera. Estos dos conjuntos de sentencias muestran cómo conectar con una fuente de datos utilizando una de dos interfaces disponibles. Para obtener más información sobre el manejo de errores de SQL. Las conexiones con bases de datos IBM Informix Dynamic Server (IDS) pueden utilizar conectividad de tipo 4. Consulte ″Variables en aplicaciones JDBC″ para obtener más información. Esta sentencia desconecta la aplicación respecto de la fuente de datos. Estos dos conjuntos de sentencias muestran cómo ejecutar una operación SELECT en JDBC. Para obtener información sobre el manejo de avisos de SQL. El IBM Data Server Driver para JDBC y SQLJ es compatible con la conectividad de tipo 2 y tipo 4. Es decir. IBM Data Server Driver para JDBC y SQLJ para IDS 1-7 . el cual contiene la API básica de JDBC. consulte ″Manejo de un aviso de SQL cuando se utiliza IBM Data Server Driver para JDBC y SQLJ″. consulte ″Paquetes Java para soporte de JDBC″. Consulte ″Desconexión de fuente de datos en aplicaciones JDBC″. consulte ″Interfaces de JDBC para ejecutar SQL″. Este bloque try/catch muestra el uso de la clase SQLException para el manejo de errores de SQL. Para obtener información sobre otros paquetes Java que puede ser necesario acceder. consulte ″Manejo de una excepción de SQL cuando se utiliza IBM Data Server Driver para JDBC y SQLJ″. Para obtener información sobre cómo realizar otras operaciones de SQL. se utiliza para contener datos obtenidos en una consulta de SQL. La variable empNo de tipo String realiza la función de una variable del lenguaje principal.Nota para la Figura 1-1 en la página 1-5: Nota 1 Descripción Esta sentencia importa el paquete java. debe estar conectado con una fuente de datos. Las conexiones con bases de datos DB2 pueden utilizar conectividad de tipo 2 o tipo 4. Consulte ″Cómo las aplicaciones JDBC conectan con una fuente de datos″ para conocer más detalles.sql. La figura siguiente muestra cómo una aplicación Java se conecta a una fuente de datos mediante IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4.

el controlador se carga invocando el método Class.forName("com.printStackTrace().DB2Driver El código de programa siguiente muestra la carga del IBM Data Server Driver para JDBC y SQLJ: try { // Cargar IBM Data Server Driver para JDBC y SQLJ mediante DriverManager Class.forName con este argumento: com. } catch (ClassNotFoundException e) { e. Para IBM Data Server Driver para JDBC y SQLJ.jcc. Puede utilizar uno de los formatos siguientes de getConnection: 1-8 IBM Data Server Driver para JDBC y SQLJ para IDS . Cargue el controlador JDBC invocando el método Class.Figura 1-2. Estos son los pasos para establecer una conexión: 1.jcc.ibm. 2.forName.db2. Flujo de una aplicación Java para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4 Conexión con una fuente de datos utilizando la interfaz DriverManager con IBM Data Server Driver para JDBC y SQLJ Una aplicación JDBC puede establecer una conexión con una fuente de datos utilizando la interfaz DriverManager de JDBC.sql.ibm.db2.DB2Driver"). la cual forma parte del paquete java.getConnection. } El bloque catch se utiliza para imprimir un error si se no se encuentra el controlador. Conecte con una fuente de datos invocando el método DriverManager.

user.getConnection(url). password). getConnection(String url.getConnection(url. Existen varias maneras de especificar un ID de usuario y una contraseña para una conexión: v Utilice la modalidad del método getConnection donde se especifica el url con cláusulas propiedad=valor. "dbadm"). contraseña). properties).util.Properties: Properties properties = new Properties(). el método getConnection debe especificar un ID de usuario y una contraseña mediante parámetros o valores de propiedad. // Crear conexión Formato del URL para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4: IBM Data Server Driver para JDBC y SQLJ para IDS 1-9 .". // Definir URL para fuente de datos String user = "dbadm".getConnection(String url). // Definir URL para fuente de datos Connection con = DriverManager. // Crear conexión Ejemplo: establecimiento de una conexión y especificación del ID de usuario y la contraseña en parámetros de usuario y contraseña: String url = "jdbc:ids://myhost:5021/mydb". // Definir URL para fuente de datos Connection con = DriverManager. String password="dbadm".put("user".util. Ejemplo: establecimiento de una conexión y especificación del ID de usuario y la contraseña en un URL: String url = "jdbc:ids://myhost:5021/mydb:" + "user=dbadm. Connection con = DriverManager. v Utilice el formato del método getConnection en el que se especifica el usuario y la contraseña..put("password".Properties. Para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4.util. El argumento url representa una fuente de datos e indica el tipo de conectividad JDBC que se está utilizando. "dbadm"). // Crear objeto Properties properties. v Utilice la modalidad del método getConnection donde se especifica info. java.util. // Definir ID de usuario para la conexión properties. getConnection(String url. usuario.getConnection(url.Properties info).password=dbadm. e incluya las propiedades correspondientes al usuario y la contraseña en el URL. // Definir contraseña para la conexión String url = "jdbc:ids://myhost:5021/mydb".Properties que contiene un conjunto de propiedades de controlador correspondientes a la conexión. Consulte ″Propiedades de IBM Data Server Driver para JDBC y SQLJ″ para conocer las propiedades que puede especificar. después de establecer la propiedades correspondientes al usuario y la contraseña en un objeto java. // Crear conexión Ejemplo: establecimiento de una conexión y especificación del ID de usuario y la contraseña en un objeto java. El argumento info es un objeto de tipo java. en el URL. Especificar el argumento info es una alternativa a especificar series de caracteres propiedad=valor.

jdbc:ids: Indica que la conexión es con una fuente de datos IDS. puerto Número de puerto del servidor TCP/IP que está asignado a la fuente de datos. jdbc:db2j:net: Indica que la conexión es con un servidor IBM Cloudscape remoto. / basedatos IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4Descripciones de las opciones para el URL Los elementos del URL tienen los significados siguientes: jdbc:db2: o jdbc:db2j:net: El significado de la porción inicial del URL es el siguiente: jdbc:db2: Indica que la conexión es con un servidor DB2 para z/OS. 1-10 IBM Data Server Driver para JDBC y SQLJ para IDS .getConnection que indique el uso de la conectividad de tipo 4.SYSDUMMY1. También se puede utilizar jdbc:db2: para conexión con una base de datos IBM Informix Dynamic Server (IDS). Hay que especificar un valor para el puerto. DB2 Database para Linux. v Si la conexión es con un servidor DB2 para z/OS. Puede determinar el nombre de ubicación ejecutando la sentencia de SQL siguiente en el servidor: SELECT CURRENT SERVER FROM SYSIBM. El IBM Data Server Driver para JDBC y SQLJ no convierte en mayúsculas para el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4 los caracteres de la base de datos que están en minúsculas. debe especificar un URL en la llamada a DriverManager. todos los caracteres de la basedatos deben estar en mayúsculas. IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4Sintaxis del URL jdbc:db2: jdbc:db2j:net: jdbc:ids: // servidor : puerto : propiedad = valor . basedatos es el nombre de ubicación de DB2 que se define durante la instalación.Si está utilizando la conectividad de tipo 4 en su aplicación JDBC y crea una conexión mediante la interfaz DriverManager. jdbc:informix-sqli: también indica que la conexión es con una fuente de datos IDS. Es un valor entero comprendido entre 0 y 65535. sin embargo. UNIX y Windows. v Si la conexión es con un servidor DB2 para z/OS. basedatos Nombre de la fuente de datos. para permitir la portabilidad de aplicaciones. se debería utilizar jdbc:ids: servidor Nombre de dominio o dirección IP de la fuente de datos. Todos los caracteres del nombre de ubicación de DB2 deben estar en mayúsculas.

password=dbadm. El servidor convierte el nombre a minúsculas. String url = "jdbc:ids://sysmvs1. v Si la conexión es con un servidor IBM Cloudscape. basedatos es el nombre de la base de datos que se define durante la instalación. El nombre no es sensible a las mayúsculas y las minúsculas. se puede utilizar la variable String en el parámetro url. Sin embargo. debe terminar con un signo de punto y coma (. tal como hace en la interfaz DriverManager. no se puede utilizar com. de la implementación del controlador y de la fuente de datos. basedatos es el nombre totalmente calificado del archivo donde reside la base de datos. La mejor forma de utilizar un objeto DataSource es que el administrador del sistema cree y gestione el objeto por separado. este método no proporciona portabilidad. v Si la conexión es con un servidor IDS.db2. La forma más sencilla de utilizar un objeto DataSource es crear y utilizar el objeto en la misma aplicación. Cuando se conecta a una fuente de datos utilizando la interfaz DataSource.getConnection(url). basedatos es el nombre de la base de datos. Puede especificar uno o más pares propiedad-valor. pues la aplicación debe identificar un nombre de clase y URL determinados para el controlador JDBC.v Si la conexión es con un servidor DB2 Database para Linux. Por ejemplo. A continuación.).DriverManager. Connection con = java.TRACE_ALL en un parámetro url. El uso de DriverManager para conectar con una fuente de datos reduce la portabilidad. Propiedad y su valor para la conexión JDBC. utiliza un objeto DataSource.sql.TRACE_ALL) + ".DB2BaseDataSource. Algunas propiedades con un tipo de datos int tienen valores de campo constante predefinidos. debe utilizar la interfaz DataSource.jcc.ibm. La aplicación JDBC que hace uso IBM Data Server Driver para JDBC y SQLJ para IDS 1-11 .ibm. El nombre de clase y el URL del controlador son específicos de un proveedor de JDBC.ibm.com:5021" + "user=dbadm. Este nombre se debe incluir entre comillas dobles (″). Cada par propiedad-valor. UNIX y Windows. El programa por el que se crea y gestiona un objeto DataSource también utiliza Java Naming and Directory Interface (JNDI) para asignar un nombre lógico al objeto DataSource.jcc.db2.stl. se puede crear una serie URL que incluya com. Conexión con una fuente de datos mediante la interfaz DataSource Si es necesario que sus aplicaciones se puedan migrar de una fuente de datos a otra.DB2BaseDataSource.jcc. utilizando WebSphere Application Server o alguna otra herramienta. Por ejemplo: "c:/basedatos/testdb" propiedad=valor.TRACE_ALL.db2. Sin embargo. incluido el último." + "traceLevel=" + (com.". y asignar la serie URL a una variable String. Hay que resolver los valores de campo constante predefinidos con sus valores enteros antes de utilizar dichos valores en el parámetro url. No incluye espacios en blanco dentro de la lista de pares propiedad-valor.ibm.DB2BaseDataSource.

3. Ejemplo de obtención de una conexión utilizando un objeto DataSource que fue creado por el administrador del sistema: en este ejemplo.ibm. Utilice el método DataSource. La interfaz Context forma parte de Java Naming and Directory Interface (JNDI) y no de JDBC. consulte ″Creación y despliegue de objetos DataSource″. Connection con=ds. y no necesita ninguna información sobre la fuente de datos subyacente. . // Métodos para JDBC import com. Para obtener una conexión utilizando un objeto DataSource que creó el administrador del sistema y al que éste asignó un nombre lógico.*.*.sql.. import javax.*.db2. 1 2 1-12 IBM Data Server Driver para JDBC y SQLJ para IDS . el nombre lógico de la fuente de datos con la que desea conectar es jdbc/sampledb. Cree un objeto Context para utilizarlo en el paso siguiente.del objeto DataSource puede luego referirse al objeto utilizando su nombre lógico.sql. import javax. Consulte al administrador del sistema para obtener lógico de la fuente de datos con la que desee conectar. DataSource ds=(DataSource)ctx. Puede utilizar uno de los formatos siguientes del método getConnection: getConnection(). Los números situados a la derecha de determinadas sentencias corresponden a pasos descritos anteriormente. Puede utilizar la interfaz DataSource y la interfaz DriverManager en la misma aplicación.getConnection para obtener la conexión. 2. pero para lograr una portabilidad máxima es recomendable que utilice solo la interfaz DataSource para obtener conexiones.jcc. Creación y utilización de un objeto DataSource en la misma aplicación import java.sql. Además.*. // Interfaces de IBM Data Server Driver // para JDBC y SQLJ DB2SimpleDataSource dbds=new DB2SimpleDataSource(). diríjase al URL siguiente de la Web: http://www.*. String contraseña). Context ctx=new InitialContext().ibm. Obtención de una conexión utilizando un objeto DataSource Ejemplo de creación y utilización de un objeto DataSource en la misma aplicación: Figura 1-4. 4. getConnection(String usuario.com/software/webservers/appserv/ Para conocer cómo desplegar objetos DataSource por sí mismo. En su programa de aplicación.lookup("jdbc/sampledb").sql. el administrador del sistema puede modificar los atributos de la fuente de datos y el usuario no necesita cambiar su programa de aplicación. Utilice la segunda forma si necesita especificar un ID de usuario y una contraseña para la conexión que sean diferentes de los que se especificaron al desplegar el objeto DataSource. 2 3 4 Figura 1-3.getConnection(). utilice JNDI para obtener el objeto DataSource que está asociado al nombre lógico de la fuente de datos.*. // Base JDBC import javax. import java. siga estos pasos: 1.. Para obtener más información sobre cómo utilizar WebSphere para desplegar objetos DataSource.naming.

Esta operación se describe en ″Desconexión de fuentes de datos en aplicaciones JDBC″.setUser("john"). Normalmente. Los métodos setDatabaseName. // Asignar la contraseña Connection con=dbds. JDBC proporciona la interfaz DataSource para conectar con una fuente de datos. Utilice este objeto Connection para realizar lo siguiente: v Crear objetos Statement. Este proceso se describe en ″Conocer sobre una fuente de datos utilizando métodos DatabaseMetaData″. La utilización de la interfaz DataSource es la forma preferida de conectar con una fuente de datos. setUser y setPassword asignan atributos al objeto DB2SimpleDataSource. IBM Data Server Driver para JDBC y SQLJ para IDS 1-13 . Puede confirmar transacciones de forma manual o automática.setDatabaseName("dbloc1"). // Crear un objeto Connection Nota 1 2 3 4 3 4 Descripción Importa el paquete donde reside la implementación de la interfaz DataSource. Esto se realiza en el programa de aplicación. que representa la conexión con la fuente de datos. PreparedStatement.setDescription("Our Sample Database"). v Utilizar objetos DataSource para crear una conexión. La utilización de la interfaz DataSource comprende dos etapas: v Crear y desplegar objetos DataSource. v Cerrar la conexión con la fuente de datos. DB2SimpleDataSource es una de las implementaciones para IBM Data Server Driver para JDBC y SQLJ de la interfaz DataSource. y CallableStatement para ejecutar sentencias de SQL. Establece una conexión con la fuente de datos representada por el objeto DB2SimpleDataSource. esto lo hace un administrador del sistema utilizando una herramienta como WebSphere Application Server. Crea un objeto DB2SimpleDataSource. // Descripción de la documentación dbds. setDescription. Estas operaciones se describen en ″Confirmar o retrotraer una transacción JDBC″. Este tema se trata en ″Ejecución de sentencias de SQL en aplicaciones JDBC″. // Asignar el nombre de ubicación dbds.dbds. Creación y despliegue de objetos DataSource A partir de la versión 2. // Asignar el ID de usuario dbds.setPassword("dbadm"). Consulte ″Propiedades del IBM Data Server Driver para JDBC y SQLJ″ para conocer los atributos que puede definir para un objeto DB2SimpleDataSource cuando se utiliza el IBM Data Server Driver para JDBC y SQLJ. Este tema contiene información necesaria para que el propio usuario pueda crear y desplegar objetos DataSource.0. Consulte ″Creación y despliegue de objetos DataSource″ para obtener información sobre las implementaciones de DataSource de DB2.getConnection(). Objetos de conexión JDBC Cuando se conecta a una fuente de datos mediante cualquiera de los dos métodos de conexión. crea un objeto Connection. v Confirmar o retrotraer transacciones. v Reunir información sobre la fuente de datos a la que está conectado.

sql.setUser("john"). // Base JDBC javax. dbds.ibm.db2. Registrar el objeto en el servicio de denominación de Java Naming and Directory Interface (JNDI). v com.DB2XADataSource. Crea un contexto para su utilización por JNDI.*.DB2SimpleDataSource(). debe efectuar estas tareas: 1.ibm. Establecer las propiedades del objeto DataSource. Asocia el objeto dbds de DBSimple2DataSource con el nombre lógico jdbc/sampledb. Esta sentencia y las tres sentencias siguientes definen valores para propiedades del objeto DB2SimpleDataSource. Puede necesitar los paquetes o clases siguientes para su programa de JDBC: 1-14 IBM Data Server Driver para JDBC y SQLJ para IDS .. // Métodos adicionales para JDBC com.db2.*.*.naming.jcc. Una aplicación que haga uso de este objeto puede hacer referencia a él utilizando el nombre jdbc/sampledb. // Implementación de IBM Data // Server para JDBC y SQLJ // de APIs de extensión // estándar de JDBC 1 2 DB2SimpleDataSource dbds = new com. o bien utilizando los nombres de clase totalmente calificados.DB2ConnectionPoolDataSource.jcc.db2.setDescription("Our Sample Database"). Context ctx=new InitialContext().IBM Data Server Driver para JDBC y SQLJ proporciona las siguientes implementaciones de DataSource: v com.jcc. El ejemplo siguiente muestra cómo realizar estas tareas.ibm.sql. que es compatible con la agrupación de conexiones.jcc.bind("jdbc/sampledb".ibm. 2. .. Ejemplo de creación y despliegue de un objeto DataSource Nota 1 2 3 4 3 4 Descripción Crea una instancia de la clase DB2SimpleDataSource. dbds.jcc. dbds. dbds. Cuando crea y despliega un objeto DataSource. Crear una instancia de la implementación de DataSource apropiada.*. que da soporte a la agrupación de conexiones y a las transacciones distribuidas. La agrupación de conexiones es proporcionada por WebSphere Application Server u otro servidor de aplicaciones. que no es compatible con la agrupación de conexiones. v com. Paquetes Java para el soporte JDBC Para invocar métodos de JDBC necesita poder acceder a todos los paquetes Java (o parte de ellos) donde residen estos métodos. // Servicios de denominación de JNDI javax. Ctx.dbds).ibm.setPassword("mypw"). import import import import java.db2. Figura 1-5.DB2SimpleDataSource. 3. Puede hacerlo importando los paquetes o clases específicas.db2.setDatabaseName("db2loc1").

ALTER. tal como el nivel del controlador v Límites. Por ejemplo. índices o procedimientos v Indicación de si la fuente de datos soporta diversas funciones JDBC. Los métodos de DatabaseMetaData proporcionan los tipos de información siguientes: v Características soportadas por la fuente de datos.db2. que se suele utilizar para implementar una DataSource (fuente de datos).0 para ese controlador. UNIX y Windows (controlador JDBC de DB2 de tipo 2). REVOKE) v Lista de objetos contenidos en la fuente de datos. tales como el nivel SQL de ANSI v Información específica sobre el controlador JDBC.ibm. debe determinar si el controlador de una fuente de datos se encuentra en el nivel JDBC 3. tales como el número máximo de columnas que puede tener un índice v Indicación de si la fuente de datos soporta sentencias de definición de datos (CREATE. Estos métodos son útiles cuando escribe aplicaciones genéricas que pueden acceder a diversas fuentes de datos. IBM Data Server Driver para JDBC y SQLJ para IDS 1-15 .sql Contiene la API básica de JDBC. tales como tablas.naming Contiene clases e interfaces para Java Naming and Directory Interface (JNDI).isIDSDatabaseLogging específicos de IBM Data Server Driver para JDBC y SQLJ. DROP. debe comprobar si una fuente de datos puede manejar diversas operaciones de base de datos antes de ejecutarlas.ibm. GRANT.jcc Contiene la implementación de JDBC para IBM Data Server Driver para JDBC y SQLJ. puede también ser necesario: v Indicación de si la base de datos es compatible con ANSI v Indicación de si la base de datos es compatible con el registro cronológico Para obtener esta información.db2.java. En las aplicaciones genéricas que pueden acceder a diversas fuentes de datos.transaction Contiene soporte de JDBC para transacciones distribuidas para el controlador JDBC de DB2 de tipo 2 para Linux.isIDSDatabaseAnsiCompliant y DB2DatabaseMetaData.0 antes de invocar métodos JDBC 3.jdbc Contiene la implementación del controlador JDBC de DB2 de tipo 2. com. javax. tales como las actualizaciones por lotes o los conjuntos de resultados desplazables ResultSet v Lista de funciones escalares soportadas por el controlador Para los sistemas IDS. Obtención de información acerca de una fuente de datos mediante métodos DatabaseMetaData La interfaz DatabaseMetaData contiene métodos para recuperar información sobre una fuente de datos. utilice los métodos DB2DatabaseMetaData. COM. javax.sql Contiene métodos para producir aplicaciones de servidor mediante Java javax.

Cree un objeto DatabaseMetaData invocando el método getMetaData para la conexión. null. DatabaseMetaData dbmtadta.getString("PROCEDURE_NAME").Connection existente que es necesario convertir en un objeto DB2Connection para que se puedan utilizar métodos DB2DatabaseMetaData sobre el objeto.DB2DatabaseMetaData 1-16 IBM Data Server Driver para JDBC y SQLJ para IDS . // // // // dbmd c es el objeto java. // Imprimir nombre de procedimiento calificado } dtfnList = dbmtadta.ibm.getString("PROCEDURE_SCHEM"). Invoque el método close para cerrar el objeto ResultSet.db2. System." + procName). 2 // Comprobar la versión del controlador System. "%").db2. obtener una lista de los procedimientos almacenados existentes en la fuente de datos. com.db2. 3. dbmtadta = con. posicione el cursor utilizando el método next y recupere datos de cada columna de la fila actual del objeto ResultSet utilizando métodos getXXX.out.println("Funciones de fecha y hora soportadas:").sql. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente. b.. // Obtener el nombre del procedimiento System. Ejemplo: el código de programa siguiente muestra cómo utilizar métodos DatabaseMetaData para determinar la versión del controlador.Para invocar métodos DatabaseMetaData. int mtadtaint. Figura 1-6.getMetaData().jcc.out. // Imprimir la lista de las funciones // de fecha y hora rs.DB2Connection db2c = (com.close(). Invoque métodos de DatabaseMetaData para obtener información sobre la fuente de datos. // Obtener lista de las funciones // de fecha y hora permitidas System. String procSchema.println("Versión de controlador: " + mtadtaint). // Obtener el esquema del procedimiento procName = rs. // Obtener información de todos los procedimientos while (rs. String dtfnList. ResultSet rs.getDriverVersion().out.println(procSchema + ". 2.println(dtfnList).next()) { // Situar el cursor 3a procSchema = rs. En un bucle. Uso de métodos DatabaseMetaData para obtener información sobre una fuente de datos Connection con. .getTimeDateFunctions().getProcedures(null. String procName. rs = dbmtadta. // Crear el objeto DatabaseMetaData 1 mtadtaint = dmtadta.. = com.jcc. Si el método devuelve un conjunto de resultados: a.ibm.jcc. y obtener una lista de funciones de fecha y hora compatibles con el controlador.ibm. // Cerrar el conjunto de resultados 3b Ejemplo: el código de programa siguiente muestra cómo utilizar métodos DB2DatabaseMetaData para determinar si una base de datos IDS es compatible con ANSI y permite el registro cronológico.out.DB2Connection) c. siga estos pasos básicos: 1.

} Su elección de tipos de datos Java puede afectar al rendimiento. c. debe declarar variables. debe invocar métodos.out. – La interfaz CallableStatement soporta la invocación de un procedimiento almacenado. Con el IBM Data Server Driver para JDBC y IBM Data Server Driver para JDBC y SQLJ para IDS 1-17 . En caso afirmativo. En el código de programa siguiente. Los marcadores de parámetros representan variables de entrada.(com. Con el IBM Data Server Driver para JDBC y SQLJ. suprimir o fusionar datos de tablas.executeUpdate("commit"). pues IDS selecciona mejores vías de acceso cuando los tipos de datos de las variables Java se corresponden estrechamente con los tipos de datos IDS.getMetaData(). cuyo tipo de datos es CHAR.createStatement. if (dbmd.executeQuery("SELECT EMPNO FROM EMPLOYEE").out. // Recuperar el objeto DB2DatabaseMetaData. Algunos de estos identificadores tienen la misma función que las variables de lenguaje principal tienen en otros lenguajes: contienen datos que se pasan a tablas de base de datos o que se reciben de ellas.ibm... Variables en aplicaciones JDBC Al igual que en cualquier otra aplicación Java. la interfaz PreparedStatement permite invocar procedimientos almacenados que tienen parámetros de entrada y ningún parámetro de salida. System.DB2DatabaseMetaData) db2c.println("Número de empleado = " + empNo). Esos métodos están definidos en las interfaces siguientes: v La interfaz Statement soporta la ejecución de todas las sentencias de SQL. String empNo.jcc.next()) { String empNo = rs. // puede realizar una operación commit.println("La base de datos IDS actual es compatible con ANSI.db2.isIDSDatabaseAnsiCompliant()) // Comprobar si la base de datos // es compatible con ANSI. // Ejecutar una consulta y generar instancia del conjunto de resultados rs = stmt. el identificador empNo contiene los datos recuperados de la columna de tabla EMPNO. parámetros de salida. La interfaz CallableStatement permite invocar procedimientos almacenados con parámetros de entrada. esas variables se conocen como identificadores Java. Sin embargo."). System. cuando escribe aplicaciones JDBC. la interfaz preferida es CallableStatement. Interfaces JDBC para ejecutar SQL Puede ejecutar sentencias de SQL dentro de un programa SQL típico para insertar. actualizar. recuperar datos de tablas o llamar procedimientos almacenados.isIDSDatabaseLogging ()) // Comprobar si la base de datos permite el // registro cronológico. while (rs. Para ejecutar las mismas funciones en un programa JDBC. Las interfaces siguientes heredan métodos de la interfaz Statement: – La interfaz PreparedStatement soporta cualquier sentencia de SQL que contenga marcadores de parámetros de entrada. y que no devuelven ningún conjunto de resultados.getString(1). con ambas clases de parámetros o sin parámetros. En las aplicaciones Java. if (dbmd. La interfaz PreparedStatement también se puede utilizar para sentencias de SQL sin marcadores de parámetros.

int numUpd.executeUpdate para invocar procedimientos almacenados que tienen parámetros de entrada y ningún parámetro de salida. La interfaz ResultSet tiene la misma finalidad que el cursor utilizado en las aplicaciones de SQL para otros lenguajes de programación.executeUpdate( "UPDATE EMPLOYEE SET PHONENO=’4657’ WHERE EMPNO=’000010’"). . // Cerrar el objeto Statement Figura 1-7. y que no devuelven ningún conjunto de resultados. ejecuta la sentencia UPDATE y devuelve en numUpd el número de filas que fueron actualizadas.close(). 1-18 IBM Data Server Driver para JDBC y SQLJ para IDS . ALTER. 3. Invoque el método Statement.close para cerrar el objeto Statement. Con el IBM Data Server Driver para JDBC y SQLJ. Invoque el método Statement. DELETE. también se puede utilizar la interfaz Statement para llamar a procedimientos almacenados. ejecutar la sentencia CALL para invocar procedimientos almacenados que carecen de parámetros y no devuelven conjuntos de resultados. v La interfaz ResultSet proporciona acceso a los resultados generados por una consulta. // Ejecutar la actualización stmt. puede también utilizar PreparedStatement. UPDATE.executeUpdate es efectivo si actualiza tablas IDS con valores constantes. Utilización de Statement. Puede utilizar el método Statement.. Invoque el método Connection.executeUpdate El método Statement. las actualizaciones a menudo suponen pasar a tablas IDS valores contenidos en variables. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente.executeUpdate 1 2 3 Actualización de datos de tablas utilizando el método PreparedStatement. DROP. tales como CREATE. Suponga que desea ejecutar esta sentencia de SQL: UPDATE EMPLOYEE SET PHONENO=’4657’ WHERE EMPNO=’000010’ El código siguiente crea el objeto Statement denominado stmt. y MERGE que no contienen marcadores de parámetros v Con el IBM Data Server Driver para JDBC y SQLJ. // Crear un objeto Statement numUpd = stmt.. GRANT y REVOKE v Ejecutar sentencias INSERT.executeUpdate.createStatement para crear un objeto Statement.executeUpdate es uno de los métodos JDBC que puede utilizar para actualizar tablas e invocar procedimientos almacenados. utilice el método PreparedStatement. Para ejecutar esas sentencias de SQL.createStatement(). Statement stmt.executeUpdate para ejecutar la operación de SQL. pero éstos no deben tener parámetros. Creación y modificación de objetos de base de datos utilizando el método Statement.SQLJ. 2.executeUpdate para realizar las acciones siguientes: v Ejecutar sentencias de definición de datos. Connection con.executeUpdate El método Statement. Para hacer esto. Sin embargo. stmt = con. debe seguir estos pasos: 1.

el objeto PreparedStatement puede ser una sentencia CALL o una sentencia EXECUTE PROCEDURE.executeUpdate para actualizar la tabla con los valores variables.close para cerrar el objeto PreparedStatement cuando termine de utilizar ese objeto. Invoque el método Connection. IBM Data Server Driver para JDBC y SQLJ para IDS 1-19 . pero no expresiones. Invoque el método PreparedStatement. Invoque el método PreparedStatement. los parámetros pueden ser marcadores de parámetros o literales.prepareStatement para crear un objeto PreparedStatement. El código siguiente ejecuta los pasos anteriores para actualizar el número de teléfono ’4657’ del empleado cuyo número de empleado es ’000010’. Invoque métodos PreparedStatement. Se pueden utilizar los tipos de literales siguientes: v Integer v Double v Decimal v Character v Hexadecimal v Graphic Para las llamadas a procedimientos almacenados que residen en fuentes de datos IBM Informix Dynamic Server. Cuando ejecuta una sentencia de SQL muchas veces. la siguiente sentencia UPDATE permite actualizar la tabla de empleados (EMPLOYEE) solamente para un único número de teléfono y número de empleado: UPDATE EMPLOYEE SET PHONENO=’4657’ WHERE EMPNO=’000010’ Suponga que desea generalizar la operación para poder actualizar la tabla de empleados para un conjunto cualquiera de números de teléfono y números de empleado.setXXX para pasar valores a las variables. Por ejemplo. Para ello es necesario que sustituya los valores constantes del número de teléfono y número de empleado por variables: UPDATE EMPLOYEE SET PHONENO=? WHERE EMPNO=? Las variables de esta clase se denominan marcadores de parámetros. Para ejecutar una sentencia de SQL con marcadores de parámetros.DB2 para z/OS no es compatible con la ejecución dinámica de la sentencia CALL. puede obtener un mejor rendimiento creando la sentencia de SQL en forma de objeto PreparedStatement. 4. 3. debe seguir estos pasos: 1. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente. Para las llamadas a procedimientos almacenados que residen en fuentes de datos DB2 para z/OS. 2.

int numUpd. // Asignar segundo valor a segundo parámetro numUpd = pstmt..Connection con.executeUpdate para una sentencia de SQL con marcadores de parámetros Puede también utilizar el método PreparedStatement. v addBatch 1-20 IBM Data Server Driver para JDBC y SQLJ para IDS . puede incluir esa sentencia solo en un lote que tenga otras instancias de la misma sentencia.setString(1. Uso de PreparedStatement. pstmt = con. // Asignar segundo valor a primer parámetro pstmt.prepareStatement( "UPDATE EMPLOYEE SET PHONENO=’4657’ WHERE EMPNO=’000010’").setString(1.executeUpdate(). int numUpd. El ejemplo siguiente muestra estos pasos. Uso de PreparedStatement. con un conjunto de parámetros diferente para cada ejecución.close(). . Si una sentencia tiene parámetros de entrada o expresiones de lenguaje principal. PreparedStatement pstmt.prepareStatement( "UPDATE EMPLOYEE SET PHONENO=? WHERE EMPNO=?"). // Asignar primer valor a primer parámetro 2 pstmt. excepto que se omite el paso 2 en la página 1-19. // Asignar primer valor a segundo parámetro numUpd = pstmt. Este tipo de lote se denomina lote heterogéneo.executeUpdate()."000010"). // Ejecutar segunda actualización pstmt. puede hacer que JDBC ejecute un grupo de actualizaciones al mismo tiempo. // Cerrar el objeto PreparedStatement Figura 1-9. Este tipo de lote se denomina lote homogéneo."4658"). // Realizar la actualización pstmt.executeUpdate().setString(2.. pstmt = con. PreparedStatement pstmt. // Crear un objeto PreparedStatement numUpd = pstmt. Dos sentencias que se puedan incluir en el mismo lote se dice que son compatibles por lote. ejecutar y eliminar un lote de actualizaciones SQL: v addBatch v executeBatch v clearBatch Utilice el siguiente método de sentencia preparada y sentencia invocable para crear un lote de parámetros para que una sentencia individual se pueda ejecutar varias veces en un lote.setString(2. // Realizar primera actualización 3 pstmt. puede incluir esa sentencia en un lote solo si las demás sentencias del lote no tienen parámetros de entrada ni expresiones de lenguaje principal..executeUpdate para una sentencia de SQL sin marcadores de parámetros 1 3 4 Realización de actualizaciones por lotes en aplicaciones JDBC En las actualizaciones de proceso por lotes. Connection con. Si una sentencia carece de parámetros de entrada."000020").. Los pasos para ejecutar un objeto PreparedStatement sin marcadores de parámetros son similares a los pasos para ejecutar el objeto PreparedStatement con marcadores de parámetros. en lugar de actualizar filas de una tabla de forma individual. // Cerrar el objeto PreparedStatement 4 Figura 1-8. // Crear un objeto PreparedStatement 1 pstmt."4657"). . Utilice los siguientes métodos de Sentencia para crear.executeUpdate para sentencias que no tienen marcadores de parámetros.close(). Las sentencias que se pueden incluir en un mismo lote de actualizaciones se denominan sentencias procesables por lotes.

4. 2. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente. Invoque el método addBatch para añadir el conjunto de parámetros de entrada al lote. Si AutoCommit está habilitado para el objeto Connection. Si AutoCommit está habilitado para el objeto Connection. se procesan por lotes dos conjuntos de parámetros. Compruebe si se han producido errores. b. 3. Ejecute métodos setXXX para asignar valores a los parámetros de entrada. En el siguiente fragmento de código de programa. no puede recuperar los valores de los parámetros de salida. el IBM Data Server Driver para JDBC y SQLJ añade un método commit al final del proceso por lotes. Este número no incluye las filas afectadas por activadores o por la aplicación de la integridad referencial. invoque el método addBatch. Invoque el método createStatement para crear un objeto Statement. Para cada sentencia de SQL que desee ejecutar en el lote. v No puede recuperar objetos ResultSet de un objeto CallableStatement que ejecute en un lote. IBM Data Server Driver para JDBC y SQLJ para IDS 1-21 . Si no han ocurrido errores: a. 2. siga estos pasos básicos: 1. Si AutoCommit está inhabilitado para el objeto Connection.Restricciones en la ejecución de las sentencias de un lote: v Si intenta ejecutar una sentencia SELECT en un lote. Si no han ocurrido errores: a. En ese caso no se emite una excepción BatchUpdateException. Si AutoCommit está inhabilitado para el objeto Connection. el IBM Data Server Driver para JDBC y SQLJ añade un método commit al final del proceso por lotes. Obtenga el número de filas afectadas por cada ejecución de la sentencia de SQL a partir de la matriz devuelta por la invocación de executeBatch. b. v Un objeto CallableStatement que ejecute en un lote puede contener parámetros de salida. Sin embargo. siga estos pasos básicos: 1. b. una sentencia UPDATE que admite dos parámetros de entrada se ejecuta dos veces. Obtenga el número de filas afectadas por cada sentencia de SQL a partir de la matriz devuelta por la invocación de executeBatch. Para realizar actualizaciones por lotes utilizando varias sentencias sin parámetros de entrada. invoque el método commit para confirmar los cambios. Si intenta hacerlo. una vez con cada conjunto de parámetros. 3. Para cada conjunto de valores de parámetros de entrada: a. Para realizar actualizaciones por lotes utilizando una sola sentencia con varios conjuntos de parámetros de entrada. pero la invocación del método getResultSet devuelve un valor nulo. Invoque el método executeBatch para ejecutar el lote de sentencias. Invoque el método executeBatch para ejecutar las sentencias con todos los conjuntos de parámetros. Compruebe si se han producido errores. invoque el método commit para confirmar los cambios. se emite una excepción BatchUpdateException. Luego. se emite una excepción BatchUpdateException.

v Indicación de si los parámetros son parámetros de entrada o de salida. v Indicación de si los parámetros pueden contener nulos.prepareStatement para crear un objeto PreparedStatement.mgrnum1).try { .getParameterCount para determinar el número de parámetros de PreparedStatement. v Los nombres de tipos de los parámetros. Los métodos de ParameterMetaData proporcionan los tipos de información siguientes: v Los tipos de datos de los parámetros. Invoque el método Connection. 3 for (int i=0. prepStmt. estos nombres son los nombres de los tipos diferenciados. Invoque el método PreparedStatement. Los números que aparecen a la 1-22 IBM Data Server Driver para JDBC y SQLJ para IDS .out. Para los parámetros que corresponden a columnas de tabla que están definidas con tipos diferenciados.setString(2. Invoque métodos de ParameterMetaData para parámetros individuales.deptnum2). v Indicación de si los valores de un parámetro numérico pueden tener signo.length. 3. prepStmt. La interfaz ParameterMetaData contiene métodos obtienen información sobre los marcadores de parámetros de un objeto PreparedStatement. Invoque ParameterMetaData.setString(1. incluida la precisión y escala de los parámetros decimales. 2. i < numUpdates. Para invocar métodos de ParameterMetaData. 4.commit().mgrnum2).setString(1.prepareStatement( "UPDATE DEPT SET MGRNO=? WHERE DEPTNO=?"). PreparedStatement prepStmt = con.getParameterMetaData para obtener un objeto ParameterMetaData. 1 2a 2b prepStmt.setObject utiliza cuando define un valor de parámetro. i++) { 4a if (numUpdates[i] == SUCCESS_NO_INFO) System.deptnum1).addBatch(). El código de programa siguiente muestra cómo utilizar métodos ParameterMetaData para determinar el número y los tipos de datos de los parámetros de una sentencia UPDATE de SQL. debe seguir estos pasos básicos: 1. específicos de la base de datos.setString(2. 4b } catch(BatchUpdateException b) { // process BatchUpdateException } Figura 1-10. int [] numUpdates=prepStmt.println("Execution " + i + "successful: " numUpdates[i] + " rows updated").. prepStmt.executeBatch(). prepStmt.out. Realización de una actualización de proceso por lotes Obtención de información acerca de parámetros de PreparedStatement mediante métodos ParameterMetaData El IBM Data Server Driver para JDBC y SQLJ incluye soporte para la interfaz ParameterMetaData. } con. prepStmt.addBatch()..println("Execution " + i + ": unknown number of rows updated"). else System. v El nombre de clase Java totalmente calificado que el objeto PreparedStatement.

puede utilizar el método Statement. IBM Data Server Driver para JDBC y SQLJ para IDS 1-23 . Connection con. Recuperación de datos de tablas utilizando el método Statement. Invoque el método Connection. pstmt.executeQuery para obtener la tabla de resultados de la sentencia SELECT en un objeto ResultSet.executeQuery: Para recuperar datos de una tabla utilizando una sentencia SELECT sin marcadores de parámetros. que es un objeto ResultSet de solo lectura en el que el usuario solo puede desplazarse hacia delante.println("Número de parámetros de sentencia: " + mtadtacnt). // Obtener tipo de datos de SQL para // cada parámetro System.prepareStatement( "UPDATE EMPLOYEE SET PHONENO=? WHERE EMPNO=?").close(). una fila cada vez. 2.. debe utilizar métodos de ResultSet para desplazarse por la tabla de resultados y obtener los valores individuales de cada columna de cada fila. IBM Data Server Driver para JDBC y SQLJ también permite utilizar ResultSet actualizables y desplazables. Si el procedimiento almacenado devuelve varios conjuntos de resultados. ParameterMetaData pmtadta. siga estos pasos: 1. debe utilizar el método Statement. // Crear un objeto PreparedStatement pmtadta = pstmt.createStatement para crear un objeto Statement. Con el IBM Data Server Driver para JDBC y SQLJ.execute. } . pstmt = con. Uso de métodos de ParameterMetaData para obtener información sobre un objeto PreparedStatement Recuperación de datos en aplicaciones JDBC Utilice objetos ResultSet para recuperar datos en las aplicaciones JDBC.println("Tipo de SQL del parámetro " + i " es " + sqlType). // Determinar el número de parámetros System.getParameterTypeName(i)..getParameterCount().. Este método devuelve una tabla de resultados en un objeto ResultSet. // Crear un objeto ParameterMetaData mtadtacnt = pmtadta.executeQuery. Invoque el método Statement.derecha de algunas sentencias corresponden a los pasos descritos anteriormente.getParameterMetaData(). i++) { sqlType = pmtadta. Una vez obtenida la tabla de resultados. también puede utilizar el método Statement..executeQuery para obtener un conjunto de resultados de una llamada de procedimiento almacenado.out. int mtadtacnt. i <= mtadtacnt. String sqlType. Este tema describe la modalidad más sencilla de ResultSet. // Cerrar PreparedStatement 1 2 3 4 Figura 1-11. for (int i = 1. si ese procedimiento almacenado devuelve un solo conjunto de resultados. Un ResultSet representa el conjunto de resultados de una consulta.out. Para recuperar filas de una tabla utilizando una sentencia SELECT sin marcadores de parámetros. .

// Imprimir el valor de columna } rs. // Cerrar la sentencia 5 Figura 1-12. también puede utilizar el método PreparedStatement.3. Si el procedimiento almacenado devuelve varios conjuntos de resultados.next()) { // Situar el cursor 3 empNo = rs. Cuando ejecuta una consulta muchas veces. 1-24 IBM Data Server Driver para JDBC y SQLJ para IDS .getString(1). // Crear un objeto Statement 1 rs = stmt. stmt = con. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente.close().execute.executeQuery Recuperación de datos de tablas utilizando el método PreparedStatement. El código de programa siguiente muestra cómo recuperar todas las filas de la tabla EMPLOYEE.executeQuery("SELECT EMPNO FROM EMPLOYEE"). 2 // Obtener tabla de resultados de la consulta while (rs.. Consulte ″Recuperación de varios conjuntos de resultados a partir de un procedimiento almacenado en una aplicación JDBC″ para obtener más información.executeQuery para obtener un conjunto de resultados de una llamada de procedimiento almacenado. En un bucle. puede obtener un mejor rendimiento creando la sentencia de SQL en forma de objeto PreparedStatement. utilice el método PreparedStatement..close para cerrar el objeto Statement cuando termine de utilizar ese objeto. debe utilizar el método Statement. Puede también utilizar el método PreparedStatement.println("Número de empleado = " + empNo). String empNo.executeQuery para sentencias que no tienen marcadores de parámetros.close para cerrar el objeto ResultSet. Statement stmt.createStatement(). Connection con. // Obtener solo el valor de la primera columna System. XXX representa un tipo de datos. si ese procedimiento almacenado devuelve un solo conjunto de resultados y tiene solamente parámetros de entrada. // Cerrar el conjunto de resultados 4 stmt. Invoque el método Connection. 5.out.executeQuery: Para obtener datos de una tabla utilizando una sentencia SELECT con marcadores de parámetros. posicione el cursor utilizando el método next y recupere datos de cada columna de la fila actual del objeto ResultSet utilizando métodos getXXX. Invoque el método Statement. . ResultSet rs. Una vez obtenida la tabla de resultados.prepareStatement para crear un objeto PreparedStatement. Utilización de Statement. 4.executeQuery. Para obtener filas de una tabla utilizando una sentencia SELECT con marcadores de parámetros. Con el IBM Data Server Driver para JDBC y SQLJ.close(). Invoque el método ResultSet. debe utilizar métodos de ResultSet para desplazarse por la tabla de resultados y obtener los valores individuales de cada columna de cada fila. Este método devuelve una tabla de resultados en un objeto ResultSet. siga estos pasos: 1.

. // Cerrar PreparedStatement Figura 1-13.out.close(). pstmt = con. Connection con. PreparedStatement pstmt.next y recupere datos de cada columna de la fila actual del objeto ResultSet utilizando métodos getXXX.getString(1).prepareStatement( "SELECT EMPNO. 4. // Asignar valor a parámetro de entrada rs = pstmt.close para cerrar el objeto ResultSet.executeQuery para obtener la tabla de resultados de la sentencia SELECT en un objeto ResultSet.next()) { // Situar el cursor empnum = rs. // Crear un objeto PreparedStatement pstmt.println("Número de empleado = " + empnum + "Número de teléfono = " + phonenum)."000010"). String empnum. // Cerrar el conjunto de resultados pstmt. phonenum. // Obtener el valor de la primera columna phonenum = rs.setXXX para pasar valores a los parámetros de entrada. PHONENO FROM EMPLOYEE WHERE EMPNO=?"). Cuando escriba programas que obtienen conjuntos de resultados desconocidos. Invoque el método ResultSet.. la precisión.executeQuery(). // Imprimir valores de columnas } rs. Invoque el método PreparedStatement. 5. Invoque métodos PreparedStatement. posicione el cursor utilizando el método ResultSet. 6. Invoque el método PreparedStatement. la escala y la posibilidad de contener nulos v La indicación de si una columna es de solo lectura IBM Data Server Driver para JDBC y SQLJ para IDS 1-25 .close para cerrar el objeto PreparedStatement cuando termine de utilizar ese objeto.getString(2). // Obtener tabla resultados de consulta while (rs. es necesario utilizar métodos de ResultSetMetaData para determinar las características de los conjuntos de resultados antes de poder recuperar datos de ellos. ResultSet rs.setString(1. tal como el tipo de datos. Los métodos de ResultSetMetaData proporcionan los tipos de información siguientes: v El número de columnas de un conjunto de resultados v El calificador de la tabla subyacente del conjunto de resultados v Información sobre una columna. El código de programa siguiente muestra cómo recuperar filas de la tabla EMPLOYEE para un empleado determinado. // Obtener el valor de la primera columna System. Ejemplo de utilización de PreparedStatement. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente. la longitud.2. Esto es especialmente cierto cuando está recuperando datos de una fuente de datos remota..close(). En un bucle.executeQuery 1 2 3 4 5 6 Obtención de información acerca de un conjunto de resultados utilizando métodos ResultSetMetaData: No puede suponer que conoce el número de columnas y tipos de datos de las columnas de una tabla o conjunto de resultados. 3.

// Imprimir el valor de columna } Figura 1-14. Además de avanzar fila a fila por un ResultSet. String colType. Connection con. stmt = con. suprimir o insertar filas en un ResultSet v Dejar abierto el ResultSet después de una operación COMMIT Los términos siguientes describen características de un ResultSet: 1-26 IBM Data Server Driver para JDBC y SQLJ para IDS . siga estos pasos básicos para determinar el contenido del conjunto de resultados: 1. // Obtener tipo de datos de la columna System.getColumnCount(). puede ser deseable poder hacer lo siguiente: v Retroceder o ir directamente a una fila específica v Actualizar. Uso de métodos de ResultSetMetaData para obtener información sobre un conjunto de resultados Características de un conjunto de resultados de JDBC cuando se utiliza el IBM Data Server Driver para JDBC y SQLJ: El IBM Data Server Driver para JDBC y SQLJ es compatible con cursores desplazables. // Obtener conjunto de resultados de la consulta rsmtadta = rs. Los resultados de la llamada ResultSetMetaData. // Obtener nombre de columna colType = rsmtadta. El código de programa siguiente muestra cómo determinar los tipos de datos de todas las columnas de la tabla EMPLOYEE.getColumnName(). . int i. String s.getMetaData(). Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente. actualizables y con capacidad de retención. // Crear un objeto Statement rs = stmt. // Crear un objeto ResultSetMetaData 1 colCount = rsmtadta.println("Columna = " + colName + " es del tipo de datos " + colType).out.createStatement().getColumnTypeName(). 2 // Encontrar número de columnas de EMP for (i=1. int colCount int mtadtaint.. i++) { 3 colName = rsmtadta. Invoque el método getColumnCount para determinar el número de columnas del conjunto de resultados. String colName. i<= colCount.Después de invocar el método executeQuery para generar el conjunto de resultados de una consulta sobre una tabla.executeQuery("SELECT * FROM EMPLOYEE").. 2. ejecute métodos de ResultSetMetaData para determinar las características de las columnas. Statement stmt. 3.getColumnName reflejan la información sobre el nombre de la columna y que está almacenada en el catálogo de IDS de dicha fuente de datos. ResultSet rs. Para cada columna del ResultSet. ResultSetMetaData rsmtadta. Invoque el método getMetaData para el objeto ResultSet para crear un objeto ResultSetMetaData.

No puede actualizar ni suprimir un hueco por supresión.prepareStatement o Connection. desplazamiento y mantenimiento de ResultSets en aplicaciones JDBC: Utilice los parámetros especiales de los métodos Connection. o avanzar una o más filas. Si un cursor de un ResultSet es desplazable.capacidad de desplazamiento Capacidad del cursor del ResultSet para avanzar solamente. que describe si el cursor es sensible a los cambios producidos en la tabla subyacente. si inserta filas en la tabla subyacente. Esta característica no es aplicable a un ResultSet devuelto por un procedimiento almacenado. la tabla de resultados para un ResultSet estático no cambia. capacidad de retención Capacidad del cursor para permanecer abierto después de una operación COMMIT. pues un ResultSet de un procedimiento almacenado no se puede actualizar. retroceder una o más filas o ir hasta una fila determinada. Si suprime una fila de la tabla de resultados. Para las fuentes de datos de IBM Informix Dynamic Server. Características de un conjunto de resultados en JDBC y los atributos de cursor en SQL Valor de JDBC CONCUR_READ_ONLY CONCUR_UPDATABLE HOLD_CURSORS_OVER_COMMIT TYPE_FORWARD_ONLY TYPE_SCROLL_INSENSITIVE TYPE_SCROLL_SENSITIVE Valor de cursor de DB2 FOR READ ONLY FOR UPDATE WITH HOLD SCROLL no especificado INSENSITIVE SCROLL SENSITIVE STATIC. Las características de un ResultSet correspondientes a la capacidad de actualización.createStatement. Especificación de la capacidad de actualización. La tabla siguiente muestra los valores de capacidad de desplazamiento. desplazamiento o retención de ResultSet.createStatement para especificar la capacidad de actualización. el tamaño de la tabla de resultados y el orden de las filas en la tabla de resultados no cambian después de abrir el cursor. SENSITIVE DYNAMIC o ASENSITIVE. Los valores de un ResultSet se corresponden con atributos de un cursor en la base de datos. dependiendo de la propiedad cursorSensitvity para Connection y DataSource Valor de cursor de IBM Informix Dynamic Server FOR READ ONLY FOR UPDATE WITH HOLD SCROLL no especificado SCROLL No soportado Si un ResultSet de JDBC es estático.prepareStatement o Connection. los cursores no pueden ser actualizables. capacidad de actualización y capacidad de retención en JDBC y los correspondientes atributos de cursor. Tabla 1-1. IBM Data Server Driver para JDBC y SQLJ para IDS 1-27 . Por tanto. también tiene un atributo de sensibilidad. capacidad de desplazamiento y capacidad de retención se definen mediante parámetros en los métodos Connection. capacidad de actualización Capacidad de poder utilizar el cursor para actualizar o suprimir filas. se produce un hueco por supresión.

int resultSetType. Tabla 1-2. El valor que defina prevalece sobre la capacidad de retención por omisión de la conexión. siga estos pasos: 1. Para cambiar los atributos de capacidad de desplazamiento. la sentencia SELECT que sirve para definir el conjunto de resultados no puede incluir columnas que tengan los tipos de datos siguientes: 1-28 IBM Data Server Driver para JDBC y SQLJ para IDS . Ha de especificar formas de los métodos createStatement o prepareStatement que incluyan los parámetros resultSetType. invoque el método prepareStatement para crear un objeto PreparedStatement. int resultSetConcurrency). Esta es la modalidad del método createStatement que da soporte a la capacidad de desplazamiento. la capacidad de actualización y la capacidad de retención: prepareStatement(String sql. actualización y retención para un ResultSet. int resultSetConcurrency). int resultSetConcurrency. La capacidad de retención por omisión depende de la fuente de datos y se puede determinar a partir del método DatabaseMetaData. En otro caso. La tabla siguiente contiene una lista de los valores válidos para resultSetType y resultSetConcurrency. invoque el método createStatement para crear un objeto Statement. Esta es la modalidad del método prepareStatement que da soporte a la capacidad de desplazamiento. int resultSetConcurrency.getResultSetHoldability. Esta es la modalidad del método prepareStatement que da soporte a la capacidad de desplazamiento y a la capacidad de actualización: prepareStatement(String sql. Combinaciones válidas de valores de resultSetType y resultSetConcurrency para conjuntos de resultados desplazables Valor de resultSetType TYPE_FORWARD_ONLY TYPE_FORWARD_ONLY TYPE_SCROLL_INSENSITIVE TYPE_SCROLL_SENSITIVE TYPE_SCROLL_SENSITIVE Valor de resultSetConcurrency CONCUR_READ_ONLY CONCUR_UPDATABLE CONCUR_READ_ONLY CONCUR_READ_ONLY CONCUR_UPDATABLE resultSetHoldability tiene dos valores posibles: HOLD_CURSORS_OVER_COMMIT y CLOSE_CURSORS_AT_COMMIT. int resultSetHoldability). los objetos ResultSet son no desplazables y no actualizables. UNIX y Windows. Restricción: si el conjunto de resultados es desplazable y se utiliza para seleccionar columnas de una tabla en un servidor de DB2 Database para Linux.Por omisión. resultSetConcurrency o resultSetHoldability. Cualquiera de estos dos valores se puede especificar con cualquier combinación de resultSetConcurrency y resultSetHoldability. int resultSetType. Esta es la modalidad del método createStatement que da soporte a la capacidad de desplazamiento y a la capacidad de actualización: createStatement(int resultSetType. la capacidad de actualización y la capacidad de retención: createStatement(int resultSetType. Si la sentencia SELECT por la que se define el conjunto de resultados no tiene parámetros de entrada. int resultSetHoldability).

en la fila n del conjunto de resultados.5 afterLast beforeFirst Notas: 1. en la fila actual. Si para resultSetType ha especificado un valor de TYPE_SCROLL_SENSITIVE en el paso 1 en la página 1-28 y necesita ver los valores más recientes de la fila actual. 3. b. o antes de la primera fila si n es negativo. Si el cursor está situado antes de la primera fila del conjunto de resultados. invoque el método refreshRow. Si n=0. Si el valor absoluto de n es mayor que el número de filas del conjunto de resultados. Recomendación: Debido a que la renovación de las filas de un conjunto de resultados puede afectar negativamente al rendimiento de las aplicaciones. 4. Posicione el cursor utilizando uno de los métodos listados en la tabla siguiente. 2. utilice el método getRow. en la fila que está situada n filas antes de la fila actual. el método emite una excepción de SQL. este método posiciona el cursor en la primera fila. Si n>0. Métodos para posicionar un cursor desplazable en un conjunto de resultados Método first last next 1 2 3 Sitúa el cursor En la primera fila del conjunto de resultados En la última fila del conjunto de resultados En la fila siguiente del conjunto de resultados En la fila anterior del conjunto de resultados Si n>0. El cursor debe estar en una fila válida del conjunto de resultados para poder utilizar este método.BLOB CLOB XML Un tipo diferenciado que esté basado en cualquiera de los tipos de datos anteriores de esta lista 2. Si n>0 y x+n>m. c. Si n<0. v v v v Tabla 1-3. 4. Para cada fila a la que desee acceder: a. Después de la última fila del conjunto de resultados Antes de la primera fila del conjunto de resultados previous absolute(int n) relative(int n)4. Si n<0 y m es el número de filas del conjunto de resultados. Si n<0 y x+n<1. en la fila que está n filas después de la fila actual. 5. Si la sentencia SELECT tiene parámetros de entrada. el controlador posiciona el cursor antes de la primera fila. debe invocar refreshRow solo cuando necesite ver los datos más recientes. invoque métodos setXXX para pasar valores a los parámetros de entrada. Suponga que m es el número de filas del conjunto de resultados y x es la fila actual del conjunto de resultados. este método posiciona el cursor en la última fila. este método posiciona el cursor después de la última fila si n es positivo. Si el cursor está antes de la primera fila o después de la última fila. isBeforeFirst o isAfterLast para obtener esa información. d. en la fila m+n+1 del conjunto de resultados. Si el cursor está situado después de la última fila del conjunto de resultados. isLast. 3. Invoque el método executeQuery para obtener la tabla de resultados de la sentencia SELECT en un objeto ResultSet. el controlador posiciona el cursor antes de la primera fila. Ejecute una o más de las operaciones siguientes: IBM Data Server Driver para JDBC y SQLJ para IDS 1-29 . Si necesita conocer la posición actual del cursor. isFirst.

El valor resultSetConcurrency del conjunto de resultados debe ser CONCUR_UPDATABLE para poder utilizar estos métodos. v Para suprimir la fila actual de la tabla subyacente. Para insertar una fila en un ResultSet. utilice métodos updateXXX para asignar valores de columna a la fila actual del conjunto de resultados.println("Employee number = " + s). // Cerrar el conjunto de resultados stmt.getString("EMPNO"). Statement stmt. ResultSet rs. // Cerrar la sentencia Figura 1-15. siga estos pasos: 1-30 IBM Data Server Driver para JDBC y SQLJ para IDS . utilice el método deleteRow. String s. La invocación de deleteRow hace que el controlador sustituya la fila actual del conjunto de resultados espacio vacío.executeQuery("SELECT EMPNO FROM EMPLOYEE FOR UPDATE OF PHONENO").updateString("PHONENO". ResultSet. Si decide no actualizar la tabla subyacente..close(). // Crear un objeto Statement // para un Resultset desplazable // y actualizable rs = stmt. stmt = con. 6."4657"). utilice métodos getXXX.updateRow().out.previous()) { // Retroceder el cursor s = rs.TYPE_SCROLL_SENSITIVE.CONCUR_UPDATABLE). v Para actualizar la fila actual de la tabla subyacente. Invoque el método close para cerrar el objeto ResultSet. 5. Luego utilice updateRow para actualizar la fila correspondiente de la tabla subyacente. Uso de un cursor desplazable 1 3 4a 4d 5 6 Inserción de una fila en un ResultSet de una aplicación JDBC: Si un ResultSet tiene el valor CONCUR_UPDATABLE para el atributo resultSetConcurrency. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente. y actualiza el número de teléfono para el número de empleado ″000010″. puede insertar filas en el ResultSet.close(). // Actualizar la fila } } rs. El valor resultSetConcurrency del conjunto de resultados debe ser CONCUR_UPDATABLE para utilizar este método.. invoque el método cancelRowUpdates en lugar del método updateRow.afterLast(). El código siguiente recupera todas las filas de la tabla de empleados en orden inverso. Invoque el método close para cerrar el objeto Statement o PreparedStatement.compareTo("000010") == 0) { // Buscar empleado 000010 rs. // Crear el conjunto de resultados rs. // Imprimir el valor de columna if (s. // Recuperar el número de empleado // (columna 1 de la tabla de // resultados) System. // Actualizar su número de teléfono rs.v Para recuperar datos de cada columna de la fila actual del objeto ResultSet. // Posicionar el cursor al final // del conjunto de resultados while (rs. . Connection con.createStatement(ResultSet.

updateString("ADMRDEPT". incluso si ResultSet. siga estos pasos: IBM Data Server Driver para JDBC y SQLJ para IDS 1-31 . 1b rs. Invoque ResultSet. "000010"). "TECHNICAL SUPPORT").moveToCurrentRow. "M13"). a.relative. se borran todos los valores del almacenamiento intermedio de inserción.1. la fuente de datos inserta el valor por omisión de la columna de la tabla asociada. rs.moveToCurrentRow para que mueva el cursor a la fila en el ResultSet que era la fila actual antes de que se realizase la operación de inserción.insertRow falla. ResultSet rs = stmt. rs. Efectúe los siguientes pasos para cada fila que desee insertar. se borran todos los valores antiguos del almacenamiento intermedio.moveToInsertRow para crear la fila que desea insertar.moveToCurrentRow(). rs. el código coloca el cursor donde se encontraba con anterioridad en el ResultSet de la operación de inserción. puede ser necesario conocer qué filas se insertaron. c.TYPE_SCROLL_SENSITIVE.insertRow(). Otra posibilidad es llamar a ResultSet. rs.CONCUR_UPDATABLE).moveToInsertRow(). 2. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente. ResultSet.updateString("DEPT_NO". se emite una SQLException cuando se inserta la fila en el ResultSet.insertRow para insertar la fila en el ResultSet. Si se asigna un valor nulo a una columna definida como NOT NULL. 1a rs. stmt = con. puede insertar filas en él.updateString("DEPTNAME".absolute. Después de insertar filas en un ResultSet. Después de que se haya insertado la fila. Después de llamar a ResultSet. Invoque métodos ResultSet. 2 Comprobación de si la fila actual se insertó en un ResultSet en una aplicación JDBC: Si un ResultSet es dinámico. Invoque el método ResultSet. al actualizar la tabla subyacente.executeQuery("SELECT * FROM DEPARTMENT"). 1c rs. Reposición del cursor dentro del ResultSet. el controlador JDBC emite una SQLException. b. como ResultSet. llame a cualquiera de los métodos que colocan el cursor en una fila específica. Para comprobar si la fila actual se ha insertado en un ResultSet.createStatement(ResultSet. Se debe asignar un valor como mínimo a una columna en el ResultSet.insertRow.updateString("MGRNO". Después de llamar a ResultSet. ResultSet.updateXXX para asignar valores a la fila que desea insertar. Ejemplo: el código que aparece a continuación muestra la forma en que insertar una fila en un ResultSet que está formado por todas las filas en la tabla DEPARTMENT de ejemplo. Si no se asigna un valor a una columna en el ResultSet. La fila se crea en un almacenamiento intermedio fuera del ResultSet.first. siempre se borran todos los valores del almacenamiento intermedio de inserción. "A00"). Si ya existe un almacenamiento intermedio de inserción. o ResultSet. Para mover el cursor desde la fila de inserción en el ResultSet. Si no se hace así.

. y definir una sentencia UPDATE o DELETE de posición de esta manera: UPDATE tabla SET col1=valor1. Invoque los métodos DatabaseMetaData.coln=valorN WHERE CURRENT OF nombre_cursor DELETE FROM tabla WHERE CURRENT OF nombre_cursor Si utiliza la técnica JDBC 1 para actualizar o suprimir datos en una fuente de datos que es compatible con FETCH de varias filas. 3.insertsAreDetected para determinar si el tipo dado de ResultSet puede detectar inserciones. Esto supone utilizar el método ResultSet. y el valor de la propiedad useRowsetCursor es true o no está definido. FETCH de varias filas Cuando utiliza un cursor desplazable para realizar una operación FETCH en una aplicación JDBC. invoque el método DatabaseMetaData. el IBM Data Server Driver para JDBC y SQLJ utiliza la operación FETCH de varias filas para recuperar las filas. Si el ResultSet puede detectar inserciones. La operación INSERT de varias filas puede proporcionar un mejor rendimiento que las sentencias INSERT individuales. la sentencia UPDATE o DELETE de posición podría actualizar o suprimir varias filas cuando solamente se desea actualizar o suprimir una fila individual..rowInserted para determinar si se ha insertado la fila actual. invoque el método ResultSet. No puede ejecutar una operación de inserción de varias filas mediante la inclusión de una sentencia INSERT de varias filas en una aplicación JDBC. UPDATE y FETCH sobre varias filas para las conexiones con fuentes de datos que son compatibles con esas operaciones. Operaciones de SQL sobre varias filas con el IBM Data Server Driver para JDBC y SQLJ: El IBM Data Server Driver para JDBC y SQLJ es compatible con las operaciones INSERT. el IBM Data Server Driver para JDBC y SQLJ utiliza la operación INSERT de varias filas para insertar las filas. INSERT de varias filas Cuando ejecuta un lote de sentencias INSERT y la fuente de datos es compatible con una operación INSERT de varias filas..getCursorName para obtener el nombre del cursor para ResultSet.ownInsertsAreVisible y DatabaseMetaData. puede realizar una de estas acciones: v Utilice un ResultSet actualizable para recuperar y actualizar una sola fila cada vez. Si las inserciones pueden ser visibles para el ResultSet.1. 2. La operación FETCH de varias filas puede proporcionar un mejor rendimiento que las sentencias FETCH individuales.othersInsertsAreVisible para determinar si las inserciones pueden ser visibles para el tipo dado de ResultSet. 1-32 IBM Data Server Driver para JDBC y SQLJ para IDS . si la fuente de datos es compatible con esa operación. UPDATE o DELETE de posición de varias filas El IBM Data Server Driver para JDBC y SQLJ es compatible con la ejecución de operaciones UPDATE o DELETE de posición que se ajustan al estándar JDBC 1. Para evitar actualizaciones o supresiones inesperadas.

Para una llamada a un procedimiento almacenado que reside en un servidor de bases de datos DB2 para z/OS. pero no expresiones.0. ’ABcde?z?’ X’C1C30427’.sql.sql.Types. IBM Data Server Driver para JDBC y SQLJ para IDS 1-33 .v Utilice la cláusula FOR ROW n OF ROWSET en las sentencia UPDATE o DELETE para especificar una fila determinada que se debe modificar o suprimir.Types. debe especificar los tipos de datos para los parámetros de salida.INTEGER java.Types. Tabla 1-4. o de entrada y salida de la sentencia CALL exactamente tal como están especificados en la definición del procedimiento almacenado.Types.23.VARBINARY java. Los pasos básicos para invocar procedimientos almacenados son: 1.VARCHAR Ejemplos -122. debe especificar los tipos de datos para los parámetros de entrada de la sentencia CALL exactamente tal como están especificados en la definición del procedimiento almacenado. 0.4295.DECIMAL java. Invoque el método Connection. los parámetros pueden ser marcadores de parámetros o literales. 40022. 40022. ’O’’Conner’. X’00CF18E0’ UX’0041’.setXXX para pasar valores a los parámetros de entrada (parámetros que se definen como IN en la sentencia CREATE PROCEDURE). +2723. invoque métodos contenidos en la clase CallableStatement. UX’0054006500730074’ 2. 10000000000 ’Grantham Lutz’. +2723E+15. Invoque el método CallableStatement.sql. Restricción: Los tipos de parámetros que están permitidos dependen de si la fuente de datos es compatible con la ejecución dinámica de la sentencia CALL. Llamada a procedimientos almacenados en aplicaciones JDBC Para llamar a procedimientos almacenados. Restricción: Si la fuente de datos no es compatible con la ejecución dinámica de la sentencia CALL.registerOutParameter para indicar qué parámetros son de solo salida (parámetros que se definen como OUT en la sentencia CREATE PROCEDURE) o cuáles son de entrada y salida (parámetros que se definen como INOUT en la sentencia CREATE PROCEDURE).prepareCall con la sentencia CALL como argumento para crear un objeto CallableStatement. Restricción: Si la fuente de datos no es compatible con la ejecución dinámica de la sentencia CALL. 3.12.VARCHAR java. La tabla siguiente lista los tipos de literales permitidos.Types. 0E0 -23. +27 23E12. Invoque los métodos CallableStatement.DOUBLE java.Types. 40022E-4.sql. DB2 para z/OS no es compatible con la ejecución dinámica de la sentencia CALL. 1E+23. Tipos de literales permitidos en los parámetros de las llamadas a procedimientos almacenados DB2 para z/OS Tipo de parámetro literal Entero Decimal de coma flotante Decimal de coma fija Carácter Hexadecimal Serie de caracteres Unicode Tipo de JDBC java.sql.sql. y sus correspondientes tipos de JDBC.

executeUpdate Invoque este método si el procedimiento almacenado no devuelve conjuntos de resultados.registerOutParameter (4. Restricción: Las fuentes de datos IDS no son compatibles con la obtención de varios conjuntos de resultados.prepareCall("CALL DSN8.4.registerOutParameter (2.close(). Types. recupere los conjuntos de resultados. CallableStatement.close para cerrar el objeto CallableStatement cuando termine de utilizar ese objeto.?. int ifcaret. // Invocar procedimiento almacenado 4 ifcaret = cstmt.?)").getInt(2). Restricción: Las fuentes de datos IBM Informix Dynamic Server (IDS) no son compatibles con la obtención de varios conjuntos de resultados. Ejemplo: el código de programa siguiente muestra la invocación de un procedimiento almacenado que tiene un solo parámetro de entrada.getInt(4).registerOutParameter (3.?. 5. Types. cstmt.DSN8ED2(?. String errbuff. xsbytes = cstmt.?.executeUpdate(). 6. cuatro parámetros de salida y ningún ResultSet devuelto.INTEGER). . 7.execute Invoque este método si el procedimiento almacenado devuelve varios conjuntos de resultados.. 7 1-34 IBM Data Server Driver para JDBC y SQLJ para IDS . Invoque los métodos CallableStatement. int xsbytes. Invoque uno de los métodos siguientes para llamar al procedimiento almacenado: CallableStatement. // Obtener valores de parámetros de salida 6 ifcareas = cstmt. Invoque el método CallableStatement. "DISPLAY THREAD(*)"). ResultSet rs. CallableStatement cstmt. cstmt. Si el procedimiento almacenado devuelve varios conjuntos de resultados..getXXX para recuperar valores a partir de los parámetros de salida (OUT) o entrada y salida (INOUT). Connection con. int ifcareas. 3 // Registrar parámetros de salida cstmt. cstmt. CallableStatement. 2 // Establecer parámetro de entrada (mandato DB2) cstmt.registerOutParameter (5.INTEGER).getInt(3).setString (1. errbuff = cstmt. cstmt.VARCHAR). Types. Types. cstmt = con.getString(5).INTEGER). o un número desconocido de conjuntos de resultados. Los números situados a la derecha de determinadas sentencias corresponden a pasos descritos anteriormente.executeQuery Invoque este método si el procedimiento almacenado devuelve un solo conjunto de resultados. 1 // Crear un objeto CallableStatement cstmt.

un localizador de LOB de una aplicación Java está asociado a una sola fuente de datos. Entre otras. v Si la fuente de datos es compatible con la modalidad continua progresiva: El controlador JDBC no tiene en cuenta el valor de fullyMaterializeLobData si la propiedad progressiveStreaming está establecida en YES (DB2BaseDataSource. los datos LOB se canalizarán.YES en un programa de aplicación) o la propiedad no está establecida. CLOB y DBCLOB de una tabla. No puede utilizar un mismo localizador de LOB para trasladar datos entre dos fuentes de datos diferentes. Como ocurre en cualquier otro lenguaje. Es muy recomendable que establezca este valor en false cuando recupere datos LOB que contengan grandes volúmenes de datos. y para invocar procedimientos almacenados o funciones definidas por el usuario con parámetros BLOB o CLOB. fullyMaterializeLobData no tiene ningún efecto sobre los parámetros de procedimientos almacenados. debe materializar los datos LOB cuando los recupera de una tabla de la primera fuente de datos y luego insertar esos datos en la tabla de la segunda fuente de datos. los datos LOB se materializarán completamente dentro del controlador JDBC cuando se capte una fila. Para trasladar datos LOB entre dos fuentes de datos.Datos LOB en aplicaciones JDBC con IBM Data Server Driver para JDBC y SQLJ El IBM Data Server Driver para JDBC y SQLJ es compatible con métodos para actualizar y recuperar datos de columnas BLOB. Si el valor es false. Operaciones de LOB con IBM Data Server Driver para JDBC y SQLJ: El IBM Data Server Driver para JDBC y SQLJ es compatible con métodos para actualizar y recuperar datos de columnas BLOB. y para invocar procedimientos almacenados o funciones definidas por el usuario con parámetros BLOB o CLOB. El efecto de fullyMaterializeLobData depende de si la fuente de datos es compatible con localizadores progresivos: v Si la fuente de datos no es compatible con localizadores progresivos: Si el valor de fullyMaterializeLobData es true. Debe utilizar localizadores de LOB solamente si la fuente de datos no es compatible con la modalidad continua progresiva. Localizadores de LOB con IBM Data Server Driver para JDBC y SQLJ: El IBM Data Server Driver para JDBC y SQLJ puede utilizar localizadores de LOB para recuperar datos de columnas LOB. Para hacer que JDBC utilice localizadores de LOB para recuperar datos de columnas LOB.NO en un programa de aplicación). El controlador utiliza localizadores internamente para recuperar datos LOB en forma de bloques a medida que sea necesario. El valor por omisión es true. establezca la propiedad fullyMaterializeLobData en false y establezca la propiedad progressiveStreaming en NO (DB2BaseDataSource. CLOB y DBCLOB de una tabla. puede ejecutar las operaciones siguientes sobre datos LOB cuando utiliza el IBM Data Server Driver para JDBC y SQLJ: v Especificar un BLOB o columna como argumento de los siguientes métodos ResultSet para recuperar datos de una columna BLOB o CLOB: IBM Data Server Driver para JDBC y SQLJ para IDS 1-35 .

el IBM Data Server Driver para JDBC y SQLJ lee los datos de entrada hasta que se acaban. Restricción: Con el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2. Tipos de datos Java para recuperar o actualizar datos de columnas LOB en aplicaciones JDBC: Cuando el controlador JDBC no puede determinar inmediatamente el tipo de datos de un parámetro que se utiliza con una columna LOB.getString. es necesario elegir un tipo de datos para el parámetro que sea compatible con el tipo de datos LOB. el IBM Data Server Driver para JDBC y SQLJ lee los datos de entrada hasta que se acaban. Para columnas CLOB: – setString – setAsciiStream – setCharacterStream – setObject. v Recuperar el valor de un parámetro CLOB de JDBC utilizando el método CallableStatement. 1-36 IBM Data Server Driver para JDBC y SQLJ para IDS .setXXX.Para columnas BLOB: – getBinaryStream – getBytes Para columnas CLOB: – getAsciiStream – getCharacterStream – getString v Invocar los métodos ResultSet siguientes para actualizar una columna BLOB o CLOB en un ResultSet actualizable: Para columnas BLOB: – updateBinaryStream – updateBlob Para columnas CLOB: – updateAsciiStream – updateCharacterStream – updateClob Si especifica -1 para el parámetro length en cualquiera de los métodos indicados anteriormente. Estas tareas adicionales de proceso pueden afectar al rendimiento del sistema. y el IBM Data Server Driver para JDBC y SQLJ procesa una llamada PreparedStatement. donde el valor del parámetro Object es Reader Si especifica -1 para length. donde el valor del parámetro Object es InputStream. no puede invocar un procedimiento almacenado que tenga parámetros DBCLOB OUT o INOUT. el controlador puede necesitar realizar tareas adicionales de proceso para determinar los tipos de datos. Cuando la propiedad deferPrepares tiene el valor ″true″. v Utilizar los métodos PreparedStatement siguientes para establecer los valores de parámetros que corresponden a columnas BLOB o CLOB: Para columnas BLOB: – setBytes – setBinaryStream – setObject.

Para esta llamada es necesario especificar la longitud exacta de los datos de entrada: java. (byte)0x2b.setObject(parmInd.ByteArrayInputStream es compatible con un tipo de datos BLOB.BLOB).length. java.Blob. cstmt. (byte)0x3c}.io.getBytes(parmIndex).sql.setClob(parmIndex. cstmt. el código siguiente permite recuperar un valor BLOB e insertarlo en una variable byte[]: cstmt. Por ejemplo. v Utilice una llamada CallableStatement. o parámetros de entrada/salida que se utilizan como entrada para columnas BLOB. – Un parámetro java.io.execute().Types. reader.sql. byteData.io.sql.CLOB).io. blobData).ByteArrayInputStream byteStream = new java. cstmt.registerOutParameter(parmIndex. Un objeto java.setObject que especifique que el tipo de datos de destino es BLOB: byte[] byteData = {(byte)0x1a. Parámetros de salida para columnas BLOB Para los parámetros de salida de columnas BLOB.io.setCharacterStream(parmIndex. que se corresponde exactamente con una columna BLOB: cstmt. v Utilice uno de los tipos siguientes de parámetros de entrada: – Un parámetro de entrada java. o parámetros de entrada/salida que se utilizan como entrada para columnas CLOB.sql.ByteArrayInputStream(byteData). int numBytes = byteData. java.Parámetros de entrada para columnas BLOB Para los parámetros de entrada de columnas BLOB. puede utilizar uno de los métodos siguientes: v Utilice una variable de entrada java.StringReader(charData). charData.StringReader reader = new java. Parámetros de entrada para columnas CLOB Para los parámetros de entrada de columnas CLOB.ByteArrayInputStream con una llamada CallableStatement. cstmt. o parámetros de entrada/salida que se utilizan como salida para columnas BLOB. puede utilizar uno de los métodos siguientes: v Utilice una variable de entrada java. cstmt.Types.setBinaryStream. charData.Types.ByteArrayInputStream con una llamada cstmt.setObject(parmInd.io. java.StringReader con una llamada cstmt. v Utilice un parámetro de entrada de tipo java. puede utilizar uno de los métodos siguientes: v Utilice la llamada CallableStatement.BLOB). byte[] byteData = cstmt.io. clobData).sql.setCharacterStream: java.registerOutParameter para especificar que un parámetro de salida es de tipo BLOB. byteStream.setBlob(parmIndex.Clob. numBytes).io. para datos ASCII: IBM Data Server Driver para JDBC y SQLJ para IDS 1-37 .setObject que especifique que el tipo de datos de destino es CLOB: String charData = "CharacterString".setBinaryStream(parmIndex.length). v Utilice una llamada CallableStatement. que se corresponde exactamente con una columna CLOB: cstmt. Luego puede recuperar el valor del parámetro e insertarlo en cualquier variable cuyo tipo de datos sea compatible con un tipo de datos BLOB.setAsciiStream.

el controlador JDBC asigna el tipo de datos CLOB a los datos de entrada. v Utilice la llamada CallableStatement. cstmt. el controlador JDBC asigna el tipo de datos CLOB a los datos de entrada. cstmt.getString(parmIndex). y especifique el tipo de datos de destino como VARCHAR o LONGVARCHAR: cstmt.Types. Esta técnica se debe utilizar solamente si sabe que la longitud de los datos recuperados es menor o igual que 32KB. Recuperación de claves de generación automática en aplicaciones JDBC Mediante el IBM Data Server Driver para JDBC y SQLJ. String charData = cstmt.execute(). cstmt.registerOutParameter para especificar que un parámetro de salida es de tipo VARCHAR o LONGVARCHAR: cstmt. Una columna SERIAL o SERIAL8 es una columna de tabla que proporciona un mecanismo para que la fuente de datos genere automáticamente un valor numérico para cada fila.getString(parmIndex). java. los datos se truncan. Puede definir una columna con el tipo de datos SERIAL o SERIAL8 en una sentencia CREATE TABLE o ALTER TABLE.setObject. 1-38 IBM Data Server Driver para JDBC y SQLJ para IDS . Una tabla no puede tener más de una columna de cada tipo.length).execute(). y el controlador JDBC no tiene información de DESCRIBE sobre el tipo de datos del parámetro. pero puede tener una columna de cada tipo.setObject(parmIndex.ByteArrayInputStream byteStream = new java. Si la longitud de los datos es mayor que 32KB.setString(charData).setAsciiStream(parmIndex. charData. Como alternativa. charDataBytes. Parámetros de salida para columnas CLOB Para los parámetros de salida de columnas CLOB. byteStream.VARCHAR). puede recuperar claves de generación automática (también llamadas claves auto-generadas) a partir de una tabla utilizando métodos de JDBC 3.registerOutParameter(parmIndex. java.io. puede utilizar uno de los métodos siguientes: v Utilice la llamada CallableStatement.sql. el código siguiente permite recuperar un valor CLOB e insertarlo en una variable de tipo String: cstmt.ByteArrayInputStream (charDataBytes). String charData = cstmt. En otro caso.sql. v Utilice un parámetro de entrada de tipo String con una llamada cstmt. Luego puede recuperar el valor del parámetro e insertarlo en cualquier variable cuyo tipo de datos sea compatible con un tipo de datos CLOB.sql. puede utilizar métodos específicos de IBM Data Server Driver para JDBC y SQLJ para recuperar las claves de generación automática. java.CLOB). java. Si la longitud de los datos es mayor que 32KB.getBytes("US-ASCII").io.VARCHAR). v Utilice un parámetro de entrada de tipo String con una llamada cstmt.setString: cstmt.Types.registerOutParameter(parmIndex.byte[] charDataBytes = charData. y el controlador JDBC no tiene información de DESCRIBE sobre el tipo de datos del parámetro.0.registerOutParameter para especificar que un parámetro de salida es de tipo CLOB. Para estas llamadas es necesario especificar la longitud exacta de los datos de entrada.Types. Por ejemplo. o parámetros de entrada/salida que se utilizan como salida para columnas CLOB.

Si el tipo de datos de la columna es SERIAL. las claves que se generan de forma automática en el ResultSet tienen un tipo de datos INT. La sentencia que se ejecuta debe ser una sentencia INSERT o un INSERT dentro de una sentencia SELECT. String [] nombresColumnas). Connection. especifique los nombres de las columnas para las que desee claves generadas automáticamente. Cuando utilice el segundo formato. invoque uno de estos formatos del método Connection. Cuando utilice el primer formato.executeUpdate: Statement.50 o posterior emite un SQLException cuando el usuario invoca un método addBatch o executeBatch para un objeto PreparedStatement que está preparado para devolver claves generadas automáticamente.executeUpdate(sentencia-sql. Statement. Statement.RETURN_GENERATED_KEYS).Para habilitar la recuperación de claves generadas automáticamente a partir de una tabla. es necesario que al insertar filas indique que deseará recuperar valores de claves generadas automáticamente.RETURN_GENERATED_KEYS).0. especifique si se deben devolver todas las claves generadas automáticamente. String [] nombresColumnas). Si el tipo de datos de la columna es IBM Data Server Driver para JDBC y SQLJ para IDS 1-39 . Cuando utilice el segundo formato.prepareStatement para crear un objeto PreparedStatement: Connection. De lo contrario. 2. Para recuperar claves generadas automáticamente a partir de una tabla utilizando métodos de JDBC 3. el controlador JDBC no tiene en cuenta el parámetro por el que se establece el distintivo. IBM Data Server Driver para JDBC y SQLJ Versión 3. Cuando utilice el tercer formato. especifique las posiciones en la tabla de las columnas para las que desee claves generadas automáticamente. Utilice uno de los métodos siguientes para indicar que desea obtener claves generadas automáticamente: v Si piensa utilizar el método PreparedStatement. especifique si se deben devolver todas las claves generadas automáticamente.prepareStatement(sentencias-sql. Statement.executeUpdate para insertar filas. v Si utiliza el método Statement. int [] Índicescolumna).prepareStatement(sentencia-sql. Statement. Statement. Cuando utilice el tercer formato. Restricción: No puede preparar una sentencia de SQL para la recuperación de claves generadas automáticamente y utilizar el objeto PreparedStatement para actualizaciones de proceso por lotes. especifique las posiciones en la tabla de las columnas para las que desee claves generadas automáticamente.executeUpdate(sentencia-sql. Invoque el método PreparedStatement. Utilice ResultSet.getGeneratedKeys o el método Statement. Para ello debe establecer un distintivo en una llamada de método Connection.getInt para recuperar los valores. debe seguir estos pasos: 1. especifique los nombres de las columnas para las que desee claves generadas automáticamente. Connection.executeUpdate(sentencia-sql.executeUpdate para insertar filas. Cuando utilice el primer formato.executeUpdate o Statement.prepareStatement. int [] Índicescolumna).prepareStatement(sentencia-sql.execute. invoque uno de estos formatos del método Statement.getGeneratedKeys para recuperar un objeto ResultSet que contiene los valores de claves generadas automáticamente.

’5555’)". // Crear ResultSet para consulta while (rs.sql.SERIAL8.getBigDecimal(1).ibm.math. " + "SERIALCOL SERIAL)"). Statement stmt.*.close(). stmt = con. // Crear tabla con columna de identidad stmt. PHONENO) " + 1 "VALUES (’000010’. Utilice ResultSet.close().executeUpdate( "CREATE TABLE EMP_PHONE (EMPNO CHAR(6). // Cerrar ResultSet stmt.jcc.math. El código de programa siguiente crea una tabla con una columna SERIAL. // Insertar una fila Statement. .*. Figura 1-16. // Recupera los valores 2 // generados automáticamente en un ResultSet.. java. Ejecute el método DB2Statement.0.next()) { java.getLong para recuperar los valores.. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente. y recupera el valor de la clave generada automáticamente para la columna SERIAL. las claves que se generan de forma automática en el ResultSet tienen un tipo de datos BIGINT. import com.BigDecimal serColVar = rs.RETURN_GENERATED_KEYS).getIDSSerial8 para recuperar las claves generadas automáticamente para la fila insertada. La utilización de estos métodos es una alternativa a la utilización de los métodos JDBC 3. Connection con. Ejecute una sentencia INSERT en una tabla que contenga columnas SERIAL o SERIAL8.executeUpdate("INSERT INTO EMP_PHONE (EMPNO.out. // Crear un objeto Statement stmt. 2. inserta una fila en la tabla.println("Valor de clave generada automáticamente = " + serColVar). PHONENO CHAR(4). 1. ResultSet rs.getGeneratedKeys(). // Obtener claves generadas // automáticamente System. import java.math. Ejemplo de recuperación de claves generadas automáticamente a partir de una tabla de IBM Informix Dynamic Server (IDS) import java.db2. Siga estos pasos para utilizar los métodos específicos de IBM Data Server Driver para JDBC y SQLJ para recuperar claves generadas automáticamente a partir de las fuentes de datos de IDS.*.createStatement(). // Indicar que desea claves // generadas automáticamente rs = stmt.getIDSSerial o DB2Statement. // Cerrar Statement Recuperación de claves de generación automática utilizando únicamente métodos IBM Data Server Driver para JDBC y SQLJ: The IBM Data Server Driver para JDBC y SQLJ proporciona un conjunto de métodos que puede utilizarse para recuperar automáticamente claves generadas (claves de generación automática) desde las bases de datos de IBM Informix Dynamic Server (IDS). } rs. 1-40 IBM Data Server Driver para JDBC y SQLJ para IDS .BigDecimal serColVar.

getIDSSerial().ibm.db2. . Ejemplo de recuperación de claves generadas automáticamente a partir de una tabla IDS utilizando métodos específicos de IBM Data Server Driver para JDBC y SQLJ import java. Los niveles de aislamiento de JDBC se pueden definir para una unidad de trabajo dentro del programa JDBC.math. // Cerrar ResultSet stmt.*. utilizando el método Connection. ’5555’)")..executeUpdate("INSERT INTO EMP_PHONE (EMPNO. y definir el nivel de aislamiento de las transacciones.*. // Cerrar Statement Control de transacciones en aplicaciones JDBC En las aplicaciones JDBC. IBM Data Server Driver para JDBC y SQLJ para IDS 1-41 . Figura 1-17. inserta una fila en la tabla y recupera el valor de la clave generada automáticamente para la columna de identidad. El nivel de aislamiento por omisión se puede establecer mediante la propiedad defaultIsolationLevel.getIDSSerial8 tiene el tipo de datos largo (long).createStatement(). stmt = con. Connection con.jcc. La tabla siguiente muestra los valores de level que puede especificar en el método Connection. // Insertar una fila int serColVar = ((com. 2 // Recuperar el valor de clave // generada automáticamente System. import java. El código de programa siguiente crea una tabla con una columna SERIAL.println("Valor de clave generada automáticamente = " + serColVar).setTransactionIsolation. Statement stmt.*. PHONENO) " + 1 "VALUES (’000010’.. rs.out.El valor devuelto para DB2Statement.getIDSSerial tiene el tipo de datos int.ibm.DB2Statement)stmt).jcc. // Crear tabla con columna de identidad stmt. import com. el control de transacciones supone la confirmación y retrotracción explícita o implícita de transacciones.setTransactionIsolation y sus equivalentes para el servidor de bases de datos. El valor devuelto para DB2Statement. " + "SERIALCOL SERIAL)").close(). // Crear un objeto Statement stmt.db2.executeUpdate( "CREATE TABLE EMP_PHONE (EMPNO CHAR(6). PHONENO CHAR(4). ResultSet rs. al igual que en otros tipos de aplicaciones SQL.close(). Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente. Niveles de aislamiento de IBM Data Server Driver para JDBC y SQLJ IBM Data Server Driver para JDBC y SQLJ es compatible con varios niveles de aislamiento. que corresponden a niveles de aislamiento del servidor de bases de datos.sql.

Modalidades de confirmación automática por omisión de JDBC La modalidad de confirmación automática depende de la fuente de datos a la que se conecta la aplicación JDBC. Para desactivar la modalidad de confirmación automática.setAutoCommit(true). para confirmar o retrotraer explícitamente transacciones. la modalidad de confirmación automática por omisión depende del tipo de la fuente de datos. Las conexiones que intervienen en transacciones distribuidas no pueden invocar el método setAutoCommit(true).sql.jcc. con. Valor por omisión de la confirmación automática para fuentes de datos IDS Para las conexiones con fuentes de datos IDS.db2. Por ejemplo: Connection con. Para activar la modalidad de confirmación automática.TRANSACTION_REPEATABLE_READ java. .commit().DB2Connection. la modalidad de confirmación automática por omisión es true.TRANSACTION_IDS_LAST_COMMITTED Lectura confirmada..Connection.sql. Cuando el usuario cambia el estado de la confirmación automática. Niveles de aislamiento equivalentes para JDBC e IDS Valor para JDBC java. última confirmada Confirmación o retrotracción de transacciones JDBC En JDBC. utilice los métodos commit o rollback. invoque el método Connection.Tabla 1-5. invoque el método Connection. Si la modalidad de confirmación automática (autocommit) está activada. 1-42 IBM Data Server Driver para JDBC y SQLJ para IDS . Para determinar si la modalidad de confirmación automática está activa. Mientras una conexión participa en una transacción distribuida.TRANSACTION_READ_COMMITTED java.db2.sql.Connection. el gestor de bases de datos ejecuta una operación de confirmación después de la ejecución de cada sentencia de SQL..Connection.TRANSACTION_READ_UNCOMMITTED Nivel de aislamiento para IBM Informix Dynamic Server (IDS) Lectura repetible Lectura repetible Lectura confirmada Lectura sucia com.TRANSACTION_IDS_CURSOR_STABILITY Estabilidad del cursor para IDS com. La tabla siguiente muestra los valores por omisión.sql.TRANSACTION_SERIALIZABLE java.getAutoCommit.jcc. el gestor de bases de datos ejecuta una operación de confirmación si la aplicación no se encuentra ya en un límite de transacción.Connection. Valor por omisión de la confirmación automática para fuentes de datos DB2 Para las conexiones con fuentes de datos DB2.ibm.ibm.DB2Connection. invoque el método Connection. la aplicación asociada no puede emitir los métodos commit o rollback.setAutoCommit(false).

Modalidad de confirmación automática para transacciones globales.getErrorCode recupera este valor.getNextException recupera este valor.Tabla 1-6. Modalidades de confirmación automática para fuentes de datos IDS Modalidad de confirmación automática para transacciones locales.getSQLState recupera este valor. De acuerdo con la especificación JDBC. SQLException. la SQLException engloba la excepción subyacente. El IBM Data Server Driver para JDBC y SQLJ proporciona las clases e interfaces siguientes. La interfaz DB2Diagnosable le proporciona más información sobre los errores producidos al acceder a la fuente de datos. SQLException.getMessage recupera este valor. DB2Diagnosable le proporciona la misma información que la clase SQLException estándar. Cuando un método JDBC emite una SQLException. SQLException.DB2Diagnosable específica del IBM Data Server Driver para JDBC y SQLJ amplía la clase SQLException. SQLException.db2. por lo que después de ejecutar sentencias de SQL es necesario invocar métodos para determinar si se han producido avisos.jcc. DB2Diagnosable La interfaz com. esa SQLException puede ser debida a la excepción Java subyacente que se produjo cuando el IBM Data Server Driver para JDBC y SQLJ procesó el método. y se puede utilizar el método SQLException. v Un puntero que indica la ubicación del objeto SQLException siguiente o un valor nulo. las cuales proporcionan información sobre errores y avisos.getCause para obtener información sobre el error. Si el controlador JDBC detecta un error. si el servidor IBM Data Server Driver para JDBC y SQLJ para IDS 1-43 . v Un objeto String que contiene el SQLSTATE o el valor nulo. un objeto SQLException contiene la información siguiente: v Un valor int que contiene un código de error.ibm. false No aplicable Tipo de fuente de datos Base de datos compatible con true ANSI Base de datos no compatible con ANSI sin registro cronológico Base de datos no compatible con ANSI con registro cronológico false true false Excepciones y avisos cuando se utiliza IBM Data Server Driver para JDBC y SQLJ En las aplicaciones JDBC. los errores de SQL emiten excepciones. Sin embargo. En este caso. que el usuario trata mediante bloques try/catch. Todos los métodos de JDBC emiten una instancia de SQLException cuando se produce un error durante la ejecución del método. v Un objeto String que contiene una descripción del error o el valor nulo. Los avisos de SQL no emiten excepciones. SQLException La clase SQLException para el manejo de errores.

aviso de SQL El IBM Data Server Driver para JDBC y SQLJ acumula avisos cuando las sentencias de SQL devuelven códigos de SQL positivos. un objeto SQLWarning puede contener también información específica de IDS. el manejo de errores para aplicaciones JDBC se realiza utilizando bloques try/catch. La invocación de getWarnings hace que se recupere un objeto SQLWarning.Throwable que causó la excepción SQLException o un valor nulo si ese objeto no existe. Cuando una llamada a ResultSet.next no devuelve ninguna fila. La información específica de IDS correspondiente a un objeto SQLWarning es la misma que la información específica de IDS correspondiente a un objeto SQLException. Manejo de una excepción de SQL cuando se utiliza IBM Data Server Driver para JDBC y SQLJ Al igual que ocurre en todos los programas Java. Los métodos emiten excepciones cuando se producen errores. el IBM Data Server Driver para JDBC y SQLJ no genera un SQLWarning. Estos son los pasos básicos para el manejo de una excepción SQLException en un programa JDBC que se ejecuta con el IBM Data Server Driver para JDBC y SQLJ: 1-44 IBM Data Server Driver para JDBC y SQLJ para IDS . printTrace Imprime información de diagnóstico.de bases de datos detecta el error. que proporcionan información adicional sobre el error: getSqlca Devuelve un objeto DB2Sqlca con la información siguiente: v Un código de error de SQL v Los valores SQLERRMC v El valor SQLERRP v Los valores SQLERRD v Los valores SQLWARN v El estado de SQL (SQLSTATE) getThrowable Devuelve el objeto java. DB2Diagnosable añade los métodos siguientes. y el código contenido en el bloque catch maneja esas excepciones. y cuando devuelven códigos de SQL iguales a 0 junto con estados de SQL distintos de cero. Importante: Cuando una llamada a Statement.lang.executeUpdate o PreparedStatement. al igual que ocurre con un objeto SQLException. el IBM Data Server Driver para JDBC y SQLJ genera un SQLWarning con el código de error +100.executeUpdate no repercute sobre las filas. Un objeto SQLWarning genérico contiene la información siguiente: v Un objeto String que contiene una descripción del aviso o el valor nulo v Un objeto String que contiene el SQLSTATE o el valor nulo v Un valor int que contiene un código de error v Un puntero que indica la ubicación del objeto SQLWarning siguiente o un valor nulo Cuando se utiliza el IBM Data Server Driver para JDBC y SQLJ.

ejecute el método com. import com.getSqlErrp para recuperar el valor SQLERRP.getSqlState para recuperar el valor SQLSTATE.io.getSqlErrd para recuperar los valores SQLERRD dentro de una matriz.DB2Diagnosable y a la clase com. 5) Invoque el método DB2Sqlca. 10) Invoque el método DB2Sqlca. En caso afirmativo: 1) Transforme el objeto en un objeto DB2Diagnosable.DB2Statement. DB2Statement.getSqlErrmcTokens para recuperar los valores SQLERRMC dentro de una matriz.db2.getNextException para recuperar la excepción SQLException siguiente. 8) Invoque el método DB2Sqlca.getSqlCode para recuperar un valor de código de error de SQL.db2.getSqlErrmc para recuperar una serie de caracteres que contiene todos los valores SQLERRMC. 4. En el bloque catch.getMessage para recuperar el texto del mensaje de error procedente de la fuente de datos. 3) Invoque el método DB2Diagnosable.printTrace para escribir toda la información sobre SQLException en un objeto java.getIDSSQLStatementOffSet para determinar las columnas con errores de sintaxis. o invoque el método DB2Sqlca. Compruebe si existe información específica de IBM Data Server Driver para JDBC y SQLJ comprobando si SQLException es una instancia de DB2Diagnosable. 3.getMessage. Opcional: Durante una conexión con una fuente de datos DB2 para z/OS o IBM Informix Dynamic Server (IDS).db2.getSqlca para recuperar el objeto DB2Sqlca. Coloque código que pueda generar una excepción SQLException en un bloque try. 2.getThrowable para determinar si un objeto java.ibm. 7) Invoque el método DB2Sqlca. Determine si ha recuperado la última excepción SQLException.ibm.DB2Sqlca. 2) Opcional: invoque el método DB2Diagnosable. En caso negativo.jcc.1.PrintWriter. ejecute los pasos siguientes en un bucle: a.db2. Invoque el método SQLException.DB2Diagnosable.ibm.Throwable asociado ha causado la excepción SQLException. establezca la propiedad setRetrieveMessagesFromServerOnGetMessage en true si desea obtener el texto de mensaje completo al invocar SQLException. 4) Invoque el método DB2Diagnosable. 6) Invoque el método DB2Sqlca. d.jcc.getIDSSQLStatementOffSet devuelve el desplazamiento dentro de la sentencia de SQL donde está situado el primer error de sintaxis. 9) Invoque el método DB2Sqlca.db2. 11) Invoque el método DB2Sqlca.DB2Sqlca. Proporcione al programa acceso a la interfaz com.jcc. c.ibm. IBM Data Server Driver para JDBC y SQLJ para IDS 1-45 .jcc.lang. Opcional: Para una sentencia de SQL que se ejecuta en una fuente de datos IDS.jcc. b.getSqlWarn para recuperar los valores SQLWARN dentro de una matriz. continúe en el paso siguiente.ibm. Puede calificar al completo todas las referencias a esos elementos o puede importarlos: import com.

DB2Diagnosable)sqle.DriverManager. // Definir propiedades para recuperar // texto de mensaje completo String user = "db2adm".getSqlCode().lang..ibm. // También se pueden recuperar // distintivos SQLERRMC individuales String sqlErrp = sqlca.Throwable throwable = diagnosable.. 4c1 diagnosable. 4c9 // Obtener campos SQLWARN String sqlState = sqlca. password) // Conectar con una fuente de datos DB2 para z/OS .getSqlErrd().PrintWriter printWriter.DB2Diagnosable diagnosable = (com.getMessage(). Proceso de una excepción de SQL cuando se utiliza el IBM Data Server Driver para JDBC y SQLJ import java. java. 4c7 // Obtener el valor SQLERRP int[] sqlErrd = sqlca.DB2Diagnosable.lang. // tal como mensaje o rastreo de pila. } catch(SQLException sqle) { while(sqle != null) { // Comprobar si existen más 4a // excepciones de SQL para procesar //=====> Proceso opcional de errores específicos de // IBM Data Server Driver para JDBC y SQLJ if (sqle instanceof DB2Diagnosable) { 4c // Comprobar si existe información específica de // IBM Data Server Driver para JDBC y SQLJ com.printTrace (printWriter.Connection con = java. 4c8 // Obtener campos SQLERRD char[] sqlWarn = sqlca. // Importar paquete de la API de JDBC import com. String password = "db2adm". 4c10 // Obtener SQLSTATE String errMessage = sqlca. } DB2Sqlca sqlca = diagnosable.db2.getSqlWarn().DB2Sqlca. // Importar paquetes para DB2 1 import com..sql. user.ibm.ibm. try { 3 // Código que podría generar excepciones de SQL . // Para volcar toda la información // de excepciones de SQL String url = "jdbc:ids://myhost:9999/myDB:" + 2 "retrieveMessagesFromServerOnGetMessage=true. ""). .sql.getSqlState()...getSqlErrp().db2.getConnection (url. error SQL 4c5 String sqlErrmc = sqlca..getSqlErrmc().".jcc. Los números situados a la derecha de determinadas sentencias corresponden a pasos descritos anteriormente.io.Throwable.ibm.getSqlca(). 4c6 // Obtener el valor SQLERRMC completo String[] sqlErrmcTokens = sqlca. 4c2 java. 4c11 1-46 IBM Data Server Driver para JDBC y SQLJ para IDS . 4c4 // Obtener objeto DB2Sqlca if (sqlca != null) { // Comprobar que DB2Sqlca no es nulo int sqlCode = sqlca.jcc. // Soporte de SQLException java.sql.*.jcc.db2. 4c3 if (throwable != null) { // Extraer información sobre java.El código de programa siguiente muestra cómo obtener información específica de IBM Data Server Driver para JDBC y SQLJ a partir de un SQLException proporcionado con IBM Data Server Driver para JDBC y SQLJ.getThrowable().db2. Figura 1-18.getSqlErrmcTokens(). // Obtener cód.jcc.

System.println ("--------------. CallableStatement y ResultSet contienen métodos getWarnings. i< sqlErrmcTokens.err.SQLCA ---------------").println ("Código de error: " + sqlCode).err. Statement.length.err.err.out.err.err.// Obtener mensaje de error System. // Este código imprime Desplazamiento // de error : 10 } Manejo de un aviso de SQL cuando se utiliza IBM Data Server Driver para JDBC y SQLJ A diferencia de los errores de SQL. // Porción de excepción de SQL } sqle=sqle. // Recup.println ("SQLSTATE: " + sqlState).createStatement(). En lugar de ello. i++) { System. stmt. try { stmt = con. .println (" token " + i + ": " + sqlErrmcTokens[i]). System.execute("select * fro tab1"). los avisos de SQL no hacen que los métodos de JDBC emitan excepciones..err.println ( "SQLWARN1: " + sqlWarn[0] + "\n" + "SQLWARN2: " + sqlWarn[1] + "\n" + "SQLWARN3: " + sqlWarn[2] + "\n" + "SQLWARN4: " + sqlWarn[3] + "\n" + "SQLWARN5: " + sqlWarn[4] + "\n" + "SQLWARN6: " + sqlWarn[5] + "\n" + "SQLWARN7: " + sqlWarn[6] + "\n" + "SQLWARN8: " + sqlWarn[7] + "\n" + "SQLWARN9: " + sqlWarn[8] + "\n" + "SQLWARNA: " + sqlWarn[9] ). PreparedStatement. // Esta sentencia tiene un error de // sintaxis en el desplazamiento 10 } catch (SQLException e) { System.println ( "SQLERRD(1): " + sqlErrd[0] + "\n" + "SQLERRD(2): " + sqlErrd[1] + "\n" + "SQLERRD(3): " + sqlErrd[2] + "\n" + "SQLERRD(4): " + sqlErrd[3] + "\n" + "SQLERRD(5): " + sqlErrd[4] + "\n" + "SQLERRD(6): " + sqlErrd[5] ).println ("Mensaje de error de servidor: " + errMessage). System. System. las clases Connection.getNextException(). excepción SQL siguiente } } 4d El código de programa siguiente muestra cómo obtener la ubicación de un error de sintaxis en una sentencia de SQL a partir de SQLException. System. } } System.println ( "SQLERRP: " + sqlErrp )..println ("SQLERRMC: " + sqlErrmc). IBM Data Server Driver para JDBC y SQLJ para IDS 1-47 . Statement stmt=null.err.println ("Desplazamiento de error :"+ ((DB2Statement) stmt). que es necesario invocar después de ejecutar sentencias de SQL para determinar si se han producido avisos de SQL.getIDSSQLStatementOffSet()). If (sqlErrmcTokens != null) { for (int i=0. System.err.

d.getMessage para obtener la descripción del aviso. Invoque el método SQLWarning. Si desea recibir un texto de mensaje completo procedente de una fuente de datos DB2 para z/OS o IBM Informix Dynamic Server (IDS) al ejecutar llamadas a SQLWarning. 1-48 IBM Data Server Driver para JDBC y SQLJ para IDS . establezca la propiedad setRetrieveMessagesFromServerOnGetMessage en true. siga los mismos pasos que realiza para obtener información específica de IDS para un SQLException. Si desea recibir información de aviso específica de IDS.getSQLState para obtener el valor SQLSTATE. Los números situados a la derecha de determinadas sentencias corresponden a pasos descritos anteriormente. defina las propiedades que afectan a los objetos SQLWarning. El código siguiente muestra cómo obtener información genérica sobre SQLWarning. c. 3.getErrorCode para obtener el valor del código de error. b.getMessage. Inmediatamente después de invocar un método para conectar con un servidor de bases de datos o ejecutar una sentencia de SQL. f. Ejecute en bucle los pasos siguientes: a. Invoque el método SQLWarning. Invoque el método SQLWarning. invoque el método getWarnings para recuperar un objeto SQLWarning. Opcional: Durante la conexión con el servidor de bases de datos. continúe en el paso siguiente. En caso negativo. Invoque el método SQLWarning. 2.Estos son los pasos básicos para recuperar información de aviso de SQL: 1. Determine si el objeto SQLWarning es nulo.getNextWarning para recuperar el objeto SQLWarning siguiente. e.

ResultSet rs. Ejemplo de proceso de un aviso de SQL Recuperación de información de una excepción BatchUpdateException Cuando se produce un error durante la ejecución de una sentencia de un lote de sentencias.executeQuery("SELECT * FROM EMPLOYEE")..println ("SQLSTATE: " + sqlwarn.getConnection (url. Utilice el método BatchUpdateException.out. el proceso continúa. Utilice los métodos getMessage. Utilice el método BatchUpdateException. IBM Data Server Driver para JDBC y SQLJ para IDS 1-49 . Para recuperar información de la excepción BatchUpdateException.EXECUTE_FAILED Este valor se devuelve si la sentencia no se ha ejecutado satisfactoriamente. // Definir propiedades para recuperar // texto de mensaje completo String user = "idsadm".sql. Pero executeBatch emite una excepción BatchUpdateException. obtener e 3a // imprimir información de aviso System..getNextWarning().println(" SQLMESSAGE : " + warn.createStatement().println ("Código de error: " + sqlwarn. // Obtener tabla de resultados de la consulta sqlwarn = stmt. 3c System. Un elemento tiene uno de los valores siguientes: n El número de filas que la sentencia ha actualizado.println ("Descripción del aviso: " + sqlwarn. 3.getNextException para obtener una excepción SQLException encadenada.getMessage ()).".Connection con = java. password) // Conectar con fuente de datos IDS SQLWarning warn = con. while (warn != null) { System.out.getErrorCode()). // Obtener aviso de SQL siguiente 3f } Figura 1-19.String url = "jdbc:ids://myhost:9999/informixdb:" + "retrieveMessagesFromServerOnGetMessage=true. 1 Statement stmt.getSQLState()). SQLWarning sqlwarn. 3d sqlwarn=sqlwarn.getNextWarning().getUpdateCounts para determinar el número de filas que cada sentencia de SQL del lote ha actualizado antes de que se produjera la excepción. el estado de SQL y el código de error correspondientes al primer error. Statement. warn = warn. Statement. java.out. user. stmt = con. 2. String password = "idsadm". getSQLState y getErrorCode de SQLException para obtener la descripción del error.SUCCESS_NO_INFO Este valor se devuelve si no se puede determinar el número de filas actualizado. siga estos pasos: 1.out. 3b System.DriverManager.sql. // Crear un objeto Statement rs = stmt. // Obtener avisos producidos 2 while (sqlwarn != null) { // Mientras haya avisos.getWarnings().getWarnings().getMessage()). . getUpdateCount devuelve una matriz con un elemento por cada sentencia del lote.

err.getErrorCode()). De esta manera se libera inmediatamente la base de datos y los recursos JDBC del objeto Connection.4.println(" Message: " + buex.println(" SQLSTATE: " + ex.close(). es necesario que la conexión se encuentre en un límite de unidad de trabajo para poder cerrar la conexión.getUpdateCounts().println(" Error code: " + buex. . es esencial que cierre la conexión con la fuente de datos. System.getSQLState()).err.err. Para cerrar la conexión con la fuente de datos. 2 System. System.err.println(" Error code: " + ex.println("Contents of BatchUpdateException:").err. es necesario que la conexión se encuentre en un límite de unidad de trabajo para poder cerrar la conexión. 1 for (int i = 0. ex = ex. i++) { System. } } Figura 1-20. Para una conexión con una fuente de datos DB2.getErrorCode()). } System. System.println(" Message: " + ex. int [] updateCounts = buex. try { // Actualizaciones por lotes } catch(BatchUpdateException buex) { System.getNextException().getNextException(). 3 while (ex != null) { 4 System. Los números situados a la derecha de determinadas sentencias corresponden a pasos descritos anteriormente.println("SQL exception:"). Por ejemplo: Connection con.. i < updateCounts. Para una conexión con una base de datos IBM Informix Dynamic Server. Recuperación de los campos de una excepción BatchUpdateException Desconexión respecto de fuentes de datos en aplicaciones JDBC Una vez finalizada una conexión con una fuente de datos.length.err. con. utilice el método close. SQLException ex = buex. si la base de datos es compatible con el registro cronológico y la modalidad de confirmación automática no está activa.err.getMessage()). getSQLState. System. 1-50 IBM Data Server Driver para JDBC y SQLJ para IDS .err. Ejecute en bucle las llamadas de método getMessage.err. getErrorCode y getNextException para obtener información sobre una excepción SQLException y obtener la siguiente excepción SQLException.println(" Statement " + i + ":" + updateCounts[i]).err.println(" SQLSTATE: " + buex. El siguiente fragmento de código de programa muestra cómo obtener los campos de una excepción BatchUpdateException y los objetos encadenados SQLException. si la modalidad de confirmación automática no está activa.getSQLState()).getMessage())..println(" Update counts: "). System.

y está creando y desplegando sus propios objetos DataSource. Si el servidor no admite CLEAR_TEXT_PASSWORD_SECURITY pero sí admite ENCRYPTED_USER_AND_PASSWORD_SECURITY. Soporte de servidor de bases de datos para mecanismos de seguridad de IBM Data Server Driver para JDBC y SQLJ Mecanismo de seguridad DB2 Database para Linux. 1 Válido para DB2 para z/OS Sí Sí Sí Sí Sí Sí Sí IBM Informix Dynamic Server Sí Sí Sí No Sí No No Sí Sí Sí Sí Sí No Sí Sí Sí Sí No No No La tabla siguiente lista los mecanismos de seguridad que se pueden utilizar con IBM Data Server Driver para JDBC y SQLJ. Disponible solo para el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. puede seleccionar un mecanismo de seguridad especificando un valor para la propiedad securityMechanism. y las fuentes de datos que son compatibles con esos mecanismos de seguridad. defina securityMechanism en un objeto java.Properties. v Si utiliza la interfaz DataSource.Seguridad cuando se utiliza IBM Data Server Driver para JDBC y SQLJ Cuando utiliza el IBM Data Server Driver para JDBC y SQLJ. UNIX y Windows ID de usuario y contraseña ID de usuario solamente ID de usuario y contraseña cifrada ID de usuario cifrado ID de usuario cifrado y contraseña cifrada ID de usuario cifrado y datos cifrados sensibles a la seguridad ID de usuario cifrado. El mecanismo de seguridad por omisión es CLEAR_TEXT_PASSWORD_SECURITY. el IBM Data Server Driver para JDBC y SQLJ actualiza el mecanismo de seguridad a IBM Data Server Driver para JDBC y SQLJ para IDS 1-51 . Tabla 1-7.getDB2SecurityMechanism. y el valor que debe especificar para la propiedad securityMechanism correspondiente a cada mecanismo de seguridad.util. contraseña cifrada y datos cifrados sensibles a la seguridad Kerberos1 Plugin Nota: 1. Puede definir esta propiedad de una de las maneras siguientes: v Si utiliza la interfaz DriverManager. invoque el método DataSource.Properties antes de invocar la modalidad del método getConnection que hace uso del parámetro java.setSecurityMechanism después de crear un objeto DataSource. Puede determinar el mecanismo de seguridad que está en vigor para una conexión invocando el método DB2Connection. La tabla siguiente lista los mecanismos de seguridad que se pueden utilizar con IBM Data Server Driver para JDBC y SQLJ.util.

String url = "jdbc:ids://mvs1.getConnection(url.USER_ONLY_SECURITY DB2BaseDataSource.sj. // Definir contraseña url = "jdbc:ids://mvs1. // Establecer URL para fuente de datos Connection con = DriverManager.com:5021/san_jose". Por ejemplo: import . contraseña cifrada y datos cifrados sensibles a la seguridad Kerberos Plugin DB2BaseDataSource. uno de los métodos de seguridad disponibles es la seguridad basada en ID de usuario y contraseña. Tabla 1-8. id.ENCRYPTED_USER_AND_PASSWORD_SECURITY y trata de conectarse al servidor.CLEAR_TEXT_PASSWORD_SECURITY DB2BaseDataSource. // Crear conexión Otro método consiste en definir el ID de usuario y la contraseña directamente en la serie de caracteres del URL.getConnection.ibm.ENCRYPTED_USER_AND_PASSWORD_SECURITY ID de usuario cifrado y datos cifrados DB2BaseDataSource.getConnection(url).com:5021/san_jose:user=dbadm. // Base JDBC .ENCRYPTED_USER_ONLY_SECURITY DB2BaseDataSource.PLUGIN_SECURITY Seguridad basada en ID de usuario y contraseña cuando se utiliza IBM Data Server Driver para JDBC y SQLJ Cuando se utiliza IBM Data Server Driver para JDBC y SQLJ... Mecanismos de seguridad soportados por el IBM Data Server Driver para JDBC y SQLJ Mecanismo de seguridad ID de usuario y contraseña ID de usuario solamente ID de usuario y contraseña cifrada ID de usuario cifrado ID de usuario cifrado y contraseña cifrada Valor de la propiedad securityMechanism DB2BaseDataSource. // Base JDBC id = "dbadm".ibm.".password=dbadm. utilice una de las técnicas siguientes..sql. y luego invocar la modalidad del método getConnection que hace uso del objeto Properties como parámetro. puede establecer el ID de usuario y la contraseña definiendo las propiedades user y password en un objeto Properties.. // Definir ID de usuario pw = "dbadm".ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY DB2BaseDataSource. // Crear conexión Como alternativa.KERBEROS_SECURITY DB2BaseDataSource.*. pw). String String String java.sj. Para la interfaz DriverManager: puede especificar el ID de usuario y la contraseña directamente en la invocación de DriverManager. Cualquier otra discrepancia en el soporte del mecanismo de seguridad entre el solicitante y el servidor da como resultado un error.ENCRYPTED_USER_AND_DATA_SECURITY sensibles a la seguridad ID de usuario cifrado. Por ejemplo: import java. // Establecer URL para fuente de datos Connection con = DriverManager.*.ENCRYPTED_PASSWORD_SECURITY DB2BaseDataSource. 1-52 IBM Data Server Driver para JDBC y SQLJ para IDS .sql. Para especificar la seguridad basada en ID de usuario y contraseña para una conexión JDBC.

CLEAR_TEXT_PASSWORD_SECURITY). // Definir ID de usuario para conexión properties. Properties properties = new java.ibm.put("securityMechanism".getConnection.db2. "dbadm"). pw).ibm. // Definir contraseña Connection con = ds. "dbadm").setPassword después de crear el objeto DataSource.db2.ibm. // Crear conexión Como alternativa. Por ejemplo: import java.. Por ejemplo: .setServerName("mvs1. Opcionalmente. // Crear contexto para JNDI DataSource ds=(DataSource)ctx.setPortNumber(5021)..lookup("jdbc/sampledb").getConnection(url.CLEAR_TEXT_PASSWORD_SECURITY + "")).com"). // Establecer ubicación ds.jcc. Para especificar la seguridad basada en un ID de usuario para una conexión JDBC.*. // Establecer contraseña ds.DB2BaseDataSource.ibm.put("user". puede definir la propiedad securityMechanism para indicar que está utilizando la seguridad basada en un ID de usuario y contraseña. utilice una de las técnicas siguientes..com:5021/san_jose".*.db2.ibm. // Establecer URL para fuente de datos Connection con = DriverManager.Properties().ibm.Opcionalmente. // Crear conexión Para la interfaz DataSource: puede especificar el ID de usuario y la contraseña directamente en la invocación de DataSource. new String("" + com. // Establecer mecanismo de seguridad como // basado en ID de usuario y contraseña Seguridad mediante los ID de usuario cuando se utiliza IBM Data Server Driver para JDBC y SQLJ Cuando se utiliza IBM Data Server Driver para JDBC y SQLJ.setUser("dbadm").ibm. // Establecer ID de usuario ds.. // Establecer nombre de servidor ds.db2. // Definir contraseña para conexión properties. import com. com. uno de los métodos de seguridad disponibles es la seguridad mediante los ID de usuario.ibm.*.put("password". properties).jcc.DB2BaseDataSource. // JDBC base // Implementación de IBM Data Server // Driver para JDBC y SQLJ de JDBC .setUser y DataSource. import com.sql. ds. IBM Data Server Driver para JDBC y SQLJ para IDS 1-53 . Por ejemplo: import java. // Definir ID de usuario String pw = "dbadm".sql.DB2SimpleDataSource().jcc.jcc. // Establecer tipo de controlador ds.setDriverType(4). puede establecer el ID de usuario y la contraseña invocando los métodos DataSource.jcc.setDatabaseName("san_jose"). // Establecer número de puerto ds.*.DB2SimpleDataSource ds = // Crear objeto DB2SimpleDataSource new com. Context ctx=new InitialContext().setSecurityMechanism para indicar que está utilizando la seguridad basada en un ID de usuario y contraseña. // Establecer mecanismo de seguridad como // basado en ID de usuario y contraseña String url = "jdbc:ids://mvs1. // JDBC base // Implementación de IBM Data Server // Driver para JDBC y SQLJ de JDBC . puede invocar el método DataSource.. si crea y despliega el objeto DataSource. // Crear objeto Properties properties. // Obtener objeto DataSource String id = "dbadm".sj.setSecurityMechanism( com.sj.util.db2..db2.setPassword("dbadm").getConnection(id.jcc.

// // // // Base JDBC Implementación de IBM Data Server Driver para JDBC y SQLJ de JDBC .setUser("db2adm").ibm. seguridad por ID de usuario cifrado o seguridad por ID de usuario cifrado y contraseña cifrada cuando se utiliza IBM Data Server Driver para JDBC y SQLJ IBM Data Server Driver para JDBC y SQLJ es compatible con la seguridad por contraseña cifrada. // Establecer nombre de servidor db2ds.db2..db2. Properties properties = new Properties(). // Definir la ubicación db2ds.. // Definir número de puerto db2ds.jcc. establezca el ID de usuario y el mecanismo de seguridad invocando los métodos DataSource.setServerName("mvs1. // Establecer mecanismo de seguridad // sólo de ID de usuario Seguridad por contraseña cifrada. la seguridad por ID de usuario cifrado o la contraseña por ID de usuario cifrado y contraseña cifrada para acceder a fuentes de datos.sj.ibm.put("user". // Crear un objeto Properties properties.ibm.com").DB2BaseDataSource.jar) esté instalado en el cliente. "db2adm"). Para especificar el mecanismo de seguridad basado en un ID de usuario cifrado o contraseña cifrada para una conexión JDBC.jcc.db2.ibm.ibm.sj. Por ejemplo: import java. // Definir ID de usuario db2ds. // // // // JDBC base Implementación de IBM Data Server Driver para JDBC y SQLJ de JDBC .*.setSecurityMechanism( com.. Por ejemplo: import java.USER_ONLY_SECURITY + "")). y luego invoque la modalidad del método getConnection que hace uso del objeto Properties como parámetro. // Definir ID de usuario para la conexión properties.DB2BaseDataSource.ibm.com:5021/san_jose".jcc..db2. // Crear objeto DB2SimpleDataSource db2ds. Las conexiones con servidores IBM Informix Dynamic Server (IDS) pueden utilizar seguridad por contraseña cifrada o seguridad por ID de usuario cifrado y contraseña cifrada.jcc.jcc. // Establecer URL para fuente de datos Connection con = DriverManager.DB2SimpleDataSource db2ds = new com. Para la seguridad por contraseña cifrada o la seguridad por ID de usuario cifrado y contraseña cifrada.ibm.DB2SimpleDataSource(). utilice una de las técnicas siguientes. new String("" + com.db2.getConnection(url.setDriverType(4).sql.*. 1-54 IBM Data Server Driver para JDBC y SQLJ para IDS .setUser y DataSource.*.setPortNumber(5021). properties). // Crear la conexión Para la interfaz DataSource: si crea y despliega el objeto DataSource. import com. com. // Definir tipo de controlador db2ds. es necesario que IBM Java Cryptography Extension (ibmjceprovidere. import com.USER_ONLY_SECURITY). // Establecer mecanismo de seguridad // en ID de usuario solamente String url = "jdbc:ids://mvs1.db2.put("securityMechanism".setSecurityMechanism después de crear el objeto DataSource.*.Para la interfaz DriverManager: establezca el ID de usuario y el mecanismo de seguridad definiendo las propiedades user y securityMechanism en un objeto Properties.setDatabaseName("san_jose").ibm.jcc.sql.

ibm.*. utilice un código como el siguiente para establecer el mecanismo de seguridad basado en un ID de usuario y una contraseña cifrada: import java.db2. "dbadm").DB2SimpleDataSource ds = new com. // Definir contraseña para conexión properties.ibm.ibm.setDriverType(4). IBM Data Server Driver para JDBC y SQLJ para IDS 1-55 .sql.jcc. y luego invoque la modalidad del método getConnection que hace uso del objeto Properties como parámetro. // Establecer el tipo de controlador ds.DB2BaseDataSource. new String("" + com.setDatabaseName("san_jose"). la contraseña y el mecanismo de seguridad definiendo las propiedades user..Para la interfaz DriverManager: establezca el ID de usuario.DB2BaseDataSource..sj.jcc.*. // Establecer URL para fuente de datos Connection con = DriverManager. // Establecer mecanismo de seguridad como // de ID usuario y contraseña cifrada String url = "jdbc:ids://mvs1.put("password".getConnection(url.setServerName("mvs1.ENCRYPTED_PASSWORD_SECURITY).ibm.setPassword("db2adm"). // Establecer nombre de servidor ds.put("user".db2.db2.ibm. // Crear un objeto Properties properties. Debe ejecutar los programas de utilidad de rastreo y diagnóstico sólo bajo la dirección del soporte de software de IBM..setSecurityMechanism( com. import com.ibm. // Establecer número de puerto ds. puede definir el ID de usuario. DataSource.setUser("db2adm"). Por ejemplo.com").ibm.setPassword y DataSource.sj. // Establecer contraseña ds.*.db2. import com. com.setPortNumber(5021).setSecurityMechanism después de crear el objeto DataSource. // Establecer ubicación ds. // Crear la conexión Para la interfaz DataSource: si crea y despliega el objeto DataSource. password y securityMechanism en un objeto Properties.jcc.DB2SimpleDataSource(). // Base JDBC // Implementación de IBM Data Server // Driver para JDBC y SQLJ de JDBC .setUser.jcc. recoja datos de rastreo y ejecute programas de utilidad para formatear los datos de rastreo. Por ejemplo.com:5021/san_jose".*. Properties properties = new Properties().. // Definir ID de usuario para conexión properties.jcc.put("securityMechanism". // Crear el objeto DataSource ds.sql.ibm.jcc. utilice un código como el siguiente para establecer el mecanismo de seguridad basado en un ID de usuario cifrado y una contraseña cifrada: import java. // Establecer mecanismo de seguridad como // de ID usuario y contraseña cifrada Diagnóstico de problemas con IBM Data Server Driver para JDBC y SQLJ Para obtener datos para diagnosticar problemas de JDBC mediante IBM Data Server Driver para JDBC y SQLJ. properties). contraseña y mecanismo de seguridad invocando los métodos DataSource. // Base JDBC // Implementación de IBM Data Server // Driver para JDBC y SQLJ de JDBC .ENCRYPTED_PASSWORD_SECURITY + "")).db2. // Establecer el ID de usuario ds.db2. "dbadm").

sql. el método recomendado es iniciar el rastreo estableciendo la propiedad db2. invoque el método javax.". 2.TRACE_DRDA_FLOWS + ". Si la aplicación no puede manejar objetos java. lleve a cabo el procedimiento siguiente para iniciar el rastreo: 1.override. invoque el método DB2BaseDataSource.setJccLogWriter. Invoque el método DB2BaseDataSource.db2. puede utilizar la propiedad traceFile para especificar el destino de la salida del rastreo." + "traceLevel=" + com.setJccLogWriter para especificar el destino del rastreo y activar el rastreo. establezca la propiedad logWriter en null y establezca la propiedad traceFile con el nombre del archivo en que el controlador graba los datos del rastreo. TRACE_ALL es el único nivel de rastreo disponible. El nivel de rastreo por omisión es TRACE_ALL. Procedimiento 3: Si utiliza la interfaz DataSource para conectar con una fuente de datos.DataSource.io.traceDirectory en el archivo de propiedades de configuración de IBM Data Server Driver para JDBC y SQLJ.setLogWriter para activar el rastreo.com:5021/san_jose" + ":traceFile=/u/db2p/jcctrace.override. Para desactivar el rastreo.PrintWriter. Procedimiento 2: 1. Si el archivo ya existe. puede desactivar el rastreo o volverlo a activar. Procedimiento 4: Si está utilizando la interfaz DriverManager.ibm. Consulte ″Propiedades de IBM Data Server Driver para JDBC y SQLJ″ para obtener información sobre cómo especificar más de un tipo de rastreo. Consulte ″Propiedades de IBM Data Server Driver para JDBC y SQLJ″ para obtener información sobre cómo especificar más de un tipo de rastreo. 2. Para utilizar la propiedad traceFile. Si utiliza la interfaz DataSource para conectar con una fuente de datos.setLogWriter para especificar el destino del rastreo y activar el rastreo.Recogida de datos de rastreo de JDBC Utilice uno de los procedimientos siguientes para iniciar el rastreo: Procedimiento 1: Para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. 1-56 IBM Data Server Driver para JDBC y SQLJ para IDS .setTraceLevel para definir el tipo de rastreo que necesite. Invoque el método DriverManager.jcc. Por ejemplo: String url = "jdbc:ids://sysmvs1. Después de que se establezca una conexión.stl.getConnection con la propiedad traceLevel establecida en el parámetro info o en el parámetro url para el tipo de rastreo que necesita. Con este método. La propiedad logWriter es un objeto de tipo java. cambiar el destino del rastreo o cambiar el nivel de rastreo mediante el método DB2Connection. Si utiliza la interfaz DriverManager para conectar con una fuente de datos. el controlador lo sobregraba.DB2BaseDataSource.jcc.PrintWriter.io.traceFile o la propiedad db2.ibm. especifique las propiedades traceFile y traceLevel como parte del URL cuando cargue el controlador. Se tiene que poder grabar en este archivo y en el directorio en que reside. establezca el valor de logWriter en null. El nivel de rastreo por omisión es TRACE_ALL. Invoque el método DriverManager.jcc.

Por lo tanto. el cual utiliza el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4.jcc. v Si los archivos de rastreo que tienen los mismos nombres ya existen.jcc. el controlador crea un objeto logWriter global para la salida del rastreo.propertiesFile=/Test/jcc. La clase DB2TraceManager proporciona la capacidad para suspender y reanudar el rastreo de cualquier tipo de programa de registro cronológico.jcc.jcc. cree un archivo con dichos valores y. Para ello.java crea dos conexiones para un DataSource. no por db2. Suponga que el archivo que contiene los valores es /Test/jcc. Test. Ejemplo de inicio de un rastreo utilizando propiedades de configuración: Para ver un ejemplo completo de cómo utilizar parámetros de configuración para recoger datos de rastreo.java.jcc.propertiesFile. Aunque Test1. vea ″Ejemplo de un programa de rastreo que se ejecuta bajo IBM Data Server Driver para JDBC y SQLJ″. los valores del programa prevalecerán sobre los valores de las propiedades de configuración. los datos del rastreo se añadirán a éstos.override. Ejemplo de utilización de propiedades de configuración para iniciar un rastreo de JDBC Puede controlar el rastreo de aplicaciones JDBC sin modificar esas aplicaciones.java. Suponga que desea reunir datos de rastreo para un programa llamado Test.java no contenga ningún código para llevar a cabo el rastreo. a continuación. deberá emitir un mandato como el siguiente: java -Ddb2. utilice el conjunto de propiedades de configuración que empiezan por db2.jcc. los archivos siguientes contienen los datos del rastreo: IBM Data Server Driver para JDBC y SQLJ para IDS 1-57 .jcc.properties. La salida se coloca en un directorio llamado /Trace. el rastreo se habilita mediante las propiedades de configuración. haga referencia al archivo al invocar el programa de Java especificando la opción -Ddb2. v El nombre de cada fichero de rastreo empieza por jccTrace1.traceFile=jccTrace1 v db2. Los valores de las propiedades de configuración tienen el aspecto siguiente: v db2. por lo tanto.traceDirectory=/Trace v db2. Cuando el programa finaliza. Programa de rastreo de ejemplo: Para ver un ejemplo completo de un programa de rastreo que se ejecuta bajo IBM Data Server Driver para JDBC y SQLJ. Por lo tanto.java no realiza ningún rastreo y no es recomendable modificar el programa.traceFileAppend=true Es recomendable que los valores del rastreo se apliquen solamente al programa autónomo denominado Test1.java. Para habilitar el rastreo al ejecutar Test1. es recomendable definir las propiedades de configuración de modo que si la aplicación se modifica en el futuro para llevar a cabo el rastreo. Suponga que desea que la salida del rastreo tenga las características siguientes: v La información de rastreo de cada conexión del mismo DataSource se graba en un archivo de rastreo diferente.Procedimiento 5: Utilice métodos DB2TraceManager.properties Test1 Suponga que Test1. El programa no define ningún objeto logWriter. consulte ″Ejemplo de utilización de propiedades de configuración para iniciar un rastreo JDBC″.

true).jcc. El ejemplo utiliza IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4.DB2Connection) c). sampleConnectWithURLUsingDriverManager().jcc. El ejemplo siguiente muestra una clase con esas características.sql.close().jcc.jcc. ((com.getConnection("myname".sql.com").ibm.out. "mypass"). } private static void sampleConnectUsingSimpleDataSource() { java.DataSource ds = new com.ibm.jcc.db2.jcc.v /Trace/jccTrace1_global_0 v /Trace/jccTrace1_global_1 Ejemplo de un programa de rastreo que se ejecuta bajo IBM Data Server Driver para JDBC y SQLJ Puede ser conveniente escribir una clase individual que incluya métodos para realizar rastreos bajo la interfaz DriverManager así como la interfaz DataSource.DB2BaseDataSource.ibm. s1.Connection c = null. // Esto activa el rastreo // Refinar el nivel de detalle del rastreo ((com.ibm.TRACE_DRDA_FLOWS).ibm. ((com.PrintWriter printWriter = new java.io.jcc. true significa // desecho automático para // no perder rastreo try { javax.stl.ibm. // La sentencia INSERT siguiente no se rastrea 1-58 IBM Data Server Driver para JDBC y SQLJ para IDS .TRACE_CONNECTS | com.createStatement().DB2BaseDataSource) ds).jcc.DB2SimpleDataSource. Figura 1-21.db2.PrintWriter(System.db2.DB2BaseDataSource) ds).setLogWriter(printWriter).ibm. Ejemplo de rastreo ejecutado bajo IBM Data Server Driver para JDBC y SQLJ public class TraceExample { public static void main(String[] args) { sampleConnectUsingSimpleDataSource().jcc.io.jcc.db2.DB2BaseDataSource) ds).db2. // El código siguiente inhabilita todo el rastreo de la conexión ((com.ibm.setServerName("sysmvs1.DB2Connection) c). // Esta petición de conexión se rastreará utilizando el nivel de rastreo // TRACE_CONNECTS | TRACE_DRDA_FLOWS c = ds.setJccLogWriter(null).ibm.db2.jcc.setPortNumber(5021).DB2BaseDataSource) ds). // La sentencia INSERT siguiente se rastrea // utilizando el nivel de rastreo TRACE_ALL java.Statement s1 = c.ibm. java. s1.TRACE_ALL).setDriverType(4). // Imprime en consola. ((com.DB2SimpleDataSource.DB2SimpleDataSource(). ds.DB2BaseDataSource) ds).ibm.db2.setDatabaseName("san_jose"). // Cambiar el nivel de rastreo a TRACE_ALL // para todas las peticiones subsiguientes de la conexión ((com.db2. ((com.db2. com.db2. setTraceLevel(com.executeUpdate("INSERT INTO sampleTable(sampleColumn) VALUES(1)").sql.setJccLogWriter(printWriter.ibm.db2.

"[TraceExample]").lang. printWriter.sql.isClosed()) { printWriter.sql.printTrace(e. return. printWriter).println("[TraceExample] No se puede " + "roll back the connection").println("[TraceExample] " + "Se capturó la siguiente java. private static void cleanup(java.ibm.sql. try { if(c. Si se ha producido un error. com.SQLException e) { printWriter.db2. } // Si se ha llegado aquí.SQLException e) { printWriter.executeUpdate("INSERT INTO sampleTable(sampleColumn) VALUES(1)").sql. } finally { cleanup(c.println("[TraceExample] Se capturó " + "la siguiente java.DB2ExceptionFormatter. // Retrotraer y cerrar la conexión.flush().close(). "[TraceExample]").close(). } catch(java. "[TraceExample]"). com. printWriter. } catch(java. printWriter.ibm.db2.sql.").close().SQLException al intentar retrotraer:"). intente retrotraer (rollback) y cierre la conexión.PrintWriter printWriter) { if(c == null) return.println("[TraceExample] Excepción al " + "intentar cerrar la conexión"). printWriter. printWriter. Si la conexión está cerrada.println("[TraceExample] " + "No se puede retrotraer la conexión"). printWriter. s2.println("[TraceExample] Se está retrotrayendo la conexión").Throwable al intentar retrotraer:").println("[TraceExample] Se está cerrando la conexión").sql.lang. java. s2.println("[TraceExample] Pueden producirse " + "puntos muertos si no se cierra la conexión. IBM Data Server Driver para JDBC y SQLJ para IDS 1-59 . } // Cierre la conexión printWriter.db2. try { c.jcc.printTrace(e. } catch(java.createStatement().Throwable e) { printWriter. try { c.SQLException e) { com. la conexión ya debe estar cerrada. } } // // // // // Si el código se ha ejecutado satisfactoriamente.Statement s2 = c.println("[TraceExample] " + "La conexión se ha cerrado satisfactoriamente"). simplemente finalice el programa.DB2ExceptionFormatter.rollback(). printWriter.printTrace(e. c.io.java. Comprobar si lo está. printWriter.jcc. algo ha ido mal. } catch(java.jcc.DB2ExceptionFormatter.Connection c.ibm.

"[TraceExample]").BufferedOutputStream( new java. return.ibm.println("[TraceExample] Se ha emitido Throwable " + "al intentar cerrar la conexión").sql.DB2BaseDataSource.System. No se puede cargar el controlador.jcc.err.").db2.".jcc.println("[TraceExample] " + "Conectividad de IBM Data Server Driver para JDBC y SQLJ tipo 4 " + "no está en classpath de la aplicación. 4096).printTrace(e.db2. } } private static void sampleConnectWithURLUsingDriverManager() { java.jcc.FileNotFoundException e) { java.Throwable e) { printWriter.ibm.lang.db2.println("[TraceExample] Pueden producirse " + "puntos muertos si no se cierra la conexión. } // Este URL describe fuente de datos de destino para conectividad de tipo 4."). enviar printWriter a un archivo. Las constantes // com.io.db2. true).Throwable e) { printWriter.Connection c = null.ibm.io.jcc.PrintWriter printWriter = null.ibm.ibm. // La propiedad traceLevel se establece mediante la sintaxis de URL y // el rastreo del controlador se dirige al archivo "/temp/driverLog.PrintWriter( new java. A continuación utilice la // variable como el primer parámetro del método getConnection.DB2ExceptionFormatter."). Estas constantes no se pueden usar directamente en el // primer parámetro getConnection. printWriter. com.flush().printTrace(e. } } catch(java.FileOutputStream("/temp/driverLog.io. Resuelva las constantes a sus // valores int asignándolos a una variable.DB2BaseDataSource.TRACE_CONNECTS representan // valores int.io.db2. try { printWriter = new java.DB2Driver").io.TRACE_CONNECTS) + ".ibm. com.TRACE_DRDA_FLOWS y // com.forName("com. } catch(ClassNotFoundException e) { printWriter.com. } try { Class.txt" // La propiedad traceLevel tiene un tipo int.txt"). java.ibm.lang.System.DB2BaseDataSource.println ("No se puede definir un transcriptor de impresión para el rastreo").jcc.lang. printWriter.ibm.jcc.db2.println("[TraceExample] No se puede " + "forzar el cierre de la conexión").txt.db2.traceLevel=" + (com.jcc.printTrace(e. String databaseURL = "jdbc:ids://sysmvs1.flush().ibm.DB2ExceptionFormatter.TRACE_DRDA_FLOWS | com.DB2ExceptionFormatter. // Esta vez.stl. printWriter. java.err.com:5021" + "/sample:traceFile=/temp/driverLog. printWriter. } catch(java. } catch(java. 1-60 IBM Data Server Driver para JDBC y SQLJ para IDS . return.jcc.println("[TraceExample] Pueden producirse " + "puntos muertos si no se cierra la conexión. "[TraceExample]"). printWriter. printWriter.DB2BaseDataSource.lang.db2. "[TraceExample]").

createStatement().close().Statement s1 = c.db2.db2.util.ibm. c. printWriter). properties.jcc. properties.executeUpdate("insert into sampleTable(sampleColumn) values(1)"). En general.setProperty("password".setJccLogWriter(printWriter.DB2BaseDataSource. printWriter.TRACE_ALL).util.ibm. // El siguiente código de inserción de SQL no se rastrea java.Properties properties = new java.db2. com.DB2ExceptionFormatter. try { // Esta petición de conexión se rastreará utilizando el nivel de rastreo // TRACE_CONNECTS | TRACE_DRDA_FLOWS c = java. Esa información es: Tiempo del controlador básico La suma de los tiempos transcurridos de API supervisada que se recogieron mientras la supervisión del sistema estaba habilitada.executeUpdate("INSERT INTO sampleTable(sampleColumn) VALUES(1)"). s1.sql.db2. "mypass"). en microsegundos. "[TraceExample]"). Tiempo de E/S de red La suma de los tiempos transcurridos de E/S de red que se recogieron mientras la supervisión del sistema estaba habilitada.DB2Connection) c).sql.DB2Connection) c).jcc. } } } Supervisión del sistema para IBM Data Server Driver para JDBC y SQLJ Para ayudarle a supervisar el rendimiento de sus aplicaciones mediante IBM Data Server Driver para JDBC y SQLJ. properties).flush().jcc.sql. en microsegundos.setJccLogWriter(null). s2.printTrace(e.DriverManager.sql.ibm.jcc. // Inhabilite todo el rastreo de la conexión ((com.// Definir otras propiedades java. // Cambiar el nivel de rastreo para todas las peticiones posteriores // de la conexión por TRACE_ALL ((com.SQLException e) { com. s1.Statement s2 = c.ibm. Tiempo del servidor Suma de todos los tiempos transcurridos notificados del servidor de bases IBM Data Server Driver para JDBC y SQLJ para IDS 1-61 .getConnection(databaseURL. "myname").close(). printWriter. } catch(java. // La sentencia INSERT siguiente se rastrea // utilizando el nivel de rastreo TRACE_ALL java. solamente se supervisan las API que podrían dar lugar a una interacción de E/S de red o del servidor de bases de datos.close().createStatement(). s2.Properties(). el controlador proporciona dos métodos para recoger información sobre una conexión.setProperty("user". } finally { cleanup(c.

expresado en microsegundos. Los dos métodos son: v La interfaz DB2SystemMonitor v El nivel de rastreo TRACE_SYSTEM_MONITOR Para recoger datos de supervisión del sistema utilizando la interfaz DB2SystemMonitor siga estos pasos básicos: 1. Invoque el método DB2SystemMonitor. Cuando la actividad que supervisar se complete. Tiempo de la aplicación Suma de los tiempos transcurridos de la aplicación.enable para habilitar el objeto DB2SystemMonitor para la conexión. Invoque los métodos DB2SystemMonitor. Actualmente. Invoque el método DB2SystemMonitor. 5. 2.getServerTimeMicros o DB2SystemMonitor. el código siguiente demuestra cómo recoger cada tipo de dato de tiempo transcurrido. DB2SystemMonitor. Por ejemplo. E/S de red y servidor de bases de datos. Invoque el método DB2Connection. 3.getDB2SystemMonitor para crear un objeto DB2SystemMonitor. 1-62 IBM Data Server Driver para JDBC y SQLJ para IDS .stop para detener la supervisión del sistema. expresado en milisegundos. 4.de datos que se han recogido mientras estaba habilitada la supervisión del sistema. DB2SystemMonitor. controlador JDBC.start para iniciar la supervisión del sistema. Los números que aparecen a la derecha de algunas sentencias corresponden a los pasos descritos anteriormente.getNetworkIOTimeMicros. invoque DB2SystemMonitor.getCoreDriverTimeMicros.getApplicationTimeMillis para recuperar los datos del tiempo transcurrido. las bases de datos IBM Informix Dynamic Server no son compatibles con esta función.

import java.sql.*; import com.ibm.db2.jcc.*; public class TestSystemMonitor { public static void main(String[] args) { String url = "jdbc:ids://sysmvs1.svl.ibm.com:5021/san_jose"; String user = "db2adm"; String password = "db2adm"; try { // Cargar IBM Data Server Driver para JDBC y SQLJ Class.forName("com.ibm.db2.jcc.DB2Driver"); System.out.println("**** Controlador JDBC cargado"); // Crear conexión utilizando IBM Data Server Driver para JDBC y SQLJ Connection conn = DriverManager.getConnection (url,user,password); // Confirmar los cambios manualmente conn.setAutoCommit(false); System.out.println("**** Creada una conexión JDBC con la fuente de datos"); DB2SystemMonitor systemMonitor = 1 ((DB2Connection)conn).getDB2SystemMonitor(); systemMonitor.enable(true); 2 systemMonitor.start(DB2SystemMonitor.RESET_TIMES); 3 Statement stmt = conn.createStatement(); int numUpd = stmt.executeUpdate( "UPDATE EMPLOYEE SET PHONENO=’4657’ WHERE EMPNO=’000010’"); systemMonitor.stop(); 4 System.out.println("Tiempo transcurrido de servidor (microsegundos)=" + systemMonitor.getServerTimeMicros()); 5 System.out.println("Tiempo transcurrido de E/S de red (microsegundos)=" + systemMonitor.getNetworkIOTimeMicros()); System.out.println("Tiempo transcurrido de controlador básico (microsegundos)=" + systemMonitor.getCoreDriverTimeMicros()); System.out.println("Tiempo transcurrido de aplicación (milisegundos)=" + systemMonitor.getApplicationTimeMillis()); conn.rollback(); stmt.close(); conn.close(); } // Manejar los errores catch (ClassNotFoundException e) { System.err.println("No se puede cargar el controlador, " + e); } catch (SQLException e) { System.out.println("SQLException: " + e); e.printStackTrace(); } } } Figura 1-22. Ejemplo de utilización de métodos DB2SystemMonitor para recoger datos de supervisión del sistema

Para recoger información de supervisión del sistema utilizando el método de rastreo: Inicie un rastreo JDBC, utilizando propiedades de configuración o las propiedades Connection o DataSource. Incluya TRACE_SYSTEM_MONITOR al establecer la propiedad traceLevel. Por ejemplo:
String url = "jdbc:ids://sysmvs1.stl.ibm.com:5021/san_jose" + ":traceFile=/u/db2p/jcctrace;" + "traceLevel=" + com.ibm.db2.jcc.DB2BaseDataSource.TRACE_SYSTEM_MONITOR + ";";

IBM Data Server Driver para JDBC y SQLJ para IDS

1-63

Los registros de rastreo con información de supervisión del sistema son parecidos a este:
[jcc][SystemMonitor:start] ... [jcc][SystemMonitor:stop] core: 565.67ms | network: 211.695ms | server: 207.771ms

Java 2 Platform, Enterprise Edition
Java 2 Platform Enterprise Edition (J2EE) reduce el coste y la complejidad de desarrollar estos servicios de varios niveles, lo que da lugar a servicios que se pueden desplegar rápidamente y se pueden mejorar fácilmente según los requisitos de la empresa. En el entorno empresarial global actual, las organizaciones tienen que ampliar su alcance, reducir sus costes y reducir sus tiempos de respuesta, proporcionando servicios a los que puedan acceder fácilmente sus clientes, empleados, proveedores y otros socios empresariales. Estos servicios deben tener las siguientes características: v Altamente disponibles, para ajustarse a los requisitos del entorno empresarial global v Seguros, para proteger la privacidad de los usuarios y la integridad de la empresa v Fiables y escalables, de modo que las transacciones empresariales resulten precisas y se procesen con rapidez En la mayoría de los casos, estos servicios se suministran con la ayuda de aplicaciones de varios enlaces en las que cada enlace tiene un objetivo específico. J2EE consigue estas ventajas definiendo una arquitectura estándar que se suministra como los siguientes elementos: v J2EE Application Model, un modelo de aplicación estándar para desarrollar servicios de cliente ligero de varios niveles v J2EE Platform, una plataforma estándar para albergar aplicaciones de J2EE v J2EE Compatibility Test Suite para verificar que un producto de la plataforma J2EE cumple con el estándar de dicha plataforma v J2EE Reference Implementation para demostrar las funciones de J2EE y para proporcionar una definición operativa de la plataforma J2EE

Soporte para componentes de aplicación de Java 2 Platform, Enterprise Edition
Java 2 Platform Enterprise Edition (J2EE) proporciona el entorno de tiempo de ejecución para alojar aplicaciones J2EE. El entorno de tiempo de ejecución define cuatro tipos de componentes de aplicación a los que un producto J2EE debe dar soporte: v Los clientes de aplicaciones son programas de lenguaje de programación Java que suelen ser programas GUI que se ejecutan en un sistema de escritorio. Los clientes de aplicaciones tienen acceso a todas las funciones del enlace medio de J2EE. v Los componentes applets y GUI que normalmente se ejecutan en un navegador web pero que se pueden ejecutar en otras aplicaciones o dispositivos que den soporte al modelo de programación de applets.

1-64

IBM Data Server Driver para JDBC y SQLJ para IDS

v Los servlets, JavaServer Pages (JSP), filtros y receptores de sucesos de la web que se suelen ejecutar en un navegador web y que pueden responder a peticiones HTTP procedentes de clientes web. Los servlets, JSP y filtros se pueden utilizar para generar páginas HTML que constituyen la interfaz de usuario de una aplicación. También se pueden utilizar para generar XML o datos en otro formato que consumen otros componentes de la aplicación. Los servlets, las páginas creadas con tecnología JSP, los filtros y los receptores de sucesos de la web reciben conjuntamente en esta especificación el nombre componentes de la web. Las aplicaciones web constan de componentes de la web y de otros datos como páginas HTML. v Los componentes Enterprise JavaBeans (EJB) se ejecutan en un entorno gestionado que da soporte a transacciones. Los Enterprise Beans suelen contener la lógica empresarial correspondiente a una aplicación J2EE. Los componentes de aplicaciones listados anteriormente se pueden dividir en tres categorías, según el modo en que se pueden desplegar y gestionar: v Componentes que se despliegan, gestionan y ejecutan en un servidor J2EE. v Componentes que se despliegan y gestionan en un servidor J2EE pero que se cargan en una máquina cliente y se ejecutan en la misma. v Componentes cuyo despliegue y gestión no están completamente definidos por esta especificación. Los clientes de aplicaciones pueden encontrarse en esta categoría. El soporte de tiempo de ejecución correspondiente a estos componentes se proporciona mediante contenedores.

Contenedores de Java 2 Platform Enterprise Edition
Un contenedor proporciona una vista federada de las API subyacentes de Java 2 Platform Enterprise Edition (J2EE) a los componentes de la aplicación. Un producto J2EE típico proporcionará un contenedor para cada tipo de componente de aplicación: contenedor de clientes de la aplicación, contenedor de applets, contenedor de web y contenedor de Enterprise Beans. Las herramientas de contenedor también comprenden los formatos de archivo para empaquetar los componentes de la aplicación para su despliegue. La especificación necesita que estos contenedores proporcionen un entorno de tiempo de ejecución compatible con Java. Esta especificación define un conjunto de servicios estándares a los que debe dar soporte cada producto J2EE. Estos servicios estándar son: v Servicio HTTP v Servicio HTTPS v API de transacciones Java v Método de invocación remota v IDL Java v API JDBC v Servicio de mensajes de Java v Java Naming and Directory Interface v JavaMail v Infraestructura de activación de JavaBeans v API Java para el análisis XML v Arquitectura de conectores v Servicio de autenticación y autorización de Java

IBM Data Server Driver para JDBC y SQLJ para IDS

1-65

Servidor Java 2 Platform Enterprise Edition
Como elemento subyacente de un contenedor Java 2 Platform Enterprise Edition (J2EE) se encuentra el servidor del que forma parte el contenedor. Normalmente, un proveedor de productos J2EE implementa la funcionalidad de lado del servidor de J2EE, mientras que la funcionalidad de cliente de J2EE se crea en tecnología J2SE. IBM WebSphere Application Server es un servidor que cumple las especificaciones de J2EE.

Requisitos de la base de datos de Java 2 Platform Enterprise Edition
Java 2 Platform Enterprise Edition necesita una base de datos a la que se pueda acceder a través de la API JDBC para el almacenamiento de los datos de la empresa. Se puede acceder a la base de datos desde componentes de la web, Enterprise Beans y componentes cliente de la aplicación. No hace falta que se pueda acceder a la base de datos desde los applets.

Java Naming and Directory Interface (JNDI)
JNDI permite que las aplicaciones basadas en la plataforma Java accedan a varios servicios de asignación de nombres y de directorio. Forma parte del conjunto de interfaces de programación de aplicaciones (API) de Java Enterprise. JNDI permite que los desarrolladores de aplicaciones creen aplicaciones portables que están habilitadas para varios servicios de nombres y de directorio, tales como sistemas de archivos; servicios de directorio tales como Lightweight Directory Access Protocol (LDAP) y Novell Directory Services, y sistemas de objetos distribuidos tales como Common Object Request Broker Architecture (CORBA), Java Remote Method Invocation (RMI), y Enterprise JavaBeans (EJB). La API JNDI tiene dos partes: una interfaz de nivel de aplicación que utilizan los componentes de la aplicación para acceder a los servicios de nomenclatura y directorio y una interfaz de proveedor de servicios para conectar con un proveedor de un servicio de nomenclatura y directorio.

Gestión de transacciones Java
Java 2 Platform Enterprise Edition (J2EE) simplifica la programación de aplicaciones para la gestión de transacciones distribuidas. J2EE incluye soporte para transacciones distribuidas a través de dos especificaciones, API de transacciones Java (JTA) y Servicio de transacciones Java (JTS). JTA es una API de alto nivel, independiente de la implementación e independiente del protocolo, que permite a las aplicaciones y a los servidores de aplicaciones acceder a transacciones. Además, JTA está siempre habilitada. El IBM Data Server Driver para JDBC y SQLJ y el Controlador JDBC de DB2 de tipo 2 para Linux, UNIX y Windows aplican las especificaciones JTA y JTS.

1-66

IBM Data Server Driver para JDBC y SQLJ para IDS

se da soporte a las transacciones distribuidas en los servidores DB2 Database para Linux.jcc. JTA especifica interfaces Java estándares entre un gestor de transacciones y las partes que intervienen en un sistema de transacciones distribuidas: el gestor de recursos. IBM Data Server Driver para JDBC y SQLJ para IDS 1-67 . DB2 para z/OS y DB2 para i5/OS.html Ejemplo de una transacción distribuida que utiliza métodos de JTA Normalmente las transacciones distribuidas suponen varias conexiones con una misma fuente de datos o con fuentes de datos diferentes.DB2XADataSource WebSphere Application Server proporciona conexiones de uso compartido para bases de datos.com/software/webservers/appserv/library. El Controlador JDBC de DB2 de tipo 2 Driver proporciona estas dos clases de DataSource: v COM.DB2XADataSource El IBM Data Server Driver para JDBC y SQLJ proporciona estas dos clases DataSource: v com. se debe utilizar la clase com.DB2XADataSource al definir fuentes de datos IDS dentro del WebSphere Application Server.jdbc. JTS propaga transacciones mediante IIOP.jdbc. y los controladores JDBC también implementan parte de JTA. El servidor de aplicaciones se hace cargo de la responsabilidad de la gestión de transacciones. Los programadores pueden definir las propiedades transaccionales de la tecnología EJB basándose en componentes durante el diseño o despliegue mediante sentencias declarativas en el descriptor de despliegue. pues los controladores JDBC detectan automáticamente este entorno. por lo que WebSphere Application Server y IDS pueden proporcionar transacciones distribuidas coordinadas. WebSphere Application Server asume el rol de gestor de transacciones. UNIX y Windows.db2.db2. JTA y JTS permiten que los servidores J2EE de aplicaciones J2EE eviten al desarrollador de componentes las tareas de gestión de transacciones.ibm. En el entorno de IDS y WebSphere Application Server.DB2ConnectionPoolDataSource v com. el servidor de aplicaciones y las aplicaciones transaccionales.db2. WebSphere Application Server implementa JTS y parte de JTA.Para el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. que pueden ser de fabricantes diversos.jcc.ibm.ibm. y IDS actúa como gestor de recursos.jdbc.db2.DB2ConnectionPoolDataSource v COM.db2. consulte el centro de información de WebSphere Application Server. JTS especifica la implementación de un Gestor de transacciones que da soporte a JTA e implementa la correlación Java de la especificación OMG Object Transaction Service (OTS) 1.ibm. Si la aplicación intervendrá en una transacción distribuida.ibm.1 al nivel que hay bajo la API. Para conocer información detallada sobre cómo configurar el WebSphere Application Server con IDS.ibm. situado en: http://www. No es necesario configurar IDS para que esté habilitado para JTA en el entorno de WebSphere Application Server.

una aplicación JDBC confirma los cambios hechos en una base de datos e indica el final de una unidad de trabajo en una de las formas siguientes: v Invocando los métodos Connection.setAutoCommit(true) al inicio de la aplicación para que los cambios se confirmen después de cada sentencia de SQL La Figura 1-23 muestra el código mediante el que se ejecutan transacciones locales. // Utilice el método commit sobre el objeto UserTransaction // para hacer que se confirmen todas las ramas de transacción // e indicar el final de la transacción distribuida.begin(). Figura 1-24. que se confirmarán // automáticamente después de cada sentencia de SQL.transaction.commit(). Figura 1-23.UserTransaction utx.. las aplicaciones dejan que el servidor de aplicaciones gestione los límites de transacción.. En las transacciones locales.commit o Connection.commit(). ni Connection.rollback no indican límites de transacción. // Utilice el método begin sobre un objeto UserTransaction // para indicar el inicio de una transacción distribuida. // Retrotraer la transacción con1. utx.. En las transacciones distribuidas. Este programa actúa como gestor de 1-68 IBM Data Server Driver para JDBC y SQLJ para IDS . // No invoque los métodos commit ni rollback de Connection.setAutoCommit(true) dentro de la transacción distribuida.commit. Ejemplo de transacción local En cambio. las aplicaciones que intervienen en transacciones distribuidas no pueden invocar los métodos Connection. Mientras se ejecuta el código mostrado en el ejemplo.. // Ejecutar más sentencias de SQL. Cuando todos los EJB han invocado utx. con1. .commit o Connection. javax. Si cualquiera de los EJB no se ejecuta satisfactoriamente. En lugar de ello.rollback. // Confirmar la transacción // Ejecutar más sentencias de SQL .... // Desactivar la confirmación automática // Ejecutar sentencias de SQL .rollback().commit(). el servidor de aplicaciones retrotrae todo el trabajo hecho por todos los EJB que están asociados a la transacción distribuida. Ejemplo de transacción distribuida cuando se utiliza un servidor de aplicaciones La Figura 1-25 en la página 1-69 muestra un programa que utiliza métodos de JTA para ejecutar una transacción distribuida.rollback después de ejecutar una o más sentencias de SQL v Invocando el método Connection. utx. .setAutoCommit(true). La Figura 1-24 muestra una aplicación que utiliza transacciones distribuidas.. .La mejor forma de mostrar la utilización de transacciones distribuidas es compararlas con transacciones locales. con1.. el servidor de aplicaciones confirma la transacción distribuida completa. // Ejecute sentencias de SQL con un objeto Connection. // Permitir la confirmación después // de cada sentencia de SQL . Connection. los métodos Connection.. con1... el servidor de aplicaciones también está ejecutando otros EJB que forman parte de la misma transacción distribuida.setAutoCommit(false).

XADataSource)context. */ xaDS1 = (javax. 0x11. javax.lookup("checkingAccounts").transaction.jcc.DB2Xid // de la interfaz Xid.XAResource xares2.sql.Connection de cada XAConnection conn1 = xaconn1.db2.XADataSource xaDS1.getXAResource(). // Este ejemplo utiliza la implementación com.sql.ibm.transaction.sql.xa.SQLException { XASample xat = new XASample().ibm.getXAResource().transacciones y aplicación transaccional.sql.InitialContext context = new javax.XADataSource)context.runThis(args).jcc. este programa proporciona // el ID de transacción global y el calificador de rama.XAConnection xaconn1.Connection conn1.XADataSource xaDS2.ibm.XADataSource en lugar de una * implementación de controlador específica tal * como com. public void runThis(String[] args) { byte[] gtrid = new byte[] { 0x44.sql. java.naming. 0x55.getXAConnection(). // XADatasource contiene el ID de usuario y la contraseña. javax. javax. java.sql. conn2 = xaconn2. // Obtener el objeto XAConnection de cada XADataSource xaconn1 = xaDS1. // NO es necesario iniciar y finalizar las dos conexiones juntas.XAResource xares1. int rc2 = 0.DB2XADataSource. javax. 0x00 }. gtrid. // Obtener el objeto java. public static void main (String args []) throws java. javax. // Obtener el objeto XAResource de cada XAConnection xares1 = xaconn1.InitialContext().xa. y la combinación formada por ambos debe ser exclusiva // para este gestor de transacciones. El ID de // transacción global y el calificador de rama no deben ser iguales // entre sí.sql.getXAConnection(). Este Xid puede ser utilizado con cualquier // controlador JDBC que dé soporte a JTA.Connection conn2. xat. } // En calidad de gestor de transacciones. bqual).sql.sql. xares2 = xaconn2. try { javax. 0x22.sql.xa. xaconn2 = xaDS2.db2.XAConnection xaconn2.naming. // Cree el objeto Xid de la transacción distribuida. 0x66 }.db2. IBM Data Server Driver para JDBC y SQLJ para IDS 1-69 . Dos conexiones con dos fuentes de datos diferentes ejecutan tareas de SQL dentro de una sola transacción distribuida. byte[] bqual = new byte[] { 0x00. xaDS2 = (javax. Ejemplo de transacción distribuida que hace uso de la JTA class XASample { javax.lookup("savingsAccounts"). Figura 1-25.sql. /* * Observe que se utiliza javax. // Inicie la transacción distribuida en las dos conexiones. int rc1 = 0. javax.jcc.getConnection().transaction.DB2Xid(100.Xid xid1 = new com.getConnection().

transaction. if(rc2 == javax.transaction.commit(xid1. if(rc1 == javax.XAResource.transaction.XAResource. xae.XAException.out.transaction. junto con sus operaciones de SQL.end(xid1.").out. rc1 = xares1. false). " + "Rolling it back.xa.getMessage()).XA_RDONLY) { // Ambas conexiones son de solo lectura..start(xid1. } else if(rc2 == javax. por lo que no es necesaria // ninguna otra acción.XAResource. System. false).println("Distributed transaction prepare/commit failed.XAException. // Si el trabajo de la conexión 2 se ha realizado en otra hebra. 1-70 IBM Data Server Driver para JDBC y SQLJ para IDS . // Ambas ramas se deben preparar satisfactoriamente para // poder confirmar los cambios.prepare(xid1).start(xid1.commit(xid1. xares1. Prepare la // segunda conexión.prepare(xid1).println("XAException message = " + xae.transaction. se emite una // excepción XAException. xares1.transaction. pero la // segunda no lo es.XA_RDONLY) { // La segunda conexión es de solo lectura. rc2 = xares2.xa.rollback(xid1).transaction. xares2.xa. // Si la transacción distribuida falla. false).commit(xid1.xa. . . try { // Ahora prepare ambas ramas de la transacción distribuida. // Confirme la segunda conexión. false).XAException. try { xares1. System.. if(rc2 == javax. por lo que // solo se confirma la primera conexión.XA_RDONLY) { // El SQL de la primera conexión es de solo lectura // (tal como un SELECT). } else if(rc2 == javax.transaction.xa. System.xa.xa. } } else if(rc1 == javax. xares2.prepare(xid1).errorCode). // La preparación ha confirmado la conexión. xares2. javax. xares2.XAResource.join() para esperar // a que termine el trabajo de la conexión 2. // es necesaria aquí una llamada a thread.XA_OK) { // Ambas conexiones se prepararon satisfactoriamente // y ninguna de ella era de solo lectura. xares1.TMSUCCESS).TMSUCCESS).// Esto puede hacerse en hebras diferentes.xa..TMNOFLAGS). y ambas // están ya confirmadas.commit(xid1..println("XAException error code = " + xae.xa. javax.transaction.TMNOFLAGS).XA_OK) { // La primera conexión es de solo lectura.printStackTrace(). // por lo que debe retrotraerla.XAResource. // Ahora finalice la transacción distribuida en las dos conexiones.xa. // Ejecute las operaciones de SQL en la conexión 2.XAException xae) { // La transacción distribuida ha fallado. xares1.XA_OK) { // La preparación fue satisfactoria.end(xid1. // Notificar XAException para preparación/confirmación. Prepare la segunda conexión rc2 = xares2. // Ejecute las operaciones de SQL en la conexión 1.xa.transaction. javax.transaction.XAResource.out.XAResource. } } } catch (javax. javax.

out.errorCode).errorCode).println("XAException message = " + xae2. } catch (Exception e) { System.out. xaconn2. xaconn1. } } } Recomendación: Para lograr un mejor rendimiento.println("distributed Transaction rollback xares1 failed").println("XAException error code = " + xae1.XAException xae1) { // Notificar error de la retrotracción. e.XAException xae2) { // Notificar error de la retrotracción. } } try { conn1.close().println("Failed to close connection 1: " + e.xa.getMessage()). System. IBM Data Server Driver para JDBC y SQLJ para IDS 1-71 . } try { xares2.printStackTrace(). } catch (javax. System. finalice una transacción distribuida antes de iniciar otra transacción distribuida o local.naming.sql. } catch (javax. } try { conn2.out. sqe.transaction.println("XAException message = " + xae1.out. System.xa.out.println("SQLException caught: " + sqe.out.close(). Enterprise Java Beans La arquitectura Enterprise Java Beans es una arquitectura de componentes para el desarrollo y el despliegue de aplicaciones de empresa distribuidas basadas en componentes. System.} catch (javax.printStackTrace().printStackTrace().close().println("XAException error code = " + xae2.out.out.out. e.SQLException sqe) { System.println(" Naming Exception: " + nme.transaction.println("XA error is " + xae.transaction. } catch (javax.getMessage()).getMessage()).toString()). xae. } catch (Exception e) { System. } } catch (java.XAException xae) { System.xa.out.rollback(xid1).getMessage()).out.printStackTrace().NamingException nme) { System.toString()). System. System.getMessage()).println("distributed Transaction rollback xares2 failed").println("Failed to close connection 2: " + e.close().

Los beans de entidad son objetos transaccionales distribuidos. El ejemplo siguiente utiliza los EJB para implementar una aplicación J2EE para acceder a una fuente de datos. Las aplicaciones Java 2 Platform. representa los objetos transaccionales distribuidos que representan los datos permanentes de la tabla EMPLOYEE de la base de datos sample. El acceso al servidor de bases de datos se puede proporcionar desde el bean de sesión o el bean de entidad. AccessEmployee. Como resultado.Las aplicaciones que se escriben utilizando la arquitectura Enterprise Java Beans se pueden escribir una sola vez y luego desplegar en cualquier plataforma servidor que sea compatible con la especificación Enterprise Java Beans.RemoteException } Employee employee = null. El servlet controla el flujo de trabajo y delega la petición del usuario al modelo. Los beans de sesión representan servicios de empresa y no se comparten entre usuarios. En el ejemplo se utiliza la arquitectura Model-View-Controller (MVC). Se utiliza la JSP para implementar la vista (el componente de presentación). Employee. La aplicación de ejemplo EJB proporciona dos servicios de empresa.ear utiliza Enterprise Java Beans para implementar una aplicación J2EE para acceder a una fuente de datos. Encontrará este programa de ejemplo en el directorio SQLLIB/samples/websphere. Este diseño de fachada reduce el tráfico en la red entre el cliente EJB y el bean de entidad y resulta más eficiente en transacciones distribuidas que cuando el cliente EJB accede al bean de entidad directamente. En el primer servicio. que es una arquitectura de GUI de uso habitual. El bean de sesión. Un servicio permite al usuario acceder a información sobre un empleado (que está almacenada en la tabla EMPLOYEE de la base de datos sample) mediante el número de empleado de dicho empleado. que representan datos permanentes. se utiliza el bean de entidad: //==================================================== // Este método devuelve información sobre un empleado // mediante la interacción con el bean de entidad // identificado por el número de empleado proporcionado public EmployeeInfo getEmployeeInfo(String empNo) throws java. el código del bean no está enlazado a ningún mecanismo de almacenamiento permanente específico (base de datos). de múltiples usuarios. El código del bean no contiene ninguna llamada de acceso a base de datos (SQL). Los límites transaccionales de una aplicación EJB se pueden definir especificando transacciones gestionadas por contenedor o gestionadas por bean. que se implementa mediante los EJB. El programa de ejemplo AccessEmployee. Un servlet actúa como controlador en el ejemplo. Enterprise Edition (J2EE) implementan componentes de empresa del lado del servidor mediante Enterprise Java Beans (EJB) que incluyen beans de sesión y beans de entidad. try } 1-72 IBM Data Server Driver para JDBC y SQLJ para IDS . Los dos servicios de la aplicación de ejemplo muestran ambos métodos para acceder al servidor de bases de datos. El bean de permanencia gestionada por contenedor (CMP). El otro servicio permite al usuario recuperar una lista de números de empleado de modo que el usuario pueda obtener un número de empleado para utilizarlo para consultar datos del empleado.rmi. actúa como fachada del bean de entidad y proporciona una estrategia uniforme de acceso de clientes. El componente modelo del ejemplo consta de dos EJB: un bean de sesión y un bean de entidad. El término permanencia gestionada por contenedor significa que el contenedor EJB maneja todo el acceso a base de datos que necesita el bean de entidad.

empInfo. //establecer la información del empleado en el objeto de valor dependiente empInfo. EmployeeInfo empInfo = new EmployeeInfo(empNo). empInfo.next()) { pk = new EmployeeKey(). empInfo. ps = con. empInfo.getPhoneNo()).getMidInit()).close(). pk.getSalary()). * @return Collection */ public Collection getEmpNoList() { ResultSet rs = null.getConnection().setEmpno(employee.RemoteException rex) { . DataSource ds = null.getResultSet().. Connection con = null.employeeId = rs. /============================================= * Obtener lista de números de empleado.getHireDate()). rs = ps.setEdLevel(employee. En el segundo servicio.setFirstName (employee.setComm(employee. EmployeeKey pk. empInfo.setPhoneNo(employee. Vector list = new Vector().getEmpno()).getSex())..findByPrimaryKey(new EmployeeKey(empNo)). try { ds = getDataSource(). return list. empInfo.. accede directamente a la tabla de base de datos.employee = employeeHome.getEdLevel())... ps. empInfo.setMidInit(employee.addElement(pk. empInfo.getBirthDate()).setLastName(employee.setSex(employee.getBonus()). empInfo. con = ds. while (rs. } catch (java.prepareStatement(query). return empInfo. Soporte para sondeo de conexiones JDBC y SQLJ La agrupación de conexiones forma parte del soporte DataSource de JDBC y está soportada por el IBM Data Server Driver para JDBC y SQLJ. El IBM Data Server Driver para JDBC y SQLJ ofrece una fábrica de conexiones agrupadas que utilizan el servidor WebSphere Application Server u otros IBM Data Server Driver para JDBC y SQLJ para IDS 1-73 .EMPLOYEE". AccessEmployee.setSalary(employee.getJob()).getLastName()).employeeId).setBonus(employee.getComm()).setWorkDept(employee.setBirthDate(employee.getString(1). String query = "Select EMPNO from " + schema + ". String schema = getEnvProps(DBschema).setJob(employee.getWorkDept()).rmi. empInfo. que muestra números de empleado. empInfo. PreparedStatement ps = null. empInfo. list.executeQuery(). el bean de sesión. } rs. empInfo.setHireDate(employee.getFirstName()).

Connection representa una única conexión física a nivel de sesión con la fuente de datos. Las agrupaciones de conexiones pueden ser homogéneas o heterogéneas.Connection. Cuando la aplicación llama al método java. Cuando la aplicación establece una conexión con una fuente de datos. es posible que las propiedades de un objeto Connection lógico reutilizado sean las mismas que las que se han definido para DataSource o que sean propiedades diferentes. 1-74 IBM Data Server Driver para JDBC y SQLJ para IDS . No obstante. es necesario que utilice las mejores correlaciones entre tipos de datos Java y tipos de datos de columnas de tabla.sql. Cuando no se utiliza la agrupación de conexiones. UNIX y Windows. IDS crea una conexión física nueva con la fuente de datos. Por lo tanto. Tipos de datos que se correlacionan con tipos de datos de base de datos en aplicaciones Java Para escribir programas JDBC y SQLJ que sean efectivos. El controlador JDBC no modifica las propiedades. es posible que un servidor de aplicaciones o un módulo de agrupación no pueda restaurar las propiedades modificadas. el servidor de aplicaciones realiza la agrupación. Sin embargo. cada objeto java. una aplicación puede cambiar dichas propiedades. Cuando se devuelve un objeto Connection a la agrupación de conexiones.Connection. DB2 para z/OS o IBM Informix Dynamic Server (IDS). Cuando JDBC reutiliza conexiones con fuentes de datos. IDS finaliza la conexión física con la fuente de datos. La agrupación de conexiones es completamente transparente para las aplicaciones JDBC o SQLJ. todos los objetos Connection que provengan de la misma agrupación de conexiones deben tener las mismas propiedades. que no se vuelve a utilizar. En realidad. El primer objeto Connection lógico que se crea con DataSource tiene las propiedades que se han definido para DataSource.sql. un servidor de aplicaciones o un módulo de agrupación deberá restaurar los valores originales de las propiedades. se minimizan las operaciones costosas necesarias para la creación y el cierre posterior de objetos java. las conexiones de sesión se reutilizan. Con la agrupación heterogénea. los objetos Connection con propiedades diferentes pueden compartir la misma agrupación de conexiones.servidores de aplicaciones. Información de consulta sobre JDBC y SQLJ Las implementaciones de JDBC y SQLJ para IBM proporcionan varias interfaces de programación de aplicaciones. que son equivalentes a sesiones (IDS) de IBM Informix Dynamic Server. Con una agrupación homogénea. propiedades y mandatos para desarrollar aplicaciones JDBC y SQLJ.sql.close. en función del diseño del servidor de aplicaciones o del módulo de agrupación. La agrupación de conexiones es un sistema para colocar en antememoria conexiones físicas con fuentes de datos. Con la agrupación de conexiones. Las tablas siguientes resumen las correlaciones de tipos de datos Java con tipos de datos JDBC y tipos de datos de base de datos para un sistema DB2 Database para Linux.

StringReader java.lang.io.lang.math.BigDecimal java.s)1 DECIMAL(p)2 DECIMAL3 MONEY(p. java.lang. java.sql.s)1 CHAR(n)4 NCHAR(n)4 VARCHAR(m.setXXX o ResultSet. Correlaciones de tipos de datos Java con tipos de datos de servidor de bases de datos para actualizar tablas de base de datos Tipo de datos de Java short short boolean.io.String java.lang.Timestamp java.math. java.Clob java.Integer int.lang. Tabla 1-9.lang.String java.Blob java.lang.ByteArrayInputStream java.BigDecimal java.String byte[] byte[] java.r)6 INTERVAL CLOB7 BYTE BLOB7 BLOB CLOB TEXT DATE DATETIME HOUR TO SECOND DATETIME YEAR TO FRACTION(5) BLOB CLOB CLOB IBM Data Server Driver para JDBC y SQLJ para IDS 1-75 .String java.updateXXX en programas JDBC.Clob java.lang.lang.Tipos de datos para actualizar columnas de tabla La tabla siguiente resume las correlaciones de tipos de datos Java con tipos de datos de base de datos para métodos PreparedStatement.math.math.sql. Cuando aparece listado más de un tipo de datos de Java.Time java.sql. java.Double java.r)5 LVARCHAR(m.lang.Integer long.String java.BigDecimal java.ByteArrayInputStream Tipo de datos de base de datos SMALLINT BOOLEAN BOOLEAN INTEGER SERIAL INT8 SERIAL8 SMALLFLOAT FLOAT DECIMAL(p. java. el primer tipo de datos es el recomendado.Boolean int.sql.lang. java.BigDecimal java.Long float. java.String java.io.lang.Date java.sql.lang.lang.lang.Long long.String java.Float double.r)6 NVARCHAR(m.

Correlaciones de tipos de datos de servidor de bases de datos con tipos de datos Java para recuperar datos de tablas de servidor de bases de datos Tipo de datos de SQL SMALLINT Tipo de datos de Java o tipo de objeto Java recomendado short Otros tipos de datos Java soportados byte. double.lang. java. byte. java. el tipo de datos es DECIMAL de coma flotante. float. byte. short.BigDecimal java. java. boolean.lang. boolean. double. float.math. short. 0<=r<=m<=32739. boolean. int.String short short. p es la precisión decimal y s es la escala de la columna de tabla. 3. Para una base de datos compatible con el estándar ANSI.math. java. double. Para una base de datos compatible con el estándar ANSI. java.math.math. java.String long. 4. byte. si no se especifican parámetros. byte. java. Esta correlación solamente es válida si el servidor de bases de datos puede determinar el tipo de datos de la columna.String short. 0<=r<=m<=255.BigDecimal. short. int. java. java. boolean. float.math.BigDecimal. java.getObject.BigDecimal.BigDecimal 1-76 IBM Data Server Driver para JDBC y SQLJ para IDS .math. byte.Tabla 1-9. short. 2. double. Tipo de datos de base de datos Tipos de datos para recuperar datos de columnas de tabla La tabla siguiente resume las correlaciones de tipos de datos DB2 o IDS con tipos de datos Java para métodos ResultSet. Para una base de datos que no es compatible con el estándar ANSI. short. boolean. float. byte.lang. Tabla 1-10. double. double.math. n<=32767. byte. double.BigDecimal.String int.lang.BigDecimal. long.s) DECIMAL(p) java. java.String long.String long.BigDecimal. double. float.getXXX en aplicaciones JDBC. Esta tabla no lista los tipos de objetos de derivador numérico de Java.BigDecimal MONEY(p. si únicamente se especifica p.String BOOLEAN INTEGER boolean int SERIAL int INT8 long SERIAL8 long DECIMAL(p. boolean. 5. long. que se recuperan mediante ResultSet.math. float.lang. java. 7. boolean.s) java.math. si no se especifican parámetros. Para una base de datos que no es compatible con el estándar ANSI. float. float. y para iteradores en programas SQLJ. java. Correlaciones de tipos de datos Java con tipos de datos de servidor de bases de datos para actualizar tablas de base de datos (continuación) Tipo de datos de Java Notas: 1. java. la precisión es 16 y la escala es 0.lang. el tipo es DECIMAL de coma flotante.lang. int. 6. boolean. long.String int.lang. p es la precisión y la escala es 0. int.

String java. java. byte.io.sql.sql. IBM Data Server Driver para JDBC y SQLJ para IDS 1-77 . int.Reader long. java.String VARCHAR(m.io.math. short. Esta correlación solamente es válida si el servidor de bases de datos puede determinar el tipo de datos de la columna. boolean.String BYTE CLOB(n) TEXT BLOB(n) DATE DATETIME HOUR TO SECOND DATETIME YEAR TO FRACTION(5) Notas: byte[] java.String long.sql. java. java. java. byte. short.BigDecimal.sql.Date. int.sql.BigDecimal.lang. java.lang.Timestamp.sql. double.sql. float.sql.Reader long.lang. java. java.Timestamp java.sql. byte.math. Correlaciones de tipos de datos de servidor de bases de datos con tipos de datos Java para recuperar datos de tablas de servidor de bases de datos (continuación) Tipo de datos de SQL SMALLFLOAT Tipo de datos de Java o tipo de objeto Java recomendado float Otros tipos de datos Java soportados long.Date.Date.Date.math.r) java. java.Timestamp FLOAT double CHAR(n) java. double. float.io. java. java. java. float.sql. java.sql.lang.sql. byte.Time java.Time.Clob java.String NCHAR(n) java.sql.Timestamp java. short.Reader long.io. java. java. byte. java. java.String.sql. boolean. java. short.InputStream.BigDecimal. java. short.sql. java. java. java.io. boolean. java. java. float. boolean.math.Date.Date. double.io. byte. double.String LVARCHAR(m.InputStream.Time. java. java.sql.sql.Reader long.Clob java.sql.String INTERVAL java.lang.sql.String.io.Time.Timestamp. boolean. java.Timestamp.BigDecimal. boolean.InputStream. java.r) java. double.sql. java. java. java. byte.Reader Ninguno java.String NVARCHAR(n) java. float. java.math.math.lang.sql.io.Time.sql.InputStream.String long. boolean. java.BigDecimal. short. short.io.Timestamp 1.sql.sql.math.math. boolean.Date. java.String. double. java.lang.InputStream. double.Timestamp. short. float. int. java.io. byte.sql.sql. java.Timestamp.sql.sql. java. java.Time.Blob java. int.Date java. java. int. java.lang.Time.sql. java.lang.io. float.Timestamp.sql.String byte[]1 java.io.Tabla 1-10.InputStream. java.sql. int.Time.Reader long. int. java.sql.BigDecimal.BigDecimal.BigDecimal. java. int.lang.

Tabla 1-11.lang.lang.BigDecimal java.lang.lang. java.lang.lang.Integer int. java. java.lang.String java.lang.lang. Correlaciones de tipos de datos Java.String java. java.lang. Las correlaciones de tipos de datos Java con tipos de datos JDBC son para métodos CallableStatement.math.lang. java.String java.Float double.String java.String java.registerOutParameter en programas JDBC.lang.Short int. Si la tabla siguiente lista más de un tipo de datos Java.String java.BigDecimal java.lang.String java.Integer long long float.String java.lang.String byte[] byte[] byte[] 1-78 IBM Data Server Driver para JDBC y SQLJ para IDS .Tipos de datos para invocar procedimientos almacenados y funciones definidas por el usuario La tabla siguiente resume las correlaciones de tipos de datos Java con tipos de datos JDBC y tipos de datos DB2 o IDS para invocar parámetros de funciones definidas por el usuario y procedimientos almacenados.String java. el primer tipo de datos es el tipo de datos recomendado.math.lang.lang.String java.BigDecimal java.Double java.math. JDBC y SQL para invocar procedimientos almacenados y funciones definidas por el usuario Tipo de datos de Java boolean boolean byte 1 Tipo de datos de JDBC BIT BOOLEAN TINYINT SMALLINT INTEGER INTEGER BIGINT BIGINT REAL FLOAT DOUBLE NUMERIC NUMERIC DECIMAL CHAR CHAR CHAR VARCHAR VARCHAR LONGVARCHAR LONGVARCHAR VARCHAR LONGVARCHAR CLOB CLOB BINARY VARBINARY VARBINARY Tipo de datos de SQL BOOLEAN BOOLEAN SMALLINT SMALLINT INTEGER SERIAL INT8 SERIAL8 SMALLFLOAT SMALLFLOAT FLOAT DECIMAL MONEY DECIMAL CHAR INTERVAL NCHAR VARCHAR NVARCHAR VARCHAR LVARCHAR CLOB CLOB CLOB TEXT BYTE BYTE BYTE short.lang. Las correlaciones de tipos de datos Java con tipos de datos de servidor de bases de datos son para parámetros utilizados al invocar procedimientos almacenados o funciones definidas por el usuario. java.Float float.

sql. ROW y UDT Tipo de datos de columna SET MULTISET LIST ROW UDT Tipo de datos de JDBC java.sql.STRUCTURE java. Un procedimiento almacenado o función definida por el usuario que esté definido con un parámetro de tipo SMALLINT se puede invocar con un parámetro de tipo boolean o byte.Date java.io.OTHER java. Sin embargo. Propiedades de IBM Data Server Driver para JDBC y SQLJ Las propiedades de IBM Data Server Driver para JDBC y SQLJ definen cómo se debe crear la conexión con una fuente de datos determinada.Blob java. MULTISET.Types. Correlaciones de tipos de datos Java.sql.Types.getTypeInfo.Types.sql. IBM Data Server Driver para JDBC y SQLJ para IDS 1-79 .ByteArrayInputStream java. Tabla 1-12.sql. LIST. 2.Tabla 1-11.sql. Esta correlación solamente es válida si el servidor de bases de datos puede determinar el tipo de datos de la columna. La mayoría de las propiedades se pueden definir para un objeto DataSource o para un objeto Connection. ROW y UDT tienen un soporte limitado. JDBC y SQL para invocar procedimientos almacenados y funciones definidas por el usuario (continuación) Tipo de datos de Java byte[] byte[] java.OTHER java.Types.sql.getColumns y DatabaseMetaData.Types. No puede recuperar datos de columnas que tengan esos tipos de datos. Tipos de datos devueltos en las llamadas a DatabaseMetaData para columnas SET.OTHER java. La tabla siguiente muestra los tipos de datos y nombres de tipos que son devueltos por DatabaseMetaData. pero puede utilizar métodos DatabaseMetaData para recuperar los tipos de datos de columnas y nombres de tipos. MULTISET.Clob java. LIST.ByteArrayInputStream Notas: 1.sql.Timestamp java. esto no es aconsejable.io.Time java.sql. Tipo de datos de JDBC LONGVARBINARY LONGVARBINARY DATE TIME TIMESTAMP BLOB CLOB Ninguno Ninguno Ninguno Tipo de datos de SQL BYTE BLOB2 DATE DATETIME HOUR TO SECOND DATETIME YEAR TO FRACTION(5) BLOB CLOB BLOB CLOB CLOB Tipos de datos SQL de IDS con soporte limitado Los tipos de datos SET.sql.io.JAVA_OBJECT Nombre de tipo set multiset list row Nombre de tipo totalmente calificado que se especificó al crear el tipo definido por el usuario.StringReader java.

se puede utilizar la variable String en el parámetro url. Propiedades comunes de IBM Data Server Driver para JDBC y SQLJ para todos los productos de base de datos permitidos La mayoría de las propiedades de IBM Data Server Driver para JDBC y SQLJ son aplicables a todos los productos de base de datos que son compatibles con el controlador.ibm.db2. no se puede utilizar com. El valor por omisión es 0.DriverManager.jcc.TRACE_ALL en un parámetro url. y asignar la serie URL a una variable String.db2. 1-80 IBM Data Server Driver para JDBC y SQLJ para IDS . Algunas propiedades con un tipo de datos int tienen valores de campo constante predefinidos. String url = "jdbc:ids://sysmvs1.jcc.jcc.sql.DB2BaseDataSource.TRACE_ALL) + ". Este nombre constituye la parte del URL de conexión correspondiente a la basedatos. y afecta a todas las peticiones que se envían a la fuente de datos después de establecer satisfactoriamente una conexión.".jcc.DB2BaseDataSource.ibm.db2.db2.ibm.getConnection(url).Properties del parámetro info de una llamada DriverManager.ibm.DB2ConnectionPoolDataSource – com.jcc. Esta propiedad es aplicable solamente IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. con el primer carácter en mayúsculas.com:5021" + "user=dbadm.TRACE_ALL. Connection con = java. Sin embargo. que significa que no hay tiempo de espera.db2. A menos que se indique otra cosa.db2.jcc.password=dbadm.lang. v En un valor java.ibm." + "traceLevel=" + (com.DB2BaseDataSource. se puede crear una serie URL que incluya com.String del parámetro url de una llamada DriverManager. Por ejemplo.stl.jcc.ibm.util. Hay que resolver los valores de campo constante predefinidos con sus valores enteros antes de utilizar dichos valores en el parámetro url.DB2BaseDataSource. donde XXX es el nombre no calificado de la propiedad.Métodos para establecer las propiedades Puede definir propiedades de una de las maneras siguientes: v Utilizando métodos setXXX. databaseName Especifica el nombre de la fuente de datos.getConnection.ibm. A continuación.DB2XADataSource v En un valor java.DB2SimpleDataSource – com. todas las propiedades están contenidas en com.getConnection.db2.db2.jcc. El nombre depende de si se utiliza IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4 o IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2. Las propiedades son aplicables a las siguientes implementaciones específicas de IBM Data Server Driver para JDBC y SQLJ que heredan las propiedades de com.ibm.DB2BaseDataSource: – com.ibm. Estas propiedades son las siguientes: blockingReadConnectionTimeout Cantidad de tiempo en segundos que transcurre hasta que se excede el tiempo de espera de lectura del socket de la conexión.

v Si la conexión es con un servidor DB2 Database para Linux.sql.Connection. Los valores posibles son: IBM Data Server Driver para JDBC y SQLJ para IDS 1-81 . y IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. Puede determinar el nombre de ubicación ejecutando la sentencia de SQL siguiente en el servidor: SELECT CURRENT SERVER FROM SYSIBM. el valor por omisión es java. El servidor convierte el nombre a minúsculas. basedatos es el nombre de la base de datos.TRANSACTION_SERIALIZABLE java.SYSDUMMY1.TRANSACTION_READ_COMMITTED deferPrepares Especifica si la invocación del método Connection.TRANSACTION_READ_UNCOMMITTED java. Para las bases de datos IBM Informix Dynamic Server (IDS). Cuando se define defaultIsolationLevel para un DataSource. Para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2: defaultIsolationLevel Especifica el nivel de aislamiento por omisión de las transacciones para las nuevas conexiones. Todos los caracteres de este valor deben ser caracteres en mayúsculas. El tipo de datos de esta propiedad es boolean. el valor por omisión depende del tipo de fuente de datos. deferPrepares se puede utilizar para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 con DB2 Database para Linux. La tabla siguiente muestra los valores por omisión. el valor de databaseName es el nombre de ubicación de DB2 que se define durante la instalación. v Si la conexión es con un servidor IDS. UNIX y Windows.sql. v Si la conexión es con un servidor IBM Cloudscape. todas las conexiones creadas desde ese DataSource tienen el nivel de aislamiento por omisión especificado por defaultIsolationLevel.sql.Connection. Por ejemplo: "c:/basedatos/testdb" Si esta propiedad no está definida. Niveles de aislamiento por omisión para bases de datos IDS Tipo de fuente de datos Base de datos compatible con ANSI con registro cronológico Base de datos sin registro cronológico Base de datos no compatible con ANSI con registro cronológico Nivel de aislamiento por omisión java. las conexiones se establecen con el sitio local. Para las fuentes de datos DB2.prepareStatement produce la preparación inmediata de una sentencia de SQL en la fuente de datos o si la preparación de la sentencia se aplaza hasta que se ejecuta el método PreparedStatement.sql. el valor de databaseName será el nombre de la base de datos que se define durante la instalación. UNIX y Windows.Para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4: v Si la conexión es con un servidor DB2 para z/OS. Este nombre se debe incluir entre comillas dobles (″).Connection.TRANSACTION_READ_COMMITTED. El tipo de datos de esta propiedad es int. El nombre no es sensible a las mayúsculas y las minúsculas. el valor de databaseName será el nombre totalmente calificado del archivo que contiene la base de datos.Connection.execute. Tabla 1-13.

Los valores válidos son 2 o 4. La preparación de la sentencia en la fuente de datos se produce cuando se ejecuta el método Connection. driverType Para la interfaz DataSource. Pero si aplaza operaciones de preparación. los cursores en conexiones XA tienen las restricciones siguientes: v Los cursores retenidos que se abren en una conexión XA no tienen comportamiento de WITH HOLD. No obstante.execute. v Si la fuente de datos es compatible con la modalidad continua progresiva: El controlador JDBC no tiene en cuenta el valor de fullyMaterializeLobData si la propiedad progressiveStreaming está establecida en DB2BaseDataSource. debe asegurarse de que los tipos de datos de entrada coinciden con los tipos de columnas de tablas. El tipo de datos de esta propiedad es String. El valor por omisión es true.true La preparación de la sentencia en la fuente de datos no se produce hasta que se ejecuta el método PreparedStatement. Los cursores retenidos que se abren en una conexión XA se cierran al realizar la operación XA End. El valor por omisión es false. downgradeHoldCursorsUnderXa Especifica si se pueden abrir cursores retenidos en conexiones XA. Si se establece true como valor de downgradeHoldCursorsUnderXa. v IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4 o IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 con servidores DB2 Database para Linux. El tipo de datos de esta propiedad es int. descripción Descripción de la fuente de datos. downgradeHoldCursorsUnderXa se aplica a: v IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4 con servidores DB2 para z/OS. v Los cursores abiertos antes de XA Start en una transacción local se cierran al realizar la operación XA Start. El efecto de fullyMaterializeLobData depende de si la fuente de datos es compatible con la modalidad continua progresiva: v Si la fuente de datos no es compatible con la modalidad continua progresiva: Si el valor de fullyMaterializeLobData es true. Es muy recomendable que establezca este valor en false cuando recupere datos LOB que contengan grandes volúmenes de datos.NOT_SET. los datos LOB se canalizarán. se podrán abrir cursores retenidos en conexiones XA. que significa que no se pueden abrir cursores retenidos en conexiones XA. El controlador utiliza localizadores internamente para recuperar datos LOB en forma de bloques a medida que sea necesario. Éste es el valor por omisión.YES o DB2BaseDataSource. determina qué controlador utilizar para las conexiones.prepareStatement. El tipo de datos de esta propiedad es boolean. false El aplazar las operaciones de preparación puede reducir los retardos de la red. los datos LOB se materializarán completamente dentro del controlador JDBC cuando se capte una fila. 1-82 IBM Data Server Driver para JDBC y SQLJ para IDS . UNIX y Windows. fullyMaterializeLobData Indica si el controlador recupera localizadores de LOB para operaciones FETCH. El valor por omisión es 2. Si el valor es false.

CLOSE_CURSORS_AT_COMMIT (2) Dejar los cursores abiertos después de una operación de confirmación. que se debe esperar para establecer conexión con una fuente de datos. Los LOB que se recuperan utilizando cursores desplazables utilizan localizadores de LOB si la modalidad continua progresiva no está en vigor. El tipo de datos de esta propiedad es int. securityMechanism Especifica el mecanismo de seguridad de DRDA. El tipo de datos de esta propiedad es String. Esto es el valor por omisión. El valor por omisión es 0. contraseña cifrada IBM Data Server Driver para JDBC y SQLJ para IDS 1-83 . Esta propiedad no está soportada para el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 en DB2 para z/OS. loginTimeout Cantidad máxima de tiempo. DB2BaseDataSource. que es el valor por omisión del sistema para el tiempo de espera. en segundos.PrinterWriter. El valor por omisión es nulo. logWriter Es la corriente de salida donde se escriben todos los mensajes de registro de anotaciones y de rastreo correspondientes al objeto DataSource. password Es la contraseña que se debe utilizar para establecer conexiones. El tipo de datos de esta propiedad es int. El tipo de datos de esta propiedad es int. El tipo de datos de esta propiedad es int. Los valores posibles son: CLEAR_TEXT_PASSWORD_SECURITY (3) ID de usuario y contraseña USER_ONLY_SECURITY (4) ID de usuario solamente ENCRYPTED_PASSWORD_SECURITY (7) ID de usuario. El tipo de datos de esta propiedad es java. Los valores válidos son: DB2BaseDataSource. portNumber El número de puerto en que el servidor DRDA escucha peticiones.getConnection: getConnection(usuario.Esta propiedad no afecta a parámetros de procedimiento almacenado ni a los LOB que se recuperan mediante cursores desplazables. contraseña). el controlador cierra la conexión con la fuente de datos.io. Una vez transcurrido el número de segundos especificado por loginTimeout. resultSetHoldability Especifica si los cursores permanecen abiertos después de una operación de confirmación. puede alterar temporalmente el valor de esta propiedad invocando esta modalidad del método DataSource.NOT_SET (0) Cerrar los cursores después de una operación de confirmación. Los parámetros de procedimiento almacenado de LOB se materializan siempre. que significa que no se generan datos de registro de anotaciones ni de rastreo para DataSource. Cuando utiliza la interfaz DataSource para establecer una conexión. DB2BaseDataSource.HOLD_CURSORS_OVER_COMMIT (1) Cerrar los cursores después de una operación de confirmación.

la información de rastreo correspondiente a varias conexiones en el mismo DataSource se graba en varios archivos. Este valor no es aplicable a las conexiones con IDS. traceDirectory Especifica un directorio en el que se graba la información de rastreo. Cualquier otra discrepancia en el soporte del mecanismo de seguridad entre el solicitante y el servidor da como resultado un error. sendDataAsIs Especifica que el IBM Data Server Driver para JDBC y SQLJ no convierte valores de parámetro de entrada para los tipos de datos de columna de destino. ENCRYPTED_USER_AND_DATA_SECURITY (12) ID de usuario y datos confidenciales cifrados. serverName Nombre de sistema principal o dirección TCP/IP de la fuente de datos. el IBM Data Server Driver para JDBC y SQLJ actualiza el mecanismo de seguridad a ENCRYPTED_USER_AND_PASSWORD_SECURITY y trata de conectarse al servidor. Si se especifica esta propiedad. PLUGIN_SECURITY (15) Seguridad por plug-in. n es la conexión número n correspondiente a una DataSource. Este valor no es aplicable a las conexiones con IDS. El tipo de datos de esta propiedad es String. El tipo de datos de esta propiedad es String. la conexión se guarda en un archivo denominado traceFile_origen_n. ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY (13) ID de usuario y contraseña cifrados.ENCRYPTED_USER_AND_PASSWORD_SECURITY (9) ID de usuario y contraseña cifrados KERBEROS_SECURITY (11) Kerberos. se emite una excepción. Los valores posibles de origen son: 1-84 IBM Data Server Driver para JDBC y SQLJ para IDS . Si el servidor no admite CLEAR_TEXT_PASSWORD_SECURITY pero sí admite ENCRYPTED_USER_AND_PASSWORD_SECURITY. Utilice esta propiedad solamente para aplicaciones que siempre comprueban que los tipos de datos de la aplicación coinciden con los tipos de datos de las correspondientes tablas de base de datos. Este valor es aplicable solamente a las conexiones con DB2 Database para Linux. Cuando se especifica traceDirectory. ENCRYPTED_USER_ONLY_SECURITY (16) ID de usuario cifrado. origen indica el origen del grabador de anotaciones cronológicas que se está utilizando. El valor por omisión es false. y datos confidenciales cifrados. Este valor no es aplicable a las conexiones con IDS. Si el mecanismo de seguridad no está soportado por la conexión. UNIX y Windows. El valor por omisión de securityMechanism es CLEAR_TEXT_PASSWORD_SECURITY. Si se especifica traceDirectory. el mecanismo de seguridad especificado es el único mecanismo utilizado. Este valor es aplicable solamente a las conexiones con DB2 para z/OS. El tipo de datos de esta propiedad es boolean.

DB2BaseDataSource.TRACE_SQLJ (X’400’) v com.jcc.db2.TRACE_DRIVER_CONFIGURATION (X’10’) v com. Por ejemplo.db2. El valor por omisión es false.ibm.ibm. Grabador de anotaciones cronológicas para un objeto DB2XADataSource.jcc. para rastrear flujos de DRDA y llamadas de conexión.jcc.TRACE_RESULT_SET_CALLS (X’04’) v com.TRACE_CONNECTION_CALLS (X’01’) v com.jcc.TRACE_DRDA_FLOWS (X’40’) v com. El tipo de datos de esta propiedad es String.ibm.db2.jcc.DB2BaseDataSource.db2.ibm.TRACE_TRACEPOINTS (X’40000’) v com.DB2BaseDataSource.ibm.db2.jcc. traceLevel Especifica qué se debe rastrear.DB2BaseDataSource. sds xads Grabador de anotaciones cronológicas para un objeto DB2SimpleDataSource.DB2BaseDataSource.db2. utilice una de estas técnicas: v Utilice operadores OR (|) de bits con dos o más valores de rastreo.TRACE_LARGE_OBJECT_CALLS (X’8000’) v com.cpds Grabador de anotaciones cronológicas para un objeto DB2ConnectionPoolDataSource.jcc.DB2BaseDataSource.TRACE_DIAGNOSTICS (X’200’) v com. Si también se especifica la propiedad traceFile.TRACE_PARAMETER_META_DATA (X’100’) v com.ibm.DB2BaseDataSource.db2.jcc.TRACE_ALL (X’FFFFFFFF’) Para especificar más de un valor de rastreo.ibm.DB2BaseDataSource.ibm.ibm. que significa que se sobrescribe el archivo especificado por la propiedad traceFile.db2.DB2BaseDataSource.ibm.jcc.jcc.DB2BaseDataSource.ibm.TRACE_NONE (X’00’) v com.DB2BaseDataSource. driver Grabador de anotaciones cronológicas para un objeto DB2Driver.db2.db2.jcc.DB2BaseDataSource.jcc. especifique este valor para traceLevel: TRACE_DRDA_FLOWS|TRACE_CONNECTION_CALLS IBM Data Server Driver para JDBC y SQLJ para IDS 1-85 . El tipo de datos de esta propiedad es int.DB2BaseDataSource.DB2BaseDataSource.DB2BaseDataSource.TRACE_STATEMENT_CALLS (X’02’) v com.ibm. Puede especificar uno o más de los valores de rastreo siguientes con la propiedad traceLevel: v com.db2.db2.ibm.db2.ibm.jcc.jcc. no se utiliza el valor traceDirectory.ibm.jcc.ibm.ibm.jcc. traceFile Especifica el nombre del archivo en donde el IBM Data Server Driver para JDBC y SQLJ escribe información de rastreo.DB2BaseDataSource.db2.jcc.TRACE_DATASOURCE_CALLS (X’4000’) v com.TRACE_CONNECTS (X’20’) v com.TRACE_RESULT_SET_META_DATA (X’80’) v com. traceFileAppend Especifica si deben añadir o sobrescribir datos en el archivo especificado por la propiedad traceFile. El tipo de datos de esta propiedad es boolean.TRACE_META_CALLS (X’2000’) v com.DB2BaseDataSource.db2. La propiedad traceFile es una alternativa al uso de la propiedad logWriter para encaminar la corriente de datos de rastreo de salida hacia un archivo.TRACE_SYSTEM_MONITOR (X’20000’) v com. global Grabador de anotaciones cronológicas para un objeto DB2TraceManager.db2.db2.

getConnection: getConnection(usuario. Se utiliza clientRerouteAlternateServerName cuando el redireccionamiento del cliente está configurado sin un almacén de datos JNDI. lo que significa que la optimización de la red XA está inhabilitada. UNIX y Windows Algunas de las propiedades de IBM Data Server Driver para JDBC y SQLJ son aplicables solamente a DB2 para z/OS y DB2 Database para Linux. lo cual produce un error XAER_PROTO. Cuando utiliza la interfaz DataSource para establecer una conexión. Con la optimización de la red XA. A menos que se indique otra cosa.jcc. El valor de xaNetworkOptimization no se puede modificar después de obtener una conexión. 1-86 IBM Data Server Driver para JDBC y SQLJ para IDS .v Utilice un operador de complemento a nivel de bit ( ~) con un valor de rastreo para especificar todos los rastreos excepto uno determinado. Estas propiedades son las siguientes: clientRerouteAlternateServerName Especifica uno o más nombres de servidores alternativos para el redireccionamiento del cliente. todas las propiedades están contenidas en com.db2. El valor por omisión es true.DB2BaseDataSource. Si el valor de xaNetworkOptimization es false. delimite los nombres con comas (. Para evitar el error XAER_PROTO. que significa que la optimización de la red XA está habilitada. Propiedades comunes de IBM Data Server Driver para JDBC y SQLJ para DB2 para z/OS y DB2 Database para Linux. XA Prepare puede acceder a la fuente de datos antes del XA End. puede alterar temporalmente el valor de esta propiedad invocando esta modalidad del método DataSource. Puede que tenga que inhabilitar la optimización de la red XA en un entorno en el que se emitan XA Start y XA End desde un proceso Java. El número de valores especificados para clientRerouteAlternateServerName debe coincidir con el número de valores especificados para clientRerouteAlternatePortNumber. UNIX y Windows y IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. xaNetworkOptimization Especifica si la optimización de la red XA está habilitada para el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. el controlador cerrará los cursores abiertos al realizar la operación XA End. UNIX y Windows. El tipo de datos de esta propiedad es String.ibm. para rastrear todo excepto los flujos de DRDA. El tipo de datos de esta propiedad es String. clientRerouteAlternateServerName es aplicable a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 con DB2 Database para Linux. Si especifica más de un nombre de servidor.). especifique este valor para traceLevel: ~TRACE_DRDA_FLOWS user ID de usuario que se utilizará para establecer conexiones. contraseña). inhabilite la optimización de la red XA. y se emitan XA Prepare y XA Commit desde otro proceso Java. xaNetworkOptimization se puede establecer en un objeto DataSource o en el parámetro url en una llamada getConnection. Por ejemplo.

clientRerouteAlternatePortNumber Especifica uno o más números de puerto alternativos para el redireccionamiento del cliente. Se utiliza clientRerouteAlternatePortNumber cuando el redireccionamiento del cliente está configurado sin un almacén de datos JNDI. El tipo de datos de esta propiedad es String. Si especifica más de un número de puerto, delimite los números de puerto con comas (,). El número de valores especificados para clientRerouteAlternatePortNumber debe coincidir con el número de valores especificados para clientRerouteAlternateServerName. clientRerouteAlternatePortNumber es aplicable a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 con DB2 Database para Linux, UNIX y Windows y IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. clientRerouteServerListJNDIName Identifica una referencia JNDI para una instancia de DB2ClientRerouteServerList en un depósito JNDI de información del servidor de redireccionamiento. La propiedad clientRerouteServerListJNDIName es aplicable solamente a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4, y a las conexiones que se establecen mediante la interfaz DataSource. Si el valor de clientRerouteServerListJNDIName no es nulo, clientRerouteServerListJNDIName proporcionará las funciones siguientes: v Permite conservar la información sobre servidores de redireccionamiento al pasar de una JVM a otra v Proporciona una ubicación de servidor alternativa si falla la primera conexión con la fuente de datos clientRerouteServerListJNDIContext Especifica el contexto de JNDI que se utiliza para la vinculación y la consulta de la instancia de DB2ClientRerouteServerList. La propiedad clientRerouteServerListJNDIContext es aplicable solamente a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4, y a las conexiones que se establecen mediante la interfaz DataSource. Si no se define clientRerouteServerListJNDIContext, el IBM Data Server Driver para JDBC y SQLJ creará un contexto inicial utilizando propiedades del sistema o el archivo jndi.properties. clientRerouteServerListJNDIContext sólo se puede definir mediante el método siguiente:
public void setClientRerouteServerListJNDIContext(javax.naming.Context registro)

currentDegree Especifica el grado de paralelismo para la ejecución de consultas que se preparan dinámicamente. El tipo de datos de esta propiedad es String. El valor de currentDegree se utiliza para establecer el registro especial CURRENT DEGREE en la fuente de datos. Si currentDegree no está definido, no se pasa ningún valor a la fuente de datos. currentFunctionPath Especifica la vía de SQL que se utiliza para resolver nombres de tipos de datos y de funciones no calificados en las sentencias de SQL que están contenidas en programas de JDBC. El tipo de datos de esta propiedad es String. Para un servidor DB2 Database para Linux, UNIX y Windows, la longitud máxima es de 254 bytes. Para un servidor DB2 para z/OS, la longitud máxima es de 2048 bytes. El valor es una lista de nombres de esquema separados por comas. Esos nombres pueden ser identificadores ordinarios o delimitados.

IBM Data Server Driver para JDBC y SQLJ para IDS

1-87

currentMaintainedTableTypesForOptimization Especifica un valor que identifica los tipos de objetos que se pueden tener en cuenta cuando la fuente de datos optimiza el proceso de consultas de SQL dinámico. Este registro contiene una palabra clave que representa tipos de tabla. El tipo de datos de esta propiedad es String. Los valores posibles de currentMaintainedTableTypesForOptimization son: ALL Indica que se tendrán en cuenta todas las tablas de consultas materializadas. NONE Indica que no se tendrá en cuenta ninguna tabla de consulta materializada. SYSTEM Indica que sólo se tendrán en cuenta las tablas de consultas materializadas de renovación diferida mantenidas por el sistema. USER Indica que sólo se tendrán en cuenta las tablas de consultas materializadas de renovación diferida mantenidas por el usuario. currentPackagePath Especifica un lista separada por comas de colecciones contenidas en el servidor. El servidor de bases de datos busca paquetes de JDBC y SQLJ en estas colecciones. Las reglas de precedencia para las propiedades currentPackagePath y currentPackageSet siguen las reglas de precedencia correspondientes a los registros especiales CURRENT PACKAGESET y CURRENT PACKAGE. currentPackageSet Especifica el ID de colección para buscar paquetes JDBC y SQLJ. El tipo de datos de esta propiedad es String. El valor por omisión es NULLID. Si currentPackageSet está definido, su valor tiene prioridad sobre el valor de jdbcCollection. Puede instalar varias instancias de IBM Data Server Driver para JDBC y SQLJ en un servidor de bases de datos ejecutando varias veces el programa de utilidad DB2Binder. El programa de utilidad DB2binder incluye la opción -collection, que permite que el instalador especifique el ID de colección para cada instancia del IBM Data Server Driver para JDBC y SQLJ. Para seleccionar una instancia del IBM Data Server Driver para JDBC y SQLJ para una conexión, especifique un valor de currentPackageSet que coincida con el ID de colección para una de las instancias del IBM Data Server Driver para JDBC y SQLJ. Las reglas de precedencia para las propiedades currentPackagePath y currentPackageSet siguen las reglas de precedencia correspondientes a los registros especiales CURRENT PACKAGESET y CURRENT PACKAGE. currentRefreshAge Especifica un valor de duración de indicación de fecha y hora máxima desde que la sentencia REFRESH TABLE se ha procesado en una tabla de consultas materializada REFRESH DEFERRED mantenida por el sistema, como por ejemplo en el caso en el que la tabla de consultas materializada se utiliza para optimizar el proceso de una consulta. Esta propiedad afecta a la coincidencia de antememoria de sentencias dinámicas. El tipo de datos de esta propiedad es long.

1-88

IBM Data Server Driver para JDBC y SQLJ para IDS

currentSchema Especifica el nombre de esquema por omisión que se utiliza para calificar objetos de base de datos no calificados en sentencias de SQL preparadas dinámicamente. El valor de esta propiedad establece el valor del registro especial CURRENT SCHEMA en el servidor de bases de datos. cursorSensitivity Especifica si el valor de java.sql.ResultSet.TYPE_SCROLL_SENSITIVE para un ResultSet se correlaciona con el atributo SENSITIVE DYNAMIC, el atributo SENSITIVE STATIC, o el atributo ASENSITIVE para el cursor de base de datos subyacente. El tipo de datos de esta propiedad es int. Los valores posibles son TYPE_SCROLL_SENSITIVE_STATIC (0), TYPE_SCROLL_SENSITIVE_DYNAMIC (1), o TYPE_SCROLL_ASENSITIVE (2). El valor por omisión es TYPE_SCROLL_SENSITIVE_STATIC. Si la fuente de datos no es compatible con cursores desplazables dinámicos sensibles, y se especifica TYPE_SCROLL_SENSITIVE_DYNAMIC, el controlador JDBC obtiene un aviso y establece la sensibilidad en SENSITIVE STATIC. Para servidores de bases de datos de DB2 para i5/OS, los cuales no soportan cursores estáticos sensibles, el valor java.sql.ResultSet.TYPE_SCROLL_SENSITIVE siempre se correlaciona con SENSITIVE DYNAMIC. dateFormat Especifica: v El formato en que se debe especificar el argumento String del método PreparedStatement.setString sobre una columna DATE. v El formato en que se devuelve el resultado del método ResultSet.getString o CallableStatement.getString sobre una columna DATE. El tipo de datos de dateFormat es int. Los valores posibles de dateFormat son:
Constante com.ibm.db2.jcc.DB2BaseDataSource.ISO com.ibm.db2.jcc.DB2BaseDataSource.USA com.ibm.db2.jcc.DB2BaseDataSource.EUR com.ibm.db2.jcc.DB2BaseDataSource.JIS Valor entero Formato 1 2 3 4 aaaa-mm-dd mm/dd/aaaa dd.mm.aaaa aaaa-mm-dd

El valor por omisión es com.ibm.db2.jcc.DB2BaseDataSource.ISO. decimalRoundingMode Especifica la modalidad de redondeo para valores decimales de coma flotante en servidores de bases de datos DB2 para z/OS o DB2 Database para Linux, UNIX y Windows. Los valores posibles son: com.ibm.db2.jcc.DB2BaseDataSource.ROUND_DOWN (1) Redondea el valor por defecto (truncamiento). Los dígitos descartados no se tienen en cuenta. com.ibm.db2.jcc.DB2BaseDataSource.ROUND_CEILING (2) Redondea el valor hacia infinito positivo. Si todos los dígitos descartados son ceros, o si el signo es negativo, el resultado permanece inalterado salvo por la eliminación de los dígitos descartados. En otro caso, el coeficiente del resultado se incrementa en 1.

IBM Data Server Driver para JDBC y SQLJ para IDS

1-89

com.ibm.db2.jcc.DB2BaseDataSource.ROUND_HALF_EVEN (3) Redondea el valor hasta el valor más cercano; si los valores son equidistantes, redondea el valor de forma que el dígito final sea par. Si los dígitos descartados representan más que la mitad (0,5) del valor del dígito en la posición izquierda siguiente, el coeficiente del resultado se incrementa en 1. Si representan menos que la mitad, el coeficiente del resultado no se ajusta (es decir, los dígitos descartados no se tienen en cuenta). En otro caso, el coeficiente del resultado permanece inalterado si su dígito más a la derecha es par, o se incrementa en 1 si su dígito más a la derecha es impar (para convertirlo en un dígito par). com.ibm.db2.jcc.DB2BaseDataSource.ROUND_HALF_UP (4) Redondea el valor hasta el valor más cercano; si los valores son equidistantes, redondea el valor por exceso. Si los dígitos descartados representan un valor mayor o igual que la mitad (0,5) del valor del dígito en la posición izquierda siguiente, el coeficiente del resultado se incrementa en 1. En otro caso, los dígitos descartados no se tienen en cuenta. com.ibm.db2.jcc.DB2BaseDataSource.ROUND_FLOOR (6) Redondea el valor hacia infinito negativo. Si todos los dígitos descartados son ceros, o si el signo es positivo, el resultado permanece inalterado salvo por la eliminación de los dígitos descartados. En otro caso, el signo es negativo y el coeficiente del resultado se incrementa en 1. com.ibm.db2.jcc.DB2BaseDataSource.ROUND_UNSET (-2147483647) No se ha establecido explícitamente ninguna modalidad de redondeo. El IBM Data Server Driver para JDBC y SQLJ no utiliza la propiedad decimalRoundingMode para establecer la modalidad de redondeo en la fuente de datos. El IBM Data Server Driver para JDBC y SQLJ utiliza los valores siguientes para establecer la modalidad de redondeo: v Para servidores de bases de datos DB2 para z/OS o DB2 Database para Linux, UNIX y Windows, la modalidad de redondeo es ROUND_HALF_EVEN para valores decimales de coma flotante. Si decimalRoundingMode está definido, se utiliza el valor de decimalRoundingMode para establecer el registro especial CURRENT DECFLOAT ROUNDING MODE en los servidores de bases de datos DB2 para z/OS. fullyMaterializeInputStreams Indica si las corrientes de datos se materializan totalmente antes de ser enviadas a una fuente de datos. El tipo de datos de esta propiedad es boolean. El valor por omisión es false. Si el valor de fullyMaterializeInputStreams es true, ello significará que el controlador JDBC habrá materializado completamente las corrientes antes de enviarlas al servidor. gssCredential Para una fuente de datos que utilice la seguridad Kerberos, especifica una credencial delegada que se pasa desde otro principal. El tipo de datos de esta propiedad es org.ietf.jgss.GSSCredential. Las credenciales delegadas se utilizan en entornos de varios niveles, como cuando un cliente se conecta a WebSphere Application Server, y éste, a su vez, se conecta a la fuente de datos. El valor de esta propiedad se obtiene del cliente, invocando el método GSSContext.getDelegCred. GSSContext forma parte de la API GSS (Generic

1-90

IBM Data Server Driver para JDBC y SQLJ para IDS

debe también definir las propiedades Mechanism y KerberosServerPrincipal. y el valor de progressiveStreaming es DB2BaseDataSource.NO. El tipo de datos de esta propiedad es boolean. limita el número de reintentos si falla la conexión primaria con la fuente de datos. IBM Data Server Driver para JDBC y SQLJ utiliza la propiedad maxRetriesForClientReroute solamente si también establecida la propiedad retryIntervalForClientReroute. El tipo de datos de esta propiedad es int. Si maxRetriesForClientReroute o retryIntervalForClientReroute no está establecido. Para obtener más información sobre la utilización de la seguridad Kerberos con IBM Data Server Driver para JDBC y SQLJ. readOnly Especifica si la conexión es de solo lectura. la fuente de datos determina dinámicamente la forma más eficiente de devolver datos LOB o XML. Si el valor de progressiveStreaming es DB2BaseDataSource. El valor por omisión de maxRetriesForClientReroute es MAX_RETRIES_NOT_SET (-1). El valor del parámetro streamBufferSize determina si los datos se materializan cuando se devuelven. Esta propiedad solo es aplicable al IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. de acuerdo con el tamaño de los objetos LOB o XML. Si define esta propiedad. Los valores válidos son DB2BaseDataSource.NOT_SET. Si la propiedad progressiveStreaming no está especificada. IBM Data Server Driver para JDBC y SQLJ realiza reintentos durante 10 minutos. resultSetHoldabilityForCatalogQueries Especifica si los cursores de consultas que se ejecutan a petición de métodos IBM Data Server Driver para JDBC y SQLJ para IDS 1-91 . Esta propiedad solo es aplicable al IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4.NOT_SET (0). el valor de progressiveStreaming es DB2BaseDataSource. o la fuente de datos no es compatible con la modalidad continua progresiva. kerberosServerPrincipal Para una fuente de datos que utilice la seguridad Kerberos. progressiveStreaming Especifica si el controlador JDBC utiliza la modalidad continua progresiva cuando esta función es compatible con la fuente de datos. maxRetriesForClientReroute Durante el redireccionamiento automático del cliente. la forma en que el controlador JDBC devuelve datos de LOB o XML depende del valor de la propiedad fullyMaterializeLobData.Security Service) de IBM Java. Cuando se utiliza la modalidad continua progresiva. El valor por omisión es false. El tipo de datos de esta propiedad es String. El tipo de datos de progressiveStreaming es int. consulte ″Utilización de la seguridad Kerberos bajo IBM Data Server Driver para JDBC y SQLJ″. el controlador JDBC utiliza la modalidad continua progresiva para devolver datos de LOB y XML.NO (2). Si la conexión es con una fuente de datos que es compatible con la modalidad continua progresiva.YES o DB2BaseDataSource. especifica el nombre que se utiliza para la fuente de datos cuando se registra con el Centro de distribución de claves (KCD) de Kerberos.YES (1) y DB2BaseDataSource.

El tipo de datos de esta propiedad es int. Los valores válidos son HOLD_CURSORS_OVER_COMMIT (1) o CLOSE_CURSORS_AT_COMMIT (2). utilice la propiedad resultSetHoldabilityForCatalogQueries. El tipo de datos de esta propiedad es int. el IBM Data Server Driver para JDBC y SQLJ ejecuta consultas para el catálogo de la fuente de datos de destino. Éste es el valor por omisión.HOLD_CURSORS_OVER_COMMIT y ResultSet. DB2BaseDataSource. así como filas de tablas. IBM Data Server Driver para JDBC y SQLJ utiliza la propiedad retryIntervalForClientReroute solamente si también está establecida la propiedad maxRetriesForClientReroute. En el caso de tablas que tienen alias o sinónimos. en segundos. Esto es el valor por omisión. Cuando una aplicación ejecuta métodos DatabaseMetaData.NOT_SET (0) Utilizar el valor de resultSetHoldability para las consultas de catálogo. returnAlias Especifica si el controlador JDBC devuelve filas de alias de tabla y sinónimos para métodos DatabaseMetaData que devuelven información de tabla. sslConnection Especifica si IBM Data Server Driver para JDBC y SQLJ utiliza un socket SSL 1-92 IBM Data Server Driver para JDBC y SQLJ para IDS . que transcurre entre los reintentos de conexión. Si maxRetriesForClientReroute o retryIntervalForClientReroute no está establecido. retryIntervalForClientReroute Para el redireccionamiento automático del cliente. IBM Data Server Driver para JDBC y SQLJ realiza reintentos durante 10 minutos. sin importar el valor de resultSetHoldability.CLOSE_CURSORS_AT_COMMIT que se definen en JDBC 3. Los valores posibles son: DB2BaseDataSource.HOLD_CURSORS_OVER_COMMIT (1) Cerrar los cursores de las consultas de catálogo después de una operación de confirmación. sin importar el valor de resultSetHoldability. DB2BaseDataSource. El valor por omisión de retryIntervalForClientReroute es RETRY_INTERVAL_NOT_SET (-1). especifica la cantidad de tiempo.CLOSE_CURSORS_AT_COMMIT (2) Dejar abiertos los cursores de las consultas de catálogo después de una operación de confirmación. la capacidad de retención de esos cursores es la misma que la capacidad de retención de los cursores de aplicación. Para utilizar una capacidad de retención diferente para las consultas de catálogo. devolver filas de alias y sinónimos de dichas tablas. Por omisión.0. Estos valores son los mismos que las constantes ResultSet. El tipo de datos de returnAlias es int. Los valores posibles son: 0 1 No devolver filas para alias ni sinónimos de tablas en la salida de métodos DatabaseMetaData que devuelven información de tabla.DatabaseMetaData permanecen abiertos después de una operación de confirmación. en la salida de métodos DatabaseMetaData que devuelven información de tabla. como por ejemplo getTables.

ibm. los datos LOB o XML se materializarán si caben en los almacenamientos intermedios y el controlador no utilizará la propiedad fullyMaterializeLobData. streamBufferSize Especifica el tamaño.ISO com.db2.DB2BaseDataSource.db2.ibm.jcc. true es el valor por omisión.ibm. El valor por omisión es DB2BaseDataSource.ss hh:mm:ss El valor por omisión es com.ISO.jcc. la conexión utilizará un socket SSL.db2.mm. Si sslConnection se establece en false. El tipo de datos de useCachedCursor es boolean. Los valores posibles de timeFormat son: Constante com.NO (2).DB2BaseDataSource.DB2BaseDataSource.USA com.ibm. Si useCachedCursor está establecido en true. Establezca useCachedCursor en false si los objetos PreparedStatement acceden a tablas cuyos tipos o longitudes de columna cambian entre una ejecución y otra de esos objetos PreparedStatement. useCachedCursor Especifica si el cursor asociado a objetos PreparedStatement se coloca en la antememoria y se reutiliza en ejecuciones subsiguientes de PreparedStatement. la conexión utilizará un socket normal. en bytes. El tipo de datos de streamBufferSize es int. sysSchema Especifica el esquema de las tablas o vistas de catálogo de duplicación que se examinan cuando una aplicación invoca un método DatabaseMetaData.setString sobre una columna TIME.jcc.db2.para conectar con la fuente de datos.DB2BaseDataSource. Si el controlador JDBC utiliza la modalidad continua progresiva. Si sslConnection se establece en true.jcc. de los almacenamientos intermedios del controlador JDBC para truncar datos LOB o XML.JIS Valor entero Formato 1 2 3 4 hh:mm:ss h:mm am o h:mm pm hh.ibm.YES (1). La propiedad sysSchema se denominaba cliSchema anteriormente. El tipo de datos de timeFormat es int.getString sobre una columna TIME. El tipo de datos de esta propiedad es int. Si la aplicación se ejecuta en un servidor de aplicaciones BEA WebLogic Server. El controlador JDBC utiliza el valor streamBufferSize independientemente de que utilice la modalidad continua progresiva.EUR com.getString o CallableStatement. lo cual puede mejorar el rendimiento.DB2BaseDataSource. supportsAsynchronousXARollback Especifica si el IBM Data Server Driver para JDBC y SQLJ da soporte a operaciones de retrotracción XA asíncrona. el cursor asociado a objetos PreparedStatement se coloca en la antememoria. establezca supportsAsynchronousXARollback en DB2BaseDataSource.db2. timeFormat Especifica: v El formato en que se debe especificar el argumento String del método PreparedStatement.jcc. El valor por omisión es 1048576. v El formato en que se devuelve el resultado del método ResultSet. IBM Data Server Driver para JDBC y SQLJ para IDS 1-93 .

DB2ConnectionPoolDataSource.YES para habilitar la antememoria de sentencias dinámicas. El tipo de datos de esta propiedad es boolean. Propiedades comunes de IBM Data Server Driver para JDBC y SQLJ para DB2 para z/OS y IBM Informix Dynamic Server Algunas de las propiedades de IBM Data Server Driver para JDBC y SQLJ son aplicables a servidores de bases de datos IDS y DB2 para z/OS.getMessage o SQLWarning.NOT_SET (0). maxStatements controla la antememoria interna de sentencias que se asocia con un PooledConnection solamente cuando se crea el objeto PooledConnection. 0 es el valor por omisión. El tipo de datos de esta propiedad es int.getMessage de JDBC hacen que IBM Data Server Driver para JDBC y SQLJ invoque un procedimiento almacenado de DB2 para z/OS que recupera el texto del mensaje para el error. retrieveMessagesFromServerOnGetMessage Especifica si las llamadas a SQLException.db2. El parámetro de subsistema CACHEDYN debe establecerse en DB2BaseDataSource.NO (2). Si la propiedad keepDynamic no está especificada. 0 o entero negativo Inhabilita la puesta en la antememoria interna de sentencias para el objeto PooledConnection.ibm. keepDynamic se utiliza con la opción -keepdynamic de DB2Binder. El tipo de datos de esta propiedad es int. 1-94 IBM Data Server Driver para JDBC y SQLJ para IDS . el valor de keepDynamic es DB2BaseDataSource.com. Si la conexión está establecida con un servidor DB2 para z/OS. Los valores válidos son DB2BaseDataSource. Estas propiedades son las siguientes: keepDynamic Especifica si la fuente de datos mantiene sentencias de SQL dinámico ya preparadas en la antememoria de sentencias dinámicas después de puntos de confirmación para que esas sentencias preparadas se puedan reutilizar.YES (1) y DB2BaseDataSource. se colocan sentencias dinámicas en la antememoria para una conexión si la propiedad no está establecida. no se colocan sentencias dinámicas en la antememoria para una conexión si la propiedad no está establecida. solamente se pueden colocar sentencias dinámicas en la antememoria si la antememoria de sentencias dinámicas de EDM está habilitada en la fuente de datos. Para un servidor de bases de datos DB2 para z/OS. Los valores posibles son: entero positivo Habilita la antememoria interna de sentencias para un PooledConnection y especifica el número de sentencias que IBM Data Server Driver para JDBC y SQLJ mantiene abiertas en la antememoria. maxStatements es aplicable solamente a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. Si la conexión está establecida con una fuente de datos IDS. que significa que el texto completo del mensaje no se devuelve al cliente. El valor por omisión es false.maxStatements Controla una antememoria interna de sentencias que está asociada a un PooledConnection. El valor especificado para la propiedad keepDynamic debe coincidir con el valor de -keepdynamic que se especificó al ejecutar DB2Binder. maxStatements no tiene ningún efecto sobre la puesta en antememoria para un objeto PooledConnection ya existente.jcc.

Por ejemplo, si retrieveMessagesFromServerOnGetMessage está establecido en true, SQLException.getMessage devuelve un mensaje similar al siguiente cuando se intenta realizar una operación de SQL sobre una tabla ADMF001.NO_TABLE inexistente:
ADMF001.NO_TABLE IS AN UNDEFINED NAME. SQLCODE=-204, SQLSTATE=42704, DRIVER=3.50.54

Si retrieveMessagesFromServerOnGetMessage está establecido en false, se devuelve un mensaje similar al siguiente:
DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, DRIVER=3.50.54

En lugar de establecer esta propiedad en true, una alternativa consiste en utilizar el método DB2Sqlca.getMessage, específico de IBM Data Server Driver para JDBC y SQLJ, en aplicaciones. Ambas técnicas producen una llamada de procedimiento almacenado, la cual inicia una unidad de trabajo.

Propiedades comunes de IBM Data Server Driver para JDBC y SQLJ para servidores de bases de datos IBM Informix Dynamic Server y DB2 Database para Linux, UNIX y Windows
Algunas de las propiedades de IBM Data Server Driver para JDBC y SQLJ son aplicables a servidores de bases de datos IBM Informix Dynamic Server (IDS) y DB2 Database para Linux, UNIX y Windows. Estas propiedades son las siguientes: currentLockTimeout Especifica si los servidores DB2 Database para Linux, UNIX y Windows esperan un bloqueo cuando éste no se puede obtener de forma inmediata. El tipo de datos de esta propiedad es int. Los valores posibles son: entero La espera para un entero segundos. entero oscila entre -1 y 32767, ambos inclusive.

LOCK_TIMEOUT_NO_WAIT No espere ningún bloqueo. Éste es el valor por omisión. LOCK_TIMEOUT_WAIT_INDEFINITELY Espere un bloqueo durante un tiempo no definido. LOCK_TIMEOUT_NOT_SET Especifica utilizar el valor por omisión para la fuente de datos. queryDataSize Especifica un valor para controlar la cantidad de datos de una consulta, en bytes, que son devueltos por la fuente de datos en cada operación de recuperación de datos. Este valor se puede utilizar para optimizar la aplicación mediante el control del número de veces que es necesario acceder a la fuente de datos para recuperar los datos. Un valor mayor de queryDataSize puede originar un menor tráfico de red, y como resultado puede mejorar el rendimiento. Por ejemplo, si el tamaño del conjunto de resultados es 50 KB, y el valor de queryDataSize es 32768 (32KB), son necesarios dos accesos al servidor de bases de datos para recuperar el conjunto de resultados. En cambio, si queryDataSize es igual a 61440 (60 KB), solamente es necesario acceder una vez a la fuente de datos para recuperar el conjunto de resultados. La tabla siguiente muestra los valores mínimo, máximo y por omisión de queryDataSize para cada fuente de datos.

IBM Data Server Driver para JDBC y SQLJ para IDS

1-95

Tabla 1-14. Valores mínimo, máximo y por omisión de queryDataSize Fuente de datos DB2 Database para Linux, UNIX y Windows IDS DB2 para i5/OS DB2 para z/OS Valor mínimo de queryDataSize 4096 Valor máximo de queryDataSize 65535 Valor por omisión de queryDataSize 32767

4096 4096 No aplicable

10485760 65535 No aplicable

32767 32767 El tamaño de los datos de la consulta es siempre 32767.

Propiedades de IBM Data Server Driver para JDBC y SQLJ correspondientes a DB2 Database para Linux, UNIX y Windows
Algunas de las propiedades de IBM Data Server Driver para JDBC y SQLJ son aplicables solamente a servidores DB2 Database para Linux, UNIX y Windows. Estas propiedades son las siguientes: connectNode Especifica el servidor de particiones de base de datos de destino al que se conecta una aplicación. El tipo de datos de esta propiedad es int. Este valor puede estar comprendido entre 0 y 999. El valor por omisión es el servidor de particiones de base de datos que está definido con el puerto 0. La propiedad connectNode es aplicable solamente a la IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4 con servidores DB2 Database para Linux, UNIX y Windows. currentExplainMode Especifica el valor del registro especial CURRENT EXPLAIN MODE. El registro especial CURRENT EXPLAIN MODE habilita e inhabilita el recurso Explain. El tipo de datos de esta propiedad es String. La longitud máxima es de 254 bytes. Esta propiedad solamente es aplicable a conexiones con fuentes de datos que son compatibles con el registro especial CURRENT EXPLAIN MODE, tales como DB2 Database para Linux, UNIX y Windows. currentExplainSnapshot Especifica el valor del registro especial CURRENT EXPLAIN SNAPSHOT. El registro especial CURRENT EXPLAIN SNAPSHOT habilita e inhabilita el recurso de instantáneas Explain. El tipo de datos de esta propiedad es String. La longitud máxima es de ocho bytes. Esta propiedad solamente es aplicable a conexiones con fuentes de datos que son compatibles con el registro especial CURRENT EXPLAIN SNAPSHOT, tales como DB2 Database para Linux, UNIX y Windows. currentQueryOptimization Especifica un valor que controla la clase de optimización de consulta que el gestor de la base de datos lleva a cabo cuando vincula sentencias de SQL dinámico. El tipo de datos de esta propiedad es int. Los valores posibles de currentQueryOptimization son: 0 Especifica que se lleva a cabo una optimización mínima para generar un plan de acceso. Esta clase es la más adecuada para el acceso SQL dinámico simple para tablas bien indexadas.

1-96

IBM Data Server Driver para JDBC y SQLJ para IDS

1

Especifica que se realiza una optimización prácticamente igual a la de DB2 Database para Linux, UNIX y Windows Versión 1 para crear un plan de acceso. Especifica un nivel de optimización más alto que el de DB2 Database para Linux, UNIX y Windows Versión 1, pero con un coste de optimización significativamente menor que los niveles 3 y superiores, especialmente para consultas muy complejas. Especifica que se efectúa una optimización moderada para generar un plan de acceso. Especifica que se efectúa una optimización significativa para generar un plan de acceso. Para consultas SQL dinámico complejas, se utilizan las normas heurísticas para limitar el tiempo empleado en seleccionar un plan de acceso. Cuando sea posible, las consultas utilizarán tablas de consultas materializadas en lugar de la tablas base subyacentes. Especifica que se efectúa una optimización significativa para generar un plan de acceso. Este valor es igual a 5, pero sin las reglas heurísticas. Especifica la cantidad máxima de optimización que se ejecuta para crear un plan de acceso. Puede expandir mucho el número de planes de acceso posibles que se evalúan. Esta clase debe utilizarse para determinar si se puede generar un plan de acceso mejor para las consultas muy complejas y de muy larga ejecución que utilizan tablas grandes. Las medidas de explicación y de rendimiento se pueden utilizar para verificar que se haya generado el plan mejor.

2

3 5

7

9

optimizationProfile Especifica un perfil de optimización que se utiliza durante la optimización de SQL. El tipo de datos de esta propiedad es String. El valor de optimizationProfile se utiliza para definir el registro especial OPTIMIZATION PROFILE. El valor por omisión es nulo. La propiedad optimizationProfile es aplicable solamente a servidores DB2 Database para Linux, UNIX y Windows. optimizationProfileToFlush Especifica el nombre de un perfil de optimización que se debe eliminar de la antememoria de perfiles de optimización. El tipo de datos de esta propiedad es String. El valor por omisión es nulo. plugin Nombre del plugin de seguridad JDBC de la parte del cliente. Esta propiedad es de tipo Object y contiene una instancia nueva del método de plugin de seguridad JDBC. pluginName Nombre del módulo del plugin de seguridad del lado del servidor. useTransactionRedirect Especifica si el sistema DB2 encamina sentencias de SQL hacia particiones de base de datos diferentes para lograr un mejor rendimiento. El tipo de datos de esta propiedad es boolean. El valor por omisión es false. Esta propiedad es aplicable solamente cuando se cumplen estas condiciones: v La conexión se establece con un servidor DB2 Database para Linux, UNIX y Windows donde se utiliza Database Partitioning Feature (DPF).

IBM Data Server Driver para JDBC y SQLJ para IDS

1-97

v La clave de particionamiento permanece constante durante toda una transacción. Si useTransactionRedirect es true, el IBM Data Server Driver para JDBC y SQLJ envía peticiones de conexión al nodo DPF donde residen los datos de destino de la primera sentencia direccionable de la transacción. Entonces DB2 Database para Linux, UNIX y Windows encamina la sentencia de SQL hacia particiones diferentes según sea necesario.

Propiedades de IBM Data Server Driver para JDBC y SQLJ correspondientes a DB2 para z/OS
Algunas de las propiedades de IBM Data Server Driver para JDBC y SQLJ son aplicables solamente a servidores DB2 para z/OS. Estas propiedades son las siguientes: accountingInterval Especifica si se crean registros contables de DB2 para z/OS en los puntos de confirmación o al concluir la conexión física con la fuente de datos. El tipo de datos de esta propiedad es String. Si el valor de accountingInterval es ″COMMIT″, se crean registros contables en los puntos de confirmación. En otro caso, se crean registros contables al concluir la conexión física con la fuente de datos. accountingInterval sólo es aplicable al IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 en DB2 para z/OS. accountingInterval no es aplicable a las conexiones en CICS o IMS, ni a los procedimientos almacenados Java. La propiedad accountingInterval altera temporalmente la propiedad de configuración db2.jcc.accountingInterval. charOutputSize Especifica el número máximo de bytes que se deben utilizar para parámetros de procedimiento almacenado INOUT o OUT que estén registrados como Types.CHAR. charOutputSize sólo se aplica al IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 con servidores de bases de datos DB2 para z/OS. Puesto que la información de DESCRIBE para los parámetros de procedimiento almacenado INOUT y OUT no está disponible en tiempo de ejecución, el IBM Data Server Driver para JDBC y SQLJ establece 32767 como longitud máxima de cada parámetro INOUT o OUT de carácter. Para los procedimientos almacenados con muchos parámetros Types.CHAR, este valor máximo puede tener como resultado la asignación de mucho más almacenamiento del necesario. Para utilizar el almacenamiento de modo más eficaz, establezca charOutputSize con la longitud máxima prevista para cualquier parámetro INOUT o OUT de Types.CHAR. charOutputSize no tiene ningún efecto sobre los parámetros INOUT o OUT registrados como Types.VARCHAR o Types.LONGVARCHAR. El controlador utiliza la longitud por omisión, 32767, para los parámetros Types.VARCHAR y Types.LONGVARCHAR. El valor que seleccione para charOutputSize debe tener en cuenta la posibilidad de ampliación durante la conversión de caracteres. Puesto que el IBM Data Server Driver para JDBC y SQLJ no tiene información sobre el CCSID correspondiente al servidor que se utiliza para los valores de los parámetros de salida, el controlador solicita los datos de salida del

1-98

IBM Data Server Driver para JDBC y SQLJ para IDS

La longitud máxima es 254 bytes. Para garantizar que el valor de charOutputSize sea suficientemente elevado. el valor se debe rellenar con blancos. El tipo de datos de esta propiedad es String. pero un valor null de Java no es válido. clientProgramId Especifica un valor para ID del programa cliente que sirve para identificar al usuario final. CLIENT DEBUGINFO es utilizado por el depurador unificado de DB2. El valor de charOutputSize debe ser el número máximo de bytes que se necesitan después de que el valor del parámetro se convierta a UTF-8 Unicode. Para un servidor DB2 para z/OS. (El símbolo del euro es un ejemplo de carácter UTF-8 de tres bytes). si no dispone de información sobre los datos de salida. Este valor puede cambiar durante una conexión. El tipo de datos de esta propiedad es String. clientProgramName Especifica el ID de aplicación que se utilizar mientras dure la conexión física para un cliente. clientAccountingInformation Especifica información contable correspondiente al cliente actual de la conexión. Esta propiedad solamente es aplicable a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS. Los caracteres UTF-8 Unicode pueden necesitar hasta tres bytes. Utilice esta propiedad para proporcionar la identidad del usuario final cliente con fines de contabilidad y supervisión. Esta propiedad solamente es aplicable a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS. Esta propiedad solamente es aplicable a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS. El valor de esta propiedad se convierte en el ID de correlación en un servidor DB2 para z/OS. Una serie vacía Java (″″) es válida para este valor. El tipo de datos de esta propiedad es String. Este valor puede cambiar durante una conexión. Esta propiedad solamente es aplicable a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS. Los administradores de base de datos pueden utilizar esta propiedad para correlacionar tareas en un servidor DB2 para z/OS con aplicaciones de cliente. El tipo de datos de esta propiedad es String. establezca como valor de charOutputSize un valor del triple de la longitud definida del parámetro CHAR más elevado. la longitud máxima es de 255 bytes. la longitud máxima es 32 bytes. Sirve para notificar al servidor DB2 para z/OS que los procedimientos almacenados y funciones definidas por el usuario que están haciendo uso de la conexión se están ejecutando en la modalidad de depuración. IBM Data Server Driver para JDBC y SQLJ para IDS 1-99 . Esta información se utiliza con fines de contabilidad de clientes. Para un servidor DB2 para z/OS. y la longitud es 80 bytes. Una serie de caracteres vacía de Java (″″) es válida para este valor. Si este valor es null.procedimiento almacenado en UTF-8 Unicode. clientApplicationInformation Especifica el nombre de aplicación o transacción de la aplicación del usuario final. el IBM Data Server Driver para JDBC y SQLJ proporcionará un valor db2jccnombre-hebra. pero un valor null de Java no es válido. clientDebugInfo Especifica un valor para el atributo de conexión CLIENT DEBUGINFO. Si el valor del ID de programa es menor que 80 bytes. La longitud máxima es de 12 bytes. El tipo de datos de esta propiedad es String.

A diferencia del nombre de usuario de una conexión JDBC. enableConnectionConcentrator se establecerá en true por omisión. Esta propiedad solamente es aplicable a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS. el nombre de esquema por omisión es el valor del registro especial CURRENT SQLID. este valor puede cambiar durante una conexión. El tipo de datos de jdbcCollection es String. enableSysplexWLB Indica si la función de equilibrado de carga de trabajo Sysplex del IBM Data Server Driver para JDBC y SQLJ está habilitada. Si enableSysplexWLB se establece en true. Para un servidor DB2 para z/OS. La función de equilibrado de carga de trabajo Sysplex está disponible sólo para conexiones con servidores DB2 para z/OS. la longitud máxima es 16 bytes. jdbcCollection Especifica el ID de colección de los paquetes que son utilizados por una instancia del IBM Data Server Driver para JDBC y SQLJ durante la ejecución. v El propietario de un espacio de tablas. Una serie de caracteres vacía de Java (″″) es válida para este valor. 1-100 IBM Data Server Driver para JDBC y SQLJ para IDS . Esta información se utiliza con fines de contabilidad de clientes. clientWorkstation Especifica el nombre de la estación de trabajo correspondiente al cliente actual de la conexión. si enableSysplexWLB se ha establecido en true. el valor por omisión será true. El valor por omisión es NULLID. La propiedad currentSQLID define el valor del registro especial CURRENT SQLID en un servidor DB2 para z/OS. El valor por omisión es false. v El calificador implícito de todos los nombres de tabla. base de datos. Esta propiedad solamente es aplicable a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS. la longitud máxima es de 18 bytes. El tipo de datos de esta propiedad es String. La función del concentrador de conexión está disponible sólo para conexiones con servidores DB2 para z/OS. Para un servidor DB2 para z/OS.clientUser Especifica el nombre de usuario del cliente actual de la conexión. Este valor puede cambiar durante una conexión. vista. Si la propiedad currentSQLID no está definida. pero un valor null de Java no es válido. currentSQLID Especifica: v El ID de autorización que se utiliza para la comprobación de autorizaciones en las sentencias CREATE. enableConnectionConcentrator Indica si la función del concentrador de conexión del IBM Data Server Driver para JDBC y SQLJ está habilitada. grupo de almacenamiento o sinónimo que es creado por una sentencia CREATE emitida dinámicamente. Esta información se utiliza con fines de contabilidad de clientes. Sin embargo. El tipo de datos de enableSysplexWLB es boolean. GRANT y REVOKE de SQL preparadas dinámicamente. alias e índice especificados en sentencias de SQL dinámico. El valor por omisión es false. El tipo de datos de enableConnectionConcentrator es boolean.

maxTransportObjects del controlador. la agrupación emitirá una excepción SQLException. queryCloseImplicit Especifica si los cursores se cierran inmediatamente después de que se hayan captado todas las filas. lo que significa que el número de objetos de transporte de DataSource está limitado únicamente por el valor db2.QUERY_CLOSE_IMPLICIT_YES. Una vez transcurrido dicho período de tiempo.maxTransportObjects. Un valor de DB2BaseDataSource. Los valores posibles son DB2BaseDataSource.QUERY_CLOSE_IMPLICIT_YES puede tener un rendimiento mejor. la aplicación esperará el tiempo especificado por la propiedad de configuración db2. maxTransportObjects no tiene efecto alguna en las conexiones procedentes de otros objetos DataSource.maxTransportObjects.maxTransportObjectWaitTime. El valor por omisión de maxTransportObjects es -1.QUERY_CLOSE_IMPLICIT_NO (2). ya que esta configuración reduce el tráfico de red. jdbcCollection no es aplicable al IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 en DB2 para z/OS. maxTransportObjects no altera temporalmente la propiedad de configuración db2. Para SQLJ.Esta propiedad se utiliza con la opción -collection de DB2Binder. El valor de jdbcCollection no determina la colección que se utiliza para aplicaciones SQLJ. sendCharInputsUTF8 Especifica si el IBM Data Server Driver para JDBC y SQLJ convierte los datos de entrada de tipo carácter al CCSID del servidor de bases de datos DB2 para IBM Data Server Driver para JDBC y SQLJ para IDS 1-101 . Si el valor maxTransportObjects es mayor que el valor db2. Existe un solo objeto de transporte para cada conexión física con la fuente de base de datos.jcc. El valor maxTransportObjects se pasa por alto si las propiedades enableConnectionConcentrator y enableSysplexWLB no se establecen para habilitar el uso del concentrador de conexión o del equilibrado de carga de trabajo Sysplex. El tipo de datos de esta propiedad es int.jcc. Si se ha alcanzado el valor maxTransportObjects. maxTransportObjects Especifica el número máximo de objetos de transporte que se pueden utilizar para todas las conexiones con el objeto DataSource asociado.jcc. queryCloseImplicit se aplica sólo para el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4 con servidores de bases de datos DB2 para z/OS. la agrupación creará un objeto de transporte nuevo. si todavía no hay ningún objeto de transporte disponible en la agrupación. la colección está determinada por la opción -collection del personalizador de SQLJ. El programa de utilidad DB2Binder debe previamente haber vinculado paquetes de IBM Data Server Driver para JDBC y SQLJ en el servidor utilizando un valor de -collection que coincida con el valor de jdbcCollection. El IBM Data Server Driver para JDBC y SQLJ utiliza objetos de transporte y una agrupación de objetos de transporte global para dar soporte al concentrador de conexión y al equilibrado de carga de trabajo Sysplex.QUERY_CLOSE_IMPLICIT_YES (1) y DB2BaseDataSource.maxTransportObjects.jcc. El valor por omisión es DB2BaseDataSource. Si no se ha alcanzado el valor maxTransportObjects y no hay ningún objeto de transporte disponible en la agrupación de objetos de transporte global. maxTransportObjects no incrementará el valor db2.jcc.

ibm. com.DB2BaseDataSource.db2.YES.z/OS. com. este valor prevalece sobre el valor a nivel de controlador. Si esta propiedad está definida también a nivel de controlador (db2. Si establece sendCharInputsUTF8 en com. El tipo de datos de esta propiedad es int. El carácter de línea siguiente produce un comportamiento inesperado en algunos analizadores sintácticos de XML. el controlador necesita asignar un espacio tres veces mayor que el número máximo de caracteres de los datos de entrada.ibm. La propiedad sendCharInputsUTF8 es aplicable solamente a IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 con servidores de bases de datos DB2 para z/OS. durante la recuperación de los datos. el servidor de bases de datos DB2 para z/OS convierte el carácter U+000A al carácter de salto de línea de EBCDIC (X’25’) durante la inserción en la columna. Pero.NO es el valor por omisión.jcc. o si envía los datos en la codificación UTF-8 para su conversión por el servidor de bases de datos. por lo que el carácter se recupera siempre como carácter de salto de línea.jcc. El servidor de bases de datos convierte los datos desde la codificación UTF-8 al CCSID de destino.ibm.db2. Los valores posibles son: com. el carácter de salto de línea se convierte en el carácter de línea nueva de EBCDIC. Especifique com.jcc.DB2BaseDataSource.DB2BaseDataSource.DB2BaseDataSource. El controlador asigna memoria para la conversión de datos de tipo carácter desde la codificación de origen a la codificación de los datos que envía al servidor de bases de datos. Los datos con codificación UTF-8 pueden necesitar hasta tres bytes para cada carácter.db2.jcc. Por tanto.NO (2) Especifica que el IBM Data Server Driver para JDBC y SQLJ convierte los datos de entrada de tipo carácter a la codificación de destino antes de enviar los datos al servidor de bases de datos DB2 para z/OS. Si el controlador realiza la conversión y el CCSID de 1-102 IBM Data Server Driver para JDBC y SQLJ para IDS .db2.sendCharInputsUTF8). La cantidad de espacio que el controlador asigna para datos de tipo carácter que se envían a una columna de tabla está basada en la longitud máxima posible de los datos.db2. en lugar de convertirlo al carácter de salto de línea (U+000A). algunos SDK de Java que se ejecutan en sistemas operativos distintos de z/OS convierten el carácter X’15’ al carácter de línea siguiente de Unicode (U+0085).ibm.DB2BaseDataSource.jcc.YES solamente si la conversión al CCSID de destino por el SDK de Java causa problemas de conversión de caracteres. y luego se recuperan esos datos a partir de un cliente que no es un cliente z/OS. X’15’. si el controlador envía datos UTF-8 al servidor de bases de datos. La conversión de datos al CCSID de destino en el servidor de bases de datos puede hacer que el IBM Data Server Driver para JDBC y SQLJ utilice más memoria que la conversión por el controlador. El problema más habitual se produce cuando se utiliza IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 para insertar un carácter Unicode de salto de línea (U+000A) en una columna de tabla cuyo CCSID es 37.jcc.YES (1) Especifica que el IBM Data Server Driver para JDBC y SQLJ envía los datos de entrada de tipo carácter al servidor de bases de datos DB2 para z/OS en la codificación UTF-8. Si el SDK de Java realiza la conversión durante la inserción del carácter en la columna.ibm.

.getDBDATE().getCursorName para obtener el nombre del cursor para ResultSet. El valor por omisión es false. el controlador necesita asignar solamente un espacio igual al número máximo de caracteres de los datos de entrada. Por ejemplo: boolean dbDate = DB2BaseDateSource. Las aplicaciones que utilizan la técnica 1 de JDBC para realizar operaciones de actualización o supresión de posición pueden seguir obteniendo los resultados deseados estableciendo useRowSetCursor en false. Propiedades de IBM Data Server Driver para JDBC y SQLJ correspondientes a IBM Informix Dynamic Server Algunas de las propiedades de IBM Data Server Driver para JDBC y SQLJ son aplicables solamente a bases de datos de IBM Informix Dynamic Server (IDS). Las propiedades específicas de IDS se deben especificar en letras mayúsculas. La propiedad useRowsetCursor es aplicable solamente a conexiones con servidores de bases de datos DB2 para z/OS. El tipo de datos de esta propiedad es boolean.. Establezca useRowSetCursor en false para asegurar que cada operación FETCH devuelva una sola fila. y definir una sentencia UPDATE o DELETE de posición de esta manera: UPDATE tabla SET col1=valor1. La técnica JDBC 1 supone utilizar el método ResultSet.coln=valorN WHERE CURRENT OF nombre-cursor DELETE FROM tabla WHERE CURRENT OF nombre_cursor Esas aplicaciones no operan debidamente si el IBM Data Server Driver para JDBC y SQLJ utiliza sentencias FETCH de varias filas.ear). Estas propiedades corresponden a variables de entorno de IDS. Los métodos getXXX y setXXX para propiedades específicas de IDS se forman anteponiendo get o set al nombre de la propiedad escrito en mayúsculas. Los valores posibles son: false ó 0 No envía un valor a la base de datos IDS que indica a la base de datos IBM Data Server Driver para JDBC y SQLJ para IDS 1-103 . useRowsetCursor Especifica si el IBM Data Server Driver para JDBC y SQLJ utiliza siempre operaciones FETCH de varias filas para cursores desplazables si la fuente de datos es compatible con esas operaciones. Las propiedades específicas de IDS son: DBANSIWARN Especifica si IBM Data Server Driver para JDBC y SQLJ indica a la base de datos IDS si debe devolver un SQLWarning a la aplicación si una sentencia SQL utiliza una sintaxis que no sigue el estándar ANSI.destino es un CCSID de un solo byte. sqljEnableClassLoaderSpecificProfiles Especifica si el IBM Data Server Driver para JDBC y SQLJ permite utilizar y cargar perfiles SQLJ con el mismo nombre Java en varios archivos de aplicación J2EE (. El tipo de datos de esta propiedad es boolean. El tipo de datos de esta propiedad es boolean. Esta propiedad está pensada principalmente para utilizarla con WebSphere Application Server. El valor por omisión es true.. sqljEnableClassLoaderSpecificProfiles es una propiedad de DataSource.

Se utiliza el valor de la variable de entorno DBSPACETEMP. que la sentencia UPDATE STATISTICS puede utilizar cuando crea varias distribuciones de columnas al mismo tiempo. Los valores posibles están descritos en la explicación de la variable de entorno DBDATE. Los valores posibles son: 1-104 IBM Data Server Driver para JDBC y SQLJ para IDS . Se utiliza el valor de la variable de entorno DBUPSPACE. DBDATE Especifica el formato de usuario final para los valores de tipo DATE. no se puede utilizar la propiedad DBANSIWARN de IBM Data Server Driver para JDBC y SQLJ para restablecer la propiedad DBANSIWARN de IDS. separados por signos de dos puntos. donde se colocan tablas temporales. DBUPSPACE Especifica la cantidad máxima de espacio de disco del sistema y la cantidad máxima de memoria. El tipo de datos de esta propiedad es String. El formato de DBUPSPACE es ″espacio-disco-máximo:memoria-máxima″. DBTEMP Especifica la vía de acceso completa de un directorio existente donde se colocan archivos temporales y tablas temporales. true ó 1 Envía un valor a la base de datos IDS que indica a la base de datos IDS que debe devolver un SQLWarning a la aplicación si una sentencia SQL utiliza una sintaxis que no sigue el estándar ANSI. no se envía ningún valor al servidor. DBSPACETEMP Especifica una lista de espacios de base de datos existentes. El tipo de datos de esta propiedad es boolean.IDS si debe devolver un SQLWarning a la aplicación si una sentencia SQL utiliza una sintaxis que no sigue el estándar ANSI. El valor por omisión es ″Y4MD-″. Cada valor puede ser: v Una vía de acceso completa v Una vía de acceso relativa v El nombre de un servidor de bases de datos IDS v Un nombre de servidor y una vía de acceso completa El valor por omisión es ″.″. no se envía ningún valor al servidor. Éste es el valor por omisión. sin embargo. DBPATH Especifica una lista de valores. El tipo de datos de esta propiedad es String. en kilobytes. separados por comas o signos de dos puntos. DELIMIDENT Especifica si se pueden utilizar identificadores de SQL delimitados en una aplicación. que identifican los servidores de bases de datos que contienen bases de datos. Si esta propiedad no está definida. Si esta propiedad no está definida. El tipo de datos de esta propiedad es String. El valor por omisión es ″/tmp″. en el manual IBM Informix Guide to SQL: Reference. El tipo de datos de esta propiedad es String. El tipo de datos de esta propiedad es String. Existe la posibilidad de utilizar la propiedad DBANSIWARN de IBM Data Server Driver para JDBC y SQLJ para establecer la propiedad DBANSIWARN de IDS.

IBM Data Server Driver para JDBC y SQLJ para IDS 1-105 . Cualquier valor no nulo indica que una operación DESCRIBE de una sentencia UPDATE está permitida. en kilobytes. Se utiliza el valor de la variable de entorno IFX_XASTDCOMPLIANCE_XAEND. Se utilizan comillas simples (’) para delimitar series literales. ″1″ Si esta propiedad no está definida. no se envía ningún valor al servidor. La aplicación puede contener identificadores de SQL delimitados. Los valores posibles son: ″0″ Las transacciones globales se liberan solamente después de una retrotracción explícita.false La aplicación no puede contener identificadores de SQL delimitados. Si esta propiedad no está definida. Los valores posibles son: ″1″ u ″ON″ Se aceptan las directivas externas de optimización de consultas. IFX_UPDDESC Especifica si está permitida una operación DESCRIBE de sentencia UPDATE. Se utiliza el valor de la variable de entorno IFX_DIRECTIVES. El tipo de datos de esta propiedad es String. para el espacio de BLOB del área de transferencia de datos de la aplicación cliente. Esto es el valor por omisión. Se utiliza el valor de la variable de entorno IFX_EXTDIRECTIVES. no se envía ningún valor al servidor. Se utilizan comillas dobles (″) o comillas simples (’) para delimitar las series literales. El tipo de datos de esta propiedad es String. Este comportamiento se ajusta al estándar XA de X/Open. Los valores posibles son: ″1″ u ″ON″ Se aceptan las directivas de optimización. El valor ″0″ significa que la antememoria no se utiliza. El tipo de datos de esta propiedad es String. no se envía ningún valor al servidor. El valor por omisión es ″1″. ″0″ u ″OFF″ No se aceptan las directivas externas de optimización de consultas. IFX_XASTDCOMPLIANCE_XAEND Especifica si las transacciones globales solamente se liberan después de una retrotracción explícita o después de cualquier retrotracción. INFORMIXOPCACHE Especifica el tamaño de la antememoria. El tipo de datos de esta propiedad es String. ″0″ u ″OFF″ No se aceptan las directivas de optimización. Las transacciones globales se liberan después de cualquier retrotracción. Si esta propiedad no está definida. IFX_EXTDIRECTIVES Especifica si el optimizador permite que directivas externas de optimización de consultas procedentes de la tabla de catálogo del sistema sysdirectives se apliquen a las consultas en las aplicaciones existentes. Los identificadores de SQL delimitados se deben encerrar entre comillas dobles. true IFX_DIRECTIVES Especifica si el optimizador permite directivas de optimización de consultas desde dentro de una consulta.

no se envía ningún valor al servidor. UPDATE y DELETE) cuando se crea una nueva tabla durante la sesión actual. cuando sea posible. Se utiliza el valor de la variable de entorno INFORMIXSTACKSIZE. en una base de datos que no se ajusta al estándar ANSI. cuando sea posible. en lugar de una unión de clasificación-fusión o una unión aleatoria. Cuando el nivel de aislamiento es lectura repetitiva. Los valores posibles son: ″0″ El optimizador elige realizar una unión de bucle anidado. El tipo de datos de esta propiedad es String. en una base de datos que no se ajusta al estándar ANSI. El tipo de datos de esta propiedad es String. en una base de datos que no se ajusta al estándar ANSI. no se envía ningún valor al servidor. 1-106 IBM Data Server Driver para JDBC y SQLJ para IDS . INFORMIXSTACKSIZE Especifica el tamaño de pila. no se envía ningún valor al servidor. Los valores posibles son: ″yes″ El servidor de bases de datos impide que se otorguen a PUBLIC privilegios por omisión sobre tablas cuando se crea una nueva tabla durante la sesión actual. Se utiliza el valor de la variable de entorno OPTOFCD. OPTOFC Especifica si se debe habilitar la funcionalidad optimize-OPEN-FETCH-CLOSE. que el servidor de bases de datos utiliza para la hebra primaria de una sesión cliente. El tipo de datos de esta propiedad es String. ″no″ OPTCOMPIND Especifica el método preferido para realizar una operación de unión en un par ordenado de tablas. Cuando el nivel de aislamiento no es lectura repetitiva. Si esta propiedad no está definida. NODEFDAC Especifica si el servidor de bases de datos impide que se otorguen a PUBLIC privilegios por omisión sobre tablas (SELECT. El optimizador elige un método de unión basándose en los costes. no se envía ningún valor al servidor. El tipo de datos de esta propiedad es String. en kilobytes. el optimizador elige un método de unión basándose en los costes. en lugar de una unión de clasificación-fusión o una unión aleatoria. INSERT. sin importar la modalidad de aislamiento de la transacción. Se utiliza el valor de la variable de entorno INFORMIXOPCACHE. Habilitar la funcionalidad optimize-OPEN-FETCH-CLOSE para todos los cursores en todas las hebras de aplicaciones. Los valores posibles son: ″0″ ″1″ Inhabilitar la funcionalidad optimize-OPEN-FETCH-CLOSE para todas las hebras de aplicaciones. Si esta propiedad no está definida.Si esta propiedad no está definida. ″1″ ″2″ Si esta propiedad no está definida. El servidor de bases de datos no impide que se otorguen a PUBLIC privilegios por omisión sobre tablas cuando se crea una nueva tabla durante la sesión actual. Éste es el valor por omisión. Se utiliza el valor de la variable de entorno OPTCOMPIND. el optimizador elige realizar una unión de bucle anidado.

no se envía ningún valor al servidor. Puede establecer cualquiera de las propiedades de configuración del IBM Data Server Driver para JDBC y SQLJ siguientes. PSORT_DBTEMP Especifica la vía de acceso completa de un directorio en el que el servidor de bases de datos escribe archivos temporales que se utilizan para una operación de clasificación. El valor máximo de PSORT_NPROCS es ″10″. Se utiliza el valor de la variable de entorno PSORT_DBTEMP. db2. Si esta propiedad no está definida. El tipo de datos de esta propiedad es String. no se envía ningún valor al servidor.jcc. Si esta propiedad no está definida.override. Los valores posibles son: ″HIGH″ Cuando el servidor de bases de datos asigna recursos entre todos los usuarios. Todas las propiedades son opcionales. Se utiliza el valor de la variable de entorno PDQPRIORITY.override. IBM Data Server Driver para JDBC y SQLJ para IDS 1-107 .jcc. Los valores posibles son: ″0″ ″1″ Se inhabilita la antememoria de sentencias compartida. no se envía ningún valor al servidor. ″LOW″ o ″1″ El servidor de bases de datos recupera valores de tablas fragmentadas en paralelo. Si esta propiedad no está definida. Se utiliza el valor de la variable de entorno STMT_CACHE. Se utiliza el valor de la variable de entorno PSORT_NPROCS. Propiedades de configuración del IBM Data Server Driver para JDBC y SQLJ Las propiedades de configuración del IBM Data Server Driver para JDBC y SQLJ tienen un ámbito a nivel de controlador. El tipo de datos de esta propiedad es String. El tipo de datos de esta propiedad es String. El tipo de datos de esta propiedad es String. Cuando se especifica db2.PDQPRIORITY Especifica el grado de paralelismo utilizado por el servidor de bases de datos. Si esta propiedad no está definida. no se envía ningún valor al servidor. proporciona tantos recursos como sea posible a las consultas.traceDirectory Habilita el rastreo del IBM Data Server Driver para JDBC y SQLJ para el código de controlador Java y especifica el directorio en el que se grabará la información de rastreo. STMT_CACHE Especifica si se habilita la antememoria de sentencias compartida.jcc. procesadores y lecturas de disco. El valor de PDQPRIORITY determina cómo el servidor de bases de datos asigna recursos.traceDirectory o db2. tales como memoria. la información de rastreo correspondiente a varias conexiones en el mismo DataSource se graba en varios archivos. Se habilita una antememoria de sentencias compartida de 512 KB. ″OFF″ o ″0″ El proceso en paralelo está inhabilitado. PSORT_NPROCS Especifica el número máximo de hebras que el servidor de bases de datos puede utilizar para clasificar una consulta.traceDirectory.

driver Grabador de anotaciones cronológicas para un objeto DB2Driver.traceDirectory.override. Por ejemplo.override. TRACE_DRDA_FLOWS tiene un valor hexadecimal de X’40’.traceLevel o db2. db2.traceDirectory. nombre-archivo es traceFile.override. utilice la operación (|) OR con los valores. La propiedad db2.jcc.override.jcc. v n es la conexión número n correspondiente a una DataSource.jcc.traceFileName ni db2.jcc. El valor decimal equivalente es 65.jcc.traceLevel o db2.jcc.override.jcc.traceFileName.jcc.traceLevel Especifica qué se debe rastrear.jcc.jcc.override. v Si no se especifica db2.jcc. nombre-archivo es el valor de db2. Grabador de anotaciones cronológicas para un objeto DB2XADataSource. Los valores posibles de origen son: cpds Grabador de anotaciones cronológicas para un objeto DB2ConnectionPoolDataSource. se habilita el rastreo del código Java del IBM Data Server Driver para JDBC y SQLJ que se guardará en archivos del directorio /SYSTEM/tmp: db2.traceLevel=65 1-108 IBM Data Server Driver para JDBC y SQLJ para IDS . si se especifica el valor siguiente para db2.traceDirectory prevalece sobre la propiedad traceDirectory en el caso de un objeto Connection o DataSource. hay que realizar una operación OR a nivel de bits con los dos valores.traceLevel.traceFileName.jcc. sds xads Grabador de anotaciones cronológicas para un objeto DB2SimpleDataSource. Los niveles de rastreo corresponden a los mismos niveles de rastreo que los definidos para la propiedad traceLevel en un objeto Connection o DataSource. con lo que se obtiene el valor X’41’. de forma que se especificaría: db2.jcc. Para especificar ambos niveles de rastreo.traceFileName o db2.jcc. Existe la posibilidad de especificar uno o más niveles de rastreo especificando un valor decimal.override.override. Si se especifica db2.traceFileName. v origen indica el origen del grabador de anotaciones cronológicas que se está utilizando.traceDirectory=/SYSTEM/tmp Debe establecer las propiedades del rastreo bajo la dirección del soporte de software de IBM. Si desea especificar más de un nivel de rastreo. Por ejemplo.traceLevel.traceLevel prevalece sobre la propiedad traceLevel de un objeto Connection o DataSource.override. TRACE_CONNECTION_CALLS tiene un valor hexadecimal de X’01’.Cuando se especifica db2.jcc.jcc.jcc.override.traceFileName o db2. el resultado del rastreo de una conexión se guarda en un archivo denominado nombre_archivo_origen_n.override.override. La propiedad db2. y especifique el resultado con un valor decimal en la especificación db2. global Grabador de anotaciones cronológicas para un objeto DB2TraceManager. suponga que desea especificar TRACE_DRDA_FLOWS y TRACE_CONNECTIONS para db2.

IBM Data Server Driver para JDBC y SQLJ para IDS 1-109 .traceFile prevalece sobre la propiedad traceFile en el caso de un objeto Connection o DataSource.0. DB2 para z/OS.traceFile o db2.traceFile Habilita el rastreo del IBM Data Server Driver para JDBC y SQLJ para el código de controlador Java y especifica el nombre en el que se basan los nombres de archivo de rastreo. El tipo de datos de esta propiedad es boolean.traceFile. Soporte de controladores para las API de JDBC Los controladores JDBC que pueden ser utilizados por sistemas de bases de datos DB2 e IBM Informix Dynamic Server (IDS) tienen niveles diferentes de compatibilidad para los métodos JDBC. Especifique un nombre de archivo de z/OS UNIX System Services totalmente calificado para el valor de la propiedad db2.0. db2. Controladores JDBC para sistemas de bases de datos DB2 e IDS Nombre del controlador JDBC IBM Data Server Driver para JDBC y SQLJ Fuente de datos asociada DB2 Database para Linux. UNIX y Windows (en desuso) Controlador JDBC de IBM Informix (Controlador JDBC de IDS) Si un método tiene formatos de JDBC 2.jcc. El valor por omisión es false.override.override.override.traceFile=/SYSTEM/tmp/jdbctrace Debe establecer las propiedades del rastreo bajo la dirección del soporte de software de IBM.override.override.override. si se especifica el valor siguiente para db2. si se especifica el valor siguiente para db2. UNIX y Windows IDS Controlador JDBC de DB2 de tipo 2 para Linux.traceFileAppend. Por ejemplo.jcc.override.jcc. UNIX y Windows solamente es compatible con los formatos JDBC 2.override.jcc.0 y JDBC 3.override. el IBM Data Server Driver para JDBC y SQLJ es compatible con todos los formatos. El controlador JDBC de DB2 de tipo 2 para Linux. que significa que se sobrescribe el archivo especificado por la propiedad traceFile. o IBM Informix Dynamic Server (IDS) DB2 Database para Linux. La propiedad db2.traceFile.jcc. Los controladores y sus plataformas soportadas son: Tabla 1-15.jcc.jcc.traceFileAppend o db2.db2. Por ejemplo.override.jcc. Las tablas siguientes muestran las interfaces de JDBC y los controladores soportados para cada una.jcc. UNIX y Windows.traceFileAppend Especifica si se debe o no se debe añadir o sobregrabar los datos en el archivo especificado por la propiedad db2.jcc. La propiedad db2. se habilita el rastreo del código Java del IBM Data Server Driver para JDBC y SQLJ que se guardará en un archivo denominado /SYSTEM/tmp/jdbctrace: db2.traceFileAppend=true Debe establecer las propiedades del rastreo bajo la dirección del soporte de software de IBM.jcc.traceFile.jcc.traceFileAppend prevalece sobre la propiedad traceFileAppend en el caso de un objeto Connection o DataSource. los datos de rastreo se añaden al archivo de rastreo existente: db2.

v Para un Blob que se pasa a un procedimiento almacenado Java. Soporte para métodos Array Soporte de IBM Data Server Driver para JDBC y SQLJ1 Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. Soporte para métodos BatchUpdateException Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux.lang. Este método no se puede utilizar en los casos siguientes: v Si la propiedad fullyMaterializeLobData está establecida en false. UNIX y Windows.Tabla 1-16.sql. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Método JDBC Métodos heredados de java.PreparedStatement 1-110 IBM Data Server Driver para JDBC y SQLJ para IDS .Exception getUpdateCounts Tabla 1-18. Tabla 1-17.Statement Métodos heredados de java.sql. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Método JDBC Métodos heredados de java. los métodos Array se pueden utilizar solamente para conexiones con fuentes de datos DB2 Database para Linux. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí No No No Sí Sí Sí Sí No No No truncate Notas: 1. Soporte para métodos CallableStatement Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí1 Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS No No No No Sí Sí Sí Sí Método JDBC getArray getBaseType getBaseTypeName getResultSet Notas: 1. Soporte para métodos Blob Método JDBC getBinaryStream getBytes longitud posición setBinaryStream setBytes 1 1 1 Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. Cuando se utiliza IBM Data Server Driver para JDBC y SQLJ. Tabla 1-19.

. Soporte para métodos CallableStatement (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 2 2 2 2 2 2 2.7 6.4 Método JDBC getArray getBigDecimal getBlob getBoolean getByte getBytes getClob getDate getDouble getFloat getInt getLong getObject getRef getShort getString getTime getTimestamp getURL registerOutParameter setAsciiStream setBigDecimal setBinaryStream setBoolean setByte setBytes setCharacterStream setDate setDouble setFloat setInt setLong setNull setObject setShort setString setTime setTimestamp Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 4 3 No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí No Sí Sí Sí Sí Sí Sí 5 2 2 2.3 2 2 2 2 2.3 2. 6 6 6 6 No No No No No No No No No No No No No No No No No No IBM Data Server Driver para JDBC y SQLJ para IDS 1-111 .Tabla 1-19.3 No Sí Sí Sí Sí 3 3 Sí Sí No Sí5 Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí 5 Sí6 Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 6 6 6 6 6 6 6 6 6 6 6 6.

7. UNIX y Soporte del controlador Windows JDBC de IDS No Sí No Sí Método JDBC setURL wasNull Notas: 1. java. Soporte para métodos Clob Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí 2 Método JDBC getAsciiStream getCharacterStream getSubString longitud posición setAsciiStream 2 2 Soporte del controlador JDBC de DB2 de tipo 2 para Linux. int TipoJdbc. El formato siguiente de setNull no se soporta: setNull(int Índiceparámetros. 1-112 IBM Data Server Driver para JDBC y SQLJ para IDS . 2. v Para un Clob que se pasa a un procedimiento almacenado Java. Soporte para métodos CallableStatement (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux.Calendar. String nombreTipo) Tabla 1-20.util. El servidor de bases de datos no realiza ajustes de zona horaria para valores de fecha y hora.0. El método heredado getParameterMetaData no se puede utilizar si la fuente de datos es DB2 para z/OS. El controlador JDBC ajusta un valor para la zona horaria local después de recuperar el valor a partir del servidor si el usuario especifica un formato del método getDate. No permitido si la fuente de datos es DB2 para z/OS. getTime o getTimestamp que incluye un parámetro java. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí No No No No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí setCharacterStream setString truncate Notas: 2 1.util.Map map) 5.Tabla 1-19. String nombreTipo) 6.getXXX no se pueden utilizar si la fuente de datos es DB2 para z/OS: getXXX(String Nombre del parámetro) 3. int tipoJdbc. 4. Esto es un método de JDBC 4. Los formatos siguientes de los métodos CallableStatement. Este método no se puede utilizar en los casos siguientes: v Si la propiedad fullyMaterializeLobData está establecida en false. El formato siguiente del método getObject no se soporta: getObject(int Índiceparámetros. 2. El formato siguiente del método registerOutParameter no se soporta: registerOutParameter(int índiceParámetro.

Soporte para métodos Connection Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No 3 2 Método JDBC clearWarnings close commit createStatement getAutoCommit getCatalog getHoldability getMetaData getTransactionIsolation getTypeMap getWarnings isClosed isReadOnly nativeSQL prepareCall prepareStatement releaseSavepoint rollback setAutoCommit setCatalog setReadOnly setSavepoint setTransactionIsolation setTypeMap Notas: Soporte del controlador JDBC de DB2 de tipo 2 para Linux. una conexión se puede definir como de sólo lectura mediante la propiedad readOnly de un objeto Connection o DataSource. Si el procedimiento almacenado contenido en la sentencia CALL se ejecuta en DB2 para z/OS. 2.util. 3. Tabla 1-22.Tabla 1-21.0 de este método. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Método JDBC Métodos heredados de java. Para el IBM Data Server Driver para JDBC y SQLJ.EventObject getSQLException IBM Data Server Driver para JDBC y SQLJ para IDS 1-113 . El controlador no utiliza el valor. UNIX y Windows no es compatible con los formatos JDBC 3. Soporte para métodos ConnectionEvent Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. los parámetros de la sentencia CALL no pueden ser expresiones. El controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí No Sí Sí No Sí Sí Sí Sí Sí Sí 1 1 Sí Sí Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí No No Sí Sí Sí No Sí Sí Sí Sí No Sí No 1 1.

Soporte para métodos ConnectionPoolDataSource Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí 1 Método JDBC getLoginTimeout getLogWriter getPooledConnection setLoginTimeout setLogWriter Nota: Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Windows Sí Sí Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí No No 7 Método JDBC allProceduresAreCallable allTablesAreSelectable dataDefinitionCausesTransactionCommit dataDefinitionIgnoredInTransactions deletesAreDetected doesMaxRowSizeIncludeBlobs getAttributes getBestRowIdentifier getCatalogs getCatalogSeparator getCatalogTerm getColumnPrivileges getColumns getConnection getCrossReference getDatabaseMajorVersion getDatabaseMinorVersion Soporte del controlador JDBC de IDS Sí Sí1 Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí7 Sí Sí No No 1-114 IBM Data Server Driver para JDBC y SQLJ para IDS . Soporte para métodos DatabaseMetaData Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí1 Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. Soporte para métodos ConnectionEventListener Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Método JDBC connectionClosed connectionErrorOccurred Tabla 1-24. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 1.Tabla 1-23. Este método no está soportado para el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 en DB2 para z/OS. Tabla 1-25.

Tabla 1-25. Soporte para métodos DatabaseMetaData (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 6 Método JDBC getDatabaseProductName getDatabaseProductVersion getDefaultTransactionIsolation getDriverMajorVersion getDriverMinorVersion getDriverName getDriverVersion getExportedKeys getExtraNameCharacters getIdentifierQuoteString getImportedKeys getIndexInfo getJDBCMajorVersion getJDBCMinorVersion getMaxBinaryLiteralLength getMaxCatalogNameLength getMaxCharLiteralLength getMaxColumnNameLength getMaxColumnsInGroupBy getMaxColumnsInIndex getMaxColumnsInOrderBy getMaxColumnsInSelect getMaxColumnsInTable getMaxConnections getMaxCursorNameLength getMaxIndexLength getMaxProcedureNameLength getMaxRowSize getMaxSchemaNameLength getMaxStatementLength getMaxStatements getMaxTableNameLength getMaxTablesInSelect getMaxUserNameLength getNumericFunctions getPrimaryKeys Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Windows Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Soporte del controlador JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí IBM Data Server Driver para JDBC y SQLJ para IDS 1-115 .

Tabla 1-25. Soporte para métodos DatabaseMetaData (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 5 4 3 Método JDBC getProcedureColumns getProcedures getProcedureTerm getResultSetHoldability getSchemas getSchemaTerm getSearchStringEscape getSQLKeywords getSQLStateType getStringFunctions getSuperTables getSuperTypes getSystemFunctions getTablePrivileges getTables getTableTypes getTimeDateFunctions getTypeInfo getUDTs getURL getUserName getVersionColumns insertsAreDetected isCatalogAtStart isReadOnly locatorsUpdateCopy nullPlusNonNullIsNull nullsAreSortedAtEnd nullsAreSortedAtStart nullsAreSortedHigh nullsAreSortedLow othersDeletesAreVisible othersInsertsAreVisible othersUpdatesAreVisible ownDeletesAreVisible ownInsertsAreVisible Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Windows Sí Sí Sí No Sí Sí Sí Sí No Sí No No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 8 7 7 Soporte del controlador JDBC de IDS Sí Sí Sí No Sí7 Sí Sí Sí No Sí No No Sí Sí Sí7 Sí Sí Sí Sí8 Sí Sí Sí Sí Sí Sí Sí3 Sí Sí4 Sí Sí5 Sí1 Sí Sí Sí Sí Sí Sí1 Sí Sí Sí Sí Sí 1-116 IBM Data Server Driver para JDBC y SQLJ para IDS .

Soporte para métodos DatabaseMetaData (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí 1 Método JDBC ownUpdatesAreVisible storesLowerCaseIdentifiers storesLowerCaseQuotedIdentifiers storesMixedCaseIdentifiers storesMixedCaseQuotedIdentifiers storesUpperCaseIdentifiers storesUpperCaseQuotedIdentifiers supportsAlterTableWithAddColumn supportsAlterTableWithDropColumn supportsANSI92EntryLevelSQL supportsANSI92FullSQL supportsANSI92IntermediateSQL supportsBatchUpdates supportsCatalogsInDataManipulation supportsCatalogsInIndexDefinitions supportsCatalogsInPrivilegeDefinitions supportsCatalogsInProcedureCalls supportsCatalogsInTableDefinitions SupportsColumnAliasing supportsConvert supportsCoreSQLGrammar supportsCorrelatedSubqueries supportsDataDefinitionAndDataManipulationTransactions supportsDataManipulationTransactionsOnly supportsDifferentTableCorrelationNames supportsExpressionsInOrderBy supportsExtendedSQLGrammar supportsFullOuterJoins supportsGetGeneratedKeys supportsGroupBy supportsGroupByBeyondSelect supportsGroupByUnrelated supportsIntegrityEnhancementFacility supportsLikeEscapeClause supportsLimitedOuterJoins supportsMinimumSQLGrammar Soporte del controlador JDBC de DB2 de tipo 2 para Linux.Tabla 1-25. UNIX y Windows Sí Sí Sí Sí Sí Soporte del controlador JDBC de IDS Sí Sí1 Sí4 Sí Sí Sí5 Sí Sí Sí1 Sí Sí Sí Sí Sí1 Sí Sí Sí1 Sí Sí Sí Sí Sí Sí Sí Sí4 Sí Sí Sí3 No Sí Sí Sí Sí Sí Sí Sí Sí4 Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 3 4 1 1 1 5 Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí Sí IBM Data Server Driver para JDBC y SQLJ para IDS 1-117 .

Soporte para métodos DatabaseMetaData (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí 3 Método JDBC supportsMixedCaseIdentifiers supportsMixedCaseQuotedIdentifiers supportsMultipleOpenResults supportsMultipleResultSets supportsMultipleTransactions supportsNamedParameters supportsNonNullableColumns supportsOpenCursorsAcrossCommit supportsOpenCursorsAcrossRollback supportsOpenStatementsAcrossCommit supportsOpenStatementsAcrossRollback supportsOrderByUnrelated supportsOuterJoins supportsPositionedDelete supportsPositionedUpdate supportsResultSetConcurrency supportsResultSetHoldability supportsResultSetType supportsSavepoints supportsSchemasInDataManipulation supportsSchemasInIndexDefinitions supportsSchemasInPrivilegeDefinitions supportsSchemasInProcedureCalls supportsSchemasInTableDefinitions supportsSelectForUpdate supportsStoredProcedures supportsSubqueriesInComparisons supportsSubqueriesInExists supportsSubqueriesInIns supportsSubqueriesInQuantifieds supportsSuperTables supportsSuperTypes supportsTableCorrelationNames supportsTransactionIsolationLevel supportsTransactions supportsUnion Soporte del controlador JDBC de DB2 de tipo 2 para Linux.Tabla 1-25. UNIX y Windows Sí Sí No Sí Sí No Sí Soporte del controlador JDBC de IDS Sí Sí3 Sí5 Sí5 Sí No Sí Sí3 Sí Sí3 Sí3 Sí Sí Sí Sí Sí No Sí Sí5 Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No No Sí Sí Sí Sí Sí5 Sí5 Sí Sí Sí Sí Sí Sí 3 3 Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí3 Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 5 No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No No Sí Sí Sí Sí 1-118 IBM Data Server Driver para JDBC y SQLJ para IDS .

UNIX y Windows e IDS. Las fuentes de datos DB2 devuelven true para este método.lang. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí 1 1 Sí Sí Sí Sí Sí 1. Las fuentes de datos DB2 devuelven false para este método. 6. Las fuentes de datos IDS devuelven false. El controlador JDBC de DB2 de tipo 2 no utiliza este valor. las fuentes de datos IDS devuelven true. UNIX y Windows Sí Sí Sí Sí Método JDBC supportsUnionAll updatesAreDetected usesLocalFilePerTable usesLocalFiles Notas: Soporte del controlador JDBC de IDS Sí Sí Sí Sí 1. JDBC 3. 8. El controlador JDBC de DB2 de tipo 2 para Linux.Throwable IBM Data Server Driver para JDBC y SQLJ para IDS 1-119 . 2. Soporte para métodos DataSource Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí 2 Método JDBC getConnection getLoginTimeout getLogWriter setLoginTimeout setLogWriter Notas: Soporte del controlador JDBC de DB2 de tipo 2 para Linux. 3. las fuentes de datos IDS devuelven false.Tabla 1-25. UNIX y Windows no es compatible con el formato JDBC 3. Tabla 1-27. pero devuelve un ResultSet vacío. Cuando se utiliza IBM Data Server Driver para JDBC y SQLJ. Cuando se utiliza IBM Data Server Driver para JDBC y SQLJ. 2. Cuando se utiliza el controlador JDBC de IDS. Este método no está soportado para el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 en DB2 para z/OS. El método se puede ejecutar. Cuando se utiliza el controlador JDBC de IDS.″ 7. Soporte para métodos DataTruncation Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux.0 de este método. Las fuentes de datos IDS devuelven true. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Método JDBC Métodos heredados de java. Tabla 1-26. Este método solamente se puede utilizar para conexiones con DB2 Database para Linux.0 e implementaciones anteriores de IBM Data Server Driver para JDBC y SQLJ devuelven ″IBM DB2 JDBC Universal Driver Architecture. las fuentes de datos DB2 y las fuentes de datos IDS devuelven true para este método. las fuentes de datos DB2 y las fuentes de datos IDS devuelven false para este método. 4. 5. Soporte para métodos DatabaseMetaData (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux.

UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 1 1 Sí Sí Sí Sí Sí1 Sí Sí Sí Sí Sí1 Sí Sí 1-120 IBM Data Server Driver para JDBC y SQLJ para IDS . Soporte para métodos DataTruncation (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux.sql. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Tabla 1-29. Soporte para métodos DriverManager Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 2 Método JDBC deregisterDriver getConnection getDriver getDrivers getLoginTimeout getLogStream getLogWriter println registerDriver setLoginTimeout setLogStream setLogWriter Soporte del controlador JDBC de DB2 de tipo 2 para Linux.SQLException Métodos heredados de java.SQLWarning getDataSize getIndex getParameter getRead getTransferSize Tabla 1-28.Tabla 1-27. Soporte para métodos Driver Método JDBC acceptsURL connect getMajorVersion getMinorVersion getPropertyInfo jdbcCompliant Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Método JDBC Métodos heredados de java.sql.

Soporte para métodos DriverManager (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Soporte del controlador JDBC de DB2 de tipo 2 para Linux. Soporte para métodos PooledConnection Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Método JDBC addConnectionEventListener close getConnection removeConnectionEventListener Tabla 1-32. Soporte para métodos PreparedStatement Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS No No No No No No No No No No No No No No No No No No Método JDBC getParameterClassName getParameterCount getParameterMode getParameterType getParameterTypeName getPrecision getScale isNullable isSigned Tabla 1-31.Statement addBatch clearParameters execute executeQuery executeUpdate IBM Data Server Driver para JDBC y SQLJ para IDS 1-121 . Soporte para métodos ParameterMetaData Soporte de IBM Data Server Driver para JDBC y SQLJ No Sí Sí Sí Sí Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. 2. UNIX y Soporte del controlador Windows JDBC de IDS Método JDBC Notas: 1. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Método JDBC Métodos heredados de java. El controlador JDBC de DB2 de tipo 2 no utiliza este valor.sql. Tabla 1-30.Tabla 1-29. Este método no está soportado para el IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 en DB2 para z/OS.

2. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí 4 3 2 Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí2 Sí Sí Sí Sí Sí3 Sí No Sí Sí4 Sí2 Sí2 Sí Sí Sí2 Sí2 Sí Sí Sí2 Sí2 Sí Sí 1. Soporte para métodos PreparedStatement (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí 4 3 2 1 1 1 Método JDBC getMetaData getParameterMetaData setArray setAsciiStream setBigDecimal setBinaryStream setBlob setBoolean setByte setBytes setCharacterStream setClob setDate setDouble setFloat setInt setLong setNull setObject setRef setShort setString setTime setTimestamp setUnicodeStream setURL Notas: Soporte del controlador JDBC de DB2 de tipo 2 para Linux. se leen todos los datos de InputStream o Reader y se envían a la fuente de datos. String Nombretipo) 4. 1-122 IBM Data Server Driver para JDBC y SQLJ para IDS .util.Tabla 1-32. El formato siguiente de setNull no se soporta: setNull(int Índiceparámetros.Calendar. setString no está soportado si la columna tiene el atributo FOR BIT DATA o el tipo de datos es BLOB. Si el valor del parámetro length es -1. setTime o setTimestamp que incluye un parámetro java. 3. El servidor de bases de datos no realiza ajustes de zona horaria para valores de fecha y hora. El controlador JDBC ajusta un valor para la zona horaria local antes de enviar el valor al servidor si el usuario especifica un formato del método setDate. int Tipojdbc.

UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí No Sí Sí No Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 3 2 Sí Sí Sí No Sí Sí No Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí2 Sí Sí Sí Sí Sí Sí Sí Sí3 No Sí No Sí No Sí IBM Data Server Driver para JDBC y SQLJ para IDS 1-123 . UNIX y Soporte del controlador Windows JDBC de IDS No No Método JDBC get BaseTypeName Tabla 1-34. Soporte para métodos Ref Soporte de IBM Data Server Driver para JDBC y SQLJ No Soporte del controlador JDBC de DB2 de tipo 2 para Linux.Tabla 1-33. Soporte para métodos ResultSet Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 3 2 1 Método JDBC absolute afterLast beforeFirst cancelRowUpdates clearWarnings close deleteRow findColumn first getArray getAsciiStream getBigDecimal getBinaryStream getBlob getBoolean getByte getBytes getCharacterStream getClob getConcurrency getCursorName getDate getDouble getFetchDirection getFetchSize getFloat getInt getLong getMetaData getObject getRef getShort Soporte del controlador JDBC de DB2 de tipo 2 para Linux.

Tabla 1-34. Soporte para métodos ResultSet (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí 2 Método JDBC getStatement getString getTime getTimestamp getType getUnicodeStream getURL getWarnings insertRow isAfterLast isBeforeFirst isFirst isLast last moveToCurrentRow moveToInsertRow next previous refreshRow relative rowDeleted rowInserted rowUpdated setFetchDirection setFetchSize updateArray updateAsciiStream updateBigDecimal updateBinaryStream updateBlob updateBoolean updateByte updateBytes updateCharacterStream updateClob updateDate updateDouble updateFloat Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí 2 Sí Sí Sí2 Sí2 Sí Sí Sí Sí No Sí Sí Sí Sí Sí No No Sí Sí No Sí No No No Sí Sí No No No No No No No No No No No No No Sí2 Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí2 Sí Sí Sí Sí No Sí Sí Sí Sí Sí No No Sí Sí No Sí No No No Sí Sí No No No No No No No No No No No No No 1-124 IBM Data Server Driver para JDBC y SQLJ para IDS .

Soporte para métodos ResultSet (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. El formato siguiente del método getObject no se soporta: getObject(int Índiceparámetros. java. 3. UNIX y Soporte del controlador Windows JDBC de IDS No No No No No No No No No No Sí No No No No No No No No No No Sí Método JDBC updateInt updateLong updateNull updateObject updateRef updateRow updateShort updateString updateTime updateTimestamp wasNull Notas: 1.Map map) Tabla 1-35.util.Tabla 1-34. 2. Soporte para métodos ResultSetMetaData Soporte de IBM Data Server Driver para JDBC y SQLJ Sí No Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 1 Método JDBC getCatalogName getColumnClassName getColumnCount getColumnDisplaySize getColumnLabel getColumnName getColumnType getColumnTypeName getPrecision getScale getSchemaName getTableName isAutoIncrement isCaseSensitive Soporte del controlador JDBC de DB2 de tipo 2 para Linux.util. No se da soporte agetBinaryStream en columnas de tipo CLOB. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí IBM Data Server Driver para JDBC y SQLJ para IDS 1-125 . El servidor de bases de datos no realiza ajustes de zona horaria para valores de fecha y hora. getTime o getTimestamp que incluye un parámetro java. El controlador JDBC ajusta un valor para la zona horaria local después de recuperar el valor a partir del servidor si el usuario especifica un formato del método getDate.Calendar.

Soporte para métodos SQLInput Soporte de IBM Data Server Driver para JDBC y SQLJ No No No No No No Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Método JDBC Métodos heredados de java. Soporte para métodos ResultSetMetaData (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux.lang.Exception getSQLState getErrorCode getNextException setNextException Tabla 1-38. Para las fuentes de datos IDS. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Método JDBC isCurrency isDefinitelyWritable isNullable isReadOnly isSearchable isSigned isWritable Notas: 1. UNIX y Soporte del controlador Windows JDBC de IDS No No No No No No No No No No No No Método JDBC readArray readAsciiStream readBigDecimal readBinaryStream readBlob readBoolean 1-126 IBM Data Server Driver para JDBC y SQLJ para IDS . Soporte para métodos SQLException Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. getTableName no devuelve un valor. Soporte para métodos SQLData Soporte de IBM Data Server Driver para JDBC y SQLJ No No No Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS No No No No No No Método JDBC getSQLTypeName readSQL writeSQL Tabla 1-37. Tabla 1-36.Tabla 1-35.

Soporte para métodos SQLInput (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ No No No No No No No No No No No No No No No No Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No Método JDBC writeArray writeAsciiStream writeBigDecimal writeBinaryStream writeBlob writeBoolean writeByte writeBytes writeCharacterStream writeClob writeDate writeDouble writeFloat writeInt writeLong writeObject writeRef IBM Data Server Driver para JDBC y SQLJ para IDS 1-127 . Soporte para métodos SQLOutput Soporte de IBM Data Server Driver para JDBC y SQLJ No No No No No No No No No No No No No No No No No Soporte del controlador JDBC de DB2 de tipo 2 para Linux.Tabla 1-38. UNIX y Soporte del controlador Windows JDBC de IDS No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No Método JDBC readByte readBytes readCharacterStream readClob readDate readDouble readFloat readInt readLong readObject readRef readShort readString readTime readTimestamp wasNull Tabla 1-39.

Tabla 1-39. Soporte para métodos SQLOutput (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ No No No No No Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí 3 3 3 2 Sí Sí Sí Sí Sí Sí3 Sí Sí Sí3 Sí Sí Sí No Sí Sí Sí3 Sí Sí Sí No Sí Sí Sí Sí Sí Sí Sí Sí 1-128 IBM Data Server Driver para JDBC y SQLJ para IDS . Soporte para métodos Statement Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí2 Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 1 Método JDBC addBatch cancel clearBatch clearWarnings close execute executeBatch executeQuery executeUpdate getConnection getFetchDirection getFetchSize getGeneratedKeys getMaxFieldSize getMaxRows getMoreResults getQueryTimeout getResultSet getResultSetConcurrency getResultSetHoldability getResultSetType getUpdateCount getWarnings setCursorName setEscapeProcessing setFetchDirection setFetchSize setMaxFieldSize 4 Soporte del controlador JDBC de DB2 de tipo 2 para Linux. UNIX y Soporte del controlador Windows JDBC de IDS No No No No No No No No No No Método JDBC writeShort writeString writeStruct writeTime writeTimestamp Tabla 1-40.

UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Método JDBC Métodos heredados de javax. este método se puede utilizar solamente para un valor de segundos igual a 0. 4. UNIX y Windows versión 8 o posterior. 2.sql. únicamente se da soporte a Statement.cancel() en los siguientes entornos: v Conectividad de tipo 2 y tipo 4 desde un cliente Linux. v Conectividad de tipo 4 desde un cliente z/OS a un servidor DB2 Database para Linux. UNIX y Windows versión 8 o posterior. Con el controlador DB2 JDBC tipo 2 para Linux. UNIX y Windows. UNIX y Soporte del controlador Windows JDBC de IDS No No No No Método JDBC getSQLTypeName getAttributes Tabla 1-42. Para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS y para DB2 para i5/OS. Unix o Windows a un servidor DB2 para z/OS versión 9 o posterior.sql. Unix o Windows a un servidor DB2 Database para Linux.PooledConnection getXAResource Notas: 1. UNIX y Windows no es compatible con el formato JDBC 3. 5.XAConnection Soporte de IBM Data Server Driver para JDBC y SQLJ1 Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux. Soporte para métodos Struct Soporte de IBM Data Server Driver para JDBC y SQLJ No No Soporte del controlador JDBC de DB2 de tipo 2 para Linux. v Conexiones a un servidor DB2 para z/OS versión 9 o posterior. Con IBM Data Server Driver para JDBC y SQLJ.Tabla 1-40. No está soportado para conjuntos de resultados de procedimiento almacenado. v Conectividad de tipo 4 desde un cliente z/OS a un servidor DB2 para z/OS versión 9 o posterior. Soporte para métodos javax. UNIX y Windows versión 8 o posterior. Tabla 1-41. El controlador JDBC de DB2 de tipo 2 para Linux. Estos métodos se pueden utilizar para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 con un servidor DB2 Database para Linux. Soporte para métodos Statement (continuación) Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí 5 Método JDBC setMaxRows setQueryTimeout Notas: Soporte del controlador JDBC de DB2 de tipo 2 para Linux.cancel() en los siguientes entornos: v Conexiones a un servidor DB2 Database para Linux. v Conectividad de tipo 2 y tipo 4 desde un cliente Linux. IBM Data Server Driver para JDBC y SQLJ para IDS 1-129 . 3.0 de este método. únicamente se da soporte a Statement. UNIX y Windows o IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí 1.

UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 1.DB2BaseDataSource) ds).jcc.1 o posterior.db2. Soporte para métodos javax. 1-130 IBM Data Server Driver para JDBC y SQLJ para IDS .stl. Soporte para métodos XADataSource Soporte de IBM Data Server Driver para JDBC y SQLJ Sí Sí Sí Sí Sí Soporte del controlador JDBC de DB2 de tipo 2 para Linux.ibm. Estos métodos se pueden utilizar para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 con un servidor DB2 Database para Linux.Tabla 1-43.setServerName("sysmvs1.ibm.transaction.db2.jcc. ((com. UNIX y Windows o IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4.sql.ibm. Este método se puede utilizar para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4 con DB2 Database para Linux. Para utilizar métodos específicos de IBM Data Server Driver para JDBC y SQLJ en clases que tienen las clases estándar correspondientes. Por ejemplo: javax.DB2SimpleDataSource().xa. Extensiones para JDBC de IBM Data Server Driver para JDBC y SQLJ El IBM Data Server Driver para JDBC y SQLJ proporciona un conjunto de extensiones para el soporte que proporciona la especificación JDBC. 2. UNIX y Soporte del controlador Windows JDBC de IDS Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Método JDBC getLoginTimeout getLogWriter getXAConnection setLoginTimeout setLogWriter Tabla 1-44. UNIX y Windows Versión 9.XAResource Soporte de IBM Data Server Driver para JDBC y SQLJ Sí1 Sí Sí Sí Sí Sí Sí Sí Sí Sí 1 1 2 1 1 1 1 2 1 Método JDBC commit end forget getTransactionTimeout isSameRM prepare recover rollback setTransactionTimeout start Notas: Soporte del controlador JDBC de DB2 de tipo 2 para Linux. La Tabla 1-45 en la página 1-131 resume las interfaces específicas de IBM Data Server Driver para JDBC y SQLJ. convierta cada instancia de la clase JDBC estándar asociada en una instancia de la clase específica de IBM Data Server Driver para JDBC y SQLJ.DataSource ds = new com.com").

Proporciona un mecanismo para obtener los diagnósticos de DB2 a partir de un SQLException de DB2. 2 en la página 1-132. 3 1. 1 en la página 1-132.Referenceable.sql.Connection.ibm.naming.Statement.DataSource.XADataSource específicas de IBM Data Server Driver para JDBC y SQLJ.sql. UNIX y Windows 3. 3 en la página 1-132 DB2CataloguedDatabase 2 en la página 1-132 DB2ClientRerouteServerList DB2ConnectionPoolDataSource 1 en la página 1-132. Clase padre de fuente de datos abstracta para todas las implementaciones de javax. Se utiliza para actualizar y recuperar datos de columnas XML.Tabla 1-45. javax.sql. 3 1.sql. 2. Amplía la interfaz java.jcc. UNIX y Windows) DB2BaseDataSource Fuentes de datos aplicables 2 en la página 1-132 Finalidad Las instancias de la clase DB2Administrator se utilizan para recuperar objetos DB2CataloguedDatabase. 3 en la página 1-132 1 en la página 1-132.Serializable y javax. Contiene métodos para recuperar información sobre una base de datos DB2 Database para Linux. 2. Amplía la interfaz java. IBM Informix Dynamic Server La Tabla 1-46 resume las clases específicas de IBM Data Server Driver para JDBC y SQLJ. 2. 3 en la página 1-132 DB2ExceptionFormatter Contiene métodos para la impresión de la información de diagnóstico en una corriente.ConnectionPoolDataSource y javax. Se utiliza para recoger datos de supervisión del sistema para una conexión. Se utiliza para declarar objetos Java para su utilización con el tipo de datos ROWID. 2. 2 Nota: La interfaz es aplicable a conexiones con las fuentes de datos siguientes: 1. 2 en la página 1-132. Amplía las interfaces com. Tabla 1-46. UNIX y Windows. 3 1. 3 1. 3 Finalidad Amplía la interfaz java. 2. Implementa las interfaces java. DB2PreparedStatement 1.db2. 2 en la página 1-132 1 en la página 1-132.sql. Resumen de las clases específicas de IBM Data Server Driver para JDBC y SQLJ proporcionadas por el IBM Data Server Driver para JDBC y SQLJ Nombre de clase DB2Administrator (solamente para DB2 Database para Linux. 2 en la página 1-132. DB2 Database para Linux.sql. 2. IBM Data Server Driver para JDBC y SQLJ para IDS 1-131 .io. Resumen de las interfaces específicas de IBM Data Server Driver para JDBC y SQLJ proporcionadas por el IBM Data Server Driver para JDBC y SQLJ Nombre de interfaz DB2Connection DB2DatabaseMetaData DB2Diagnosable Fuentes de datos aplicables 1. 3 DB2RowID DB2Statement DB2SystemMonitor DB2Xml 1.DB2Statement y java.DatabaseMetaData. 2 1.PreparedStatement.sql. DB2 para z/OS 2. Fábrica de objetos PooledConnection.

DB2 para z/OS 2. IBM Informix Dynamic Server Clase DB2BaseDataSource La clase com. DB2 Database para Linux. 2 DB2SimpleDataSource 1.sql. Controla el grabador de anotaciones cronológicas globales. En el caso de propiedades que no son específicas de IBM Informix Dynamic Server (IDS). 3 1. No soporta agrupaciones de conexiones ni transacciones distribuidas.db2.ConnectionPoolDataSource y javax. javax. Resumen de las clases específicas de IBM Data Server Driver para JDBC y SQLJ proporcionadas por el IBM Data Server Driver para JDBC y SQLJ (continuación) Nombre de clase DB2JCCPlugin DB2PooledConnection Fuentes de datos aplicables 2 1. 3 Nota: La clase es aplicable a conexiones con las fuentes de datos siguientes: 1. En el caso de propiedades que únicamente utiliza IDS.ibm. Fuente de objetos XADataSource. 1-132 IBM Data Server Driver para JDBC y SQLJ para IDS .DataSource. Cada una de estas propiedades tiene un método setXXX para definir el valor de la propiedad y un método getXXX para obtener el valor. Proporciona métodos para la supervisión de la agrupación de objetos de transporte global para el concentrador de conexiones y el equilibrado de la carga de trabajo Sysplex. Un objeto que implementa esta interfaz se registra con un servicio de asignación de nombres que se basa en Java Naming and Directory Interface (JNDI).XADataSource específicas de IBM Data Server Driver para JDBC y SQLJ. Proporciona métodos que puede utilizar un servidor de aplicaciones para cambiar de usuarios en una conexión fiable preexistente. 2. el primer carácter del nombre de la propiedad está en mayúsculas.sql. 2. 2. UNIX y Windows 3. 3 DB2Sqlca DB2TraceManager DB2XADataSource 1. Encapsulación de la SQLCA de DB2. Amplía la clase DataBaseDataSource. DB2PoolMonitor 1. 2.Tabla 1-46. 2. 3 1. Propiedades de DB2BaseDataSource Las propiedades siguientes se definen solamente para el IBM Data Server Driver para JDBC y SQLJ.jcc.sql. Un método setXXX tiene este formato: void setNombre-propiedad(tipo-datos valor-propiedad) Un método getXXX tiene este formato: tipo-datos getNombre-propiedad() Nombre-propiedad es el nombre de propiedad no calificado.DB2BaseDataSource es la clase padre de fuente de datos abstracta para todas las implementaciones de javax. 3 Finalidad Clase abstracta para la implementación de plugins de seguridad JDBC. todos los caracteres del nombre de la propiedad están en mayúsculas.

Propiedades de DB2BaseDataSource y tipos de datos asociados a ellas Nombre de propiedad com.DB2BaseDataSource.jcc.currentFunctionPath com.jcc.defaultIsolationLevel Fuentes de datos aplicables 1 en la página 1-135 Tipo de datos String 1 en la página 1-135.clientDebugInfo ( IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS solamente) com.ibm.ibm.ibm.ibm.jcc.currentExplainMode com.DB2BaseDataSource.clientProgramName com.db2. 2 en la página javax.jcc.ibm.charOutputSize com.DB2BaseDataSource.decimalRoundingMode com.DB2BaseDataSource.blockingReadConnectionTimeout com.jcc.DB2BaseDataSource.naming.clientRerouteServerListJNDIContext com. 2 en la página String 1-135 1 en la página 1-135 1 en la página 1-135 2 en la página 1-135 String String int 1 en la página 1-135. 3 en la página int 1-135 1 en la página 1-135.cursorSensitivity com.DB2BaseDataSource.db2.currentPackageSet com. 2 en la página String 1-135 1 en la página 1-135.ibm.DB2BaseDataSource.db2.databaseName com.jcc.clientRerouteAlternatePortNumber com.currentQueryOptimization com.jcc.DB2BaseDataSource.jcc.currentPackagePath com.db2.ibm.DB2BaseDataSource.jcc.jcc.currentLockTimeout com.DB2BaseDataSource.ibm.jcc.ibm.db2.DB2BaseDataSource.db2.DB2BaseDataSource.DB2BaseDataSource.ibm.ibm.DB2BaseDataSource.DB2BaseDataSource.DB2BaseDataSource.La tabla siguiente lista las propiedades del IBM Data Server Driver para JDBC y SQLJ y los tipos de datos asociados a ellas.db2.jcc.ibm.db2.DB2BaseDataSource. 2 en la página String 1-135 2 en la página 1-135 int 1 en la página 1-135.currentSQLID com. 2 en la página String 1-135 1 en la página 1-135. 2 en la página long 1-135 1 en la página 1-135.jcc. 2 en la página String 1-135 1 en la página 1-135 1 en la página 1-135 1 en la página 1-135 1 en la página 1-135 String String String String 1 en la página 1-135.db2.db2.clientRerouteAlternateServerName com.db2.clientUser ( IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS solamente) com.ibm.db2.jcc.ibm.connectNode com.jcc. 2 en la página String 1-135 2 en la página 1-135 2 en la página 1-135 String String 1 en la página 1-135.jcc. 2 en la página int 1-135.db2.db2.db2. Tabla 1-47.db2.db2.ibm.jcc.DB2BaseDataSource.clientProgramId ( IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS solamente) com.ibm.DB2BaseDataSource.db2.currentSchema com. 3 en la página 1-135 1 en la página 1-135.db2.ibm.db2.DB2BaseDataSource.DB2BaseDataSource. 2 en la página int 1-135 1 en la página 1-135.db2.jcc.DB2BaseDataSource. 1-135 Context 1 en la página 1-135.ibm.db2.jcc.jcc.ibm.DB2BaseDataSource.currentRefreshAge com.ibm.db2.clientApplicationInformation ( IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS solamente) com.accountingInterval com.jcc.DB2BaseDataSource.DB2BaseDataSource.ibm.jcc. 3 en la página 1-135 1 en la página 1-135 short 1 en la página 1-135.DB2BaseDataSource. 2 en la página int 1-135.DB2BaseDataSource. 2 en la página String 1-135.currentExplainSnapshot com.currentMaintainedTableTypesForOptimization com.DB2BaseDataSource.clientRerouteServerListJNDIName com. 2 en la página int 1-135 1 en la página 1-135.db2.db2.dateFormat com.ibm.jcc.jcc.DB2BaseDataSource.db2.DB2BaseDataSource.currentDegree com. 2 en la página int 1-135 1 en la página 1-135 String 1 en la página 1-135.jcc.DB2BaseDataSource.ibm.jcc.ibm.ibm.jcc.ibm.jcc.db2.ibm. 2 en la página String 1-135 1 en la página 1-135.db2. 2 en la página String 1-135 1 en la página 1-135.db2.db2.ibm.jcc.jcc.ibm.ibm.clientAccountingInformation ( IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS solamente) com.db2.ibm. 3 en la página 1-135 IBM Data Server Driver para JDBC y SQLJ para IDS 1-133 .jcc.clientWorkstation ( IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS solamente) com.ibm. 2 en la página String 1-135 2 en la página 1-135. 2 en la página String 1-135 1 en la página 1-135.db2.jcc.DB2BaseDataSource.

DB2BaseDataSource.ibm.retryIntervalForClientReroute 1-134 IBM Data Server Driver para JDBC y SQLJ para IDS .description com. 3 en la página int 1-135 1 en la página 1-135.jcc.DB2BaseDataSource.DB2BaseDataSource.DB2BaseDataSource.loginTimeout (no válido para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 sobre DB2 para z/OS) com.db2. 2 en la página PrintWriter 1-135.db2.ibm.DB2BaseDataSource.jcc. 2 en la página int 1-135 1 en la página 1-135 2 en la página 1-135 2 en la página 1-135 int String String 1 en la página 1-135. 3 en la página int 1-135 1 en la página 1-135.maxRetriesForClientReroute com.db2. 2 en la página int 1-135.fullyMaterializeInputStreams com.db2.jcc.ibm. 2 en la página boolean 1-135 1 en la página 1-135.db2. 3 en la página 1-135 1 en la página 1-135. 2 en la página boolean 1-135 1 en la página 1-135.DB2BaseDataSource.db2.DB2BaseDataSource.plugin com.ibm.db2.ibm.planName (solamente para IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2) com.deferPrepares com.ibm.ibm.DB2BaseDataSource. 3 en la página 1-135 1 en la página 1-135.portNumber com.ibm.jcc.Tabla 1-47.DB2BaseDataSource. 2 en la página boolean 1-135. 2 en la página int 1-135 com.DB2BaseDataSource.db2.jcc.DB2BaseDataSource.jcc.db2.jcc. 2 en la página boolean 1-135.db2.jcc.DB2BaseDataSource.ibm.resultSetHoldability 1 en la página 1-135.downgradeHoldCursorsUnderXa Fuentes de datos aplicables Tipo de datos 1 en la página 1-135.3 en la página 1-135 en la página 1-135 en la página 1-135 1 en la página 1-135.DB2BaseDataSource.jcc.queryDataSize com.DB2BaseDataSource.ibm.db2.db2.ibm. 2 en la página String 1-135.ibm.ibm.DB2BaseDataSource. 3 en la página 1-135 1 en la página 1-135.ibm.db2. 2 en la página int 1-135.3 en la página 1-135 en la página 1-135 en la página 1-135 1 en la página 1-135.db2.DB2BaseDataSource.db2.DB2BaseDataSource. 2 en la página String 1-135.ibm.jcc.DB2BaseDataSource.db2.jcc.ibm.db2.ibm.ibm.db2.jcc.ibm.fullyMaterializeLobData com.ibm.jcc.DB2BaseDataSource.jcc.ibm.ibm. 2 en la página int 1-135 1 en la página 1-135.driverType com.db2. 3 en la página 1-135 1 en la página 1-135 1 en la página 1-135 2 en la página 1-135 2 en la página 1-135 String String Object String 1 en la página 1-135.ibm.kerberosServerPrincipal com.ibm.DB2BaseDataSource.pluginName com.ibm. Propiedades de DB2BaseDataSource y tipos de datos asociados a ellas (continuación) Nombre de propiedad com. 2 en la página int 1-135.jcc.DB2BaseDataSource.ibm.jcc.DB2BaseDataSource.jcc.ibm. 2 en la página int 1-135.enableConnectionConcentrator com.readOnly com.db2.ibm.db2.db2.ibm.ibm.jcc.DB2BaseDataSource.jcc.ibm.gssCredential com. 2 en la página int 1-135 1 en la página 1-135.jcc. 3 en la página 1-135 1 en la página 1-135.jcc.jcc.jcc.db2.DB2BaseDataSource.db2.jcc.db2. 2 en la página boolean 1-135.jdbcCollection com. 2 en la página String 1-135 1 en la página 1-135.jcc. 2 en la página int 1-135.DB2BaseDataSource. 3 en la página 1-135 1 en la página 1-135.db2.jcc.db2.retrieveMessagesFromServerOnGetMessage com. 3 en la página boolean 1-135 1 en la página 1-135.DB2BaseDataSource.enableSysplexWLB com.jcc.ibm.DB2BaseDataSource.DB2BaseDataSource.jcc.DB2BaseDataSource.jcc.DB2BaseDataSource. 3 en la página 1-135 1 en la página 1-135 1 en la página 1-135 boolean boolean com.resultSetHoldabilityForCatalogQueries com.keepDynamic com.jcc.maxTransportObjects com.progressiveStreaming com.jcc.optimizationProfileToFlush com.DB2BaseDataSource. 2 en la página Object 1-135 1 en la página 1-135 String 1 en la página 1-135.logWriter com. 3 en la página 1-135 1 en la página 1-135.optimizationProfile com. 3 en la página 1-135 1 en la página 1-135.jcc.password com.db2.queryCloseImplicit com.db2.db2.db2.db2.DB2BaseDataSource.pkList ( IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2) com.

IFX_DIRECTIVES com. 3 1 1.db2.jcc.ibm.db2.jcc.ibm.DB2BaseDataSource.ibm.jcc.jcc. Propiedades de DB2BaseDataSource y tipos de datos asociados a ellas (continuación) Nombre de propiedad com.DB2BaseDataSource.ibm.serverName com. 3 1.ibm.db2.streamBufferSize com.ibm.jcc.ibm. 2.xaNetworkOptimization com.db2.ibm.db2.db2.ibm.supportsAsynchronousXARollback com.ibm.db2.db2.DB2BaseDataSource.ibm. 3 1. DB2 para z/OS 2.DELIMIDENT com.DBTEMP com.useCachedCursor com.DB2BaseDataSource.jcc.ibm. 3 1 1.DBPATH com.jcc.ibm.db2.db2.DBANSIWARN com.db2. DB2 Database para Linux.db2.OPTOFC com.traceDirectory com.db2.db2. 2 1.DBUPSPACE com.DB2BaseDataSource.DB2BaseDataSource.DB2BaseDataSource.db2.ibm.DB2BaseDataSource. 2. 2.DB2BaseDataSource.sysSchema com.db2.ibm.ibm.traceFileAppend com.DB2BaseDataSource.ibm. están definidos los métodos siguientes solo para el IBM Data Server Driver para JDBC y SQLJ.db2.traceLevel com.jcc. 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 Tipo de datos short int int boolean String boolean boolean int int String int String String boolean int boolean String boolean boolean boolean boolean String String String String String boolean String String String String String String String String String String String String String Métodos de DB2BaseDataSource Además de los métodos getXXX y setXXX para las propiedades de DB2BaseDataSource.Tabla 1-47.DB2BaseDataSource.DB2BaseDataSource. 3 1.PDQPRIORITY com.ibm.ibm.jcc.DB2BaseDataSource.jcc. 2 1.jcc.ibm.sendDataAsIs com.DB2BaseDataSource.jcc.ibm.DB2BaseDataSource.useTransactionRedirect com. 2.PSORT_DBTEMP com.jcc. 3 1 2 1.ibm.IFX_XASTDCOMPLIANCE_XAEND com. 3 1. 3 1.db2. IBM Informix Dynamic Server Fuentes de datos aplicables 1.jcc.DBSPACETEMP com.DB2BaseDataSource.jcc.ibm.db2.jcc. 2 1.jcc.db2.DB2BaseDataSource.ibm.db2.sslConnection com.DB2BaseDataSource.jcc.ibm.ibm.ibm.jcc.ibm.ibm.jcc. 2 1.OPTCOMPIND com.DB2BaseDataSource.db2.DB2BaseDataSource.db2.ibm.db2.jcc.db2.DB2BaseDataSource.user com.db2.jcc.DB2BaseDataSource.ibm.db2.traceFile com.db2.ibm.jcc.db2.jcc.jcc.jcc.DB2BaseDataSource.jcc. 2.jcc.db2. 2 1.sendCharInputsUTF8 com.DB2BaseDataSource.db2.DB2BaseDataSource. UNIX y Windows 3.DB2BaseDataSource.db2.DB2BaseDataSource.DB2BaseDataSource. 2.ibm.jcc.DB2BaseDataSource.jcc.jcc.ibm.DB2BaseDataSource.jcc.jcc.db2.ibm. 2. 2 1.IFX_EXTDIRECTIVES com.DB2BaseDataSource.INFORMIXSTACKSIZE com.db2.NODEFDAC com.returnAlias com. IBM Data Server Driver para JDBC y SQLJ para IDS 1-135 .DB2BaseDataSource.ibm.jcc.jcc.db2.securityMechanism com.ibm. 2.INFORMIXOPCACHE com. 2 1.DB2BaseDataSource.jcc.db2. 2.db2.DB2BaseDataSource.useRowsetCursor com.jcc.PSORT_NPROCS com.db2.db2.DB2BaseDataSource.db2.DB2BaseDataSource.STMT_CACHE Nota: La propiedad es aplicable a conexiones con las fuentes de datos siguientes: 1.DB2BaseDataSource.ibm.timeFormat com.jcc.ibm.DB2BaseDataSource.DB2BaseDataSource.ibm.jcc.DB2BaseDataSource.jcc.IFX_UPDDESC com.DBDATE com.sqljEnableClassLoaderSpecificProfiles com.

Reference getReference() throws javax. getPrimaryServerName Formato: public String[] getPrimaryServerName() Recupera el nombre del servidor primario.naming.io.naming. consulte la descripción de javax.DB2ClientRerouteServerList implementa las interfaces java.naming.Referenceable.sun. Estos valores son direcciones IP o nombres de servidor DNS. setPrimaryPortNumber Formato: public void setPrimaryPortNumber(int númeroPuertoPrimario) 1-136 IBM Data Server Driver para JDBC y SQLJ para IDS .NamingException Obtiene la referencia (Reference) de un objeto DataSource.getReference Formato: public javax.naming. getAlternateServerName Formato: public String[] getAlternateServerName() Recupera una matriz que contiene los nombres de los servidores alternativos. getPrimaryPortNumber Formato: public int getPrimaryPortNumber() Recupera el número de puerto asociado al servidor primario.jcc. setAlternateServerName Formato: public void setAlternateServerName(String[] servidor-alternativo) Define los nombres de servidores alternativos. Para obtener una explicación sobre Reference.html Clase DB2ClientRerouteServerList La clase com. que se encuentra en: http://java. Este valor es una dirección IP o un nombre de servidor DNS.Serializable y javax.db2. Estos valores son direcciones IP o nombres de servidor DNS. Métodos DB2ClientRerouteServerList getAlternatePortNumber Formato: public int[] getAlternatePortNumber() Recupera los números de puerto correspondientes a los servidores alternativos.Referenceable en la documentación de JNDI.ibm.com/products/jndi/docs. setAlternatePortNumber Formato: public void setAlternatePortNumber(int[] listaNúmeroPuertoAlternativo) Recupera los números de puerto correspondientes a los servidores alternativos.

sql. Otras aplicaciones pueden adquirir un bloqueo compartido sobre la misma fila. pero ningún proceso puede adquirir un bloqueo exclusivo para modificar datos de la fila.jcc. alternateWasUsedOnConnect Formato: public boolean alternateWasUsedOnConnect() throws java. Este valor es una dirección IP o un nombre de servidor DNS.Define el número de puerto asociado al servidor primario.SQLException Devuelve true si el controlador utilizó información sobre el servidor alternativo para obtener la conexión.sql.db2. Campos de DB2Connection Los campos siguientes se definen solamente para IBM Data Server Driver para JDBC y SQLJ. setPrimaryServerName Formato: public void setPrimaryServerName(String servidor-primario) Define el nombre del servidor primario. cuando una aplicación intenta leer una fila de una tabla.Connection.DB2Connection amplía la interfaz java. Utilice TRANSACTION_IDS_LAST_COMMITTED en los programas para los que la vigencia de los datos sea menos importante que la evitación de puntos muertos o tiempos de espera excedidos.Connection. la fuente de datos devuelve la versión confirmada más recientemente de la fila a la primera aplicación. Utilice TRANSACTION_IDS_CURSOR_STABILITY para los programas que recuperan una fila de una tabla y actualizan otra tabla con el contenido de esa fila. Con este nivel de aislamiento de transacción. y son aplicables solamente a conexiones con bases de datos IBM Informix Dynamic Server (IDS). TRANSACTION_IDS_CURSOR_STABILITY tiene el mismo comportamiento que java. Con este nivel de aislamiento de transacción.sql.ibm. Métodos de DB2Connection Los métodos siguientes sólo se definen para el IBM Data Server Driver para JDBC y SQLJ. La información sobre el servidor alternativo está disponible en la información transitoria de IBM Data Server Driver para JDBC y SQLJ para IDS 1-137 . una aplicación adquiere un bloqueo compartido sobre una fila recuperada. Interfaz DB2Connection La interfaz com.TRANSACTION_READ_COMMITTED cuando la aplicación no está realizando actualizaciones de la base de datos. Ese bloqueo se libera cuando la aplicación recupera otra fila o cierra el cursor. y otra aplicación tiene un bloqueo exclusivo sobre la tabla. public int TRANSACTION_IDS_CURSOR_STABILITY (-1) Especifica un nivel de aislamiento de transacción para una conexión. public int TRANSACTION_IDS_LAST_COMMITTED (-2) Especifica un nivel de aislamiento de transacción para una conexión.

Object[] elements) throws SQLException. changeDB2Password Formato: public abstract void changeDB2Password(String oldPassword.sql.sql. El símbolo de correlación únicamente identifica una conexión lógica con un servidor. String newPassword) throws java.SQLException Cambia la contraseña para acceder a la fuente de datos. Descripciones de parámetros: typeName Tipo de datos de SQL de los elementos de la matriz.SQLException Devuelve una lista de colecciones de paquetes de DB2 en los que se buscan los paquetes JDBC y SQLJ. getDB2CurrentPackageSet Formato: public String getDB2CurrentPackageSet() throws java. para el usuario del objeto Connection.sql.clientRerouteServerList en DB2BaseDataSource. elements Elementos utilizados para llenar el objeto Array.Array. getDB2Correlator Formato: String getDB2Correlator() throws java. Crea un objeto java. que el servidor de bases de datos actualiza cuando cambian los servidores primario y alternativo.sql. createArrayOf Formato: Array createArrayOf(String typeName. newPassword Contraseña nueva de Connection. getDB2CurrentPackagePath Formato: public String getDB2CurrentPackagePath() throws java.sql.SQLException Devuelve el valor de la variable de instancia (símbolo de correlación) crrtkn que DRDA envía con el mandato ACCRDB. El método getDB2CurrentPackagePath solamente se aplica a conexiones con sistemas de bases de datos de DB2.SQLException 1-138 IBM Data Server Driver para JDBC y SQLJ para IDS . typeName puede ser un tipo de datos incorporado o un tipo diferenciado. Descripciones de parámetros: oldPassword Contraseña original de Connection.

sql. isDB2Alive Formato: public boolean DB2Connection. IBM Data Server Driver para JDBC y SQLJ para IDS 1-139 .SQLException Obtiene el objeto supervisor del sistema de la conexión.sql. En caso contrario devuelve false.SQLException Devuelve el mecanismo de seguridad que está en vigor para la conexión: 3 4 7 9 11 12 13 15 16 Seguridad por contraseña sin cifrar Seguridad por ID de usuario solamente Seguridad por contraseña cifrada Seguridad por ID de usuario y contraseña cifrados Seguridad Kerberos Seguridad por ID de usuario y datos cifrados Seguridad por ID de usuario. getJccLogWriter Formato: public PrintWriter getJccLogWriter() throws java. contraseña y datos cifrados Seguridad por plugin Seguridad por ID de usuario cifrado solamente getDB2SystemMonitor Formato: public abstract DB2SystemMonitor getDB2SystemMonitor() throws java. Cada conexión del IBM Data Server Driver para JDBC y SQLJ puede tener un supervisor del sistema individual.sql.SQLException Devuelve el valor true si la conexión con la fuente de datos se realiza a través de una pasarela DB2 Connect intermedia. getDB2SecurityMechanism Formato: public int getDB2SecurityMechanism() throws java.isDB2Alive() throws java.sql.isDB2GatewayConnection() throws java.Devuelve el ID de colección para la conexión.sql.SQLException Devuelve true si el socket de una conexión con la fuente de datos está todavía activo.SQLException Obtiene el destino de rastreo actual para la función de rastreo del IBM Data Server Driver para JDBC y SQLJ. El método getDB2CurrentPackageSet solamente se aplica a conexiones con sistemas de bases de datos de DB2. isDB2GatewayConnection Formato: public boolean DB2Connection.

Sólo el servidor de aplicaciones y el controlador JDBC subyacente que estableció la conexión fiable inicial conocen la cookie. El controlador JDBC comprueba que la cookie proporcionada coincida con la cookie de la conexión física fiable subyacente para garantizar que la petición se ha creado a partir del servidor de aplicaciones que ha establecido la conexión física fiable. String usernameRegistry. org. el nuevo usuario podrá utilizar inmediatamente la conexión con propiedades diferentes. Si reuseDB2Connection se ejecuta correctamente. Si el servidor de aplicaciones no ha 1-140 IBM Data Server Driver para JDBC y SQLJ para IDS . String password. java. String user. La segunda forma de reuseDB2Connection sólo está soportada para la IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4.util.util. Estas propiedades alteran temporalmente todas las propiedades que ya se han definido en la instancia de DB2Connection.ietf. java. Descripciones de parámetros: cookie Cookie exclusivo creado por el controlador JDBC para la instancia de Connection. Si las cookies coinciden. byte[] userSecToken. El servidor de bases de datos restaura la conexión física asociada. reuseDB2Connection (trusted connection reuse) Formatos: public Connection reuseDB2Connection(byte[] cookie. El servidor de aplicaciones pasa la cookie creada por el controlador en el momento de la creación de la instancia de la conexión agrupada. el usuario podrá utilizar inmediatamente la conexión con propiedades diferentes.reconfigureDB2Connection Formato: public void reconfigureDB2Connection(java.SQLException Método utilizado por un servidor de aplicaciones fiable para volver a utilizar una conexión fiable preexistente en nombre de un usuario nuevo.Properties properties) throws SQLException Vuelve a configurar una conexión con valores nuevos. String originalUser. incluido el ID de usuario nuevo. La conexión no debe devolverse a una agrupación de conexiones antes de que se vuelva a configurar. String originalUser. byte[] userSecToken. Se puede llamar a este método mientras una transacción se encuentra en curso y puede utilizarse para las conexiones fiables o no fiables.sql.sql. Se pasan las propiedades que pueden restaurarse. String usernameRegistry.Properties properties) throws java.SQLException public Connection reuseDB2Connection(byte[] cookie. user ID de cliente que el sistema de bases de datos utiliza para establecer el ID de autorización de la base de datos.GSSCredential gssCredential. Descripciones de parámetros: properties Propiedades nuevas de la conexión.util.Properties properties) throws java.

password Contraseña del ID de autorización que se utiliza para establecer la conexión. userNameRegistry Nombre que identifica un servicio de correlación que correlaciona un ID de usuario de estación de trabajo con un ID de z/OS RACF.ietf. El servicio de correlación se define mediante un plugin. gssCredential Si la fuente de datos utiliza la seguridad Kerberos.jgss.sql. String password. Estas propiedades alteran temporalmente todas las propiedades que ya se han definido en la instancia de DB2Connection. reuseDB2Connection (reutilización no fiable con reautentificación) Formatos: public DB2Connection reuseDB2Connection(String user. especifica una credencial delegada que se pasa desde otro principal. properties Propiedades de la conexión reutilizada. El contenido de userSecToken es descrito por el servidor de aplicaciones y es especificado por el sistema de bases de datos como símbolo de seguridad del servidor de aplicaciones. userSecToken Símbolos de seguridad del cliente. IBM Data Server Driver para JDBC y SQLJ para IDS 1-141 . originalUser ID del usuario original utilizado por el servidor de aplicaciones. se utiliza una instancia de Connection después de que se haya vuelto a realizar la autenticación.Properties properties) throws java.SQLException public DB2Connection reuseDB2Connection( org. password Contraseña de user. el servidor de aplicaciones deberá pasar un ID de cliente que represente a un usuario sin autenticación. gssCredential Si la fuente de datos utiliza la seguridad Kerberos. Los proveedores de plugins definen los valores válidos de userNameRegistry. Descripción de parámetros: user ID de autorización que se utiliza para establecer la conexión. Un ejemplo de servicio de correlación es la correlación de identidades empresariales (EIM) de servicios de seguridad integrados.GSSCredential gssCredential.Properties properties) throws java.SQLException En un entorno de agrupación heterogéneo. java.util. properties Propiedades de la conexión reutilizada. Este valor se rastrea como parte de los datos contables de DB2 para z/OS.util. no se realizará ninguna correlación de usuario user.sql. especifica una credencial delegada que se pasa desde otro principal. java. Si el valor de userNameRegistry es nulo.autenticado al usuario.

también define el ID de colección de la instancia del IBM Data Server Driver para JDBC y SQLJ que se utiliza para la conexión.util.SQLException Especifica una lista de ID de colección en que el sistema de bases de datos busca paquetes JDBC y SQLJ. user. la modalidad de confirmación automático y la modalidad de sólo lectura se restablecen a sus valores por omisión de JDBC. Las propiedades que no se especifiquen no se volverán a inicializar. Todas las propiedades transitorias estándar de JDBC. setDB2CurrentPackageSet Formato: public void setDB2CurrentPackageSet(String packageSet) throws java. como el nivel de aislamiento.SQLException Reutiliza una instancia de conexión sin reautentificación. Esto significa que el estado de la conexión no se restablece cuando se reutiliza el objeto desde la agrupación.sql.sql. portNumber. Cuando define este valor. Este método está diseñado para reutilizar la instancia de Connection en el caso de que las propiedades no cambien.reuseDB2Connection (reutilización no fiable o fiable sin reautentificación) Formatos: public DB2Connection reuseDB2Connection(java. separados por comas. Este método sirve para la dirty reuse de una conexión. Descripción de parámetros: properties Propiedades de la conexión reutilizada. El método setDB2CurrentPackagePath solamente se aplica a conexiones con sistemas de bases de datos de DB2. Descripción de parámetros: packageSet ID de colección para la conexión. como por ejemplo. Descripción de parámetros: packagePath Lista de ID de colección. El método setDB2CurrentPackageSet solamente se aplica a conexiones con sistemas de bases de datos de DB2. No se suprimen las tablas temporales globales. password. Ciertas propiedades.SQLException Especifica el ID de colección de la conexión. planName y pkList permanecerán sin modificar. Estas propiedades alteran temporalmente todas las propiedades que ya se han definido en la instancia de DB2Connection. serverName. La longitud máxima del valor de 1-142 IBM Data Server Driver para JDBC y SQLJ para IDS . setDB2CurrentPackagePath Formato: public void setDB2CurrentPackagePath(String packagePath) throws java.Properties properties) throws java.sql. Los valores de propiedad y los valores de registro especiales siguen vigentes a menos que los alteren temporalmente las propiedades pasadas. databaseName.

SQLException public DB2PooledConnection getDB2PooledConnection( org.jcc.sql.ibm.db2. El primer formato de getDB2PooledConnection ofrece un ID de usuario y una contraseña.DB2BaseDataSource e implementa las interfaces javax. La clase com. java.Referenceable. java. establezca el valor de logWriter en null.GSSCredential gssCredential.io.SQLException Establece la conexión no fiable inicial en un entorno de agrupación heterogéneo. setJccLogWriter Formatos: public void setJccLogWriter(PrintWriter logWriter) throws java.util.PrintWriter en que el IBM Data Server Driver para JDBC y SQLJ graba la salida del rastreo.sql. Consulte la descripción de la propiedad traceLevel en ″Propiedades del IBM Data Server Driver para JDBC y SQLJ″ para conocer los valores válidos. Descripciones de parámetros: logWriter Objeto de tipo java. IBM Data Server Driver para JDBC y SQLJ para IDS 1-143 .Properties properties) throws java. o cambia el destino de rastreo durante una conexión activa.ibm.ietf.sql.jcc. Puede invocar este método como alternativa a ejecutar la sentencia SET CURRENT PACKAGESET de SQL en su programa.io.SQLException public void setJccLogWriter(PrintWriter logWriter.Serializable y javax. traceLevel Especifica los tipos de rastreos que se deben recoger.jgss. Métodos DB2ConnectionPoolDataSource getDB2PooledConnection Formatos: public DB2PooledConnection getDB2PooledConnection(String user.ConnectionPoolDataSource. Para desactivar el rastreo.naming.sql.util.DB2ConnectionPoolDataSource amplía la clase com.Properties properties) throws java.db2.sql. Clase DB2ConnectionPoolDataSource DB2ConnectionPoolDataSource es una fábrica para los objetos PooledConnection.SQLException Habilita o inhabilita la función de rastreo del IBM Data Server Driver para JDBC y SQLJ. java. int traceLevel) throws java. Descripciones de parámetros: user ID de autorización que se utiliza para establecer la conexión. El segundo formato de getDB2PooledConnection es para conexiones que utilizan la seguridad Kerberos. String password. Un objeto que implementa esta interfaz se registra con un servicio de asignación de nombres que se basa en Java Naming and Directory Interface (JNDI).packageSet es 18 bytes.

ietf. El primer formato de getDB2TrustedPooledConnection ofrece un ID de usuario y una contraseña.util.SQLException public Object[] getDB2TrustedPooledConnection( java. 1-144 IBM Data Server Driver para JDBC y SQLJ para IDS . properties Propiedades de la conexión. password Contraseña del ID de autorización que se utiliza para establecer la conexión fiable.Properties properties) throws java. gssCredential Si la fuente de datos utiliza la seguridad Kerberos.sql.SQLException Un servidor de aplicaciones que utiliza un ID de autorización del sistema utiliza este método para establecer una conexión fiable. java. Descripciones de parámetros: user ID de autorización de IDS que se utiliza para establecer la conexión fiable con el servidor de bases de datos.ibm. El tercer formato de getDB2TrustedPooledConnection es para conexiones que utilizan la seguridad Kerberos.jcc. java.DB2DatabasemetaData amplía la interfaz java.jgss.GSSCredential gssCredential.Properties properties) throws java.util. mientras que el segundo formato de getDB2TrustedPooledConnection utiliza el ID de usuario y la contraseña del objeto DB2ConnectionPoolDataSource.util. Los elementos siguientes se devuelven en Object[]: v El primer elemento es una instancia de DB2PooledConnection fiable.SQLException public Object[] getDB2TrustedPooledConnection( org. especifica una credencial delegada que se pasa desde otro principal. v El segundo elemento es una cookie exclusiva para la instancia de conexión agrupada que se ha generado.sql.db2.sql. La interfaz DB2DatabaseMetaData La interfaz com. especifica una credencial delegada que se pasa desde otro principal. String password.password Contraseña del ID de autorización que se utiliza para establecer la conexión.sql. properties Propiedades de la conexión. getDB2TrustedPooledConnection Formatos: public Object[] getDB2TrustedPooledConnection(String user.DatabaseMetaData.Properties properties) throws java. gssCredential Si la fuente de datos utiliza la seguridad Kerberos.

Se emite una excepción de SQL (SQLException) si la fuente de datos no es una fuente de datos IDS. Métodos DB2Diagnosable Los métodos siguientes sólo se definen para el IBM Data Server Driver para JDBC y SQLJ.Métodos DB2DatabaseMetaData: Los métodos siguientes sólo se definen para IBM Data Server Driver para JDBC y SQLJ. Este método solamente es aplicable a conexiones con fuentes de datos IDS. Devuelve true si la fuente de datos de destino es compatible con la modalidad continua progresiva. devuelve false. isResetRequiredForDB2eWLM Formato: public boolean isResetRequiredForDB2eWLM(). En otro caso. isIDSDatabaseAnsiCompliant Formato: public boolean isIDSDatabaseAnsiCompliant().jcc. Interfaz DB2Diagnosable La interfaz com.ibm.db2. Devuelve true si el servidor de bases de datos de destino necesita una reutilización limpia para trabajar con eWLM. En otro caso. Una base de datos IDS compatible con el registro cronológico es una base de datos que se creó con la opción WITH LOG MODE ANSI. devuelve false. supportsDB2ProgressiveStreaming Formato: public boolean supportsDB2ProgressiveStreaming(). Devuelve true si la base de datos IDS activa actual es compatible con el registro cronológico.DB2Diagnosable proporciona un mecanismo para obtener información de diagnóstico de IDS a partir de una SQLException. En otro caso. Se emite una excepción de SQL (SQLException) si la fuente de datos no es una fuente de datos IDS. En otro caso. WITH BUFFERED LOG o WITH LOG. devuelve false. getSqlca Formato: public DB2Sqlca getSqlca() IBM Data Server Driver para JDBC y SQLJ para IDS 1-145 . isIDSDatabaseLogging Formato: public boolean isIDSDatabaseLogging(). Una base de datos compatible con ANSI es una base de datos que se creó con la opción WITH LOG MODE ANSI. Este método solamente es aplicable a conexiones con fuentes de datos IDS. Devuelve true si la base de datos activa actual de IBM Informix Dynamic Server (IDS) es compatible con ANSI. devuelve false.

String header) static public void printTrace(java.Exception que se genera al utilizar un IBM Data Server Driver para JDBC y SQLJ.io. java.Devuelve un objeto DB2Sqlca a partir de una excepción java.sql.sql. String header) Imprime información de diagnóstico después de emitirse una excepción java.SQLException sqlException. String header) static public void printTrace(DB2Sqlca sqlca. Métodos DB2ExceptionFormatter Los métodos siguientes sólo se definen para IBM Data Server Driver para JDBC y SQLJ.db2. header Información definida por el usuario que se imprime al comienzo de la salida. String header) Imprime información de diagnóstico después de emitirse una excepción.io.PrintWriter printWriter.Exception que se produce al utilizar un IBM Data Server Driver para JDBC y SQLJ.lang.jcc. Descripciones de parámetros: printWriter Es el destino de la información de diagnóstico.sql. printTrace Formato: static public void printTrace(java.io.sql.PrintWriter printWriter. header Información definida por el usuario que se imprime al comienzo de la información de salida. java.PrintWriter printWriter.Throwable throwable.io.PrintWriter printWriter.DB2ExceptionFormatter contiene métodos para imprimir información de diagnóstico en una corriente de datos. printTrace Formatos: static public void printTrace(java.Throwable a partir de una excepción java. printWriter Destino de la información de diagnóstico. Clase DB2ExceptionFormatter La clase com. Descripciones de parámetros: sqlException|sqlca|throwable Excepción que se emitió durante una operación anterior de JDBC o Java. 1-146 IBM Data Server Driver para JDBC y SQLJ para IDS . java.ibm.Exception al utilizar un IBM Data Server Driver para JDBC y SQLJ.lang. getThrowable Formato: public Throwable getThrowable() Devuelve un objeto java.

Ciertas propiedades. Las propiedades que no se especifiquen no se volverán a inicializar. Los valores de propiedad y los valores de registro especiales siguen vigentes a menos que los alteren temporalmente las propiedades pasadas. portNumber.Clase DB2JCCPlugin La clase com.db2. password.DB2JCCPlugin es una clase abstracta que define métodos que se pueden implementar para proporcionar soporte de plugin de DB2 Database para Linux.db2. UNIX y Windows. planName y pkList permanecerán sin modificar. como por ejemplo.ibm. getDB2Connection (reutilización fiable) Formatos: IBM Data Server Driver para JDBC y SQLJ para IDS 1-147 . Métodos DB2JCCPlugin Los métodos siguientes se definen solamente para el IBM Data Server Driver para JDBC y SQLJ.jcc. No se suprimen las tablas temporales globales. UNIX y Windows. getTicket Formato: public abstract byte[] getTicket(String user. Descripciones de parámetros: user ID de usuario para el que debe recuperarse el certificado Kerberos. como el nivel de aislamiento. password Contraseña de user.ibm.SQLException Este método sirve para la dirty reuse de una conexión. Todas las propiedades transitorias estándar de JDBC. String password. la modalidad de confirmación automático y la modalidad de sólo lectura se restablecen a sus valores por omisión de JDBC.jgss. databaseName. getConnection (reutilización no fiable o fiable sin reautentificación) Formato: public DB2Connection getConnection() throws java.jcc. byte[] returnedToken) throws org. returnedToken Clase DB2PooledConnection La clase com. Métodos DB2PooledConnection Los métodos siguientes sólo se definen para IBM Data Server Driver para JDBC y SQLJ.GSSException Recupera un certificado Kerberos para un usuario. Esta clase solo atañe al DB2 Database para Linux. user.DB2PooledConnection ofrece métodos que puede utilizar un servidor de aplicaciones para cambiar de usuarios en una conexión fiable preexistente.sql.ietf. serverName. Esto significa que el estado de la conexión no se restablece cuando se reutiliza el objeto desde la agrupación.

util.Properties properties) throws java. Si las cookies difieren.Properties properties) throws java. gssCredential Si la fuente de datos utiliza la seguridad Kerberos. String user. la conexión puede quedar disponible. Los proveedores de plugins definen los valores válidos de userNameRegistry. Descripciones de parámetros: cookie Cookie exclusivo creado por el controlador JDBC para la instancia de Connection. Si userNameRegistry es nulo. userNameRegistry Nombre que identifica un servicio de correlación que correlaciona un ID de usuario de estación de trabajo con un ID de z/OS RACF. java.SQLException public Connection getDB2Connection(byte[] cookie.public DB2Connection getDB2Connection(byte[] cookie. El servicio de correlación se define mediante un plugin. user La identidad cliente utilizada por la fuente de datos para establecer el ID de autorización para el servidor de bases de datos. byte[] userSecToken.GSSCredential gssCredential. java.util. org.SQLException Cambia el usuario que está asociado a una conexión fiable sin autentificación. El contenido de userSecToken es descrito 1-148 IBM Data Server Driver para JDBC y SQLJ para IDS . byte[] userSecToken. userSecToken Símbolos de seguridad del cliente. La segunda forma de reuseDB2Connection sólo está soportada para la IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 4. el primero debe pasar una identidad de usuario que represente a un usuario sin autentificar.ietf. El servidor de aplicaciones pasa la cookie creada por el controlador en el momento de la creación de la instancia de la conexión agrupada. String userRegistry. Si el servidor de aplicaciones no autentificó al usuario. String originalUser. String originalUser.sql.sql. para que un usuario nuevo la utilice inmediatamente. Este valor se rastrea como parte de datos contables de DB2 para z/OS. especifica una credencial delegada que se pasa desde otro principal. la conexión no utiliza un servicio de correlación. String usernameRegistry. con propiedades diferentes. Sólo el servidor de aplicaciones y el controlador JDBC subyacente que estableció la conexión fiable inicial conocen la cookie. password Contraseña de user. String password. Un ejemplo de servicio de correlación es la correlación de identidades empresariales (EIM) de servicios de seguridad integrados. El controlador JDBC comprueba que la cookie proporcionada coincida con la cookie de la conexión física fiable subyacente para garantizar que la petición se ha creado a partir del servidor de aplicaciones que ha establecido la conexión física fiable.

sql.SQLException Cambia el usuario que está asociado a una conexión no fiable con autentificación.ietf.jgss. properties Propiedades de la conexión reutilizada.Properties properties) throws java.por el servidor de aplicaciones y es especificado por la fuente de datos como un símbolo de seguridad del servidor de aplicaciones. getDB2Connection (reutilización no fiable o fiable sin reautentificación) Formatos: public java. Descripciones de parámetros: user El ID de usuario utilizado por la fuente de datos para establecer el ID de autorización para el servidor de bases de datos.sql.GSSCredential gssCredential. El primer formato de getDB2Connection ofrece un ID de usuario y una contraseña.Properties properties) throws java. Los valores de propiedad y los valores de registro especiales siguen vigentes a menos que los alteren temporalmente las propiedades pasadas. originalUser La identidad cliente que envía la petición original al servidor de aplicaciones. Las propiedades que no se especifiquen no se volverán a inicializar. properties Propiedades de la conexión reutilizada.SQLException Reutiliza una conexión no fiable.util. String password. la modalidad de confirmación automático y la modalidad de sólo lectura se restablecen a sus IBM Data Server Driver para JDBC y SQLJ para IDS 1-149 . como el nivel de aislamiento. java. password Contraseña de user. java. Estas propiedades alteran temporalmente las propiedades ya definidas en la instancia de DB2PooledConnection. getDB2Connection (reutilización no fiable con reautentificación) Formatos: public DB2Connection getDB2Connection( String user. No se suprimen las tablas temporales globales.Connection getDB2Connection( java. Este método sirve para la dirty reuse de una conexión. Esto significa que el estado de la conexión no se restablece cuando se reutiliza el objeto desde la agrupación. originalUser se incluye en los datos contables de DB2 para z/OS en calidad de ID de usuario original que fue utilizado por el servidor de aplicaciones.SQLException public DB2Connection getDB2Connection(org.sql.util. El segundo formato de getDB2Connection es para conexiones que utilizan la seguridad Kerberos. Todas las propiedades transitorias estándar de JDBC.Properties properties) throws java.util. Estas propiedades alteran temporalmente las propiedades ya definidas en la instancia de DB2PooledConnection. sin reautentificación.sql.

Ciertas propiedades. planName y pkList permanecerán sin modificar. user. Descripciones de parámetros: properties Propiedades de la conexión reutilizada.valores por omisión de JDBC. createdObjectCount Formato: public abstract int createdObjectCount() Recupera el número de objetos que el IBM Data Server Driver para JDBC y SQLJ ha creado desde la creación de la agrupación. Clase DB2PoolMonitor La clase com. Campos de DB2PoolMonitor Los campos siguientes se definen solamente para el IBM Data Server Driver para JDBC y SQLJ. agedOutObjectCount Formato: public abstract int agedOutObjectCount() Recupera el número de objetos que han excedido el tiempo de inactividad especificado por db2. databaseName.DB2PoolMonitor proporciona métodos para la supervisión de la agrupación de objetos de transporte global que se utiliza para el concentrador de conexiones y el equilibrado de carga de trabajo Sysplex.db2. getMonitorVersion Formato: public int getMonitorVersion() Recupera la versión de la clase DB2PoolMonitor que se entrega con el IBM Data Server Driver para JDBC y SQLJ. Métodos DB2PoolMonitor Los métodos siguientes sólo se definen para el IBM Data Server Driver para JDBC y SQLJ.getPoolMonitor. como por ejemplo. portNumber. password.jcc. getPoolMonitor Formato: public static DB2PoolMonitor getPoolMonitor(int tipoMonitor) Recupera una instancia de la clase DB2PoolMonitor.jcc. serverName.ibm. public static final int TRANSPORT_OBJECT = 1 Este valor es un parámetro para el método DB2PoolMonitor. Estas propiedades alteran temporalmente las propiedades ya definidas en la instancia de DB2PooledConnection.maxTransportObjectIdleTime y que no se han suprimido de la agrupación. Descripciones de parámetros: 1-150 IBM Data Server Driver para JDBC y SQLJ para IDS .

Este valor debe ser DB2PoolMonitor.tipoMonitor El tipo de monitor. lightWeightReusedObjectCount Formato: public abstract int lightWeightReusedObjectCount() Recupera el número de objetos que se han vuelto a utilizar pero que no se encontraban en la agrupación. numberOfRequestsBlockedPoolMax Formato: public abstract int numberOfRequestsBlockedPoolMax() IBM Data Server Driver para JDBC y SQLJ para IDS 1-151 . heavyWeightReusedObjectCount Formato: public abstract int heavyWeightReusedObjectCount() Recupera el número de de la agrupación que se han vuelto a utilizar. el objeto Connection podrá utilizar el objeto de transporte. Si el objeto Connection necesita un objeto de transporte posteriormente y ningún otro objeto Connection ha utiliza el objeto de transporte original. numberOfRequestsBlockedDataSourceMax Formato: public abstract int numberOfRequestsBlockedDataSourceMax() Recupera el número de peticiones que IBM Data Server Driver para JDBC y SQLJ ha realizado a la agrupación que la agrupación bloqueó debido a que ésta había llegado al máximo del objeto DataSource.TRANSPORT_OBJECT. numberOfRequestsBlocked Formato: public abstract int numberOfRequestsBlocked() Recupera el número de peticiones que el IBM Data Server Driver para JDBC y SQLJ ha realizado a la agrupación que la agrupación bloqueó debido a que ésta había llegado a su capacidad máxima. longestBlockedRequestTime Formato: public abstract long longestBlockedRequestTime() Recupera.jcc. Es posible que una petición bloqueada se ejecute correctamente si el objeto se devuelve a la agrupación antes de que se supere el tiempo especificado por db2.maxTransportObjectWaitTime y que se haya emitido una excepción. la mayor cantidad de tiempo que una petición estuvo bloqueada. en milisegundos. Esto puede ocurrir si un objeto Connection libera un objeto de transporte en el límite de una transacción. numberOfConnectionReleaseRefused Formato: public abstract int numberOfConnectionReleaseRefused() Recupera el número de veces que se rechazó la liberación de una conexión.

ibm.db2.db2.jcc. totalRequestsToPool Formato: public abstract int totalRequestsToPool() Recupera el número total de peticiones que el IBM Data Server Driver para JDBC y SQLJ ha realizado a la agrupación desde la creación de ésta. shortestBlockedRequestTime Formato: public abstract long shortestBlockedRequestTime() Recupera. Interfaz DB2PreparedStatement La interfaz com. Este tiempo puede ser mucho mayor que el tiempo de ejecución de la aplicación transcurrido si la aplicación utiliza varias hebras. removedObjectCount Formato: public abstract int removedObjectCount() Recupera el número de objetos que se han suprimido de la agrupación desde que ésta fue creada.jcc.Recupera el número de peticiones que IBM Data Server Driver para JDBC y SQLJ ha realizado a la agrupación que la agrupación bloqueó debido a que ésta había llegado al máximo de la agrupación. executeDB2QueryBatch Formato: 1-152 IBM Data Server Driver para JDBC y SQLJ para IDS . la menor cantidad de tiempo que una petición estuvo bloqueada. successfullRequestsFromPool Formato: public abstract int successfullRequestsFromPool() Recupera el número de peticiones satisfactorias que el IBM Data Server Driver para JDBC y SQLJ ha realizado a la agrupación desde la creación de ésta.sql.PreparedStatement.DB2PreparedStatement amplía las interfaces com.DB2Statement y java. totalTimeBlocked Formato: public abstract long totalTimeBlocked() Recupera el tiempo total en milisegundos que la agrupación ha empleado para bloquear las peticiones. Una petición satisfactoria indica que la agrupación ha devuelto un objeto. totalPoolObjects Formato: public abstract int totalPoolObjects() Recupera el número de objetos que se encuentran actualmente en la agrupación. en milisegundos. Métodos DB2PreparedStatement Los métodos siguientes sólo se definen para IBM Data Server Driver para JDBC y SQLJ.ibm.

getDB2RowChangeToken Formato: public long DB2ResultSet.ibm.sql.ResultSetMetaData que se devuelva de una llamada a java.SQLException Ejecuta un lote de sentencias que contiene consultas con parámetros. si está disponible.sql.jcc.NULL.db2.sql.jcc.getMetaData.DB2ResultSetMetaData un objeto java. se devuelve java. Interfaz DB2ResultSetMetaData La interfaz com.DB2ResultSet se utiliza para crear objetos de los cuales se puede obtener información de consulta para IBM Data Server Driver para JDBC y SQLJ. Se puede obtener el RID si se solicitaron columnas de bloqueo optimista y están disponibles. Interfaz DB2ResultSet La interfaz com.Types. se debe difundir a com. Devuelve 0 si no se solicitaron columnas de bloqueo optimista o no están disponibles.ibm.sql.db2.getDB2RowChangeToken() throws java.sql.sql.SQLException Devuelve el tipo de datos de la columna RID en un DB2ResultSet.sql.ibm. Devuelve un valor nulo si no se solicitaron columnas de bloqueo optimista o no están disponibles. Métodos DB2ResultSet: Los métodos siguientes sólo se definen para el IBM Data Server Driver para JDBC y SQLJ.sql.getDB2RID() throws java. getDB2RIDType Formato: public int DB2ResultSet. Este método no se puede utilizar para conexiones con fuentes de datos IBM Informix Dynamic Server.SQLException Devuelve el RID de la fila actual.ResultSet. El valor devuelto se correlaciona con una constante java.DB2ResultSetMetaData proporciona métodos que proporcionan información sobre un objeto ResultSet. Si el DB2ResultSet no contiene una columna RID.db2.jcc. Para poder utilizar un método com.SQLException Devuelve el distintivo de cambio de fila para la fila actual.DB2ResultSetMetaData.getDB2RIDType() throws java.Types.jcc.ibm.db2. IBM Data Server Driver para JDBC y SQLJ para IDS 1-153 . getDB2RID Formato: public Object DB2ResultSet. si está disponible.public void executeDB2QueryBatch() throws java.

Por ejemplo.SQLException Devuelve el valor true si el nombre de la columna ResultSet se deriva de la lista de SQL SELECT que ha generado el conjunto de resultados (ResultSet).DB2RowID a bytes. 2 isDB2ColumnNameDerived Formato: public boolean isDB2ColumnNameDerived (int columna) throws java. Existen columnas de bloqueo optimista disponibles.SQLException Devuelve un valor que indica si están disponibles columnas de bloqueo optimista. getBytes Formato: public byte[] getBytes() Convierte un objeto com.DB2SimpleDataSource amplía la clase DB2BaseDataSource. Los valores posibles son: 0 1 No existen columnas de bloqueo optimista disponibles. El nombre de columna EMPNAME ResultSet se deriva de la lista de SQL SELECT.ibm.jcc.ibm.db2.jcc.DB2RowID se utiliza para declarar objetos Java para su utilización con el tipo de datos ROWID de SQL.sql. Clase DB2SimpleDataSource La clase com. supongamos que se genera un conjunto de resultados (ResultSet) a partir de la sentencia de SQL SELECT EMPNAME. pero el distintivo de cambio puede no tener la granularidad necesaria para evitar negativos falsos. SUM(SALARY) FROM EMP. Métodos DB2RowID El método siguiente sólo se define para el IBM Data Server Driver para JDBC y SQLJ.Métodos de DB2ResultSetMetaData: Los métodos siguientes sólo se definen para IBM Data Server Driver para JDBC y SQLJ. Descripciones de parámetros: columna Nombre de una columna del conjunto de resultados (ResultSet). Interfaz DB2RowID La interfaz com.jcc.sql. 1-154 IBM Data Server Driver para JDBC y SQLJ para IDS . Existen columnas de bloqueo optimista disponibles. getDB2OptimisticLockingColumns Formato: public int getDB2OptimisticLockingColumns() throws java.ibm. pero el nombre de la columna del conjunto de resultados (ResultSet) que corresponde a SUM(SALARY) no se deriva de la lista de SELECT. y el distintivo de cambio tiene la granularidad necesaria para evitar negativos falsos.db2.

jcc. No existe un método correspondiente para getPassword.DB2SimpleDataSource. Además. cuyos elementos contienen un SQLERRD de SQLCA.ibm. getSqlCode Formato: public abstract int getSqlCode() Devuelve el valor de un código de error de SQL. getMessage Formato: public abstract String getMessage() Devuelve el texto de mensajes de error. la contraseña no se puede cifrar. getSqlErrd Formato: public abstract int[] getSqlErrd() Devuelve una matriz. String com.Un objeto DB2BaseDataSource no da soporte a la agrupación de conexiones ni a las transacciones distribuidas.DB2Sqlca es una encapsulación de la SQLCA. Propiedades de DB2SimpleDataSource La propiedad siguiente se define solamente para el IBM Data Server Driver para JDBC y SQLJ. pues no hay forma de recuperar la contraseña para poder descifrarla. DB2SimpleDataSource contiene las siguientes propiedades específicas del IBM Data Server Driver para JDBC y SQLJ.jcc. getSqlErrmc Formato: public abstract String getSqlErrmc() IBM Data Server Driver para JDBC y SQLJ para IDS 1-155 .ibm.password Métodos DB2SimpleDataSource El método siguiente sólo se define para el IBM Data Server Driver para JDBC y SQLJ. Métodos DB2Sqlca Los métodos siguientes se definen solamente para el IBM Data Server Driver para JDBC y SQLJ.db2. Clase DB2Sqlca La clase com. setPassword Formato: public void setPassword(String password) Establece la contraseña para el objeto DB2SimpleDataSource. Contiene todas las propiedades y los métodos contenidos por la clase DB2BaseDataSource. Por tanto.db2. Consulte ″Propiedades de IBM Data Server Driver para JDBC y SQLJ″ para obtener una explicación de esta propiedad.

cuyos elementos contienen un valor SQLWARN de SQLCA. El servidor DB2 para z/OS coloca la serie de caracteres en registros de rastreo IFCID 316 junto con otras estadísticas. que está almacenado en la fuente de datos.Devuelve una cadena de caracteres que contiene los valores SQLERRMC de SQLCA.sql.ibm.jcc.sql. para que el usuario pueda identificar qué programa está asociado a una determinada sentencia de SQL. 1-156 IBM Data Server Driver para JDBC y SQLJ para IDS . delimitados por espacios. en servidores DB2 para z/OS. getDB2ClientProgramId Formato: public String getDB2ClientProgramId() throws java.SQLException Devuelve el identificador del programa cliente definido por el usuario correspondiente a la conexión. getSqlWarn Formato: public abstract char[] getSqlWarn() Devuelve una matriz.sql. getSqlErrp Formato: public abstract String getSqlErrp() Devuelve el valor SQLERRP de SQLCA. El identificador de programa es una serie de caracteres de 80 bytes que se utiliza para identificar al peticionario del programa. getSqlState Formato: public abstract String getSqlState() Devuelve el valor SQLSTATE de SQLCA.db2. Métodos DB2Statement Los métodos siguientes se definen solamente para el IBM Data Server Driver para JDBC y SQLJ. getSqlErrmcTokens Formato: public abstract String[] getSqlErrmcTokens() Devuelve una matriz.DB2Statement amplía la interfaz java. Interfaz DB2Statement La interfaz com.Statement. setDB2ClientProgramId Formato: public abstract void setDB2ClientProgramId(String program-ID) throws java. cuyos elementos contienen un símbolo SQLERRMC de SQLCA.SQLException Establece un identificador de programa definido por el usuario correspondiente a la conexión.

v El formato del método Connection.executeUpdate de JDBC por el que se prepara o ejecuta la sentencia INSERT no tiene parámetros que solicitan claves de generación automática. v La tabla en la que se inserta la fila contiene una columna SERIAL8.prepareStatement o Statement. v -1. getIDSSQLStatementOffSet devuelve el desplazamiento dentro del texto de la sentencia del error de sintaxis. getIDSSQLStatementOffSet devuelve: v 0.executeUpdate de JDBC por el que se prepara o ejecuta la sentencia INSERT no tiene parámetros que solicitan claves de generación automática. si la sentencia no contiene un error de sintaxis.sql. getIDSSerial8 Formato: public long getIDSSerial8() throws java. v El formato del método Connection.sql. Este método solamente es aplicable a conexiones con fuentes de datos IDS. Se deben cumplir las condiciones siguientes para que getIDSSerial se ejecute satisfactoriamente: v La sentencia INSERT es la última sentencia de SQL que se ha ejecutado antes de invocar este método. si la sentencia contiene un error de sintaxis.sql.SQLException Recupera una clave que se ha creado automáticamente en la columna SERIAL de la sentencia INSERT ejecutada anteriormente.getIDSSerial Formato: public int getIDSSerial() throws java. getIDSSQLStatementOffSet Formato: public int getIDSSQLStatementOffSet() throws java. si la fuente de datos no es IDS.SQLException Después de que una sentencia de SQL se ejecute en una fuente de datos IDS.prepareStatement o Statement.SQLException Recupera una clave que se ha creado automáticamente en la columna SERIAL8 de la sentencia INSERT ejecutada anteriormente. v La tabla en la que se inserta la fila contiene una columna SERIAL. Este método solamente es aplicable a conexiones con fuentes de datos IDS. IBM Data Server Driver para JDBC y SQLJ para IDS 1-157 . Este método es aplicable solamente a conexiones con bases de datos IBM Informix Dynamic Server (IDS). Se deben cumplir las condiciones siguientes para que getIDSSerial8 se ejecute satisfactoriamente: v La sentencia INSERT es la última sentencia de SQL que se ha ejecutado antes de invocar este método.

public final static int RESET_TIMES public final static int ACCUMULATE_TIMES Estos valores son argumentos del método DB2SystemMonitor. entre estos puntos en el proceso del controlador JDBC: Inicio del intervalo Es el momento en el que se invoca start.SQLException 1-158 IBM Data Server Driver para JDBC y SQLJ para IDS . Todos los tiempo se inicializan cuando se invoca enable. ACCUMULATE_TIMES no pone a cero los contadores de tiempo. Métodos DB2SystemMonitor Los métodos siguientes sólo se definen para el IBM Data Server Driver para JDBC y SQLJ.db2. se produce una excepción SQLException. Cada conexión puede tener una sola instancia de DB2SystemMonitor. en milisegundos.jcc. El tiempo está expresado en milisegundos. Fin del intervalo Es el momento en el que se invoca stop.sql. getApplicationTimeMillis Formato: public long getApplicationTimeMillis() throws java. getCoreDriverTimeMicros Formato: public long getCoreDriverTimeMicros() throws java. Si se invoca este método sin invocar primero stop. Campos de DB2SystemMonitor Los campos siguientes se definen solamente para el IBM Data Server Driver para JDBC y SQLJ. RESET_TIMES inicializa a cero los contadores de tiempo antes del comienzo de la supervisión.Interfaz DB2SystemMonitor La interfaz com.start.sql. la E/S de red y el servidor de bases de datos. Este método no se puede invocar durante la supervisión.SQLException Devuelve la suma de los tiempos transcurridos correspondientes a la aplicación.SQLException Habilita el supervisor del sistema que está asociado a una conexión.sql. Un intervalo de tiempo transcurrido supervisado es la diferencia. enable Formato: public void enable(boolean on) throws java. el controlador JDBC.DB2SystemMonitor se utiliza para recoger datos de supervisión del sistema correspondientes a una conexión.ibm. getApplicationTimeMillis devuelve un 0 si la supervisión del sistema está inhabilitada.

Los intervalos de tiempo de E/S de red se recogen para todas las operaciones de envío y recepción. IBM Data Server Driver para JDBC y SQLJ para IDS 1-159 . incluido el envío de mensajes para operaciones de confirmación y retrotracción. Si se invoca este método sin primero llamar al método stop. los métodos PreparedStatement. en microsegundos. en microsegundos. los tiempos transcurridos sólo se supervisan para las API que puedan producir interacción con la E/S de red o servidor de bases de datos. o si se invoca este método cuando la JVM subyacente no da soporte a la notificación de tiempos en microsegundos. v Emitir un mandato TCP/IP para recibir mensajes de respuesta de DRDA procedentes del servidor de bases de datos.setXXX y y ResultSet. El tiempo está expresado en microsegundos. getCoreDriverTimeMicros devuelve un 0 si la supervisión del sistema está inhabilitada. Un intervalo de tiempo transcurrido de E/S de red es el intervalo de tiempo que se invierte en realizar las operaciones siguientes en el controlador JDBC: v Emitir un mandato TCP/IP para enviar un mensaje de DRDA al servidor de bases de datos. Este intervalo de tiempo es la diferencia. Un intervalo de tiempo transcurrido de API supervisada es la diferencia. El tiempo transcurrido de las API supervisadas incluye el tiempo total que se invierte en el controlador para una llamada de método. Este tiempo incluye cualquier tiempo de E/S de red y tiempo transcurrido de servidor de bases de datos. getNetworkIOTimeMicros Formato: public long getNetworkIOTimeMicros() throws java.Devuelve la suma de los tiempos transcurridos de API supervisada que se recogieron mientras la supervisión del sistema estaba habilitada. El tiempo invertido en la espera a causa de operaciones de E/S de red puede verse afectado por retrasos en la CPU que despacha peticiones de SQL de baja prioridad en el servidor de bases de datos. Este intervalo de tiempo es la diferencia. Por ejemplo. En general. El tiempo transcurrido de E/S de red incluye el tiempo que se invierte en escribir y leer datos de DRDA procedentes de corrientes de E/S de la red. en microsegundos. Fin del intervalo Inmediatamente antes de este momento la API supervisada devuelve el control a la aplicación. entre los momentos inmediatamente anterior y posterior a la realización de una lectura en la corriente de E/S de la red. El tiempo está expresado en microsegundos. Una API supervisada es un método de controlador JDBC para la cual se obtiene el tiempo de proceso.SQLException Devuelve la suma de los tiempos transcurridos de E/S de red que se recogieron mientras la supervisión del sistema estaba habilitada.getXXX no se supervisan. entre los momentos inmediatamente anterior y posterior a la realización de una escritura y vaciado en la corriente de E/S de la red. se produce una excepción SQLException.sql. entre estos puntos en el proceso del controlador JDBC: Inicio del intervalo Es el momento en el que la aplicación llama a la API supervisada.

o si se invoca este método cuando la JVM subyacente no da soporte a la notificación de tiempos en microsegundos. La invocación de este método cuando la supervisión del sistema está inhabilitada no produce ningún efecto. Fin del intervalo Cuando el servidor de bases de datos está preparado para emitir el mandato de TCP/IP para devolver el mensaje de respuesta al cliente.getNetworkIOTimeMicros devuelve un 0 si la supervisión del sistema está inhabilitada. start inicia la recogida de datos de supervisión del sistema para una conexión. El servidor de bases de datos notifica tiempos transcurridos cuando se dan estas condiciones: v El servidor de bases de datos da soporte a la devolución de datos sobre tiempos transcurridos al cliente. el tiempo transcurrido del servidor de bases de datos no se devuelve para operaciones de confirmación ni retrotracción. Si se invoca este método sin primero llamar al método stop.SQLException Devuelve la suma de todos los tiempos transcurridos notificados del servidor de bases de datos que se recopilaron mientras la supervisión del sistema estaba habilitada. DB2 Database para Linux.sql.5 y posterior. start Formato: public void start (int lapMode) throws java. La invocación de este método más de una vez sin que medie una llamada a stop produce una excepción SQLException. El tiempo está expresado en microsegundos. 1-160 IBM Data Server Driver para JDBC y SQLJ para IDS . y DB2 para z/OS son compatibles con esta función. en microsegundos. El tiempo de red necesario para recibir o enviar la corriente de datos no se incluye. getServerTimeMicros Formato: public long getServerTimeMicros() throws java. UNIX y Windows Versión 9. Un intervalo de tiempo transcurrido del servidor de bases de datos es la diferencia. entre estos puntos en el proceso del servidor: Inicio del intervalo Cuando el sistema operativo hace que el servidor de bases de datos procese un mensaje TCP/IP que se recibe del controlador JDBC. getServerTimeMicros devuelve un 0 si la supervisión del sistema está inhabilitada. se produce una excepción SQLException. El tiempo transcurrido del servidor de bases de datos se define como el tiempo transcurrido necesario para analizar la corriente de datos de la petición. v El servidor de bases de datos efectúa operaciones que se pueden supervisar. se produce una excepción SQLException. Por ejemplo.SQLException Si el supervisor del sistema está habilitado. procesar el mandato y generar la corriente de datos de respuesta en el servidor de bases de datos.sql. Los valores válidos de lapMode son RESET_TIMES o ACCUMULATE_TIMES. Si se invoca este método sin invocar primero stop.

El grabador de anotaciones globales altera temporalmente todos los demás grabadores de anotaciones globales de JDBC.sql.SQLException Si el supervisor del sistema está habilitado.sql. la clase DB2TraceManager proporciona la capacidad de suspender y reanudar el rastreo de cualquier tipo de grabador de anotaciones. IBM Data Server Driver para JDBC y SQLJ para IDS 1-161 . se descartan todas las llamadas para los rastreos de DataSource o Connection hasta que se llame a DB2TraceManager. los valores especificados surten efecto cuando se reanuda el rastreo.sql. se pueden obtener los tiempos supervisados utilizando los métodos getXXX de DB2SystemMonitor. Métodos DB2TraceManager getTraceManager Formato: static public DB2TraceManager getTraceManager() throws java.SQLException Obtiene una instancia del grabador de anotaciones cronológicas globales. Además de iniciar el grabador de anotaciones globales. int traceLevel) throws java.SQLException public abstract void setLogWriter(java. La invocación de este método cuando la supervisión del sistema está inhabilitada no produce ningún efecto.stop Formato: public void stop() throws java. en función del formato de setLogWriter que se utilice. String baseTraceFileName. Es decir. El grabador de anotaciones globales se aplica a todas las conexiones en todo el controlador.DB2TraceManager controla el grabador de anotaciones globales.SQLException public abstract void setLogWriter(String traceFile. programas de registro de DataSource o programas de registro a nivel de conexión específicos de IBM Data Server Driver para JDBC y SQLJ.io. se redireccionan todos los rastreos de Connection o DataSource a un archivo de rastreo o PrintWriter.SQLException Habilita un rastreo global. boolean fileAppend.jcc. La invocación de este método sin primero invocar start.unsetLogWriter. Una vez detenida la supervisión. Después de llamar a setLogWriter. los métodos de suspensión y reanudación de la clase DB2TraceManager son aplicables a todos los programas de registro actuales y futuros de DriverManager. setLogWriter Formatos: public abstract void setLogWriter(String traceDirectory. stop finaliza la recogida de datos de supervisión del sistema para una conexión.db2. Clase DB2TraceManager La clase com.sql. int traceLevel) throws java.sql. o la invocación repetida de este método sin que medie una llamada a start produce una excepción SQLException. Si se suspende el rastreo global cuando se llama a setLogWriter.PrintWriter logWriter. Cuando se llama a setLogWriter.ibm. int traceLevel) throws java.

Cuando se utiliza el formato de setLogWriter con el parámetro traceDirectory.DB2BaseDataSource.db2. Puede especificar uno o más de los valores de rastreo siguientes con el parámetro traceLevel: v com.TRACE_STATEMENT_CALLS (X’02’) v com.jcc.DB2BaseDataSource. baseTraceFileName es el valor del parámetro baseTraceFileName.db2.DB2BaseDataSource. Este valor prevalece sobre la propiedad logWriter en una conexión DataSource o DriverManager.ibm.TRACE_NONE (X’00’) v com.TRACE_DRIVER_CONFIGURATION (X’10’) v com. se rastrea una conexión para un archivo denominado traceFile_global_n.jcc.jcc. se escribe un solo archivo de registro.TRACE_CONNECTION_CALLS (X’01’) v com.ibm. Cuando se utiliza el formato de setLogWriter con el parámetro traceFileName.jcc. se rastrea una conexión para un archivo denominado baseTraceFileName_global_n.DB2BaseDataSource.ibm. v Si se especifica un valor no nulo para baseTraceFileName.db2.DB2BaseDataSource. Este valor prevalece sobre los valores de las propiedades traceFile y logWriter para una conexión DataSource o DriverManager. el controlador de JDBC establece la propiedad traceFileAppend en false cuando se llama a setLogWriter. La combinación de baseTraceFileName y traceDirectory determina el nombre de vía de acceso completa para los archivos de anotaciones de rastreo globales. Este valor prevalece sobre los valores de las propiedades traceDirectory y logWriter para una conexión DataSource o DriverManager. traceFileName Especifica el archivo en el que se graba la información de rastreo global.ibm. traceFileName puede incluir una vía de acceso de directorio. baseTraceFileName Especifica la raíz de los nombres de los archivos en los que se graba la información de rastreo global.db2.db2.jcc.Descripciones de parámetros: traceDirectory Especifica un directorio en el que se graba la información de rastreo global.db2. n es la conexión de controlador de JDBC número n.ibm.TRACE_RESULT_SET_CALLS (X’04’) v com.ibm.DB2BaseDataSource.jcc. traceLevel Especifica qué se debe rastrear. lo que significa que se sobregraban los archivos de anotaciones existentes.jcc. logWriter Especifica una corriente de salida de caracteres en el que se graban todos los registros de anotaciones globales.db2.TRACE_CONNECTS (X’20’) v com.TRACE_DRDA_FLOWS (X’40’) 1-162 IBM Data Server Driver para JDBC y SQLJ para IDS .DB2BaseDataSource. El convenio de denominación para los archivos de dicho directorio depende de si se especifica un valor no nulo para baseTraceFileName: v Si se especifica un valor nulo para baseTraceFileName.ibm. n es la conexión de controlador de JDBC número n. Cada conexión de controlador de JDBC se rastrea en un archivo diferente en el directorio especificado.

ibm. para rastrear todo excepto los flujos de DRDA.jcc. especifique este valor para traceLevel: TRACE_DRDA_FLOWS|TRACE_CONNECTION_CALLS v Utilice un operador de complemento a nivel de bit ( tilde (~)) con un valor de rastreo para especificar todos los rastreos excepto uno determinado.TRACE_ALL (X’FFFFFFFF’) Para especificar más de un valor de rastreo. true significa que no se sobregrabará el archivo existente.sql. para rastrear flujos de DRDA y llamadas de conexión.ibm.TRACE_PARAMETER_META_DATA (X’100’) v com.DB2BaseDataSource.db2.TRACE_RESULT_SET_META_DATA (X’80’) v com.jcc.jcc.ibm. Por ejemplo.DB2BaseDataSource.ibm.DB2BaseDataSource.db2.db2.SQLException Reanuda todos los rastreos globales a nivel de Connection o a nivel de DataSource para las conexiones actuales y futuras.db2. Si se IBM Data Server Driver para JDBC y SQLJ para IDS 1-163 .jcc.TRACE_SQLJ (X’400’) v com. utilice una de estas técnicas: v Utilice operadores OR (|) de bits con dos o más valores de rastreo.db2.TRACE_META_CALLS (X’2000’) v com.db2. resumeTrace Formato: public void resumeTrace() throws java.ibm.DB2BaseDataSource.db2.jcc.jcc.DB2BaseDataSource.TRACE_TRACEPOINTS (X’40000’) v com. resumeTrace puede llamarse cuando se habilita o inhabilita el grabador de anotaciones globales.ibm.db2.DB2BaseDataSource.DB2BaseDataSource. suspendTrace puede llamarse cuando se habilita o inhabilita el grabador de anotaciones globales.DB2BaseDataSource.jcc.DB2BaseDataSource. suspendTrace Formato: public void suspendTrace() throws java.TRACE_LARGE_OBJECT_CALLS (X’8000’) v com.jcc. Por ejemplo.TRACE_XA_CALLS (sólo IBM Data Server Driver para conectividad JDBC y SQLJ de tipo 2 para DB2 Database para Linux.v com.sql.SQLException Suspende todos los rastreos globales a nivel de Connection o a nivel de DataSource para las conexiones actuales y futuras.DB2BaseDataSource.db2.DB2BaseDataSource.TRACE_SYSTEM_MONITOR (X’20000’) v com.ibm.jcc. unsetLogWriter Formato: public abstract void unsetLogWriter() throws java.ibm.SQLException Inhabilita la alteración temporal del programa de registro global para conexiones futuras.ibm.TRACE_DATASOURCE_CALLS (X’4000’) v com.jcc.db2.TRACE_DIAGNOSTICS (X’200’) v com.sql. especifique este valor para traceLevel: ~TRACE_DRDA_FLOWS fileAppend Especifica si deben añadir o sobrescribir datos en el archivo especificado por medio del parámetro traceFile.jcc.ibm. UNIX y Windows) (X’800’) v com.ibm.db2.

getTraceFileAppend Formato: public abstract boolean getTraceFileAppend() throws java.sql. si se establece éste. Un objeto que implementa esta interfaz se registra con un servicio de asignación de nombres que se basa en Java Naming and Directory Interface (JNDI). resumeTrace reanuda los rastreos a nivel de Connection o a nivel de DataSource.db2.PrintWriter getLogWriter() throws java.Referenceable. La clase com.SQLException Devuelve el nombre del directorio de destino para los archivos del grabador de anotaciones globales.sql. Clase DB2XADataSource DB2XADataSource es una fábrica para los objetos XADataSource. si se establece éste.SQLException Devuelve el nivel de rastreo para el rastreo global. getTraceDirectory Formato: public abstract String getTraceDirectory() throws java. getTraceLevel Formato: public abstract int getTraceLevel() throws java.jcc.io. En caso contrario.sql.inhabilita el grabador de anotaciones globales.sql.XADataSource. De lo contrario. getLogWriter Formato: public abstract java.ibm. si se establece éste.SQLException Devuelve true si los registros de rastreo globales se agregan al archivo de rastreo.ibm. De lo contrario. getLogWriter devuelve un nulo.DB2BaseDataSource e implementa las interfaces javax. De lo contrario.db2. getTraceFile Formato: public abstract String getTraceFile() throws java. java. getTraceLevel devuelve -1 (TRACE_ALL).SQLException Devuelve el nombre del archivo de destino para el grabador de anotaciones globales. Si se habilita el grabador de anotaciones globales. Métodos DB2XADataSource getDB2TrustedXAConnection Formatos: 1-164 IBM Data Server Driver para JDBC y SQLJ para IDS . En caso contrario. si se establece éste.jcc. getTraceDirectory devuelve un nulo.naming.sql.io.sql.SQLException Devuelve el PrintWriter para el grabador de anotaciones globales. getTraceFile devuelve un nulo. resumeTrace reanuda el rastreo global.Serializable y javax.DB2XADataSource amplía la clase com. getTraceFileAppend devuelve false.

v El segundo elemento es una cookie exclusiva para la instancia de conexión generada de XA.sql.ietf. String password. Descripciones de parámetros: user El ID de autorización que se utiliza para establecer la conexión fiable. Los elementos siguientes se devuelven en Object[]: v El primer elemento es una instancia de DB2TrustedXAConnection.Properties properties) throws java. java.SQLException public Object[] getDB2TrustedXAConnection( org.GSSCredential gssCredential.sql. especifica una credencial delegada que se pasa desde otro principal. gssCredential Si la fuente de datos utiliza la seguridad Kerberos. java.jgss. El primer formato getDB2TrustedXAConnection ofrece un ID de usuario y una contraseña. Los elementos siguientes se devuelven en Object[]: v El primer elemento es una instancia fiable de DB2TrustedPooledConnection. v El segundo elemento es una cookie exclusiva para la instancia de conexión agrupada que se ha generado.Properties properties) throws java. getDB2TrustedPooledConnection Formato: public Object[] getDB2TrustedPooledConnection(java. utilizando el ID de usuario y la contraseña para el objeto DB2XADataSource.public Object[] getDB2TrustedXAConnection(String user.SQLException Un servidor de aplicaciones que utiliza un ID de autorización del sistema utiliza este método para establecer una conexión fiable. El segundo formato de getDB2TrustedXAConnection utiliza el ID de usuario y la contraseña del objeto DB2XADataSource.sql.sql.SQLException Un servidor de aplicaciones que utiliza un ID de autorización del sistema utiliza este método para establecer una conexión fiable.SQLException public Object[] getDB2TrustedXAConnection( java. El tercer formato de getDB2TrustedXAConnection es para conexiones que utilizan la seguridad Kerberos. getDB2XAConnection Formatos: IBM Data Server Driver para JDBC y SQLJ para IDS 1-165 . password Contraseña del ID de autorización que se utiliza para establecer la conexión fiable.Properties properties) throws java. Descripciones de parámetros: properties Propiedades de la conexión.util. properties Propiedades de la conexión.util.util.Properties properties) throws java.util.

especifica una credencial delegada que se pasa desde otro principal.public DB2XAConnection getDB2XAConnection(String user. es necesario que comprenda las diferencias entre esos controladores. Las diferencias en el soporte para los métodos de JDBC se describen en el tema “Soporte de controladores para las API de JDBC” en la página 1-109.GSSCredential gssCredential.ietf. Diferencias entre IBM Data Server Driver para JDBC y SQLJ y el IBM Informix JDBC Driver Antes de migrar sus aplicaciones JDBC desde controladores más antiguos al IBM Data Server Driver para JDBC y SQLJ. String password. properties Propiedades de la conexión.SQLException public DB2XAConnection getDB2XAConnection( org.SQLException Establece la conexión no fiable inicial en un entorno de agrupación heterogéneo.Properties properties) throws java. java. El segundo formato de getDB2XAConnection es para conexiones que utilizan la seguridad Kerberos.sql. El primer formato de getDB2PooledConnection ofrece un ID de usuario y una contraseña.jgss. Descripciones de parámetros: user ID de autorización que se utiliza para establecer la conexión.Properties properties) throws java.sql. password Contraseña del ID de autorización que se utiliza para establecer la conexión. gssCredential Si la fuente de datos utiliza la seguridad Kerberos. java. Las siguientes secciones describen las diferencias entre IBM Data Server Driver para JDBC y SQLJ y Informix JDBC Driver: v “Variables de entorno IDS no soportadas” en la página 1-167 v “Mandatos SQL” en la página 1-167 v “Cierre de conexiones con transacciones activas” en la página 1-167 v “Correlación de variables de entorno entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ” en la página 1-168 v “Mecanismos de seguridad” en la página 1-168 v “Espacios de nombres” en la página 1-168 v “Cursores” en la página 1-169 v “Tipos de datos” en la página 1-170 v “Comportamiento de objeto grande” en la página 1-171 v “Conversiones de datos” en la página 1-171 v “Sentencias preparadas” en la página 1-172 v “Comportamiento de getIDSSerial() y getIDSSerial8()” en la página 1-172 1-166 IBM Data Server Driver para JDBC y SQLJ para IDS .util.util.

Connection. v ALLOWREGISTEROUTFORINPARAM v BIG_FET_BUF_SIZE v CSM v ENABLE_HDRSWITCH v IFX_BATCHUPDATE_PER_SPEC v IFX_CODESETLOB v IFX_SET_FLOAT_AS_SMFLOAT v IFX_TRIMTRAILINGSPACES v IFXHOST_SECONDARY v IFXHOST INFORMIXCONRETRY v IFXPORTNO_SECONDARY v INFORMIXCONTIME v INFORMIXOPCACHE v INFORMIXSERVER_SECONDARY v INFORMIXSTACKSIZE v JDBCTEMP v LDAP_IFXBASE v LDAP_PASSWD v LDAP_URL v LDAP_USER v LOBCACHE v NEWCODESET v NEWLOCALE v NEWNLSMAP v PROXY v SECURITY v SQLH_FILE v SQLH_LOC v SQLH_TYPE v SQLIDEBUG Mandatos SQL Los siguientes mandatos SQL no se soportan al cambiar los atributos de conexión utilizados con mayor frecuencia: v CREATE DATABASE v DROP DATABASE v DATABASE v SET ISOLATION LEVEL v SET TRANSACTION LEVEL Cierre de conexiones con transacciones activas Al cerrar una conexión durante una transacción activa. IBM Data Server Driver para JDBC y SQLJ para IDS 1-167 . ERRORCODE=-4471. La transacción permanece activa y la conexión no se puede cerrar.close() mientras se procesaba una transacción en la conexión.sql. SQLSTATE=estadosql” Mientras que Informix JDBC Driver cierra la conexión y retrotrae automáticamente la transacción activa.v “Comportamiento de afterLast() seguido de getRow()” en la página 1-172 v “Orden de los parámetros” en la página 1-172 v “Códigos de error” en la página 1-173 Variables de entorno IDS no soportadas Las siguientes variables de entorno IDS soportadas para Informix JDBC Driver no están soportadas para IBM Data Server Driver para JDBC y SQLJ. IBM Data Server Driver para JDBC y SQLJ impide que se cierre la conexión y emite la siguiente excepción: Se ha solicitado [ibm][db2][jcc][t4][10251] [10308][versión de controlador] “java.

Correlación de variables de entorno entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ Esta sección describe las variables para IBM Data Server Driver para JDBC y SQLJ que sustituyen las de Informix JDBC Driver que no están soportadas.DB2Driver″) Cambian el nombre de clase inicial.USER_ONLY_SECURITY v DB2BaseDataSource.DB2Driver”) Cargador de clase (″com. No se da soporte al cifrado de idusuario. Tabla 1-49.Crypto.ibm.forName(“com.informix.jdbc.jcc.ibm. Cifrado de datos Utiliza el módulo de soporte de comunicaciones (CSM). IBM Data Server Driver para JDBC y SQLJ Se da soporte a varios tipos de implantaciones de cifrado: v DB2BaseDataSource. Tabla 1-50.informix. Espacios de nombres Esta sección describe las diferencias en las funciones de espacio de nombres entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ.informix. las aplicaciones utilizan com.jdbc. Tabla 1-48. Autenticación No soportado. PROTOCOLTRACEFILE TRACE. Diferencias de espacio de nombres Funcionalidad Informix JDBC Driver IBM Data Server Driver para JDBC y SQLJ (″com.IfxDriver″) inicial 1-168 IBM Data Server Driver para JDBC y SQLJ para IDS .IfmxPAM como respuesta ante el desafío. Diferencias en los mecanismos de seguridad Funcionalidad Informix JDBC Driver Cifrado de idusuario y contraseña Se da soporte al cifrado de contraseñas. Por ejemplo: Class.db2. config=test. PROTOCOLTRACE FET_BUF_SIZE IFX_AUTOFREE INFORMIXCONTIME IFX_LOCK_MODE_WAIT Variables de entorno equivalentes para IBM Data Server Driver para JDBC y SQLJ traceFile traceLevel queryBlockSize queryCloseImplicit loginTimeout. variable de entorno: csm=(classname=com. Sustitución de las variables de entorno de IBM Data Server Driver para JDBC y SQLJ Variables de entorno utilizadas por Informix JDBC Driver TRACEFILE.db2.jdbc.ENCRYPTED_USER _AND_PASSWORD_SECURITY No soportado. utilizando la variable de entorno SECURITY=PASSWORD. blockingReadConnectionTimeout currentLockTimeout Mecanismos de seguridad Esta sección describe las diferencias en los mecanismos de seguridad entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ.jcc.cfg) Módulos de autenticación conectables.

am.db2.wasNull(): ResultSet no tiene v wasNull() devuelve FALSE si la datos consulta no devuelve datos (ResultSet no está vacío pero no contiene datos).close(). Devuelve FALSE.″ Emite un error SQLException con la siguiente SELECT anómala: com. Emite SQLException [ibm][db2][jcc][10177][11611] Conversión de datos no válida: La conversión solicitada daría como resultado una pérdida de precisión de nnnnnn.db2.getDatabaseProduct Version()=″11.getDatabaseProductName()= ″IDS/UNIX32″ Emite el error SQLException -4476 ″El cursor no está en una fila válida.db2. Por ejemplo: setIfxINFORMIXSTACKSIZE Por ejemplo: setINFORMIXSTACKSIZE Cursores Esta sección describe las diferencias en las funciones de cursor entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ.xxx com. Diferencias de cursor Funcionalidad ResultSet de sólo reenvío Informix JDBC Driver El ResultSet de sólo reenvío permanece abierto después de que se haya accedido a la última fila. ResultSet. IBM Data Server Driver para JDBC y SQLJ para IDS 1-169 . Diferencias de espacio de nombres (continuación) Funcionalidad Espacio de nombres de paquete Espacio de nombres de DataSource Nombres de método de DataSource Informix JDBC Driver com.jdbcx. com. dmd.db2. v wasNull() devuelve FALSE si se mueve resultset más allá de ResetSet.informix. Emite un error si una aplicación intenta recuperar ResultSetMetaData después de leer todas las filas. Tabla 1-51.relative(): Para operaciones ilegales ResultSet.ibm.jcc.UC1″ dmd. * Emite una SQLException (en el lado del cliente) con números de error específico de cliente.IfxXA DataSource Las variables de entorno se anteponen con “getIfx” o “″setIfx”.informix.next(): IFX no tiene ningún dato Emite el error SQLException -79739 ″No hay fila actual″.ibm.getDatabaseProductVersion()= ″IFX11100″ dmd.next(): si getByte() y getShort() están en la columna DECIMAL el resultado es un desbordamiento Devuelve -1 para ambos métodos para indicar un error. permanece abierto hasta que se produzca una llamada explícita a ResultSet.IfxDataSource com.DB2SimpleDataSource com. IBM Data Server Driver para JDBC y SQLJ El ResultSet de sólo reenvío se cierra automáticamente después de que se acceda a la última fila.ibm.last(). Las series de versión y nombre de producto tienen cambios semánticos dmd.jcc.getDatabaseProductName() =″Informix Dynamic Server″ ResultSet.jcc.xxx IBM Data Server Driver para JDBC y SQLJ com.DB2XADataSource Las variables de entorno se anteponen con “get” o “set”.jcc.10.Tabla 1-50.SqlException: [ibm][db2][jcc][10120][10898] Operación no válida: el conjunto de resultados está cerrado.informix.ibm.jdbcx. ResultSet.

IBM Data Server Driver para JDBC y SQLJ No soportado.updateTime() Informix JDBC Driver ResultSet. SQLException. Tabla 1-52. No soportado. 1-170 IBM Data Server Driver para JDBC y SQLJ para IDS . Diferencias de cursor (continuación) Funcionalidad ResultSet.Tabla 1-51. No soportado. JDBC convierte BYTE en STRING No soportado. No soportado. v Se ha ejecutado otro objeto de sentencia en la misma conexión. Tipos de datos Esta sección describe las diferencias en las funciones de tipo de datos entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ. SET. Los cambios en los datos BLOB en el BLOB no se actualiza lado del cliente pueden reflejarse en el automáticamente a menos que el servidor. IBM Data Server Driver para JDBC y SQLJ No está soportado. Soportado. usuario emita una actualización. v Se ha vuelto a ejecutar el objeto de sentencia asociado. Soportado para los archivos en el servidor Utilizan el cursor actualizable. utilice updateTimestamp(). Soportado. lotofile y soporte de locopy getString() en la semántica de la columna BYTE La semántica de actualizaciones de BLOB en el lado del cliente se está reflejando automáticamente en el servidor JDBC devuelve un valor incorrecto. Diferencia en los tipos de datos Tipo de datos Clases de extensiones Informix JDBC para objetos grandes inteligentes (BLOB y CLOB) y objetos grandes sencillos (BYTE y TEXT) y tipo de Sentencia Informix JDBC Driver Clases de extensiones soportadas por Informix JDBC Driver: v IfxBblob v IfxCblob v IfxSmartBlob v IfxStatementTypes v IfxTypes v IfxLoStat IfxLobDescriptor Conversión de coma flotante a entero/byte Tipo de datos de INTERVAL Colección de IDS: LIST. El conjunto de resultados se cierra tan pronto como se produzca una de las condiciones siguientes: v Se han recuperado todas las filas. de sólo reenvío * Para las sentencias SELECT.setCursorName(″″): Establecer nombre de cursor en una serie vacía Cursores de desplazamiento actualizables Comprueba esta condición y emite un Pasa la serie vacía al servidor sin nombre de cursor ilegal devolver un error.updateTime() puede llamarse en la columna DATETIME YEAR TO FRACTION. MULTISET y ROW Funciones de objeto grande inteligente como filetoblob. Soportado. Emite una SQLException si la conversión no es posible. la sentencia estará completa cuando se cierre el conjunto de resultados asociados. filetoclob. Statement.

Por ejemplo: 12345. No soportado. Diferencia en los tipos de datos (continuación) Tipo de datos Es necesario convertir BYTE. Soportado. IBM Data Server Driver para JDBC y SQLJ No soportado.67871 resultados coherentes para se devuelve como 12345. IDS BOOLEAN se identifica como SMALLINT Informix JDBC Driver JDBC identifica BYTE como BINARY y los objetos grandes inteligentes como BLOB. Soportado. Comportamiento de objeto grande Esta sección describe las diferencias en el comportamiento de los objetos grandes entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ.67871 se devuelve como 12345. Objetos actualizados automáticamente.67871. Tabla 1-53. Después de llamar a setXXXStream(). No soportado. Conversiones de datos Esta sección describe las diferencias en las conversiones de datos entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ. DECIMAL sin tener en cuenta la precisión y la escala. Conversión de DECIMAL a BYTE/SHORT IBM Data Server Driver para JDBC y SQLJ para IDS 1-171 .67800.setDouble() Conversión de REAL a DECIMAL Informix JDBC Driver v Conversión de getByte: (-1) v Conversión de getShort: (-1) Un decimal empaquetado puede tener un máximo de 32. IBM Data Server Driver para JDBC y SQLJ Devuelve una representación HEX de los datos insertados. No diferencia BOOLEAN de SMALLINT. Diferencia en la conversión de datos Funcionalidad DataConversion de DECIMAL a SHORT/BYTE con resultados fuera de rango DECIMAL PRECISION con PreparedStatement. BLOB.Tabla 1-52. Tabla 1-54. IBM Data Server Driver para JDBC y SQLJ v Conversión de getByte: (0) v Conversión de getShort: (23552) Un decimal empaquetado puede tener un máximo de 31. Emite una SQLException. Por ejemplo: 12345. TEXT y CLOB para resolver la ambigüedad cuando se pasan como parámetros a funciones o procedimientos. Diferencias en el comportamiento del objeto grande Funcionalidad getString en una columna BYTE getBlob en una columna CLOB Inserción de datos LOB utilizando filetoblob o filetoclob Actualizaciones de objetos BLOB y CLOB con setBinaryStream() o setCharacterStream() Informix JDBC Driver Soportado. v Conversión de getInt: (-323855360) v Conversión de getInt: (-323855360) Devuelve una conversión de REAL a Limita la escala para proporcionar DECIMAL. deberá emitir una SQL UPDATE. El controlador de JDBC identifica BOOLEAN como BOOLEAN. Objetos no actualizados automáticamente. No soportado.

restaurando el cursor al principio.Sentencias preparadas Esta sección describe las diferencias en las funciones de sentencia preparadas entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ. Emite una SQLException. una forma del parámetro OUT. Soportado.jcc. Tabla 1-56. devuelve 0. Con arreglo a las especificaciones de JDBC. sólo hay un error en la ejecución del proceso por lotes.BatchUpdateException’. no hay filas válidas. devuelve un conjunto de resultados y su valor se recupera con el método getXXX del conjunto de resultados apropiado. IBM Data Server Driver para JDBC y SQLJ No soportado. Diferencias en las sentencias preparadas Funcionalidad Manejo de errores de PreparedStatement.ibm. 1-172 IBM Data Server Driver para JDBC y SQLJ para IDS . IBM Data Server Driver para JDBC y SQLJ Emite la SQLException:com. db2.executeBatch() Informix JDBC Driver Emite una SQLException. Puesto que un parámetro de resultados viene en primer lugar en una llamada a un procedimiento almacenado. Después de afterLast(). Lee n caracteres con la longitud proporcionada desde el principio. PreparedStatement. Cuando el procedimiento almacenado devuelve el parámetro de resultados. Tabla 1-55. Orden de los parámetros Hay algunas diferencias en el orden de los parámetros entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ. su posición ordinal es siempre 1.am. Informix JDBC Driver devuelve el número de fila última+1 si llama a getRow() inmediatamente después de la llamada a afterLast(). se ignoran los caracteres que superan la longitud. No soportado. IBM Data Server Driver para JDBC y SQLJ devuelve “0”. las aplicaciones que no manejan la excepción fallarán en tiempo de ejecución. éste se trata como cualquier otro parámetro OUT. Comportamiento de afterLast() seguido de getRow() Cuando afterLast() va seguido de getRow(). cuando el procedimiento almacenado devuelve un parámetro de resultados. devuelve 0. Su tipo de datos debe registrarse con el método registerOutParameter y su valor se recupera con el método getXXX apropiado.setCharacter Stream(): los caracteres del lector dado no coinciden con la longitud Comportamiento de getIDSSerial() y getIDSSerial8() Esta sección describe las diferencias para getIDSSerial() y getIDSSerial8() entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ. Diferencias para getIDSSerial() y getIDSSerial8() Funcionalidad Cuando se llama después de una retrotracción Se utilizan con el método JDBC API getGeneratedKeys() Informix JDBC Driver Soportado.

IBM Data Server Driver para JDBC y SQLJ Un error de ISAM no se puede devolver mediante SQLException o getNextException(). Códigos de error Esta sección describe las diferencias en los códigos de error entre Informix JDBC Driver y IBM Data Server Driver para JDBC y SQLJ.Para IBM Data Server Driver para JDBC y SQLJ. Su tipo de datos debe registrarse (como otros parámetros OUT) con el método registeroutparameter y su valor se recupera con el método getXXX de sentencia invocable apropiada. elimine el signo de interrogación (?) = de la sentencia {? = call (.}.. Acceso a los códigos de error de ISAM Proporciona códigos de error ISAM a las aplicaciones.. Las aplicaciones pueden obtener un mensaje de error detallado para los códigos de error de ISAM. Para migrar las aplicaciones. Códigos de error emitidos por IBM Data Server Driver para JDBC y SQLJ Los códigos de error comprendidos dentro de los rangos +4200 a +4299. el resultado de un procedimiento almacenado se trata como un parámetro OUT... +4450 a +4499.getCause(). Los mensajes de error de cliente tienen el formato: -4nnn.getNextException y getErrorCode. Diferencias en los códigos de error Funcionalidad SQLException.getNextException y getErrorCode Informix JDBC Driver Devuelven un un código ISAM y un mensaje detallado en SQLException. -4200 a -4299.. Cuando invoca el método SQLException. Algunos mensajes proceden del servidor y tienen un formato y una descripción diferentes. y -4450 a -4499 están reservados para el IBM Data Server Driver para JDBC y SQLJ. Las aplicaciones han de utilizar extensiones de diagnósticos para obtener el código de error ISAM.getMessage después de producirse un error de IBM Data Server Driver para JDBC y SQLJ. Mensajes de error de cliente Utiliza -79xxx. Algunos errores de IDS tienen un código de error de SQL y un código de error de RSAM. El controlador no da soporte a los códigos de error de RSAM devueltos como nextException o como SQLException.. Tabla 1-57. el método devuelve una serie de caracteres que incluye lo siguiente: v Indicación si la conexión es de tipo 2 o tipo 4 v Información de diagnóstico para el centro de soporte de software de IBM v Nivel del controlador v Un mensaje explicatorio v El código de error v El estado de SQL (SQLSTATE) Por ejemplo: IBM Data Server Driver para JDBC y SQLJ para IDS 1-173 .

Respuesta de usuario: llamar a SQLException.54] Invalid queryBlockSize specified: 1. UNIX y Windows.getMessage para recuperar información específica sobre el problema. autentificación y conexión federada.getMessage para recuperar información específica sobre el problema.getMessage para recuperar información específica sobre el problema. devuelve false.[jcc][t4][20128][12071][3.012. +4450 No se soporta la característica: nombre-característica.048.next o ResultSet. ERRORCODE=0.getMessage para recuperar información específica sobre el problema.50. Respuesta de usuario: llamar a SQLException. +4226 texto-de-getMessage Explicación: se produjo una condición de aviso en la vinculación o la personalización de una aplicación SQLJ. SQLSTATE= Actualmente. Códigos de error emitidos por el IBM Data Server Driver para JDBC y SQLJ Código de error Texto del mensaje y explicación +4204 Se han encontrado errores y se han tolerado según lo especificado en la cláusula RETURN DATA UNTIL.767. +4223 texto-de-getMessage Explicación: se produjo una condición de aviso durante la inicialización.576. Este aviso se aplica solamente a las conexiones con los servidores DB2 Database para Linux. SQLSTATE 02506 1-174 IBM Data Server Driver para JDBC y SQLJ para IDS . +4222 texto-de-getMessage Explicación: se produjo una condición de aviso al conectarse con la fuente de datos. Respuesta de usuario: llamar a SQLException.previous. +4225 texto-de-getMessage Explicación: se produjo una condición de aviso al enviar datos a un servidor o al recibirlos de un servidor. Respuesta de usuario: llamar a SQLException. Using default query block size of 32. Se emite solamente cuando una operación del cursor.getMessage para recuperar información específica sobre el problema. Respuesta de usuario: llamar a SQLException. Explicación: Los errores tolerados incluyen errores de autorización. como una llamada ResultSet. +4228 texto-de-getMessage Explicación: se produjo una condición de aviso que no se adecua en otra categoría. el IBM Data Server Driver para JDBC y SQLJ emite los códigos de error siguientes: Tabla 1-58.

Respuesta de usuario: llamar a SQLException. Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema. +4474 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que el recurso de destino no se puede cambiar.getMessage para recuperar información específica sobre el problema. Respuesta de usuario: llamar a SQLException. +4471 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que se está utilizando el recurso de destino. Respuesta de usuario: llamar a SQLException. +4470 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que el recurso de destino está cerrado.getMessage para recuperar información específica sobre el problema. Códigos de error emitidos por el IBM Data Server Driver para JDBC y SQLJ (continuación) Código de error Texto del mensaje y explicación +4460 texto-de-getMessage Explicación: el valor especificado no es una opción válida. +4461 texto-de-getMessage Explicación: el valor especificado no es válido o se encuentra fuera del intervalo esperado.getMessage para recuperar información específica sobre el problema. Respuesta de usuario: llamar a SQLException. Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema.Tabla 1-58. +4472 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que el recurso de destino no está disponible. SQLSTATE IBM Data Server Driver para JDBC y SQLJ para IDS 1-175 . Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema. +4462 texto-de-getMessage Explicación: falta un valor necesario.getMessage para recuperar información específica sobre el problema.

Explicación: Una aplicación perteneciente a una transacción global en un entorno XA ha ejecutado la sentencia setAutoCommit(true). Respuesta de usuario: llamar a SQLException. Si se produce un error en un flujo XA retardado. Respuesta de usuario: llamar a SQLException. Una operación de confirmación o retrotracción en una transacción global no es válida. La emisión de setAutoCommit(true) en una transacción global no es válida. se informa de ese error como parte de una excepción SQLException que emite la sentencia de SQL actual. Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema. Explicación: Se ha producido un error en una conexión XA durante la ejecución de una sentencia de SQL. -4221 texto-de-getMessage Explicación: se produjo un error al cifrar o descifrar. Explicación: Una aplicación perteneciente a una transacción global en un entorno XA ha emitido una operación de confirmación o retrotracción. 28000 2D521 SQLSTATE 2D521 1-176 IBM Data Server Driver para JDBC y SQLJ para IDS . Códigos de error emitidos por el IBM Data Server Driver para JDBC y SQLJ (continuación) Código de error Texto del mensaje y explicación -4200 Operación no válida: Se ha llamado una operación COMMIT o ROLLBACK no válida en un entorno XA durante una transacción global. -4201 Operación no válida: no se permite setAutoCommit(true) durante la transacción global. Miembro de Sysplex no disponible. -4203 Error al ejecutar la función. El servidor ha devuelto rc. Para la optimización de la red. el IBM Data Server Driver para JDBC y SQLJ retarda algunos flujos XA hasta que se ejecuta la siguiente sentencia de SQL.getMessage para recuperar información específica sobre el problema. -4220 texto-de-getMessage Explicación: se produjo un error al convertir caracteres. texto-de-getMessage Explicación: la autorización no era válida. -4210 -4211 -4212 -4214 Tiempo de espera excedido al obtener un objeto de transporte de la agrupación.getMessage para recuperar información específica sobre el problema. Tiempo de espera excedido al obtener un objeto de la agrupación.Tabla 1-58.

Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema. -4223 texto-de-getMessage Explicación: se produjo un error en la inicialización. -4228 texto-de-getMessage Explicación: se produjo un error que no se adecua en otra categoría. -4225 texto-de-getMessage Explicación: se produjo un error al enviar datos a un servidor o al recibirlos de un servidor. -4226 texto-de-getMessage Explicación: se produjo un error en la vinculación o la personalización de una aplicación SQLJ. Códigos de error emitidos por el IBM Data Server Driver para JDBC y SQLJ (continuación) Código de error Texto del mensaje y explicación -4222 texto-de-getMessage Explicación: se produjo un error al conectarse con la fuente de datos. -4224 texto-de-getMessage Explicación: se produjo un error al realizar la limpieza de recursos. Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema.getMessage para recuperar información específica sobre el problema.getMessage para recuperar información específica sobre el problema. Respuesta de usuario: llamar a SQLException. SQLSTATE IBM Data Server Driver para JDBC y SQLJ para IDS 1-177 .Tabla 1-58. Respuesta de usuario: llamar a SQLException. -4227 texto-de-getMessage Explicación: se produjo un error en el restablecimiento. Respuesta de usuario: llamar a SQLException. Respuesta de usuario: llamar a SQLException. Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema.getMessage para recuperar información específica sobre el problema.getMessage para recuperar información específica sobre el problema.

-4297 Se ha producido un error de comunicación durante operaciones en el socket asociado a la conexión. En el caso de una conexión con una fuente de datos de DB2 Database para Linux. No se soporta la característica: nombre-característica. -4462 texto-de-getMessage Explicación: falta un valor necesario. Respuesta de usuario: llamar a SQLException. Verifique también que éste esté iniciado. Explicación: el controlador no pudo establecer una conexión. Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema. verifique que el parámetro de configuración svcename está configurado de forma adecuada. texto-de-getMessage Explicación: el valor especificado no es una opción válida. ha concluido todas las peticiones en curso o ha terminado la petición actual debido a que se detectaron condiciones de error inesperadas en el sistema de destino. -4463 texto-de-getMessage Explicación: el valor especificado tiene un error de sintaxis. Respuesta de usuario: llamar a SQLException. -4461 texto-de-getMessage Explicación: el valor especificado no es válido o se encuentra fuera del intervalo esperado. 42601 42815 08001 SQLSTATE 08001 -4298 58009 -4450 -4460 1-178 IBM Data Server Driver para JDBC y SQLJ para IDS . Mensaje: mensaje.Tabla 1-58. Respuesta de usuario: llamar a SQLException. Respuesta de usuario: verifique que el nombre o la dirección del sistema principal y el número de puerto del servidor son correctos.getMessage para recuperar información específica sobre el problema. Ubicación del error: función.getMessage para recuperar información específica sobre el problema. -4470 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que el recurso de destino está cerrado.getMessage para recuperar información específica sobre el problema. Respuesta de usuario: llamar a SQLException. Códigos de error emitidos por el IBM Data Server Driver para JDBC y SQLJ (continuación) Código de error Texto del mensaje y explicación -4296 Excepción clase-excepción: se produjo un error al abrir el socket para el servidor servidor en el puerto puerto con el mensaje mensaje.getMessage para recuperar información específica sobre el problema. El gestor de bases de datos no puede aceptar nuevas peticiones. UNIX y Windows. la corriente de entrada del socket o la corriente de salida del socket.

-4475 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que el acceso al recurso de destino está restringido.getMessage para recuperar información específica sobre el problema.getMessage para recuperar información específica sobre el problema. Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema. Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema. -4472 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que el recurso de destino no está disponible. -4474 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que el recurso de destino no se puede cambiar. -4476 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que no se permite la operación en el recurso de destino. -4473 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que el recurso de destino ya no está disponible. SQLSTATE IBM Data Server Driver para JDBC y SQLJ para IDS 1-179 . Respuesta de usuario: llamar a SQLException. El controlador JDBC no permite abrir un cursor retenido en el servidor de bases de datos para una conexión XA. Códigos de error emitidos por el IBM Data Server Driver para JDBC y SQLJ (continuación) Código de error Texto del mensaje y explicación -4471 texto-de-getMessage Explicación: la operación solicitada no se puede realizar debido a que se está utilizando el recurso de destino.Tabla 1-58. Respuesta de usuario: llamar a SQLException.getMessage para recuperar información específica sobre el problema. -4496 Se ha emitido una sentencia OPEN de SQL para un cursor retenido en una conexión XA.getMessage para recuperar información específica sobre el problema. Respuesta de usuario: llamar a SQLException. Respuesta de usuario: llamar a SQLException.

no se han restablecido los valores especiales de registro que se establecieron después del último punto de confirmación. Para asegurar la integridad de la aplicación. El IBM Data Server Driver para JDBC y SQLJ ha emitido un error que no tiene asignado todavía un código de error. -30108 -99999 Excepción de redireccionamiento del cliente para Sysplex. pero es posible que otros gestores de recursos implicados en la unidad de trabajo no hayan retrotraído sus cambios. indicador de modificación de registro especial: rc. 08506 Estados de SQL emitidos por IBM Data Server Driver para JDBC y SQLJ Los estados de SQL (SQLSTATE) comprendidos dentro del rango 46600 a 466ZZ están reservados para el IBM Data Server Driver para JDBC y SQLJ. Explicación: Una causa posible es que un error de red haya provocado la desconexión de un socket. -4499 Se ha producido un error grave que ha dado como resultado una desconexión. Dirección IP o nombre de sistema principal: nombre-sistema-principal. SQLSTATE -4498 Para el redireccionamiento de cliente en relación a servidores DB2 para z/OS. Las sentencias SQL que establecen valores de registro especial podrían no haberse ejecutado de nuevo. todas las peticiones de SQL se rechazan hasta que la aplicación emite una retrotracción. número de puerto o nombre de servicio: puerto. Códigos de error emitidos por el IBM Data Server Driver para JDBC y SQLJ (continuación) Código de error Texto del mensaje y explicación -4497 La aplicación debe emitir una retrotracción. 1-180 IBM Data Server Driver para JDBC y SQLJ para IDS . Ya se ha retrotraído la unidad de trabajo en el servidor DB2.Tabla 1-58. Ha fallado una conexión pero se ha restablecido. La conexión existente ha pasado a estar inutilizable. rc indica si las sentencias SQL que establecen valores de registro especial se ejecutaron de nuevo: 1 2 Las sentencias SQL que establecen valores de registro especial se ejecutaron de nuevo. La tabla siguiente lista los estados de SQL producidos o utilizados por IBM Data Server Driver para JDBC y SQLJ. Explicación: nombre-sistema-principal y puerto indican la fuente de datos en la que se restablece la conexión. La aplicación se retrotrae a su punto de confirmación anterior.

Retrotracción de transacción Error de sintaxis o violación de regla de acceso 42601 42734 Un carácter. Punto de salvaguarda no válido No está permitido utilizar una sentencia SAVEPOINT. Estados de SQL devueltos por IBM Data Server Driver para JDBC y SQLJ Clase de estado de SQL SQLSTATE 01xxx 02xxx 02501 02506 08xxx 08003 08004 08506 0Axxx 0A502 22xxx 22007 22021 23xxx 23502 Descripción Aviso Ningún dato La posición del cursor no es válida para una operación FETCH sobre la fila actual. UPDATE o DELETE no está permitida en este objeto 24xxx 40xxx 42xxx 42807 IBM Data Server Driver para JDBC y SQLJ para IDS 1-181 . Estado de cursor no válido 24501 28xxx 28000 2Dxxx 2D521 34xxx 34000 3Bxxx 3B503 El cursor identificado no está abierto Excepción de autorización Nombre de autorización no válido. nombre de cursor.Tabla 1-59. distintivo o cláusula no es válido o se ha omitido Se ha detectado un duplicado para nombre de parámetro. Nombre de cursor no válido El nombre del cursor no es válido. Error tolerable Excepción de conexión No existe una conexión El servidor de aplicaciones ha rechazado el establecimiento de la conexión Excepción de redireccionamiento del cliente Función no admitida La acción u operación no está permitida para esta instancia de base de datos Excepción de datos La representación de caracteres de un valor de fecha y hora no es válida Un carácter no pertenece al juego de caracteres codificados Violación de restricción Un valor que se ha insertado en una columna o actualiza una columna es nulo. nombre de variable de SQL. pero la columna no puede contener valores nulos. nombre de condición o etiqueta. Terminación de transacción no válida Las operaciones COMMIT o ROLLBACK de SQL no son válidas en el entorno operativo actual. La operación INSERT. RELEASE SAVEPOINT o ROLLBACK TO SAVEPOINT en un activador o transacción global.

-help Especifica que el programa de utilidad DB2Jcc describe todas las opciones a las que da soporte. no se tiene en cuenta. longitud. el cual no afectará a la ejecución satisfactoria de los mandatos de DDM o sentencias de SQL subsiguientes La ejecución ha fallado debido a un error de protocolo de distribución que hizo que se desasignara la conversación El proceso de vinculación con el nombre de paquete y distintivo de coherencia especificados no está activo El mandato de DDM no está permitido El objeto de DDM no está permitido El parámetro de DDM no está permitido El valor del parámetro de DDM no está permitido 58009 58012 58014 58015 58016 58017 Búsqueda de información de versión y de entorno sobre IBM Data Server Driver para JDBC y SQLJ Para determinar la versión de IBM Data Server Driver para JDBC y SQLJ. ejecute el programa de utilidad DB2Jcc en la línea de mandatos de . información sobre la vía de acceso. así como información sobre el entorno. Si se especifica cualquier otra opción con -help. así como para obtener información sobre el entorno en el que se está ejecutando el controlador. como la información sobre restricciones de licencia.jcc.Tabla 1-59. valor o CCSID no es válido Una constante numérica es demasiado larga o tiene un valor que no está dentro del rango de su tipo de datos La conexión ha fallado debido a que no existe ninguna licencia de software actual. escala. 1-182 IBM Data Server Driver para JDBC y SQLJ para IDS . -configuration Especifica que el IBM Data Server Driver para JDBC y SQLJ muestra su nombre y versión. Error del sistema La ejecución ha fallado debido a un error de protocolo de distribución. Estados de SQL devueltos por IBM Data Server Driver para JDBC y SQLJ (continuación) Clase de estado de SQL SQLSTATE 42808 42815 42820 42968 58xxx 58008 Descripción Una columna identificada en la operación de inserción o actualización no es actualizable El tipo de datos.ibm.DB2Jcc -version -configuration -help Descripciones de las opciones de DB2Jcc -version Especifica que el IBM Data Server Driver para JDBC y SQLJ muestra su nombre y versión. el sistema operativo y el entorno de ejecución de Java. Sintaxis de DB2Jcc java com.db2.

db2.z ip:/home2/myusrid/sqllib/java/sqlj.assistive=ON. IBM Data Server Driver para JDBC y SQLJ para IDS 1-183 .ibm. java.4.4.Datos de salida de ejemplo de DB2Jcc Los datos de salida siguientes son el resultado de invocar DB2Jcc con el parámetro -configuration.com/.:/home2/myusrid/sqllib/java/db2java.drivers = null [jcc] Java Runtime Environment version 1.2_sr1/sh/.2_sr1/jre/bin/classic:/wsdb/v91/bldsupp/A IX5L64/jdk1.ibm. iSe ries: enabled.3 [jcc] File separator ("/" on UNIX) = / [jcc] Path separator (":" on UNIX) = : [jcc] User’s account name = myusrid [jcc] User’s home directory = /home2/myusrid [jcc] User’s current working directory = /home2/myusrid [jcc] Dumping all system properties: { java. Datos de salida de ejemplo de DB2Jcc (myid@mymachine) /home/myusrid $ java com.name=Java (TM) 2 Runtime Environment.library.path=/wsdb/v91/bl dsupp/AIX5L64/jdk1. java.2 [jcc] Java Runtime Environment vendor = IBM Corporation [jcc] Java vendor URL = http://www.com/9..vm.4 [jcc] Java Runtime Environment specification vendor = Sun Microsystems Inc.svl.url=http://www.2_sr1/sh/. path. 1.version=1.102 [jcc] Access to package sun.10.jcc.vendor..2_sr1/jre/bin:/home2/myusrid/sqllib/lib:/local/cobol:/home2/myusri d/sqllib/samples/c:/usr/lib [jcc] Path of extension directory or directories = /wsdb/v91/bldsupp/AIX5L64/jdk 1.4.4.com/ [jcc] Java installation directory = /wsdb/v91/bldsupp/AIX5L64/jdk1. Cloudscape: enabled./test:/home2/myusrid/sqllib/java/db2jcc.2_sr1/sh/.30.4. SQLDS: enabled.vendor= IBM Corporation..ibm.vm.zip:/lib/classes.4. java.separator=:..db2.DB2Jcc -version [jcc] Driver: IBM DB2 JDBC Universal Driver Architecture 3. java.4.runtime.137 [jcc] Compatible JRE versions: { 1. Standard Edition.4. [jcc] Detected local client host: lead.2. [jcc] Java Runtime Environment specification name = Java Platform API Specificat ion [jcc] Java class format version number = 48.4.0 [jcc] Java class path = :.2 [jcc] Java Virtual Machine implementation vendor = IBM Corporation [jcc] Java Virtual Machine implementation name = Classic VM [jcc] Java Runtime Environment specification version = 1.50.zip:.137 (myid@mymachine) /home/myusrid $ java com. /jre [jcc] Java Virtual Machine specification version = 1. DB2 for Unix/Windows: enabled.2_sr1/sh/. [jcc] Java Virtual Machine specification name = Java Virtual Machine Specificati on [jcc] Java Virtual Machine implementation version = 1. java..jcc.ibm.boot. Informix: ena bled } [jcc] Range checking enabled: true [jcc] Bug check level: 0xff [jcc] Default fetch size: 64 [jcc] Default isolation: 2 [jcc] Collect performance statistics: false [jcc] No security manager detected. jar:/home2/myusrid/sqllib/java/db2jcc_license_cisuz. [jcc] JDBC 1 system property jdbc../jr e/bin:/wsdb/v91/bldsupp/AIX5L64/jdk1./jre/bin. [jcc] Java native library path = /wsdb/v91/bldsupp/AIX5L64/jdk1.io is permitted by security manager.vm.5 } [jcc] Target server licensing restrictions: { z/OS: enabled.jar:. sun.50.4.ibm. Figura 1-26.DB2Jcc -configuration [jcc] BEGIN TRACE_DRIVER_CONFIGURATION [jcc] Driver: IBM DB2 JDBC Universal Driver Architecture 3.0 [jcc] Java Virtual Machine specification vendor = Sun Microsystems Inc./jre/lib/ext [jcc] Operating system name = AIX [jcc] Operating system architecture = ppc64 [jcc] Operating system version = 5.

pkg=sun. user.io. .level=u nknown.encoding.os. sun.patch.country=US.. } [jcc] Dumping all file properties: { } [jcc] END TRACE_DRIVER_CONFIGURATION 1-184 IBM Data Server Driver para JDBC y SQLJ para IDS .. file.name=Classic VM.

Funciones de accesibilidad de IBM Informix Dynamic Server Las funciones de accesibilidad ayudan a un usuario que tenga una minusvalía física.Apéndice. Puede visualizar las publicaciones de IBM Informix Dynamic Server en formato PDF (Portable Document Format) de Adobe. cualquiera que sea su edad o capacidad. Accesibilidad IBM se esfuerza por proporcionar productos que puedan ser utilizados por todas las personas. consulte “Diagramas de sintaxis en formato decimal con puntos”. Puede utilizar todas las funciones mediante el teclado en lugar de utilizar el ratón. tal como software lector de pantallas. a utilizar satisfactoriamente productos de tecnología de la información. Nuestras publicaciones están disponibles en formato HTML. Para obtener más información sobre el formato decimal con puntos. v Conexión de dispositivos alternativos de entrada y salida. utilizando el lector Adobe Acrobat Reader. Funciones de accesibilidad La lista siguiente incluye las funciones de accesibilidad principales de IBM Informix Dynamic Server. por lo que se puede acceder a ellas mediante tecnología de asistencia a discapacitados. © Copyright IBM Corp. Los diagramas de sintaxis contenidos en nuestras publicaciones están disponibles en el formato decimal con puntos.com/able para obtener más información sobre el compromiso que IBM tiene con respecto al tema de la accesibilidad. tal como una movilidad restringida o una visión limitada. 2007 A-1 . Navegación mediante el teclado El presente producto utiliza teclas de navegación estándar de Microsoft Windows. v Interfaces que son utilizadas habitualmente por lectores de pantalla. IBM y accesibilidad Consulte la publicación IBM Accessibility Center en http://www.ibm. Información afín sobre accesibilidad IBM se compromete a que su documentación sea accesible para las personas con discapacidades. Consejo: El Centro de información de IBM Informix Dynamic Server y sus publicaciones asociadas están habilitados para el dispositivo IBM Home Page Reader. Diagramas de sintaxis en formato decimal con puntos Los diagramas de sintaxis de nuestras publicaciones están disponibles en el formato decimal con puntos. que es un formato accesible que solamente se puede utilizar con un lector de pantallas. Estas funciones permiten: v Utilización del sistema basada en el teclado solamente.

El símbolo * se puede utilizar junto a un número decimal con puntos para indicar que se repite el elemento de sintaxis.1. la sintaxis puede incluir USERID o SYSTEMID. que se utilizan para separar una serie de elementos de sintaxis. Se utilizan determinadas palabras y símbolos junto a los números decimales con puntos para añadir información sobre los elementos de sintaxis. El nivel de numeración decimal con puntos indica el nivel de anidamiento.1 SYSTEMID. Un número decimal con puntos seguido del símbolo ? indica que todos los elementos de sintaxis con un número decimal con puntos correspondiente. Si un elemento de sintaxis va precedido por el símbolo %.1. la palabra o el símbolo van precedidos por el carácter de barra inclinada invertida (\). cada elemento de sintaxis está escrito en una línea separada. todos los elementos de sintaxis que tienen el número 3. son opcionales. La serie que va a continuación del símbolo % es el nombre de un fragmento de sintaxis en vez de un literal. Por ejemplo. se presupone que se utiliza un espacio en blanco para separar cada elemento de sintaxis.1) son alternativas mutuamente excluyentes. se muestran en la sintaxis justo antes de los elementos que separan. identifica una referencia que está definida en otro lugar. y cualquier elemento de sintaxis subordinado. todos los elementos de sintaxis con el número 3. el elemento de sintaxis *FILE con el número decimal con puntos 3 se lee como 3 \* FILE. 5? NOTIFY). Si hay A-2 IBM Data Server Driver para JDBC y SQLJ para IDS .En el formato decimal con puntos. Todos los elementos de sintaxis que tienen el mismo número decimal con puntos (por ejemplo. asegúrese de que su lector de pantallas esté establecido para leer los símbolos de puntuación. y 5. Estos caracteres pueden aparecer en la misma línea que cada elemento o en una línea separada con el mismo número decimal con puntos que los elementos relevantes. Si escucha las líneas 3. pero no ambas cosas. Por ejemplo. Las palabras y símbolos que se indican a continuación se utilizan junto a los números decimales con puntos: ? Especifica un elemento de sintaxis opcional. Ocasionalmente. el símbolo ? se visualiza en la misma línea que el elemento de sintaxis (por ejemplo. las líneas 5. Los caracteres como por ejemplo comas. 5. Si no se proporciona ningún separador. Para facilitar la identificación.1 DELETE significan que si utiliza más de uno de los elementos de sintaxis LASTRUN y DELETE. Por ejemplo.1 o 3. Cada línea empieza por un número decimal con puntos. si un elemento de sintaxis con un número decimal con puntos 3 va seguido de una serie de elementos de sintaxis con un número decimal con puntos 3. los elementos pueden aparecer en la misma línea porque se pueden considerar como un elemento de sintaxis individual compuesto.1 %OP1 indica que deberá consultar un fragmento de sintaxis independiente OP1. estas palabras y símbolos podrían aparecer al principio del propio elemento. Para escuchar correctamente estos números. la línea 2.1 USERID y 3. Por ejemplo.1. 3 o 3. si la palabra o el símbolo forma parte del elemento de sintaxis. Si dos o más elementos de sintaxis están siempre presentes a la vez (o están siempre ausentes a la vez). los elementos deben ir separados por una coma.1 son subordinados del elemento de sintaxis con el número 3. por ejemplo. El formato 3* FILE indica que se repite el elemento de sintaxis FILE. Si sólo hay un elemento de sintaxis con un número decimal con puntos.1 LASTRUN. La línea también puede mostrar otro símbolo que proporciona información sobre los elementos de sintaxis.1*. El formato 3* \* FILE indica que el elemento de sintaxis * FILE se repite.

STATE. sabe que puede incluir HOST. Por ejemplo. podía escribir HOST STATE . El símbolo * es equivalente a una línea de bucle de retorno en un diagrama de sintaxis de vía férrea.1 (DELETE). es decir. la opción por omisión KEEP sólo se aplica al siguiente número decimal con puntos más alto. Un número decimal con puntos seguido del símbolo * indica que este elemento de sintaxis se puede utilizar cero o más veces. puede utilizar más de un elemento de la lista. el símbolo ? se visualiza en una línea por sí mismo. ! Especifica un elemento de sintaxis por omisión. El símbolo +. sabe que debe incluir HOST. 2.1. * Apéndice.1 (que no tiene una palabra clave asociada). seguido por los elementos de sintaxis que son opcionales. Por ejemplo. Por ejemplo.1! (KEEP) y 2. STATE. No se utiliza nada si se omite la palabra clave FILE. si escucha las líneas 2? FILE. si aparecen las líneas 5 ?. si se omite la palabra clave FILE. sólo puede repetir un elemento específico si es el único elemento con ese número decimal con puntos. 2. El símbolo ? es equivalente a una línea de derivación en un diagrama de vía férrea. si escucha las líneas 2? FILE. Un número decimal con puntos seguido del símbolo + indica que este elemento de sintaxis debe incluirse una o más veces. 5 NOTIFY y 5 UPDATE. Especifica un elemento de sintaxis que se puede repetir cero o más veces. ambos a la vez. En cuanto al símbolo *. sabe que (KEEP) es la opción por omisión para la palabra clave FILE. es opcional y se puede repetir. puede elegir uno de ellos o ninguno. Notas: 1.más de un elemento de sintaxis con un número decimal con puntos. Sólo uno de los elementos de sintaxis que comparten el mismo número decimal con puntos puede especificar un símbolo ! . debe incluir al menos un área de datos. pero no podía escribir HOST HOST. En este ejemplo.1! (KEEP) y 2. al igual que el símbolo * es equivalente a una línea de bucle de retorno en un diagrama de sintaxis de vía férrea. es decir. si escucha la línea 6. También se aplica una opción por omisión en el siguiente número decimal con puntos más alto. sabe que puede incluir más de un área de datos o puede no incluir ninguno. Un número decimal con puntos seguido por el símbolo ! y un elemento de sintaxis indica que el elemento de sintaxis es la opción por omisión para todos los elementos de sintaxis que comparten el mismo número decimal con puntos. 2. 2 HOST y 2 STATE. Si escucha las líneas 2+. 3. y 3 STATE. puede repetir el mismo elemento más de una vez. Si un número decimal con puntos tiene un asterisco (*) junto a él. y sólo hay un elemento con dicho número decimal con puntos. En el ejemplo anterior. + Especifica un elemento de sintaxis que debe incluirse una o más veces. Si un número decimal con puntos tiene un asterisco junto a él y varios elementos tienen dicho número decimal con puntos. Accesibilidad A-3 . y no se aplica a 2? FILE. significa que los elementos de sintaxis NOTIFY y UPDATE son opcionales. si incluye la palabra clave FILE pero no especifica una opción. se utiliza el valor por omisión FILE(KEEP). pero no puede utilizar los elementos más de una vez.1* área-datos.1 (DELETE). 2.1. 3 HOST. Por ejemplo. se aplica la opción por omisión KEEP. En este ejemplo. Sin embargo. 2.1+ área-datos. o ambos. o bien nada. si escucha la línea 5. Si escucha las líneas 3* .1.

A-4 IBM Data Server Driver para JDBC y SQLJ para IDS .

LAS GARANTÍAS IMPLÍCITAS DE NO INFRACCIÓN. por escrito. Periódicamente. No obstante. 2007 B-1 . En cualquier momento y sin previo aviso. a la dirección siguiente: IBM Director of Licensing IBM Corporation North Castle Drive Armonk. INCLUIDAS. los servicios o las características que se describen en este documento. COMERCIABILIDAD O ADECUACIÓN A UN PROPÓSITO DETERMINADO. IBM puede efectuar mejoras y/o cambios en los productos y/o programas descritos en esta publicación.UU. PERO SIN LIMITARSE A ELLAS. Las referencias hechas en esta información a sitios Web que no sean de IBM se proporcionan únicamente por comodidad y de ningún modo suponen un aval de dichos sitios Web. programa o servicio funcionalmente equivalente que no infrinja ninguno de los derechos de propiedad intelectual de IBM. En su lugar. programa o servicio de IBM no pretenden indicar o implicar que solo se pueda utilizar ese producto. programa o servicio que no sea de IBM. se puede utilizar cualquier producto. El contenido de esos sitios Web no forma parte del contenido del presente producto de IBM y la utilización de esos sitios Web corre a cuenta y riesgo del usuario. a la dirección siguiente: IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome. Esta información puede contener imprecisiones técnicas o errores tipográficos. Minato-ku Tokio 106-0032. Las referencias a un producto. por lo que puede que esta declaración no le sea aplicable. NY 10504-1785 EE. póngase en contacto con el Departamento de la Propiedad Intelectual de IBM de su país o envíe las consultas. Para formular consultas acerca de licencias referentes a información de doble byte (DBCS). se efectúan cambios en la información aquí incluida. estos cambios se incorporarán en nuevas ediciones de la publicación. NI EXPLÍCITAS NI IMPLÍCITAS. IBM puede tener patentes o solicitudes de patentes pendientes que cubran temas tratados en este documento. © Copyright IBM Corp. Consulte al representante local de IBM para obtener información sobre los productos y servicios que actualmente estén disponibles en su área. Algunos estados no permiten la renuncia a las garantías explícitas o implícitas en determinadas transacciones.Avisos Es posible que IBM no ofrezca en todos los países los productos. programa o servicio de IBM. El suministro de este documento no le confiere ninguna licencia sobre dichas patentes. Japón El párrafo siguiente no es aplicable al Reino Unido ni a ningún otro país en el que tales disposiciones sean incompatibles con la legislación local: INTERNATIONAL BUSINESS MACHINES CORPORATION PROPORCIONA ESTA PUBLICACIÓN “TAL CUAL” SIN GARANTÍAS DE NINGUNA CLASE. Puede enviar consultas acerca de licencias. por escrito. es responsabilidad del usuario evaluar y verificar el funcionamiento de cualquier producto.

que ilustran técnicas de programación en diversas plataformas operativas. CA 95141-1003 EE. IBM proporciona el programa bajo licencia descrito en esta información y todo el material bajo licencia disponible para el mismo según los términos del Acuerdo del cliente de IBM. Por ello. Los datos de rendimiento que contiene esta publicación se han determinado en un entorno controlado. el pago de una tarifa. marcas y productos. vigentes y están sujetos a cambios sin previo aviso.IBM puede utilizar o distribuir la información que se le facilite del modo que IBM considere oportuno sin incurrir en ninguna obligación con el remitente. Todas las referencias a intenciones u orientaciones futuras de IBM están sujetas a cambios o retractación sin previo aviso. los resultados obtenidos en otros entornos operativos pueden variar significativamente. Esta información contiene ejemplos de datos e informes que se utilizan en las operaciones comerciales diarias. de acuerdo con los términos y condiciones pertinentes. Esta información puede estar disponible. incluido. Los resultados reales pueden variar. deben ponerse en contacto con: IBM Corporation J46A/G4 555 Bailey Avenue San José. IBM no ha probado esos productos y no puede confirmar con precisión el rendimiento. compañías. Todos estos nombres son ficticios y cualquier similitud con los nombres y direcciones utilizados por una compañía comercial real es pura coincidencia. de sus anuncios publicados o bien de otras fuentes públicas. Puede B-2 IBM Data Server Driver para JDBC y SQLJ para IDS . y representan únicamente metas y objetivos. Además. en algunos casos. LICENCIA DE COPYRIGHT: Esta información contiene programas de aplicación de ejemplo en lenguaje fuente. Los usuarios de este documento deberán verificar los datos adecuados para su entorno específico. Las preguntas sobre las prestaciones de los productos que no son de IBM deben ir dirigidas a los suministradores de dichos productos. del Acuerdo internacional de licencia de programas de IBM o de cualquier acuerdo equivalente entre ambas partes. La información concerniente a productos que no sean de IBM se ha conseguido de los suministradores de dichos productos. Los licenciatarios de este programa que deseen obtener información sobre el mismo con el fin de permitir: (i) el intercambio de información entre programas creados de forma independiente y otros programas (incluido éste) y (ii) el uso mutuo de la información intercambiada. es posible que algunas medidas se hayan calculado mediante extrapolación. Todos los precios de IBM que se muestran en este documento son precios al por mayor recomendados por IBM. los ejemplos incluyen nombres de personas. la compatibilidad ni otras exigencias en relación con los productos que no son de IBM. Para ilustrarlos lo más exhaustivamente posible. Los precios de los concesionarios pueden variar.UU. Algunas medidas pueden haberse tomado en sistemas en desarrollo y no se garantiza que tales medidas sean las mismas en los sistemas disponibles de forma generalizada.

Acrobat. utilizar. es posible que las fotografías y las ilustraciones en color no aparezcan. Cada copia o fragmento de estos programas de ejemplo o de cualquier trabajo derivado debe incluir un aviso de copyright como el que se muestra a continuación: © (nombre de la compañía) (año). IBM no puede garantizar ni implicar la fiabilidad.copiar. comercializar o distribuir programas de aplicación de acuerdo con la interfaz de programación de aplicaciones para la plataforma operativa para la cual se han escrito los programas de ejemplo. (escriba el año o años). Por lo tanto. comercializar o distribuir programas de aplicación de acuerdo con las interfaces de programación de aplicaciones de IBM. © Copyright IBM Corp. Partes de este código proceden de los programas de ejemplo de IBM Corp. Marcas registradas Los términos siguientes se utilizan en una o más publicaciones de productos IBM Informix y los términos son marcas registradas de International Business Machines Corporation en los Estados Unidos o en otros países: AIX AnalystStudio C-ISAM Cloudscape DataBlade DB2 DB2 Connect DB2 Universal Database Distributed Relational Database Architecture Domino DRDA Dynamic Connect IBM Informix Lotus Lotus Notes MQSeries NetView Notes NUMA-Q OS/2 OS/390 OS/400 Passport Advantage ProjectConsole Rational Rational Suite Rational Unified Process RedBack Red Brick RequisitePro RETAIN SQL/DS SystemBuilder Tivoli TME 10 UniData UniVerse WebSphere z/OS Adobe. Estos ejemplos no se han probado en profundidad bajo todas las condiciones. Si está visualizando esta información en copia software. el servicio ni el funcionamiento de estos programas. Puede copiar. modificar y distribuir estos programas de ejemplo del modo que considere adecuado sin pagar a IBM con el objeto de desarrollar. con el objeto de desarrollar. Reservados todos los derechos. Portable Document Format (PDF) y PostScript son marcas registradas de Adobe Systems Incorporated en los Estados Unidos o en otros países. modificar y distribuir estos programas de ejemplo del modo que considere adecuado sin previo pago a IBM. utilizar.. Avisos B-3 .

Intel Xeon. Inc. el logotipo de Intel Inside. Itanium y Pentium son marcas registradas de Intel Corporation o de sus empresas filiales en los Estados Unidos y en otros países. Linux es una marca registrada de Linus Torvalds en los Estados Unidos o en otros países. Java y todas las marcas registradas y logotipos basados en Java son marcas registradas de Sun Microsystems. el logotipo de Intel Centrino. Windows.Intel. Intel Inside. Intel Centrino. Intel SpeedStep. UNIX es una marca registrada de The Open Group en los Estados Unidos y en otros países. Otros nombres de empresas. el logotipo de Intel. Microsoft. B-4 IBM Data Server Driver para JDBC y SQLJ para IDS . productos o servicios utilizados en esta publicación pueden ser marcas registradas o marcas de servicio de terceros. en los Estados Unidos o en otros países. Celeron. Windows NT y el logotipo de Windows son marcas registradas de Microsoft Corporation en los Estados Unidos o en otros países.

visuales lectura de los diagramas de sintaxis A-1 C CallableStatement invocar procedimientos almacenados 1-33 capacidad de retención del cursor para el conjunto de resultados JDBC 1-26.Índice A acceder a paquetes JDBC 1-14 accesibilidad A-1 teclado A-1 teclas de atajo A-1 Accesibilidad diagramas de sintaxis. Enterprise Edition aviso de SQL manejo en JDBC 1-48 avisos IBM Data Server Driver para JDBC y SQLJ 1-43 códigos de retorno IBM Data Server Driver para JDBC y SQLJ. JDBC 1-41 Controladores JDBC (Conexión de base de datos Java) cambios en la versión 9. Enterprise Edition 1-65 control de transacciones. 1-28 cerrar conexión importancia de 1-50 Clase DB2BaseDataSource 1-132 Clase DB2ClientRerouteServerList 1-136 Clase DB2ConnectionPoolDataSource 1-143 Clase DB2ExceptionFormatter 1-146 Clase DB2PoolMonitor 1-150 Clase DB2SimpleDataSource 1-155 Clase DB2Sqlca 1-155 Clase DB2TraceManager 1-161 clase DB2XADataSource 1-164 clave auto-generada recuperar en aplicación JDBC 1-38 claves generadas automáticamente recuperar con métodos específicos 1-40 recuperar en aplicación JDBC 1-38 © Copyright IBM Corp.5 variables de entorno 1-166 correlaciones de tipos de datos Java. 2007 X-1 . lectura en un lector de pantallas A-1 formato decimal con puntos de los diagramas de sintaxis A-1 actualizaciones por lotes JDBC 1-20 actualizar aplicaciones para el controlador actual diferencias JCBC 1-166 actualizar datos de tablas IDS JDBC 1-18 agrupación de conexiones visión general 1-73 API de JDBC comparación del soporte de controlador 1-109 aplicación Java personalizar entorno 1-4 aplicación JDBC declarar variables 1-17 ejemplo 1-5 aplicaciones soportado por Java 2 Platform. errores de 1-173 columna LOB elección de tipos de datos Java compatibles. 1-28 contenedores Java 2 Platform. objetos crear y desplegar 1-13 datos recuperación JDBC 1-23 datos cifrados sensibles a la seguridad IBM Data Server Driver para JDBC y SQLJ 1-54 DB2Diagnosable referencia 1-145 DB2SimpleDataSource definición 1-13 declarar variables en una aplicación JDBC 1-17 diagnóstico de problemas JDBC 1-55 diagnóstico de problemas de JDBC 1-55 Diagramas de sintaxis lectura en un lector de pantallas A-1 Discapacidades. JDBC 1-36 comparación del soporte de controlador API de JDBC 1-109 conectar con una fuente de datos interfaz DataSource 1-11 conexión JDBC utilizar 1-13 configurar JDBC 1-4 SQLJ 1-4 confirmación automática por omisión JDBC 1-42 confirmar transacción JDBC 1-42 conjunto de resultados actualizable comprobar fila insertada 1-31 JDBC 1-26. 1-28 conjunto de resultados desplazable JDBC 1-26. objetos 1-13 1-64 B BatchUpdateException. recuperar información 1-49 D DatabaseMetaData recuperar información sobre una fuente de datos JDBC 1-15 DataSource. JDBC y base de datos 1-74 crear objetos JDBC 1-18 crear y desplegar DataSource.

JDBC 1-35 ID de usuario. 1-28 conjunto de resultados desplazable 1-26. rastreo con parámetros de configuración 1-57 especificación de la versión 1-182 estados de SQL para errores internos 1-180 excepciones 1-43 extensiones de JDBC 1-130 instalar 1-3 manejo de excepciones de SQL 1-44 propiedades 1-80 restricciones en IDS 1-1 seguridad 1-51 seguridad basada en ID de usuario y contraseña 1-52 seguridad mediante ID de usuario 1-53 seguridad mediante ID de usuario cifrado o contraseña cifrada 1-54 soporte de LOB. 1-28 correlaciones de tipos de datos 1-74 crear objetos 1-18 diagnóstico de problemas 1-55 ejecutar SQL 1-17 manejo de avisos de SQL 1-48 modificar objetos 1-18 variables de entorno 1-4 JDBC (conexión de base de datos Java). 1-28 configurar 1-4 conjunto de resultados actualizable 1-26. diferencias mandatos SQL 1-166 JDBC (Java database connectivity) aplicaciones control de transacciones 1-41 recuperación de datos 1-23 IBM Data Server Driver para JDBC y SQLJ instalar 1-3 nivel de aislamiento 1-41 programación de aplicaciones 1-5 ResultSet comprobar fila insertada 1-31 insertar una fila 1-30 transacciones confirmación automática 1-42 JDBC y SQLJ controladores soportados 1-1 F formato de URL Clase DB2BaseDataSource 1-10 Formato decimal con puntos de los diagramas de sintaxis A-1 fuente de datos conectar utilizando DriverManager 1-8 conectar utilizando JDBC 1-7 conexión utilizando JDBC DataSource 1-11 G getCause. Enterprise Edition contenedores 1-65 Enterprise Java Beans 1-72 gestión de transacciones 1-66 requisitos 1-66 requisitos de base de datos 1-66 servidor 1-66 soporte de aplicaciones 1-64 visión general 1-64 Java Naming and Directory Interface (JNDI) descripción 1-66 Java Transaction API descripción 1-66 Java Transaction Service descripción 1-66 JDBC acceder a paquetes para 1-14 actualizaciones por lotes 1-20 capacidad de retención del cursor para el conjunto de resultados 1-26.Discapacidades visuales lectura de los diagramas de sintaxis A-1 E ejecutar SQL JDBC 1-17 Enterprise Java Beans visión general 1-72 error de proceso por lotes JDBC BatchUpdateException 1-49 errores códigos diferencias del controlador JDBC 1-166 espacios de nombre diferencias del controlador JDBC 1-166 especificación de Sun Microsystems JDBC 1-1 excepciones IBM Data Server Driver para JDBC y SQLJ 1-43 extensiones de JDBC IBM Data Server Driver para JDBC y SQLJ 1-130 Interfaz DB2Connection 1-137 Interfaz DB2JCCPlugin 1-147 interfaz DB2PooledConnection 1-147 Interfaz DB2PreparedStatement 1-152 Interfaz DB2ResultSet 1-153 Interfaz DB2ResultSetMetaData 1-153 Interfaz DB2RowID 1-154 Interfaz DB2Statement 1-156 Interfaz DB2SystemMonitor 1-158 invocar procedimientos almacenados CallableStatement 1-33 J Java aplicaciones soporte 1-1 Enterprise Java Beans 1-72 información de consulta 1-74 Java 2 Platform. programa de rastreo 1-58 ejemplo. seguridad basada solo en IBM Data Server Driver para JDBC y SQLJ 1-53 información de consulta sobre Java 1-74 instalar IBM Data Server Driver para JDBC y SQLJ 1-3 X-2 IBM Data Server Driver para JDBC y SQLJ para IDS . método 1-43 I IBM Data Server Driver para JDBC y SQLJ avisos 1-43 códigos de retorno de errores de internos 1-173 conectar con fuente de datos interfaz DriverManager 1-8 ejemplo.

diferencias del controlador JDBC 1-166 métodos. 1-24 sentencias de SQL sin marcadores de parámetros 1-19 programa de rastreo IBM Data Server Driver para JDBC y SQLJ. JDBC 1-30 ResultSet actualizable insertar una fila 1-30 ResultSetMetaData recuperar información sobre un conjunto de resultados en JDBC 1-25 retrotraer transacción JDBC 1-42 N niveles de aislamiento JDBC 1-41 O obtener información sobre parámetros JDBC 1-22 operaciones sobre varias filas 1-32 orden de los parámetros diferencias del controlador JDBC 1-166 Índice X-3 . llamadas a. JDBC 1-23 recuperar datos de tablas IDS JDBC 1-24 recuperar información sobre conjunto de resultados JDBC 1-25 recuperar información sobre una fuente de datos JDBC 1-15 restricciones para IBM Data Server Driver para JDBC y SQLJ en IDS 1-1 ResultSet comprobar fila insertada. JDBC 1-22 parámetros literales procedimientos almacenados de DB2 para z/OS. JDBC 1-33 personalizar entorno Java 1-4 PreparedStatement. diferencias del controlador JDBC 1-166 métodos específicos Clase DB2BaseDataSource 1-132 Clase DB2ClientRerouteServerList 1-136 Clase DB2ConnectionPoolDataSource 1-143 Clase DB2ExceptionFormatter 1-146 Clase DB2PoolMonitor 1-150 Clase DB2SimpleDataSource 1-155 clase DB2sqlca 1-155 Clase DB2TraceManager 1-161 clase DB2XADataSource 1-164 Interfaz DB2Connection 1-137 Interfaz DB2Diagnosable 1-145 Interfaz DB2JCCPlugin 1-147 interfaz DB2PooledConnection 1-147 Interfaz DB2PreparedStatement 1-152 Interfaz DB2ResultSet 1-153 Interfaz DB2ResultSetMetaData 1-153 Interfaz DB2RowID 1-154 Interfaz DB2Statement 1-156 Interfaz DB2SystemMonitor 1-158 La interfaz DB2DatabaseMetaData 1-145 para recuperar claves generadas automáticamente 1-40 minusvalía física A-1 modalidad continua progresiva IBM Data Server Driver para JDBC y SQLJ 1-35 modificar objetos JDBC 1-18 R rastreo con parámetros de configuración IBM Data Server Driver para JDBC y SQLJ. ejemplo 1-58 programación de aplicaciones JDBC 1-5 properties para 1-96 propiedades configuración parámetros 1-4 IBM Data Server Driver para JDBC y SQLJ 1-80 para 1-98 para IDS 1-103 para IDS y servidores de bases de datos 1-94. 1-95 para todas las fuentes de datos 1-80 para y 1-86 propiedades de configuración 1-107 parámetros 1-4 propiedades de configuración. JDBC 1-31 insertar una fila. ejemplo 1-57 recuperación datos de tablas IDS. métodos de diferencias del controlador JDBC 1-166 sentencias de SQL con marcadores de parámetros 1-18.JNDI (Java Naming and Directory Interface) visión general 1-66 JTA (Java Transaction API) descripción 1-66 JTS (Java Transaction Service) descripción 1-66 P ParameterMetaData obtener información sobre parámetros. 1-107 L La interfaz DB2DatabaseMetaData 1-145 Lector de pantallas lectura de los diagramas de sintaxis A-1 liberar recursos cerrar conexión 1-50 LOB (objetos grandes) IBM Data Server Driver para JDBC y SQLJ soporte de localizador de LOB 1-35 localizadores de LOB IBM Data Server Driver para JDBC y SQLJ 1-35 1-35 M mandatos SQL. 1-107 propiedades específicas Clase DB2BaseDataSource 1-132 Clase DB2ClientRerouteServerList 1-136 Clase DB2ConnectionPoolDataSource 1-143 Clase DB2SimpleDataSource 1-155 propiedades globales 1-107 propiedades globales.

datos cifrados sensibles a la IBM Data Server Driver para JDBC y SQLJ 1-54 seguridad basada en ID de usuario y contraseña IBM Data Server Driver para JDBC y SQLJ 1-52 seguridad mediante ID de usuario IBM Data Server Driver para JDBC y SQLJ 1-53 seguridad mediante ID de usuario cifrado o contraseña cifrada IBM Data Server Driver para JDBC y SQLJ 1-54 sistema. errores de 1-180 SSID cómo se determina 1-107 Statement.S seguridad IBM Data Server Driver para JDBC y SQLJ 1-51 seguridad. supervisor IBM Data Server Driver para JDBC y SQLJ 1-61 soporte de LOB IBM Data Server Driver para JDBC y SQLJ 1-35 SQLException manejo con IBM Data Server Driver para JDBC y SQLJ 1-44 SQLJ instalar entorno de tiempo de ejecución 1-4 variables de entorno 1-4 SQLSTATE IBM Data Server Driver para JDBC y SQLJ. ejemplo JDBC 1-68 transacción JDBC confirmar 1-42 retrotraer 1-42 1-166 V variables de entorno diferencias del controlador JDBC 1-166 JDBC 1-4 SQLJ 1-4 versión del controlador IBM Data Server Driver para JDBC y SQLJ 1-182 X-4 IBM Data Server Driver para JDBC y SQLJ para IDS .executeQuery recuperar datos de tablas IDS 1-23 T teclas de atajo teclado A-1 tipos de datos correlaciones diferencias del controlador JDBC transacción distribuida.

.

SC11-3675-00 .

5 IBM Data Server Driver para JDBC y SQLJ para IDS .Spine information: IBM Informix Versión 3.