WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

cciGetBrokerInfo

Utilice la función cciGetBrokerInfo para consultar el entorno del intermediario actual (por ejemplo, para obtener información sobre el nombre del intermediario, el nombre del grupo de ejecución, el nombre del gestor de colas). La información se devuelve en una estructura de tipo CCI_BROKER_INFO_ST.

Esta función se diferencia de la función cniGetBrokerInfo en que no es necesario especificar un manejador CciNode* y en que no devuelve información sobre el flujo de mensaje. Por lo tanto, se puede invocar cciGetBrokerInfo desde las funciones de inicialización; por ejemplo, bipInitializeUserExits, bipGetMessageParserFactory y bipGetMessageFlowNodeFactory.

Sintaxis

void cciGetBrokerInfo(
                      int*                returnCode,
                      CCI_BROKER_INFO_ST* broker_info_st);

Parámetros

returnCode (salida)
Recibe el código de retorno de la función (salida).
Los códigos de retorno posibles son:
  • CCI_SUCCESS
  • CCI_INV_BROKER_INFO_ST
  • CCI_EXCEPTION
broker_info_st (salida)
La dirección de una estructura CCI_BROKER_INFO_ST que se ha de rellenar con los valores relevantes una vez finalizada correctamente:
typedef struct cci_broker_info_st {
int	versionId;			/*Identificación de versión de estructura*/
CCI_STRING_ST brokerName;		/*La etiqueta del intermediario*/
CCI_STRING_ST executionGroupName;	/*La etiqueta del grupo de ejecución actual*/
CCI_STRING_ST queueManagerName;		/*El nombre del gestor de colas MQ para el intermediario*/
CCI_STRING_ST dataSourceUserId;		/*El idusuario con el que el intermediario se conecta al origen de datos*/
} CCI_BROKER_INFO_ST;

Valores de retorno

Ninguno. Si se produce un error, el parámetro returnCode indica la razón del mismo.

Ejemplo

int rc = CCI_SUCCESS;

CCI_BROKER_INFO_ST brokerInfo = {CCI_BROKER_INFO_ST_DEFAULT};

#define INTITIAL_STR_LEN 256
CciChar brokerNameStr[INTITIAL_STR_LEN];
CciChar executionGroupNameStr[INTITIAL_STR_LEN];
CciChar queueManagerNameStr[INTITIAL_STR_LEN];

brokerInfo.brokerName.bufferLength = INTITIAL_STR_LEN;
brokerInfo.brokerName.buffer       = brokerNameStr;

brokerInfo.executionGroupName.bufferLength = INTITIAL_STR_LEN;
brokerInfo.executionGroupName.buffer = executionGroupNameStr;

brokerInfo.queueManagerName.bufferLength = INTITIAL_STR_LEN;
brokerInfo.queueManagerName.buffer = queueManagerNameStr;

cciGetBrokerInfo(&rc,&brokerInfo);

/* por si se da el caso de que los almacenamientos intermedios sean muy cortos*/
if ((brokerInfo.brokerName.bytesOutput         < brokerInfo.brokerName.dataLength)  ||
    (brokerInfo.executionGroupName.bytesOutput <  brokerInfo.executionGroupName.dataLength) ||
    (brokerInfo.queueManagerName.bytesOutput   <  brokerInfo.queueManagerName.dataLength))  {

  /*al menos uno de los almacenamientos intermedios era demasiado corto, se ha de reintentar*/
  /* Tenga en cuenta que es improbable ya que los tamaños iniciales eran lo suficientemente grandes*/

  brokerInfo.brokerName.bufferLength =
     brokerInfo.brokerName.dataLength;
  brokerInfo.brokerName.buffer       = 
    (CciChar*)malloc (brokerInfo.brokerName.bufferLength * sizeof(CciChar));

  brokerInfo.executionGroupName.bufferLength = 
    brokerInfo.executionGroupName.dataLength;
  brokerInfo.executionGroupName.buffer       = 
    (CciChar*)malloc (brokerInfo.executionGroupName.bufferLength * sizeof(CciChar));

  brokerInfo.queueManagerName.bufferLength = 
    brokerInfo.queueManagerName.dataLength;
  brokerInfo.queueManagerName.buffer       = 
    (CciChar*)malloc (brokerInfo.queueManagerName.bufferLength * sizeof(CciChar)); 

  cciGetBrokerInfo(&rc,&brokerInfo);

  /*ahora efectúe algo razonable con las series antes de que los almacenamientos intermedios queden fuera de ámbito*/
  /* por ejemplo, llame a una función escrita por el usuario para grabarlas fuera*/
  copyBrokerInfo(brokerInfo.brokerName.buffer,
                 brokerInfo.executionGroupName.buffer,
                 brokerInfo.queueManagerName.buffer);

  free((void*)brokerInfo.brokerName.buffer);
  free((void*)brokerInfo.executionGroupName.buffer);
  free((void*)brokerInfo.queueManagerName.buffer);

}else{
  /*ahora efectúe algo razonable con las series antes de que los almacenamientos intermedios queden fuera de ámbito*/
  /* por ejemplo, llame a una función escrita por el usuario para grabarlas fuera*/
  copyBrokerInfo(brokerInfo.brokerName.buffer,
                 brokerInfo.executionGroupName.buffer,
                 brokerInfo.queueManagerName.buffer);
}
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:31


Tema de referenciaTema de referencia | Versión 8.0.0.5 | as36040_