Conexión a las bases de datos

El intermediario utiliza ODBC para acceder a su base de datos y debe configurar una conexión ODBC en cada sistema de intermediario. Este tema describe las conexiones que necesita una base de datos de intermediario y cómo definir las conexiones necesarias:

Conexiones de base de datos del intermediario

El número de conexiones a su base de datos que necesita el intermediario depende, hasta cierto punto, de las acciones de los flujos de mensajes que procesa. Se necesitan las siguientes conexiones para cada intermediario:

  • Cinco para las hebras de intermediario internas.
  • Una para cada intermediario contiguo de publicación/suscripción, si se ha difundido la topología.
  • Una para cada hebra de flujo de mensajes que contiene un nodo de publicación.
  • Una para cada hebra de flujo de mensajes que analiza mensajes MRM.
  • Un número adicional si utiliza nodos SCADA con WebSphere MQ Everyplace. El número exacto que se añade depende de si se utiliza la agrupación de hebras (se determina mediante la propiedad Utilizar agrupación de hebras del nodo SCADAInput):
    • Si no se ha seleccionado Utilizar agrupación de hebras (es el valor por omisión), añada el número de clientes SCADA que se conectarán al nodo SCADAInput.
    • Si se ha seleccionado Utilizar agrupación de hebras, añada el valor en la propiedad Máximo de hebras del nodo SCADAInput. El valor por omisión es 500.

Si utiliza la misma base de datos para varios intermediarios, debe tener en cuenta todos los intermediarios en sus cálculos.

Sólo son necesarias las conexiones para intermediarios contiguos y nodos de publicación si utiliza publicaciones retenidas.

Cuando se inicia un intermediario, éste abre todas las conexiones que necesita con la base de datos del intermediario para su propio funcionamiento. Al detener el intermediario, libera todos los manejadores de conexión de bases de datos actuales.

Si utiliza DB2 para la base de datos, la acción por omisión por DB2 consiste en limitar el número de conexiones simultáneas a una base de datos al valor del parámetro de configuración de maxappls. El valor por omisión de maxappls es 40. Si cree que las conexiones que el intermediario puede necesitar sobrepasa el valor de maxappls, aumente este valor y el parámetro asociado maxagents a nuevos valores basados en sus cálculos.

Definición de una conexión ODBC en plataformas UNIX

Plataforma Linux: No se necesita ninguna configuración ODBC en la plataforma Linux. En esta plataforma, WebSphere Business Integration Message Broker se conecta directamente a DB2, la única base de datos soportada.

En el entorno UNIX, no hay Administrador de ODBC ni Gestor de controladores. Para configurar una definición de nombre de origen de datos (DSN) de ODBC, debe editar la información del sistema necesaria, que se encuentra en un archivo de texto plano denominado .odbc.ini (observe que el nombre de este archivo empieza por un punto).

Este archivo debe crearse en el directorio identificado por la variable de entorno ODBCINI. Si no se establece la variable, el directorio por omisión es el directorio /var/wmqi/odbc, que se crea cuando se instala WebSphere Business Integration Message Broker. El archivo debe tener permisos de archivo de mqm:mqbrkrs.

Se proporciona una plantilla de ejemplo como el archivo <install_dir>/wmqi/merant/odbc.ini, que contiene ejemplos sobre la manera de configurar un DSN que resida en cada una de las bases de datos soportadas por WebSphere Business Integration Message Broker. Los archivos de plantilla de ejemplo para las plataformas soportadas se muestran más abajo. Muestran la configuración recomendada para las bases de datos soportadas.

Las entradas de las secciones que debe configurar para que coincidan con los requisitos locales se muestran en cursiva (las descripciones de estas entradas siguen los ejemplos indicados más abajo, consulte el apartado Parámetros de ODBC.ini). Debe retener todas las entradas que se muestran, pero puede eliminar una sección completa si no la necesita para la configuración (por ejemplo, si utiliza una base de datos Oracle, puede eliminar las secciones que se muestran para DB2 y Sybase).

