01: /*
02: * JBoss, Home of Professional Open Source.
03: * Copyright 2006, Red Hat Middleware LLC, and individual contributors
04: * as indicated by the @author tags. See the copyright.txt file in the
05: * distribution for a full listing of individual contributors.
06: *
07: * This is free software; you can redistribute it and/or modify it
08: * under the terms of the GNU Lesser General Public License as
09: * published by the Free Software Foundation; either version 2.1 of
10: * the License, or (at your option) any later version.
11: *
12: * This software is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this software; if not, write to the Free
19: * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20: * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21: */
22: package org.jboss.monitor.alarm;
23:
24: /**
25: * Alarm Constants.
26: *
27: * An alarm can be of two types:
28: *
29: * Stateless, when the producing MBean keeps no state about the occurence
30: * of the alarm. The produced alarm notification must have alarmState STATE_NONE
31: * and the valid severities are SEVERITY_NORMAL -> SEVERITY_UNKNOWN
32: *
33: * Stateful, when the producing MBean keeps state about the occurence
34: * of the alarm. The first notification must carry alarmState STATE_CREATED,
35: * with valid severities SEVERITY_WARNING -> SEVERITY_UNKNOWN. Any change
36: * in the alarm (severity) must generate an alarm notification with alarmState
37: * STATE_CHANGED and valid severities SEVERITY_WARNING -> SEVERITY_UNKNOWN.
38: * The clearance of the alarm must be indicates with an alarm notification
39: * with alarmState STATE_CLEARED and a severity of SEVERITY_NORMAL.
40: *
41: * This complexity is required in order to be able to easily correlate
42: * alarms and associaty the generation and clearence of system faults.
43: *
44: * @author <a href="mailto:dimitris@jboss.org">Dimitris Andreadis</a>
45: * @version $Revision: 57210 $
46: */
47: public interface Alarm {
48: // Constants -----------------------------------------------------
49:
50: /** default server id */
51: public static final String DEFAULT_SERVER_ID = "jboss";
52:
53: /** the possible states of an alarm */
54: public static final int STATE_CLEARED = 0;
55: public static final int STATE_CHANGED = 1;
56: public static final int STATE_CREATED = 2;
57: public static final int STATE_NONE = 3;
58:
59: /** stringfied alarm states */
60: public static final String[] STATE_STRINGS = { "CLEARED",
61: "CHANGED", "CREATED", "NONE" };
62:
63: /** the possible severities of an alarm */
64: public static final int SEVERITY_NORMAL = 0;
65: public static final int SEVERITY_WARNING = 1;
66: public static final int SEVERITY_MINOR = 2;
67: public static final int SEVERITY_MAJOR = 3;
68: public static final int SEVERITY_CRITICAL = 4;
69: public static final int SEVERITY_UNKNOWN = 5;
70:
71: /** stringfied severities */
72: public static final String[] SEVERITY_STRINGS = { "NORMAL",
73: "WARNING", "MINOR", "MAJOR", "CRITICAL", "UNKNOWN" };
74: }
|