Actualizando registros de BizTalk Adapters

Muchos de nosotros hemos instalado nuevos adaptadores en la plataforma de BizTalk para posteriormente utilizarlos en los procesos de integración; básicamente en la instalación de un adaptador se deben seguir dos pasos, primero se debe de registrar el adaptador por medio de un archivo .reg (Adapter Registration) y posteriormente se debe de crear la instancia del adaptador en la plataforma de BizTalk por medio de la consola administrativa, por último basta con relacionar el adaptador con cada uno de los puertos configurados para los procesos de integración.

Normalmente este proceso es fácil y no tiene complicaciones, sin embargo en ocasiones al ejecutarse los puertos (Receive and Send Ports) no se inicia algún proceso integrador y al verificar el log (Event Log) nos damos cuenta que se presentó un error por que BizTalk no logró encontrar el assembly que guarda la implementación del adaptador. Esto sucede ya que BizTalk cuando crea la instancia del adaptador no verifica la ruta inicial del assembly relacionado con el mismo, por lo tanto puede existir la posibilidad de la falla por un descuido en la creación inicial del archivo .reg de registro. 

Para solucionar este inconveniente existen dos opciones, una larga y sencilla o la otra mas corta pero de cuidado. En ambos casos, lo primero que se debe de hacer es modificar el archivo .reg con la información actualizada y volverlo a registrar, seguido a esto existen una serie de pasos y por ultimo nuevamente de ejecutarse en ambos lados se debe de reiniciar las instancias de Biztalk para que carguen la nueva configuración. A continuación se presentan los pasos intermedios en ambos procedimientos:

Primera solución

  1. 1. Actualizar y registrar nuevamente el archivo .reg que guarda la información del BizTalk Adapter.
  2. Eliminar la configuración de los puertos que tienen asociado el nuevo adaptador.
  3. Eliminar el adaptador de la plataforma de BizTalk por medio de la consola administrativa.
  4. Crear nuevamente el adaptador por medio de la consola administrativa.
  5. Configurar los puertos necesarios a utilizar el adaptador.
  6. Reiniciar los servicios de BizTalk Server.

Segunda solución

  1. Actualizar y registrar nuevamente el archivo .reg que guarda la información del BizTalk Adapter.
  2. Cambiar la configuración en la base de datos de administración de BizTalk Server en SQL Server para el adaptador elegido.
  3. Reiniciar los servicios de BizTalk Server.

A nivel personal la solución que mas me agrada es la segunda :), pero se debe tener cuidado de esta solución ya que es necesario modificar manualmente los registros de los adaptadores de la base de datos administrativa de BizTalk Server y por ende cualquier “daño” provocado en ella podría ocasionar un problema mayor. Para ello se ha creado una pequeña utilidad (bajar) que actualiza la información relacionada con un adaptador en la base de datos referente a las rutas del assembly. Los pasos a seguir son sencillos:

  1. Modificar el archivo .reg con las rutas buenas y volverlo a registrar.
  2. Ejecutar la utilidad y seleccionar el adaptador a actualizar.
  3. En forma opcional, se pueden reiniciar los servicios de BizTalk para que la nueva configuración tome efecto.
  4. Dar clic en el botón de actualizar.

El código fuente es sencillo, selecciona los adaptadores de registrados en la base de datos de BizTalk y los actualiza con sus correspondientes registros en “Windows Registry”. En forma adicional se brinda la posibilidad de reiniciar todas los servicios de BizTalk, para este ultimo doy gracias a Tomas Restrepo (MVP) por el código fuente para el reinicio.

Como dije anteriormente esta solución es muy eficaz cuando ya hemos desplegado el adaptador y configurado mas de un puerto que deba utilizar nuestras aplicaciones de integración ya que nos evita el tener que modificar cada uno de los puertos y recrear nuevamente el adaptador en BizTalk, sin embargo se deben de tener algunas consideraciones en el momento de ejecutarlo como lo pueden ser:

  • No estar ejecutando ningún proceso de integración, ya que la actualización requiere el reinicio de los servicios de BizTalk y esto puede causar algún daño de gravedad.
  • El usuario que ejecute la utilidad debe de tener permisos de administración, esto por que la conexión a la base de datos es integrada, “Integrated Security”, y es necesaria el reinicio de los servicios de BizTalk.

Espero sea de utilidad.

Autor: Carlos Medina

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho