WebSphere Message Broker, Version 8.0.0.7 Operating Systems: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

See information about the latest product version

cciGetBrokerInfo

Use the cciGetBrokerInfo function to query the current broker environment (for example, for information about broker name, execution group name, queue manager name). The information is returned in a structure of type CCI_BROKER_INFO_ST.

This function differs from cniGetBrokerInfo in that you do not have to specify a CciNode* handle, and that it does not return information about a message flow. Therefore, you can call cciGetBrokerInfo from initialization functions; for example, bipInitializeUserExits, bipGetMessageParserFactory, and bipGetMessageFlowNodeFactory.

Syntax

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

Parameters

returnCode (output)
Receives the return code from the function (output).
Possible return codes are:
  • CCI_SUCCESS
  • CCI_INV_BROKER_INFO_ST
  • CCI_EXCEPTION
broker_info_st (output)
The address of a CCI_BROKER_INFO_ST structure to be populated with the relevant values on successful completion:
typedef struct cci_broker_info_st {
int	versionId;			/*Structure version identification*/
CCI_STRING_ST brokerName;		/*The label of the broker*/
CCI_STRING_ST executionGroupName;	/*The label of the current execution group*/
CCI_STRING_ST queueManagerName;		/*The name of the MQ Queue Manager for the broker*/
CCI_STRING_ST dataSourceUserId;		/*The userid broker connects to datasource as*/
} CCI_BROKER_INFO_ST;

Return values

None. If an error occurs, the returnCode parameter indicates the reason for the error.

Example

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);
}
Notices | Trademarks | Downloads | Library | Support | Feedback

Copyright IBM Corporation 1999, 2016Copyright IBM Corporation 1999, 2016.

        
        Last updated:
        
        Last updated: 2016-05-23 14:47:34


Reference topicReference topic | Version 8.0.0.7 | as36040_