Cuando incluye un nodo definido por el usuario
DatabaseRetrieve,
DatabaseRoute,
JavaCompute,
Mapping o
Java™ en un flujo de mensajes e
interactúa con una base de datos de dicho nodo, el intermediario debe establecer una
conexión con la base de datos para satisfacer las operaciones realizadas por el nodo. Debe definir un servicio configurable JDBCProvider para proporcionar al intermediario la información que necesita para completar la conexión.
Importante: Al
denominar el servicio JDBCProvider, tenga en cuenta los siguientes requisitos:
- Si desea utilizar el servicio JDBCProvider con un nodo JavaCompute o con un nodo definido por el usuario Java, el nombre del servicio
JDBCProvider debe coincidir con el parámetro datasourceName en la llamada de API getJDBCType4Connection() del nodo.
- Si desea utilizar el servicio JDBCProvider con un nodo
Mapping, el nombre del
servicio JDBCProvider debe coincidir con el nombre de base de datos utilizada por
las transformaciones de base de datos en la correlación de datos gráfica. Para cada transformación
de base de datos, el nombre de base de datos lo determina
la definición de base de datos (archivo .dbm) en el proyecto de diseño de datos
que se ha utilizado para crear la correlación.
- Si desea utilizar el servicio JDBCProvider con un nodo
DatabaseRetrieve o con un nodo
DatabaseRoute, el
nombre del servicio JDBCProvider debe coincidir con el valor de la propiedad
Nombre de origen de datos del nodo.
Un servicio
configurable JDBCProvider sólo soporta conexiones a una base de datos;
debe crear un servicio para cada base de datos a las que se conectan los nodos o
las aplicaciones Java.
Para configurar un proveedor JDBC para conexiones de tipo 4
utilizando WebSphere Message Broker Explorer, consulte Creación de un nuevo servicio configurable.
Para
configurar un proveedor JDBC para conexiones de tipo
4 utilizando los mandatos
mqsicreateconfigurableservice o
mqsichangeproperties,
realice los pasos siguientes:
- Identifique el tipo de base de datos para la que requiere un servicio JDBCProvider.
En Bases de datos soportadas se muestran los controladores JDBC y las bases de datos; el soporte para transacciones (XA) coordinadas globalmente está restringido en algunas plataformas y para ciertas bases de datos.
- Ejecute el mandato mqsireportproperties para ver la lista de servicios JDBCProvider disponibles. Sustituya el nombre del intermediario en lugar de nombre_intermediario.
mqsireportproperties nombre_intermediario -c JDBCProviders -a -o AllReportableEntityNames
La respuesta del mandato lista todos los servicios configurables JDBCProvider que se hayan definido. Si no ha creado sus propias definiciones, de forma predeterminada se muestra la siguiente lista de servicios proporcionados:
- DB2
- Informix
- Informix_With_Date_Format
- Microsoft_SQL_Server
- Oracle
- Sybase_JConnect6_05
Si se conecta a una base de datos Informix:
- Utilice Informix_With_Date_Format para la compatibilidad con aplicaciones cliente que dependen del atributo de conexión de formato de fecha
que se ha utilizado en versiones anteriores de servidores Informix.
- Utilice Informix para las aplicaciones cliente que no dependan del atributo de formato de
fecha.
- Vea el contenido de la definición de servicio JDBCProvider relevante. Por ejemplo, ejecute el siguiente mandato para visualizar la definición de Oracle suministrada:
mqsireportproperties nombre_intermediario -c JDBCProviders -o Oracle -r
La respuesta del mandato devuelve una lista de todas las propiedades de la definición de Oracle.
Si no ha cambiado esta definición, las propiedades se establecen en los valores iniciales, algunos de los cuales deben cambiar para crear una definición viable.
Por ejemplo, la propiedad databaseName se establece
en default_Database_Name y debe cambiarla para
identificar la base de datos a la que desea conectarse.
Un servicio JDBCProvider contiene las propiedades siguientes:
- connectionUrlFormat. Patrón que representa la definición del URL de conexión, que es específico de un
tipo de base de datos en particular. Por ejemplo, el patrón para DB2 se define con el siguiente contenido:
jdbc:db2://[nombreServidor]:[númeroPuerto]/[nombreBaseDatos]:user=[usuario];password=[contraseña];
El
intermediario
utiliza y completa el patrón durante la ejecución, cuando se conecta con la base de datos. Los
valores entre corchetes, por ejemplo [nombreServidor],
los sustituye el intermediario en el patrón utilizando los valores que ha especificado
en los mandatos mqsicreateconfigurableservice,
mqsichangeproperties o mqsisetdbparms.
El
intermediario utiliza los valores y el orden de preferencia siguientes
para sustituir el ID de usuario y contraseña en el patrón:
- Primero, en todas la plataformas: El ID de usuario y contraseña que ha
establecido para la base de datos específica, utilizando el mandato
mqsisetdbparms y
especificando la base de datos en el parámetro -n.
- Segundo, en todas las plataformas: El ID de usuario y contraseña que
ha establecido para todas las demás bases de datos, utilizando el mandato
mqsisetdbparms y
especificando jdbc::JDBC en el parámetro -n.
- Tercero, los valores son específicos de la plataforma:
En Windows: El ID
y contraseña de servicio de intermediario que ha especificado en el
mandato mqsicreatebroker.

