*/\r
package org.openo.holmes.common.producer;\r
\r
+import java.io.Serializable;\r
import javax.inject.Inject;\r
import javax.jms.Connection;\r
import javax.jms.ConnectionFactory;\r
private ConnectionFactory connectionFactory;\r
\r
public void sendAlarmMQTopicMsg(Alarm alarm) {\r
+ sendMQTopicMsg(alarm);\r
+ }\r
+\r
+ public void sendCorrelationMQTopicMsg(String ruleId, long createTimeL, Alarm parentAlarm,\r
+ Alarm childAlarm) {\r
+ CorrelationResult correlationResult = getCorrelationResult(ruleId, createTimeL, parentAlarm, childAlarm);\r
+ sendMQTopicMsg(correlationResult);\r
+ }\r
\r
+ private <T> void sendMQTopicMsg(T t) {\r
+ Serializable msgEntity = (Serializable) t;\r
Connection connection = null;\r
Session session;\r
Destination destination;\r
MessageProducer messageProducer;\r
+\r
try {\r
connection = connectionFactory.createConnection();\r
connection.start();\r
session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\r
- destination = session.createTopic(AlarmConst.MQ_TOPIC_NAME_ALARM);\r
+ destination = session.createTopic(AlarmConst.MQ_TOPIC_NAME_ALARMS_CORRELATION);\r
messageProducer = session.createProducer(destination);\r
- ObjectMessage message = session.createObjectMessage(alarm);\r
+ ObjectMessage message = session.createObjectMessage(msgEntity);\r
messageProducer.send(message);\r
session.commit();\r
} catch (Exception e) {\r
- log.error("Failed send alarm." + e.getMessage(), e);\r
+ log.error("Failed send correlation." + e.getMessage(), e);\r
} finally {\r
if (connection != null) {\r
try {\r
}\r
}\r
\r
- public void sendCorrelationMQTopicMsg(String ruleId, long createTimeL, Alarm parentAlarm,\r
+ private CorrelationResult getCorrelationResult(String ruleId, long createTimeL, Alarm parentAlarm,\r
Alarm childAlarm) {\r
-\r
CorrelationResult correlationResult = new CorrelationResult();\r
correlationResult.setRuleId(ruleId);\r
correlationResult.setCreateTimeL(createTimeL);\r
correlationResult.setResultType(AplusResult.APLUS_CORRELATION);\r
correlationResult.setAffectedAlarms(new Alarm[]{parentAlarm, childAlarm});\r
-\r
- Connection connection = null;\r
- Session session;\r
- Destination destination;\r
- MessageProducer messageProducer;\r
-\r
- try {\r
- connection = connectionFactory.createConnection();\r
- connection.start();\r
- session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\r
- destination = session.createTopic(AlarmConst.MQ_TOPIC_NAME_ALARMS_CORRELATION);\r
- messageProducer = session.createProducer(destination);\r
- ObjectMessage message = session.createObjectMessage(correlationResult);\r
- messageProducer.send(message);\r
- session.commit();\r
- } catch (Exception e) {\r
- log.error("Failed send correlation." + e.getMessage(), e);\r
- } finally {\r
- if (connection != null) {\r
- try {\r
- connection.close();\r
- } catch (JMSException e) {\r
- log.error("Failed close connection." + e.getMessage(), e);\r
- }\r
- }\r
- }\r
+ return correlationResult;\r
}\r
}\r