WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

cciGetBrokerInfo

Mit der Funktion cciGetBrokerInfo können Sie die aktuelle Brokerumgebung abfragen (z. B. Name des Brokers, Name der Ausführungsgruppe, Name des Warteschlangenmanagers). Die Informationen werden in einer Struktur des Typs CCI_BROKER_INFO_ST zurückgegeben.

Diese Funktion unterscheidet sich von cniGetBrokerInfo darin, dass keine CciNode*-Kennung angegeben werden muss und keine Informationen zu Nachrichtenflüssen zurückgegeben werden. Daher kann cciGetBrokerInfo aus Initialisierungsfunktionen heraus aufgerufen werden, beispielsweise aus bipInitializeUserExits, bipGetMessageParserFactory und bipGetMessageFlowNodeFactory.

Syntax

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

Parameter

returnCode (Ausgabe)
Empfängt den Rückkehrcode von der Funktion (Ausgabe).
Mögliche Rückkehrcodes sind:
  • CCI_SUCCESS
  • CCI_INV_BROKER_INFO_ST
  • CCI_EXCEPTION
broker_info_st(Ausgabe)
Die Adresse einer CCI_BROKER_INFO_ST-Struktur, die bei einem erfolgreichen Abschluss mit den relevanten Werten gefüllt werden soll:
typedef struct cci_broker_info_st {
int	versionId;			/*Kennzeichnung der Strukturversion*/
CCI_STRING_ST brokerName;		/*Brokerbezeichnung*/
CCI_STRING_ST executionGroupName;	/*Bezeichnung der aktuellen Ausführungsgruppe*/
CCI_STRING_ST queueManagerName;		/*Name des MQ-WS-Managers für den Broker*/
CCI_STRING_ST dataSourceUserId;		/*Brokerbenutzer-ID für die Verbindung mit Datenquelle*/
} CCI_BROKER_INFO_ST;

Rückgabewerte

Keine. Wenn ein Fehler auftritt, gibt der Parameter Rückkehrcode den Grund für den Fehler an.

Beispiel

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);

/* just in case any of the buffers were too short*/
if ((brokerInfo.brokerName.bytesOutput < brokerInfo.brokerName.dataLength) ||
    (brokerInfo.executionGroupName.bytesOutput < brokerInfo.executionGroupName.dataLength) ||
    (brokerInfo.queueManagerName.bytesOutput < brokerInfo.queueManagerName.dataLength)) {

  /*at least one of the buffer were too short, need to rerty*/
  /* NOTE this is unlikely given that the initial sizes were reasonably large*/

  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);

  /*now do something sensible with these strings before the buffers go out of scope*/
  /* for example call a user written function to copy them away*/
  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{
  /*now do something sensible with these strings before the buffers go out of scope*/
  /* for example call a user written function to copy them away*/
  copyBrokerInfo(brokerInfo.brokerName.buffer,
                 brokerInfo.executionGroupName.buffer,
                 brokerInfo.queueManagerName.buffer);
}
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:22:09


ReferenzthemaReferenzthema | Version 8.0.0.5 | as36040_