[Windows]

Migración de la carga de la biblioteca de IBM MQ a una versión posterior en Windows

En Windows, normalmente no es necesario ningún cambio en la forma en que se cargan las bibliotecas de IBM® MQ si actualiza desde una versión anterior del producto a la versión posterior sustituyendo una versión anterior del producto por la versión posterior, basándose en el escenario de una sola etapa. Sin embargo, si decide aprovechar las ventajas de la multiinstalación en la versión posterior del producto, basándose en los escenarios de migración en paralelo o en varias fases, es posible que tenga que configurar el entorno de ejecución de forma diferente, para que el sistema operativo cargue la versión posterior de la biblioteca IBM MQ.

Antes de empezar

Para migrar aplicaciones de una versión anterior del producto a la versión posterior, debe saber cómo carga el sistema operativo una biblioteca IBM MQ para una aplicación. ¿Es la aplicación la encargada de fijar la vía de acceso de carga, y se puede establecer la vía de acceso en una variable de entorno? No es esencial conocer el nombre de la biblioteca IBM MQ que carga la aplicación. El nombre de la biblioteca no cambia de una versión anterior del producto a la versión posterior, aunque sí lo hace el contenido.

Lea Coexistencia del gestor de colas de multiinstalación en AIX, Linux y Windows antes de iniciar esta tarea.

Planifique e instale la versión posterior de IBM MQ, y recuerde el nombre de instalación y si la instalación se ha establecido en primaria.

Acerca de esta tarea

Para migrar una aplicación de una versión anterior del producto a la versión posterior, no es necesario volver a compilar ni vincular la aplicación, porque elIBM MQ las bibliotecas son compatibles con versiones posteriores; ver Compatibilidad de aplicaciones e interoperabilidad con versiones posteriores deIBMMQ .

Windowsbusca en numerosos directorios bibliotecas de carga, llamadas DLL; ver Orden de búsqueda de biblioteca de vínculos dinámicos . El procedimiento de compilación para las aplicaciones coloca las bibliotecas de IBM MQ para cargar antes que cualquier otra biblioteca de producto en el mandato cl . Las bibliotecas de IBM MQ .lib deben estar en la variable de entorno PATH que ha especificado durante la compilación y las bibliotecas de DLL durante la ejecución. La variable PATH la utiliza el proceso de aplicación para buscar las bibliotecas que debe cargar.

Si ha seguido este procedimiento de compilación en le release anterior, el efecto de instalar la versión posterior del producto sobre las bibliotecas cargadas dependerá del escenario de migración que se esté siguiendo:
Migración de etapa única
Si está reemplazando una versión anterior del producto con la versión posterior, según el escenario de una sola etapa descrito en Migración en Windows: etapa única , en la mayoría de los casos no es necesario realizar ningún cambio en la formaIBM MQ Las bibliotecas están cargadas. La posible excepción a esto sería si se ha cambiado la ubicación de las bibliotecas de la versión anterior o se han creado enlaces simbólicos a las bibliotecas.
Escenarios de migración en paralelo y de varias etapas
Si ha elegido un enfoque de instalación múltiple para instalar la versión posterior del producto, basándose en el escenario en paralelo descrito en Migrar en Windows: en paralelo , o el escenario de migración de varias etapas descrito en Migración en Windows: varias etapas , debe investigar si las aplicaciones que se conectan a la versión posterior del producto están vinculadas y cargan bibliotecas desde la instalación correcta y luego modificar el entorno para que el sistema operativo las resuelva.IBM MQ dependencias para una aplicación según corresponda. Normalmente puede modificar el entorno de ejecución, en lugar de volver a enlazar la aplicación. Puede utilizar los dos mandatos siguientes como ayuda en la configuración del entorno de ejecución:
  • setmqinst establece la instalación primaria; consulte setmqinst.
  • setmqenv inicializa el entorno de mandatos estableciendo variables de entorno; consulte setmqenv.
tabla 1 Resume las acciones necesarias para cada uno de estos escenarios.
Tabla 1. Windows configuraciones
 

Caso de ejemplo

La última versión sustituye una versión anterior en la misma ubicación

Etapa única

La última versión sustituye una versión anterior en una ubicación diferente

En paralelo

La última versión junto con la versión anterior

Varias etapas

Acción

setmqinst

setmqinst hace que la instalación de la versión posterior sea la primaria. El PATH global se cambia para que apunte a la biblioteca de la versión posterior y todas las características de Windows funcionan con la versión posterior.

Núm. La instalación de la versión posterior puede ser primaria, porque se ha instalado una versión anterior.

No hay más acciones de configuración

La carga de bibliotecas funciona correctamente.

La variable global PATH contiene la ubicación de las librerías de la versión posterior.

