void MonitorPlugInActiveMQ::initializeTopics(Topics &topics) { if (m_bConnected == false) { throw RuntimeException(__FILE__, __LINE__, "Tried to initialize topics without established ActiveMQ connection. Call initializeActiveMqConnection() first."); } Topics::iterator i; TopicInfo *pTopicInfo; // create new producers for (i = topics.begin(); i != topics.end(); i++) { pTopicInfo = i->second; if (pTopicInfo->bUseTopic) { pTopicInfo->destination = m_session->createTopic(pTopicInfo->destUri); } else { pTopicInfo->destination = m_session->createQueue(pTopicInfo->destUri); } pTopicInfo->producer = m_session->createProducer(pTopicInfo->destination); if (pTopicInfo->bDeliveryModePersistent) { pTopicInfo->producer->setDeliveryMode(DeliveryMode::PERSISTENT); } else { pTopicInfo->producer->setDeliveryMode(DeliveryMode::NON_PERSISTENT); } FILE_LOG(logINFO) << "Topic destination \"" << pTopicInfo->destination << "\" created"; } FILE_LOG(logINFO) << "Topics initialized"; m_bTopicsInitialized = true; }