Search in sources :

Example 6 with TopicSession

use of javax.jms.TopicSession in project ACS by ACS-Community.

the class LaserComponent method initialize.

public void initialize() {
    this.logger = corbaServer.getLogger();
    defaultTopicConnectionFactory = new ACSJMSTopicConnectionFactory(alSysContSvcs);
    TopicConnection tc;
    TopicSession ts = null;
    try {
        tc = defaultTopicConnectionFactory.createTopicConnection();
        ts = tc.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
        Topic topicAdminCacheLoader = new ACSJMSTopic("CMW.ALARM_SYSTEM.ADMIN_CACHE_LOADER");
        subscriberAdminCacheLoader = ts.createSubscriber(topicAdminCacheLoader);
        subscriberAdminCacheLoader.setMessageListener(new MessageListener() {

            public void onMessage(Message message) {
                if (message instanceof TextMessage) {
                    logger.log(AcsLogLevel.DEBUG, "Received a JMS message");
                } else {
                    logger.log(AcsLogLevel.WARNING, "Received a non text JMS message");
                }
                try {
                    alarmMessageProcessor.process(message);
                } catch (Throwable t) {
                    logger.log(AcsLogLevel.ERROR, "Exception processing a message: " + t.getMessage(), t);
                // There is nothing to do at this level: log the exception
                // and be ready to process the next message
                }
            }
        });
        logger.log(AcsLogLevel.DEBUG, "JMS initialized");
    } catch (Throwable t) {
        System.err.println("Error initing JMS, " + t.getMessage());
        t.printStackTrace(System.err);
        logger.log(AcsLogLevel.ERROR, "Error initializing JMS", t);
        coreAlarms.add(LaserCoreFaultCodes.JMS_INIT);
    }
    ConfigurationAccessor conf = null;
    try {
        conf = ConfigurationAccessorFactory.getInstance(alSysContSvcs);
    } catch (Throwable t) {
        System.err.println("Error getting CDB: " + t.getMessage());
        t.printStackTrace(System.err);
        logger.log(AcsLogLevel.WARNING, "Error getting CDB", t);
        coreAlarms.add(LaserCoreFaultCodes.CDB_UNAVAILABLE);
    }
    adminUserDAO = new ACSAdminUserDAOImpl();
    alarmDAO = new ACSAlarmDAOImpl(logger);
    alarmDAO.setConfAccessor(conf);
    categoryDAO = new ACSCategoryDAOImpl(logger, alarmDAO);
    categoryDAO.setConfAccessor(conf);
    responsiblePersonDAO = new ACSResponsiblePersonDAOImpl();
    try {
        alarmDAO.loadAlarms();
    } catch (Throwable t) {
        System.err.println("Error loading alarms: " + t.getMessage());
        t.printStackTrace(System.err);
        logger.log(AcsLogLevel.CRITICAL, "Error loading alarms from CDB", t);
        coreAlarms.add(LaserCoreFaultCodes.ALARMS_CDB);
    }
    try {
        categoryDAO.loadCategories();
    } catch (Throwable t) {
        System.err.println("Error loading categories: " + t.getMessage());
        t.printStackTrace(System.err);
        logger.log(AcsLogLevel.CRITICAL, "Error loading categories from CDB", t);
        coreAlarms.add(LaserCoreFaultCodes.CATEGORIES_CDB);
    }
    sourceDAO = new ACSSourceDAOImpl(logger, alarmDAO.getSources());
    sourceDAO.setConfAccessor(conf);
    sourceDAO.setLaserSourceId("LASER");
    sourceDAO.setAlarmDAO(alarmDAO);
    sourceDAO.setResponsiblePersonDAO(responsiblePersonDAO);
    adminUserDefinitionService = new AdminUserDefinitionServiceImpl();
    alarmCacheServer = new AlarmCacheServerImpl(logger);
    alarmDefinitionService = new AlarmDefinitionServiceImpl();
    sourcesListener = new AlarmSourcesListenerCached(alSysContSvcs, logger, this);
    statisticsCalculator = new StatsCalculator(this.logger, sourcesListener);
    alarmMessageProcessor = new AlarmMessageProcessorImpl(this, logger, statisticsCalculator);
    alarmPublisher = new AlarmPublisherImpl(logger);
    alarmSourceMonitor = new AlarmSourceMonitorImpl();
    categoryDefinitionService = new CategoryDefinitionServiceImpl();
    coreService = new CoreServiceImpl();
    heartbeat = new HeartbeatImpl();
    mailAndSmsServer = new ACSMailAndSmsServer(logger);
    sourceDefinitionService = new SourceDefinitionServiceImpl();
    alarmCacheListener = new AlarmCacheListenerImpl(alarmCacheServer);
    alarmCache = new ACSAlarmCacheImpl(alarmDAO, categoryDAO, alarmCacheListener, logger);
    statisticsCalculator.start();
    alarmDAO.setSurveillanceAlarmId("SURVEILLANCE:SOURCE:1");
    alarmDAO.setResponsiblePersonDAO(responsiblePersonDAO);
    //		categoryDAO.setCategoryTreeRoot("ACS");
    categoryDAO.setCategoryTreeRoot("ROOT");
    categoryDAO.setSurveillanceCategoryPath("ACS.SURVEILLANCE");
    responsiblePersonDAO.setAlarmDAO(alarmDAO);
    adminUserDefinitionService.setCategoryDAO(categoryDAO);
    adminUserDefinitionService.setAdminUserDAO(adminUserDAO);
    alarmCacheServer.setAlarmDAO(alarmDAO);
    alarmCacheServer.setAlarmPublisher(alarmPublisher);
    alarmCacheServer.setMailAndSmsServer(mailAndSmsServer);
    alarmDefinitionService.setAlarmCache(alarmCache);
    alarmDefinitionService.setAdminUserDAO(adminUserDAO);
    alarmDefinitionService.setAlarmDAO(alarmDAO);
    alarmDefinitionService.setCategoryDAO(categoryDAO);
    alarmDefinitionService.setResponsiblePersonDAO(responsiblePersonDAO);
    alarmDefinitionService.setSourceDAO(sourceDAO);
    alarmDefinitionService.setAlarmMessageProcessor(alarmMessageProcessor);
    alarmDefinitionService.setAlarmPublisher(alarmPublisher);
    alarmMessageProcessor.setAlarmCache(alarmCache);
    alarmMessageProcessor.setSourceDAO(sourceDAO);
    alarmPublisher.setTopicConnectionFactory(defaultTopicConnectionFactory);
    alarmPublisher.setCategoryRootTopic("CMW.ALARM_SYSTEM.CATEGORIES");
    alarmSourceMonitor.setSourceDAO(sourceDAO);
    alarmSourceMonitor.setAlarmMessageProcessor(alarmMessageProcessor);
    alarmSourceMonitor.setSourceMonitorFrequency(60000);
    categoryDefinitionService.setAlarmCache(alarmCache);
    categoryDefinitionService.setAdminUserDAO(adminUserDAO);
    categoryDefinitionService.setAlarmDAO(alarmDAO);
    categoryDefinitionService.setCategoryDAO(categoryDAO);
    coreService.setAlarmCache(alarmCache);
    coreService.setResponsiblePersonDAO(responsiblePersonDAO);
    coreService.setSourceDAO(sourceDAO);
    coreService.setAlarmDAO(alarmDAO);
    coreService.setCategoryDAO(categoryDAO);
    coreService.setAlarmPublisher(alarmPublisher);
    // coreService.setDataSource(defaultDataSource);
    coreService.setClientRootTopic("CMW.ALARM_SYSTEM.CLIENTS");
    coreService.setRootCategoryPK(2064926);
    coreService.setHeartbeatTopic("CMW.ALARM_SYSTEM.HEARTBEAT");
    coreService.setHeartbeatFrequency(60000);
    coreService.setSearchRootTopic("CMW.ALARM_SYSTEM.SEARCH");
    heartbeat.setCoreService(coreService);
    heartbeat.setTopicConnectionFactory(defaultTopicConnectionFactory);
    sourceDefinitionService.setAlarmCache(alarmCache);
    sourceDefinitionService.setAdminUserDAO(adminUserDAO);
    sourceDefinitionService.setAlarmDAO(alarmDAO);
    sourceDefinitionService.setCategoryDAO(categoryDAO);
    sourceDefinitionService.setResponsiblePersonDAO(responsiblePersonDAO);
    sourceDefinitionService.setSourceDAO(sourceDAO);
    sourceDefinitionService.setAlarmDefinitionService(alarmDefinitionService);
    alarmDAO.setAlarmProcessor(alarmMessageProcessor);
    // Subscribe the source listener to all the source NCs
    try {
        sourcesListener.connectSources(sourceDAO.getAllSourceIDs());
        logger.log(AcsLogLevel.DEBUG, "Successfully connected to sources NCs");
    } catch (Throwable t) {
        System.err.println("Error setting source listener: " + t.getMessage());
        t.printStackTrace(System.err);
        logger.log(AcsLogLevel.WARNING, "Error setting the source listener", t);
        coreAlarms.add(LaserCoreFaultCodes.SOURCE_LISTENER);
    }
    sourcesListener.start();
}
Also used : AlarmPublisherImpl(cern.laser.business.pojo.AlarmPublisherImpl) TopicSession(javax.jms.TopicSession) ASIMessage(cern.laser.source.alarmsysteminterface.impl.message.ASIMessage) ACSJMSTextMessage(com.cosylab.acs.jms.ACSJMSTextMessage) Message(javax.jms.Message) TextMessage(javax.jms.TextMessage) MessageListener(javax.jms.MessageListener) AlarmCacheServerImpl(cern.laser.business.pojo.AlarmCacheServerImpl) ACSCategoryDAOImpl(com.cosylab.acs.laser.dao.ACSCategoryDAOImpl) CoreServiceImpl(cern.laser.business.pojo.CoreServiceImpl) ACSAdminUserDAOImpl(com.cosylab.acs.laser.dao.ACSAdminUserDAOImpl) ACSJMSTopicConnectionFactory(com.cosylab.acs.jms.ACSJMSTopicConnectionFactory) ACSJMSTopic(com.cosylab.acs.jms.ACSJMSTopic) StatsCalculator(alma.alarmsystem.statistics.StatsCalculator) AlarmCacheListenerImpl(cern.laser.business.cache.AlarmCacheListenerImpl) CategoryDefinitionServiceImpl(cern.laser.business.pojo.CategoryDefinitionServiceImpl) Topic(javax.jms.Topic) ACSJMSTopic(com.cosylab.acs.jms.ACSJMSTopic) AlarmDefinitionServiceImpl(cern.laser.business.pojo.AlarmDefinitionServiceImpl) ACSAlarmDAOImpl(com.cosylab.acs.laser.dao.ACSAlarmDAOImpl) SourceDefinitionServiceImpl(cern.laser.business.pojo.SourceDefinitionServiceImpl) ACSAlarmCacheImpl(com.cosylab.acs.laser.dao.ACSAlarmCacheImpl) AdminUserDefinitionServiceImpl(cern.laser.business.pojo.AdminUserDefinitionServiceImpl) TopicConnection(javax.jms.TopicConnection) AlarmMessageProcessorImpl(cern.laser.business.pojo.AlarmMessageProcessorImpl) ConfigurationAccessor(com.cosylab.acs.laser.dao.ConfigurationAccessor) ACSSourceDAOImpl(com.cosylab.acs.laser.dao.ACSSourceDAOImpl) ACSMailAndSmsServer(alma.alarmsystem.core.mail.ACSMailAndSmsServer) AlarmSourceMonitorImpl(cern.laser.business.pojo.AlarmSourceMonitorImpl) ACSJMSTextMessage(com.cosylab.acs.jms.ACSJMSTextMessage) TextMessage(javax.jms.TextMessage) HeartbeatImpl(cern.laser.business.pojo.HeartbeatImpl) ACSResponsiblePersonDAOImpl(com.cosylab.acs.laser.dao.ACSResponsiblePersonDAOImpl)