Aunque la instalación de la versión posterior no sea primaria, la carga de bibliotecas funciona correctamente. Las bibliotecas de la versión posterior están en la misma ubicación en la que estaban las bibliotecas de la versión anterior.

La carga de bibliotecas funciona con toda probabilidad correctamente.

Puede que la carga no funcione si el proceso de la aplicación ha modificado localmente PATH para hacer referencia a la ubicación de las bibliotecas de la última versión. Un valor local de PATH puede alterar temporalmente el valor PATH global que ha establecido setmqinst.

setmqenv

La carga de bibliotecas funciona correctamente.

setmqenv establece el valor PATH local correctamente.

La carga de bibliotecas funciona correctamente, tanto para la versión anterior como para la posterior.

setmqenv define la variable local PATH correctamente para la versión posterior. Pero las características de Windows que dependen de la vía de acceso global no funcionan correctamente con la versión posterior.

Se carga la versión anterior correcta porque la biblioteca de la versión posterior carga la biblioteca de la versión anterior para los gestores de colas que no se han migrado desde la versión anterior.

Procedimiento

  1. Piense en cuál de las preguntas siguientes se aplica a la configuración.
    • ¿Ha seguido el procedimiento de compilación documentado en la documentación del producto de la versión anterior del producto? Es posible que esté siguiendo un procedimiento de compilación diferente adaptado a su entorno de desarrollo o adaptado de una herramienta de desarrollo como, por ejemplo, Microsoft Visual Studio.
    • ¿Cómo ha especificado la ruta de carga de la versión anterior?
    • ¿La aplicación la carga otro entorno como, por ejemplo, Eclipse o un servidor de aplicaciones? Debe modificar los parámetros que regulan cómo el entorno padre carga aplicaciones, no el modo en que se carga el entorno padre.
    • ¿Las funciones que realiza una aplicación requiere que el gestor de colas al que se conecta esté asociado con la instalación primaria?
    • ¿Qué límites y requerimientos tiene sobre cómo se ha especificado la ruta de carga en la versión posterior? Las reglas de seguridad pueden limitar el uso de LD_LIBRARY_PATH.
    • ¿Se ha instalado la versión posterior del producto junto con la versión anterior?
  2. Identifique la instalación de la versión posterior del producto, desde la que el sistema operativo va a cargar las bibliotecas de IBM MQ :
    • Si tiene varias instalaciones de las versiones posteriores para cargar desde un servidor, IBM MQ comprueba que la instalación desde la que se ha cargado la biblioteca es la instalación asociada con cualquier gestor de colas al que llame la aplicación. IBM MQ carga la biblioteca correcta si se carga la biblioteca incorrecta. Es necesario configurar sólo un entorno de ejecución para todas las aplicaciones IBM MQ .
    • Una opción habitual es establecer la instalación primaria. Establecer una instalación como primaria coloca la vía de acceso de la biblioteca en la variable global PATH.
    • Si ha actualizado una instalación de versión anterior a la posterior, una ruta de enlace a la instalación de la versión anterior apuntará ahora a una instalación que contiene la versión posterior. Las aplicaciones que tengan una ruta de enlazado fijo a la instalación de la versión anterior, cargarán ahora las bibliotecas de la instalación posterior. A continuación pasan a la instalación que está asociada con cualquier gestor de colas al se que conectan.
    • Si vuelve a compilar una aplicación, deberá enlazar con una instalación de la versión posterior.
    • Si está ejecutando el supervisor de IBM MQ.NET en modalidad transaccional, el gestor de colas al que se conecta debe ser la instalación primaria.

Qué hacer a continuación

Si se añaden instalaciones adicionales de la versión posterior del producto, deberá decidirse qué instalación se hace primaria (si es que se ha decidido hacer alguna primaria). Siempre que las aplicaciones carguen bibliotecas de IBM MQ desde una de las instalaciones de la versión posterior, como la instalación primaria, pueden conectarse a gestores de colas asociados con cualquier otra instalación de la versión posterior.

En Windows, puede crear aplicaciones con distintas herramientas de desarrollo. Debe identificar la propiedad de la herramienta de desarrollo que establece la variable PATH de la aplicación que se está creando y no de las propiedades de la propia herramienta. Por ejemplo, si está depurando con Microsoft Visual Studio, puede insertar una llamada a setmqenv en la propiedad Environment de la sección de depuración de las propiedades Configuration de un proyecto.

Una aplicación Windows puede llamar a LoadLibrary y especificar una vía de acceso de carga explícita. Puede crear un conjunto en paralelo y configurar una vía de acceso de carga explícita. Si una aplicación utiliza cualquiera de estos mecanismos y la biblioteca IBM MQ de la versión posterior no está en la misma vía de acceso que el release anterior, debe volver a compilar o configurar y volver a enlazar la aplicación para cargar las bibliotecas de la versión posterior.