En Linux y
UNIX: El ID de usuario
mqsiUser y contraseña ******** (estos
valores son fijos).
En z/OS: El ID
de usuario "" y contraseña "".
Si está utilizando uno de los servicios JDBCProvider proporcionados, no utilice el mandato mqsichangeproperties para cambiar el propio patrón; los cambios realizados en el patrón pueden producir resultados imprevisibles.
Si utiliza el mandato mqsicreateconfigurableservice para definir su propio servicio JDBCProvider, utilice el mandato mqsireportproperties para comprobar que el contenido de la serie connectionUrlFormat coincide exactamente con el proveedor suministrado predeterminado para el tipo de base de datos que se está utilizando.
Además, si está trabajando en z/OS y se están utilizando los archivos JCL BIPCRCS y BIPCHPR para definir su servicio JDBCProvider, asegúrese de que su emulador 3270 está configurado para utilizar la misma página de códigos que el intermediario en el que se está ejecutando. Si las páginas de código no coinciden, es posible que el patrón de serie connectionUrlFormat que defina no lo reconozca correctamente el intermediario.
- connectionUrlFormat Attr1-5. Si el patrón de URL definido para una base de datos contiene propiedades de origen de datos JDBC que no son estándar, como un identificador de servidor, especifique estas propiedades además de los atributos estándares utilizando uno de los cinco atributos de URL de conexión de propósito general. Por ejemplo:
- Si connectionURLFormat =
jdbc:oracle:thin:[usuario]/[contraseña]@[nombreServidor]:[nombrePuerto]:[connectionUrlFormatAttr1],
connectionUrlFormatAttr1 debe contener un identificador de servidor Oracle,
que debe suministrarse definiendo el valor para la propiedad
connectionUrlFormatAttr1
en el mandato mqsicreateconfigurableservice o
mqsichangeproperties.
Después, el intermediario puede sustituir todos los valores necesarios en el patrón requerido.
- Si connectionURLFormat = jdbc:informix-sqli://[nombreServidor]:[númeroPuerto]/[nombreBaseDatos]:informixserver=[connectionUrlFormatAttr1];
user=[usuario];password=[contraseña], connectionUrlFormatAttr1 debe contener
el nombre de la instancia de Informix del servidor
(especificada normalmente mediante la variable de entorno INFORMIXSERVER). Este valor es sensible a las mayúsculas y minúsculas.
- databaseName. Nombre de la base de datos para la que la entrada del origen de datos habilita las conexiones; por
ejemplo, empleados.
- databaseSchemaNames.
De manera opcional altere temporalmente el nombre de esquema de base de datos utilizado en las
sentencias SQL creadas por los nodos de flujo de mensajes. Esta propiedad sólo la
utiliza el nodo Mapping y sólo cuando se
llama a una correlación de datos gráfica que contiene una transformación de datos. Para obtener más información, consulte
Servicio configurable JDBCProviders.
- databaseType. El tipo de base de datos; por
ejemplo, DB2.
- databaseVersion. La versión de la base de datos; por ejemplo,
9.1.
- description. Propiedad opcional que describe la definición de origen de datos.
- environmentParms. Sólo para DB2 y Informix. Una propiedad opcional que especifica una lista de propiedades de origen
de datos con el formato name=value, separadas cada una por
un punto y coma.
- jarsURL. La vía de acceso al directorio local, en el sistema en el que se ejecuta el intermediario, donde se encuentra el archivo JAR que contiene la clase de controlador de tipo 4.
Además,
se puede utilizar un disco de red de área de almacenamiento para la vía de acceso de directorio, pero
no se puede utilizar una unidad de red correlacionada en un sistema remoto.
- maxConnectionPoolSize. Opcionalmente, establezca esta propiedad para crear una agrupación de conexiones JDBC. Para obtener más información, consulte
Utilización de una agrupación de conexiones JDBC para gestionar recursos de base de datos utilizados por un grupo de ejecución.
- portNumber. El número de puerto en el que el servidor de bases de datos está a la escucha; por ejemplo,
50000.
- securityIdentity. Una clave de seguridad
exclusiva para realizar una segunda búsqueda de registro de
intermediario para encontrar una entrada bajo las entradas de
seguridad del intermediario, que almacenan la contraseña cifrada para el
usuario en el sistema host asociado; por ejemplo, miIdentidadSeguridad.
Cree
una identidad de seguridad utilizando el mandato
mqsisetdbparms, tal como se describe en Seguridad de una conexión JDBC tipo 4. El valor de securityIdentity (por ejemplo, miIdentidadSeguridad) debe coincidir con el valor que se especifique después
del prefijo jdbc:: para el parámetro
-n de dicho mandato.
La identidad de seguridad proporciona un par de valores de ID de usuario y contraseña, que se utilizan para acceder al origen de datos especificado definido para una entrada de servicio JDBCProvider determinada. Esta propiedad se ignora si el URL de conexión no contiene los dos, un ID de usuario y una contraseña, que requieren que se sustituyan valores de propiedad para esas inserciones.
Los valores predeterminados, que se pueden establecer
especificando jdbc::JDBC como valor de ResourceName en
el mandato mqsisetdbparms, se utilizan en
las siguientes condiciones:
- Si la securityIdentity está en blanco o si sigue teniendo el valor predeterminado
default_User@default_Server,
pero se requiere la identidad para el patrón de conexión URL.
- Si ha entrado una clave de identidad de seguridad exclusiva válida, pero no se
puede encontrar bajo la clave DSN.
- serverName. Nombre del servidor; por ejemplo, host1.
- type4DatasourceClassName. Nombre de clase de origen de datos
JDBC que se utiliza para establecer una conexión de tipo
4 con una base de datos remota y para el soporte de transacción coordinado.
Por ejemplo, especifique com.ibm.db2.jcc.DB2XADataSource para DB2
o especifique oracle.jdbc.xa.client.OracleXADataSource para
Oracle. Debe especificar el nombre de clase XA al utilizar la llamada de API getJDBCType4Connection() para transacciones coordinadas. Si
el servidor de bases de datos no soporta transacciones XA o no desea utilizar el protocolo XA,
esta propiedad es opcional y debe establecer la propiedad jdbcProviderXASupport
en false.
- type4DriverClassName. Nombre de clase de controlador JDBC de tipo 4 que se utiliza para establecer una conexión. Por ejemplo, especifique com.ibm.db2.jcc.DB2Driver para DB2
o especifique oracle.jdbc.OracleDriver para Oracle.
- jdbcProviderXASupport. Una propiedad opcional
que controla si el intermediario se conecta a un servidor de bases de datos
utilizando el protocolo XA. De forma predeterminada, esta propiedad se establece en true. Si el
servidor de bases de datos no está habilitado para el soporte XA o no se necesitan
transacciones coordinadas, establezca el valor en false. En tal caso se utiliza el controlador de tipo 4
especificado utilizando la propiedad type4DriverClassName,
en lugar del origen de datos de tipo 4 especificado en la propiedad
type4DatasourceClassName.
- Si desea utilizar la definición proporcionada, ejecute el mandato mqsichangeproperties para sustituir los valores predeterminados por los valores específicos de la base de datos y el entorno. Si tiene alguna duda sobre los valores necesarios, póngase en contacto con el administrador de la base de datos o compruebe la
documentación que se
suministra con la base de datos elegida. Algunos valores dependen de cómo y dónde haya instalado el producto de base de datos; por ejemplo,
la propiedad jarsURL identifica la ubicación de los archivos JAR suministrados e instalados por el proveedor de base
de datos.
- Si desea crear un nuevo servicio configurable, quizás porque desea retener el servicio suministrado como una plantilla para futuras definiciones, ejecute el mandato mqsicreateconfigurableservice para crear la definición.
mqsicreateconfigurableservice nombre_intermediario -c JDBCProviders -o nombre_proveedor
-n lista de propiedades -v lista de valores
Entre el mandato en una sola línea; el ejemplo se ha dividido para mejorar la legibilidad.
Especifique todas las propiedades necesarias para el proveedor de base de datos y que haya elegido. Para especificar una lista de propiedades y valores, separe los elementos después de cada distintivo por una coma. Por ejemplo, -n nombreBaseDatos, tipoBaseDatos
-v EmpleadoDB,DB2. Si no especifica todas las propiedades en el mandato mqsicreateconfigurableservice, puede actualizarlas más adelante con el mandato mqsichangeproperties.
- Cuando haya configurado o modificado el servicio JDBCProvider, debe volver a cargar los grupos de ejecución que actualmente utilizan o piensan utilizar el servicio JDBCProvider.