This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.
Configuring qpid-config.xml
The <MB_HOME>/repository/conf/advanced/qpid-config.xml
file is used to configure the QPID extension of WSO2 MB.
Note that this file is taken from the QPID broker and used only within the QPID extension in WSO2 MB. Some parameters in this file are overruled by the settings in the broker.xml file.
Following is a tree of the XML elements in the file:
<broker> <prefix> <work> <conf> <plugin-directory> <cache-directory> <connector> <qpidnio> <protectio> <enabled> <readBufferLimitSize> <writeBufferLimitSize> <transport> <socketReceiveBuffer> <socketSendBuffer> <management> <enabled> <jmxport> <ssl> <enabled> <keyStorePath> <keyStorePassword> <advanced> <filterchain> <enablePooledAllocator>false</enablePooledAllocator> <enableDirectBuffers>false</enableDirectBuffers> <framesize>65535</framesize> <compressBufferOnQueue>false</compressBufferOnQueue> <enableJMSXUserID>false</enableJMSXUserID> <locale>en_US</locale> <security> <pd-auth-manager> <principal-database> <class> <attributes> <attribute> <name> <value> <msg-auth> <virtualhosts> <heartbeat> <delay> <timeoutFactor> <queue> <auto_register> <viewMessageCounts>false</viewMessageCounts> <status-updates>ON</status-updates>
Click an element below for more information:
<broker>
This is the top level element of the qpid-config.xml
file. It contains all the other elements needed to configure WSO2 MB. The setting of the prefixes for ANDES_HOME and QPID_WORK allows environment variables to be used throughout the config.xml
file and removes the need for hard coding of paths in this file.
Configurable sub elements
These parameters relate to the original QPID distribution and are overruled by the configurations of the broker.xml file. Therefore they will not have the effect intended when they were introduced by QPID.
Element Name | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
<prefix> | This points to the directory in which the QPID source is located. | String | ${ANDES_HOME} | Mandatory | ||
<work> | This points to the directory in which the temporary data stored within QPID are located. e.g., Log files. | String | ${QPID_WORK} | Mandatory | ||
<conf> | This points to the directory in which the QPID configuration files are located. | String | ${prefix} | Mandatory | ||
<plugin-directory> | This points to the directory in which any plug-ins to QPID are located. | String | ${ANDES_HOME}/lib/plugins | Mandatory | ||
<cache-directory> | This points to the cache directory of QPID. | String | ${QPID_WORK}/cache | Mandatory |
<connector>
This element contains parameters relating to the various aspects of the connection between the WSO2 MB and the QPID broker.
<qpidnio>
This is a sub element of the <connector>
element.
Configurable sub elements
Element Name | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
<qpidnio> | QPIDNIO is enabled by setting this parameter to true . When QPIDNIO is enabled, a multi-threaded MINA socket acceptor will be set up. This socket acceptor will make an attempt to boost the performance by allowing both reading from and writing to a socket simultaneously. | Boolean | false | true/false | Mandatory | |
<transport> | This parameter determines which transport type to use to work with AMQP publishers/subscribers. | String | nio | Mandatory | ||
<port> | The port which corresponds with the port in which the non-secure Java Broker is run. | Integer | 5672 | Mandatory | ||
<socketReceiveBuffer> | The buffer size which applies to messages received by the socket. | Integer | 32768 | Mandatory | ||
<socketSendBuffer> | The buffer size for messages sent from the socket. | Integer | 32768 | Mandatory |
<protection>
This element contains parameters used to prevent the QPID broker from running out of memory because of run-away clients and unresponsive clients. The parameters in this section are overruled by the settings in the broker.xml file. Therefore they will not have the effect intended when they were introduced by QPID.
Configurable sub elements
Element Name | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
<enabled> | If the value is true , it means that the Protect I/O Configuration feature is enabled. | Boolean | false | |||
<readBufferLimitSize> | The buffer limit for messages read by the QPID broker. | Integer | 262144 | |||
<writeBufferLimitSize> | The buffer limit for messages sent by the QPID broker. | Integer | 262144 |
<management>
This configuration option is for managing the JMX console.
Since WSO2 MB uses its own management console, parameters in this section do not apply to WSO2 MB. The parameters relating to the WSO2 management console are described in the broker.xml file.
Configurable sub elements
Element Name | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
<enabled> | This element allows the user to switch the connectivity of the management console on/off. If the enabled tag is set to false you will not be able to connect a management console to this broker instance. | Boolean | true | true/false | Mandatory | |
<jmxport> | The JMX Management port. | Int | 8999 | N/A | Mandatory | |
<ssl> | SSL related configurations for the management console. | |||||
<enabled> | This is a sub element of the <ssl> element. This parameter determines whether SSL is enabled for the management console or not.. | Boolean | false | true/false | Mandatory | |
<keyStorePath> | This is a sub element of the <ssl> element. Update the path to your keystore location, or run the bin/create-example-ssl-stores (.sh|.bat) script from within the etc/ folder to generate an example store with a self-signed cert. | String | ${conf}/qpid.keystore | N/A | Mandatory | |
<keyStorePassword> | The password for the keystore provided. | String | password | N/A | Mandatory |
<advanced>
The elements in this section are used by the QPID extension within WSO2MB. At present, we do not recommend any changes to these settings.
Configurable sub elements
Element Name | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
<filterchain> | If the value is true , then the filter chain is activated. Thus, many filters will be applied to the requests and each filter would invoke the next filter in the chain. | Boolean | true | true/false | Mandatory | |
<enablePooledAllocator> | If this parameter is set to true , there will be a defined pool of ByteBuffers which will be used by the MINA socket acceptor to handle incoming messages. | Boolean | false | true/false | Mandatory | |
<enableDirectBuffers> | If this parameter is set to true , the MINA socket acceptor will use direct ByteBuffers instead of heap ByteBuffers. | Boolean | false | true/false | Mandatory | |
<framesize> | This parameter defines the buffer size when chunking the message content body as per the AMQP protocol. | Int | 65535 | N/A | Mandatory | |
<compressBufferOnQueue> | If this parameter is set to true , the ByteBuffers created by the MINA socket acceptor will be compressed for better performance. | Boolean | false | true/false | Mandatory | |
<enableJMSXUserID> | If this parameter is set to true , it allows JMX user to connect to the QPID broker management console. However, since the QPID management console is not active within the WSO2 MB, this parameter is not used. | Boolean | false | true/false | Mandatory | |
<locale> | This defines the language used by QPID to communicate its information/errors. | String | en_US | N/A | Mandatory |
<security>
The security section specifies exactly one authentication manager (responsible for determining that a user's credentials are correct) and zero or more access plugins ( which limit what the user may and may not do). No configuration changes are required in this section.
Configurable sub elements
Parameter Name | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
<pd-auth-manager> | This parameter contains the principle databases for which the authorization related parameters are set. | String | N/A | |||
<principle-database> | This element contains the principle database for which the authorisation related parameters apply. | String | N/A | |||
<class> | This parameter contains the authentication class which applies to the principle database. | String | org.wso2.carbon.andes.authentication.andes.CarbonBasedPrincipalDatabase |
<virtualhosts>
This element allows you to specify a location for the virtualhosts.xml
file that you wish to use. If you are not using a subdirectory under $QPID_HOME you can provide a fully qualified path instead. For more information on the content of the virtualhosts.xml
file please see Configuring qpid-virtualhosts.xml.
<heartbeat>
This element is used to enable heartbeat messaging between the broker and clients. This is required for handling TCP connections between the broker nodes and client systems (publishers and subscribers).
What is heartbeat messaging?
When a client is connected to the broker, both the broker and the client should be able to detect problem situations where the TCP connection is half open or where the connecting client/broker is unresponsive. This can be achieved by enabling heartbeat messaging between the broker and the client.
When this configuration is enabled, both the broker and the connecting client will be able to check if the connection is active, and if the connecting system (broker or client) is active by periodically sending heartbeat messages to each other.
For example, you can set the heartbeat delay time to 30 seconds. This means that if the broker (or the client) does not receive the expected response from the other system within 30 seconds, it will send a heartbeat message to check if the connection is inactive or if the other system is inactive. If the connection is inactive or is half-open, there will be a clear indication of connection failure. However, if the connection is active but the other system is unresponsive, the broker or the client will continue to send heartbeat messages (every 30 seconds). By default, the broker and clients are configured to terminate (timeout) the connection after sending two heartbeat messages; however, this timeout configuration can be changed.
Note: In a scenario where the subscriber client is sending the heartbeat message to the broker node, if the connection is found to be broken or if the broker node is inactive, the connection will failover to another broker node in the cluster.
Configurable sub elements
Element Name | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
<delay> | This element specifies the time interval between heartbeat messages. This is the time that the broker or client will wait to receive a response from the other party. If the response is not received within this time, a heartbeat message is triggered. The recommended heartbeat delay is 30 seconds. | Int | 0 | N/A | This value is given in seconds. | |
<timeoutFactor> | The number of heartbeat messages the broker will send to the client before terminating the connection. That is, if the timeoutFactor is 2, the broker will send heartbeat messages every 30 seconds twice, and if a response is not received from the client, the connection will be terminated. | Float | 2.0 | N/A | This value is given in seconds. |
<queue>
This parameter should NOT be changed lightly as it sets the broker up to automatically bind queues to exchanges. It could be used to prevent users from creating new queues at runtime, assuming that you have created all queues/topics etc at broker startup. However, it is recommended to leave the parameter unchanged for now.
Configurable sub elements
Element Name | Description | Type | Default Value | Fixed Values | Mandatory/Optional | Notes |
---|---|---|---|---|---|---|
<auto_register> | This parameter determines whether to register the queue name in the server at the time it is created or not. | Boolean | true | true/false | ||
<viewMessageCounts> | If this parameter is set to true, the queue message counters are activated. As a result, the message count of each queue is displayed in the admin console by default. When this parameter is set to | Boolean | false | true/false | Optional | Setting this parameter to true has a direct impact on the broker performance. Therefore, change the value to true only when a performance degradation is acceptable. |
<status-updates>
If the value for this parameter is on
, status updates from the QPID broker will be generated.