_asyncSession = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
_syncSession = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create a MessageProducer for the QMF topic address used to broadcast Events & Heartbeats.
Destination topicAddress = _syncSession.createQueue(topicBase);
_broadcaster = _syncSession.createProducer(topicAddress);
_broadcastAddress = "'" + topicBase + "'";
// Create a MessageProducer for the QMF direct address, mainly used for request/response
Destination directAddress = _syncSession.createQueue(directBase);
_responder = _syncSession.createProducer(directAddress);
// TODO it should be possible to bind _locateConsumer, _mainConsumer and _aliasConsumer to the
// same queue if I can figure out the correct AddressString to use, probably not a big deal though.
// Set up MessageListener on the Agent Locate Address
Destination locateAddress = _asyncSession.createQueue(topicBase + "/console.request.agent_locate");
_locateConsumer = _asyncSession.createConsumer(locateAddress);
_locateConsumer.setMessageListener(this);
// Set up MessageListener on the Agent address
Destination agentAddress = _asyncSession.createQueue(address);
_mainConsumer = _asyncSession.createConsumer(agentAddress);
_mainConsumer.setMessageListener(this);
// If the product name has been set to qpidd we create an additional consumer address of
// "qmf.default.direct/broker" in addition to the main address so that Consoles can talk to the
// broker Agent without needing to do Agent discovery. This is only really needed when the Agent
// class has been used to create the QmfManagementAgent for the Java broker QmfManagementPlugin.
// It's important to do this as many tools (such as qpid-config) and demo code tend to use the
// alias address rather than the discovered address when talking to the broker ManagementAgent.
if (_product.equals("qpidd"))
{
String alias = directBase + "/broker";
_log.info("Creating address {} as an alias address for the broker Agent", alias);
Destination aliasAddress = _asyncSession.createQueue(alias);
_aliasConsumer = _asyncSession.createConsumer(aliasAddress);
_aliasConsumer.setMessageListener(this);
}
_connection.start();