Acceda a las bases de datos desde el código Java incluido en el nodo JavaCompute.
Las bases de datos a las que se accede utilizando MbSQLStatement pueden participar en transacciones coordinadas globalmente. En los demás casos, el acceso a base de datos no se puede coordinar de forma global.
La clase MbSQLStatement proporciona acceso de base de datos transaccional completo utilizando ESQL y ODBC. El gestor de recursos del intermediario coordina el acceso a la base de datos mediante MbSQLStatement. La coordinación global la proporciona WebSphere MQ en plataformas distribuidas y RRS en z/OS. Para obtener información sobre cómo configurar los recursos ODBC necesarios, consulte Habilitación de las conexiones ODBC con las bases de datos.
MbMessage newMsg = new MbMessage(assembly.getMessage()); MbMessageAssembly newAssembly = new MbMessageAssembly(assembly, newMsg); String table = "dbTable"; MbSQLStatement state = createSQLStatement( "dbName", "SET OutputRoot.XMLNS.integer[] = PASSTHRU('SELECT * FROM " + table + "');" ); state.setThrowExceptionOnDatabaseError(false); state.setTreatWarningsAsErrors(true); state.select( assembly, newAssembly ); int sqlCode = state.getSQLCode(); if(sqlCode != 0) { // Aquí realizar manejo de errores } getOutputTerminal("out").propagate(assembly);
Puede acceder a las API Java estándar en el código que se escribe para los nodos JavaCompute, incluidas las llamadas JDBC. Por ello puede utilizar las API de JDBC para conectarse a una base de datos, grabar en la base de datos o leer de la misma, y desconectarse de la base de datos. El intermediario permite que el código de conexión JDBC invoque los controladores JDBC de tipo 2 y de tipo 4 en este entorno, pero no los proporciona. Debe obtener estos controladores del proveedor de la base de datos.
Si elige utilizar este método para acceder a bases de datos, el intermediario no proporciona ningún soporte para gestionar las transacciones; el código debe gestionar las funciones de confirmación y retrotracción locales de los cambios realizados en la base de datos. El código también debe gestionar el ciclo de vida de la conexión, la afinidad entre hebras de la conexión, y la agrupación de conexiones. Cuando utiliza esta técnica también debe supervisar el acceso a bases de datos para asegurarse de que estas conexiones no causen ninguna interferencia con las conexiones que realiza el intermediario. En concreto, recuerde que los controladores de tipo 2 establecen un puente con una conexión ODBC que podría estar utilizándose en flujos de mensajes que acceden a bases de datos desde ESQL.