Example 7 with TopicSession

use of javax.jms.TopicSession in project wildfly by wildfly.

the class SimpleTimerMDBTestCase method sendMessage.

//the timer is created when the
public void sendMessage() throws Exception {
    final InitialContext ctx = new InitialContext();
    final TopicConnectionFactory factory = (TopicConnectionFactory) ctx.lookup("java:/JmsXA");
    final TopicConnection connection = factory.createTopicConnection();
    connection.start();
    try {
        final TopicSession session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
        final Message message = session.createTextMessage("Test");
        final Destination destination = (Destination) ctx.lookup("topic/myAwesomeTopic");
        final MessageProducer producer = session.createProducer(destination);
        producer.send(message);
        producer.close();
    } finally {
        connection.close();
    }
}
Also used : TopicConnectionFactory(javax.jms.TopicConnectionFactory) Destination(javax.jms.Destination) TopicSession(javax.jms.TopicSession) Message(javax.jms.Message) MessageProducer(javax.jms.MessageProducer) TopicConnection(javax.jms.TopicConnection) InitialContext(javax.naming.InitialContext)

Aggregations

TopicSession (javax.jms.TopicSession)7 Topic (javax.jms.Topic)4 TopicConnection (javax.jms.TopicConnection)4 TopicSubscriber (javax.jms.TopicSubscriber)3 MOMException (cern.cmw.mom.pubsub.MOMException)2 ACSJMSTextMessage (com.cosylab.acs.jms.ACSJMSTextMessage)2 JMSException (javax.jms.JMSException)2 JMSSecurityException (javax.jms.JMSSecurityException)2 Message (javax.jms.Message)2 TopicConnectionFactory (javax.jms.TopicConnectionFactory)2 NamingException (javax.naming.NamingException)2 Test (org.junit.Test)2 ACSMailAndSmsServer (alma.alarmsystem.core.mail.ACSMailAndSmsServer)1 StatsCalculator (alma.alarmsystem.statistics.StatsCalculator)1 AlarmCacheListenerImpl (cern.laser.business.cache.AlarmCacheListenerImpl)1 AdminUserDefinitionServiceImpl (cern.laser.business.pojo.AdminUserDefinitionServiceImpl)1 AlarmCacheServerImpl (cern.laser.business.pojo.AlarmCacheServerImpl)1 AlarmDefinitionServiceImpl (cern.laser.business.pojo.AlarmDefinitionServiceImpl)1 AlarmMessageProcessorImpl (cern.laser.business.pojo.AlarmMessageProcessorImpl)1 AlarmPublisherImpl (cern.laser.business.pojo.AlarmPublisherImpl)1