Realice una copia del archivo por omisión, defina ODBCINI para que apunte a esta copia y realice los cambios en el archivo copiado en vez de hacerlo en el archivo por omisión.

Asegúrese de que la variable de entorno de la vía de acceso de búsqueda de bibliotecas adecuada (LD_LIBRARY_PATH en Solaris) se ha establecido para reflejar los productos de base de datos indicados que se han de utilizar. Consulte la documentación del producto de base de datos para ver más detalles.

Inicio del cambioPlataforma AIX: En AIX, si utiliza DB2 como base de datos, se permite un máximo de 10 conexiones utilizando memoria compartida desde un solo proceso. Esto quiere decir que, si difunde más de uno o dos flujos de mensajes al mismo tiempo, tal vez vea anomalías de conexión caracterizadas por el mensaje de error de DB2 SQL1224N. Se informa acerca de los errores de conexión en las anotaciones del sistema del grupo de ejecución del intermediario. Para evitar este problema, debe utilizar la modalidad TCP/IP para conectarse a DB2. Para obtener instrucciones detalladas sobre cómo realizar esto, consulte el apartado Obtiene el mensaje de error SQL1224N de DB2 al conectarse a DB2.Fin del cambio

AIX
[ODBC Data Sources]
WBRKBKDB=IBM DB2 ODBC Driver
MYDB=IBM DB2 ODBC Driver
ORACLEDB=DataDirect 410 Oracle Driver
SYBASEDB=DataDirect 410 Sybase ASE Driver
 
[WBRKBKDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.a
Description=WBRKBKDB DB2 ODBC Database
Database=WBRKBKDB
 
[MYDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.a
Description=MYDB DB2 ODBC Database
Database=MYDB

[ORACLEDB]
Driver=/usr/opt/wmqi/merant/lib/UKor818.so
Description=Oracle
ServerName=YourServerName
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
WorkArounds2=2
 
[SYBASEDB]
Driver=/usr/opt/wmqi/merant/lib/UKase18.so
Description=Sybase12
Database=sybasedb
ServerName=YourServerName
WorkstationID=id
EnableDescribeParam=1
OptimizePrepare=1
SelectMethod=0
NetworkAddress=10.30.14.72,5000
SelectUserName=1 
 
[ODBC]
Trace=0
TraceFile=/var/wmqi/odbc/odbctrace.out
TraceDll=/usr/opt/wmqi/merant/lib/odbctrac.so
InstallDir=/usr/opt/wmqi/merant
HP-UX
[ODBC Data Sources]
WBRKBKDB=IBM DB2 ODBC Driver
MYDB=IBM DB2 ODBC Driver
ORACLEDB=DataDirect 410 Oracle Driver
SYBASEDB=DataDirect 410 Sybase ASE Driver
 
[WBRKBKDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.sl
Description=WBRKBKDB DB2 ODBC Database
Database=WBRKBKDB
 
[MYDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.sl
Description=MYDB DB2 ODBC Database
Database=MYDB
 
[ORACLEDB]
Driver=/opt/wmqi/merant/lib/UKor818.sl
Description=Oracle
ServerName=YourServerName
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
WorkArounds2=2
 
[SYBASEDB]
Driver=/opt/wmqi/merant/lib/UKase18.sl
Description=Sybase12
Database=sybasedb
ServerName=YourServerName
WorkstationID=id
EnableDescribeParam=1
OptimizePrepare=1
SelectMethod=0
NetworkAddress=10.30.14.72,5000
SelectUserName=1 
 
[ODBC]
Trace=0
TraceFile=/var/wmqi/odbc/odbctrace.out
TraceDll=/opt/wmqi/merant/lib/odbctrac.sl
InstallDir=/opt/wmqi/merant
Solaris
[ODBC Data Sources]
WBRKBKDB=IBM DB2 ODBC Driver
MYDB=IBM DB2 ODBC Driver
ORACLEDB=DataDirect 410 Oracle Driver
SYBASEDB=DataDirect 410 Sybase ASE Driver
 
[WBRKBKDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.so
Description=WBRKBKDB DB2 ODBC Database
Database=WBRKBKDB
 
[MYDB]
Driver=/u/db2inst1/sqllib/lib/libdb2.so
Description=MYDB DB2 ODBC Database
Database=MYDB
 
[ORACLEDB]
Driver=/opt/wmqi/merant/lib/UKor818.so
Description=Oracle
ServerName=YourServerName
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
WorkArounds2=2
 
[SYBASEDB]
Driver=/opt/wmqi/merant/lib/UKase18.so
Description=Sybase12
Database=sybasedb
ServerName=YourServerName
WorkstationID=id
EnableDescribeParam=1
OptimizePrepare=1
SelectMethod=0
NetworkAddress=10.30.14.72,5000
SelectUserName=1 
 
[ODBC]
Trace=0
TraceFile=/var/wmqi/odbc/odbctrace.out
TraceDll=/opt/wmqi/merant/lib/odbctrac.so
InstallDir=/opt/wmqi/merant

Si va a acceder a bases de datos Oracle en AIX o Solaris, debe configurar enlaces simbólicos:

  • En AIX:
    ln -s <DIR_INSTALACIÓN_ORACLE>/lib/libclntsh.a /usr/lib/libclntsh.so
  • En Solaris:
    ln -s <DIR_INSTALACIÓN_ORACLE>/lib/libclntsh.so /usr/lib/libclntsh.a

(donde <DIR_INSTALACIÓN_ORACLE es el directorio en que Oracle se instala en el sistema).

Este paso no es necesario en HP-UX.

Si no consigue configurar este enlace correctamente, la coordinación de XA no funcionará. El gestor de colas del intermediario se inicia (al iniciar el intermediario o al emitir strmqm, si opta por iniciarlo de manera independiente), pero registra el error AMQ7604 en las anotaciones de errores del gestor de colas de WebSphere MQ, que indica que Oracle ha devuelto el error XAER_RMFAIL o XAER_RMERR.

Definición de una conexión ODBC en Windows

En Windows, puede configurar un origen de datos ODBC utilizando el Administrador de orígenes de datos de ODBC. (Seleccione Inicio > Configuración > Panel de control y, a continuación, ODBC.) Al definir un nuevo origen de datos, seleccione el controlador adecuado para la base de datos y complete el diálogo que se visualiza. Consulte la documentación relevante del producto de base de datos para obtener más información.

Más abajo se describen las consideraciones de configuración específicas de WebSphere Business Integration Message Broker para las bases de datos soportadas:

  • DB2 UDB

    Al definir un origen de datos para DB2 UDB, debe elegir el controlador denominado IBM DB2 ODBC DRIVER. Entre el nombre de origen de datos (DSN) y la descripción y seleccione el alias de base de datos correcto de la lista desplegable.

    Para DB2, puede hacerlo más fácilmente de la manera siguiente:

    1. Abra el Asistente de configuración de DB2
    2. Pulse el botón derecho del ratón en la base de datos y seleccione Cambiar base de datos
    3. Seleccione Origen de datos
    4. Seleccione Registrar esta base de datos para ODBC
    5. Pulse Finalizar
    6. El diálogo Probar conexión se abre automáticamente y podrá probar las diversas conexiones.
  • Microsoft SQL Server

    Al definir un origen de datos para Microsoft SQL Server, debe elegir el controlador denominado SQL Server. El nivel de controlador debe ser de la Versión 3.60 o posterior. Especifique un nombre y la descripción y seleccione el servidor correcto de la lista desplegable.

  • Oracle

    Al definir un origen de datos para Oracle, debe elegir el controlador denominado MQSeries DataDirect 4.10 32-BIT Oracle. Al configurar este controlador, debe realizar lo siguiente:

    • Entre el nombre de DSN, descripción y nombre de servidor (donde el nombre de servidor es el "Nombre de servicio" que se resuelve en un "Descriptor de conexión", por ejemplo, mediante una correlación en el archivo TSNAMES.ORA).
    • Asegúrese de que el recuadro Enable SQLDescribeParam está marcado. Este parámetro está en el separador Advanced de los valores del controlador.
    • Cree una nueva subclave de registro para cada uno de los DSN que hace referencia a una base de datos Oracle, utilizando REGEDIT para navegar a:
      HKEY_LOCAL_MACHINE
          SOFTWARE
              ODBC
                  ODBC.INI

      Pulse el botón derecho del ratón en el DSN y seleccione New String Value. Especifique WorkArounds para la serie y establezca el valor en 536870912.

  • Sybase Adaptive Server Enterprise

    Al definir un origen de datos para Sybase Adaptive Server Enterprise, debe elegir el controlador denominado MQSeries DataDirect 4.10 32-BIT Sybase. Al configurar este controlador para utilizarlo con WebSphere Business Integration Message Broker, debe:

    • Entre el nombre de DSN, la descripción, la dirección de red del servidor (para ver una descripción del formato de esta dirección, consulte la explicación de NetworkAddress= en el apartado Parámetros de ODBC.ini).
    • Asegúrese de que el recuadro Enable Describe Parameter está marcado. Este parámetro está en el separador Advanced.
    • Asegúrese de que el valor de Prepare Method es 1 - Partial. Este parámetro está en el separador Performance.

Parámetros de ODBC.ini

Configure los archivos de plantilla actualizando los parámetros siguientes:

[ODBC Data Sources]
Esta sección describe los nombres de origen de datos (DSN) para las bases de datos que se configuran en el archivo .odbc.ini. Debe configurar esta sección para que muestre todas las bases de datos y debe incluir una sección para cada una.
Driver=
  • Si utiliza DB2, especifique la ubicación de la biblioteca de controladores que coincide con la instalación de DB2.
  • Si utiliza Oracle o Sybase, utilice la vía de acceso exactamente como se muestra.
Description=
Puede cambiarlo si lo prefiere. Es un campo de texto sólo informativo y no influye en la operación.
Database=
  • Si utiliza DB2, especifique el alias de base de datos. Si utiliza una base de datos DB2 remota, debe configurar la conexión de cliente-servidor para resolver este alias en la base de datos correcta. Para obtener más información, consulte la documentación de DB2.
  • Si utiliza Sybase, especifique el nombre de la base de datos a la que se quiere conectar por omisión. Si no especifica un valor, el valor por omisión es la base de datos definida por el administrador del sistema para cada usuario.
ServerName=
  • Si utiliza Oracle, especifique el "Nombre de servicio" que se resuelve en un "Descriptor de conexión", por ejemplo mediante una correlación en el archivo TSNAMES.ORA.
  • Si utiliza Sybase, especifique el nombre del servidor de bases de datos Sybase que ha definido en la máquina servidor.
NetworkAddress=
Especifique la dirección de red del servidor Sybase (es obligatorio para las bases de datos locales y remotas). Especifique una dirección IP como se indica a continuación:
<nombre_servidor o dirección IP>, <número_puerto>

Por ejemplo, Sybaseserver, 5000. También puede especificar directamente la dirección IP, por ejemplo, 199.226.224.34, 5000. Puede encontrar el número de puerto en el archivo de interfaces de Sybase que normalmente se denomina interfaces, interfac o sql.ini, según el sistema operativo.

WorkstationID=
Escriba el identificador de la estación de trabajo. Por ejemplo, mqsiuid.
SelectUserName=
Debe establecerse en 1.

Tareas relacionadas
Configuración de bases de datos de componentes
Creación de las bases de datos
Personalización de las bases de datos DB2
Autorización de acceso a la base de datos

Referencia relacionada
Bases de datos soportadas
Conexiones de base de datos de usuario
Conexiones de base de datos para flujos de mensajes coordinados