2 * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.vpnservice.itm.monitoring;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
12 import javax.management.*;
13 import java.lang.management.ManagementFactory;
15 * Created by emnqrrw on 11/2/2015.
17 public class JMXAlarmAgent {
18 static Logger s_logger = LoggerFactory.getLogger(JMXAlarmAgent.class);
19 private MBeanServer mbs = null;
20 private ObjectName alarmName = null;
21 private static final String BEANNAME = "SDNC.FM:name=DataPathAlarmBean";
22 private static DataPathAlarm alarmBean= new DataPathAlarm();
24 public JMXAlarmAgent() {
25 // Get the platform MBeanServer
26 mbs = ManagementFactory.getPlatformMBeanServer();
28 alarmName = new ObjectName(BEANNAME);
29 } catch (MalformedObjectNameException e) {
30 s_logger.error("ObjectName instance creation failed for BEANAME {} : {}",BEANNAME, e);
34 public void registerMbean() {
35 // Unique identification of MBeans
37 // Uniquely identify the MBeans and register them with the platform MBeanServer
38 if(!mbs.isRegistered(alarmName)) {
39 mbs.registerMBean(alarmBean, alarmName);
40 s_logger.debug("Registered Mbean {} successfully", alarmName);
42 } catch(Exception e) {
43 s_logger.error("Registeration failed for Mbean {} :{}", alarmName,e);
47 public void unregisterMbean() {
49 if(mbs.isRegistered(alarmName)) {
50 mbs.unregisterMBean(alarmName);
51 s_logger.debug("Unregistered Mbean {} successfully", alarmName);
53 } catch (Exception e) {
54 s_logger.error("UnRegisteration failed for Mbean {} :{}", alarmName,e);
58 public void invokeFMraisemethod(String alarmId,String text,String src) {
60 mbs.invoke(alarmName, "raiseAlarm", new Object[]{alarmId, text, src}, new String[]{String.class.getName(), String.class.getName(), String.class.getName()});
61 s_logger.trace("Invoked raiseAlarm function for Mbean {} with source {}", BEANNAME, src);
62 } catch (Exception e) {
63 s_logger.error("Invoking raiseAlarm method failed for Mbean {} :{}", alarmName,e);
67 public void invokeFMclearmethod(String alarmId,String text,String src) {
69 mbs.invoke(alarmName, "clearAlarm", new Object[]{alarmId, text, src}, new String[]{String.class.getName(), String.class.getName(), String.class.getName()});
70 s_logger.trace("Invoked clearAlarm function for Mbean {} with source {}",BEANNAME,src);
71 } catch (Exception e) {
72 s_logger.error("Invoking clearAlarm method failed for Mbean {} :{}", alarmName,e);