1 22 23 package org.continuent.sequoia.common.jmx; 24 25 import java.text.MessageFormat ; 26 27 import javax.management.MalformedObjectNameException ; 28 import javax.management.ObjectName ; 29 30 36 public final class JmxConstants 37 { 38 39 40 public static final String ADAPTOR_TYPE_RMI = "rmiAdaptor"; 42 43 public static final String CONNECTOR_AUTH_USERNAME = "jmx.auth.username"; 45 public static final String CONNECTOR_AUTH_PASSWORD = "jmx.auth.password"; 47 48 public static final int DEFAULT_JMX_RMI_PORT = 1090; 49 50 54 private static final String SEQUOIA_DOMAIN_NAME = "sequoia"; 56 57 private static final String CONTROLLER_TYPE_VALUE = "Controller"; 59 public static final String VIRTUALDATABASE_TYPE_VALUE = "VirtualDataBase"; 61 public static final String DATABASEBACKEND_TYPE_VALUE = "VirtualDataBase.Backend"; 63 private static final String DATACOLLECTOR_TYPE_VALUE = "datacollector"; 65 private static final String DATACOLLECTOR = "datacollector"; 67 private static final String SEQUOIA_TYPE_CACHE = "cache"; 69 private static final String CONTROLLER_OBJECTNAME = "sequoia:type=Controller"; private static final String VIRTUALDATABASE_OBJECTNAME_PATTERN = "sequoia:type=VirtualDataBase,name={0}"; private static final String DATABASEBACKEND_OBJECTNAME_PATTERN = "sequoia:type=VirtualDataBase.Backend,VirtualDataBase={0},name={1}"; private static final String BACKENDTASKQUEUES_OBJECTNAME_PATTERN = "sequoia:type=VirtualDataBase.Backend.TaskQueues,VirtualDataBase={0},Backend={1}"; private static final String RECOVERYLOG_OBJECTNAME_PATTERN = "sequoia:type=VirtualDataBase.RecoveryLog,VirtualDataBase={0}"; private static final String LOADBALANCER_OBJECTNAME_PATTERN = "sequoia:type=VirtualDataBase.LoadBalancer,VirtualDataBase={0}"; private static final String REQUESTMANAGER_OBJECTNAME_PATTERN = "sequoia:type=VirtualDataBase.RequestManager,VirtualDataBase={0}"; private static final String ABSTRACTSCHEDULER_OBJECTNAME_PATTERN = "sequoia:type=VirtualDataBase.AbstractScheduler,VirtualDataBase={0}"; private static final String PARSINGCACHE_OBJECTNAME_PATTERN = "sequoia:type=VirtualDataBase.RequestManager.ParsingCache,VirtualDataBase={0}"; 87 88 public static final String VIRTUALDATABASE_PROPERTY = "VirtualDataBase"; 90 99 private static ObjectName getJmxObjectName(String name, String type) 100 { 101 try 102 { 103 return new ObjectName (SEQUOIA_DOMAIN_NAME + ":type=" + type + ",name=" 104 + name); 105 } 106 catch (Exception e) 107 { 108 e.printStackTrace(); 109 return null; 111 } 112 } 113 114 121 public static ObjectName getControllerObjectName() 122 throws MalformedObjectNameException 123 { 124 return new ObjectName (CONTROLLER_OBJECTNAME); 125 } 126 127 134 public static ObjectName getVirtualDataBaseObjectName( 135 String virtualDataBaseName) throws MalformedObjectNameException 136 { 137 return new ObjectName (MessageFormat.format( 138 VIRTUALDATABASE_OBJECTNAME_PATTERN, new String []{virtualDataBaseName})); 139 } 140 141 146 public static ObjectName getDataCollectorObjectName() 147 { 148 return getJmxObjectName(DATACOLLECTOR, DATACOLLECTOR_TYPE_VALUE); 149 } 150 151 160 public static ObjectName getDatabaseBackendObjectName( 161 String virtualDataBaseName, String name) 162 throws MalformedObjectNameException 163 { 164 return new ObjectName (MessageFormat.format( 165 DATABASEBACKEND_OBJECTNAME_PATTERN, new String []{virtualDataBaseName, 166 name})); 167 } 168 169 178 public static ObjectName getRecoveryLogObjectName(String vdbName) 179 throws MalformedObjectNameException 180 { 181 return new ObjectName (MessageFormat.format(RECOVERYLOG_OBJECTNAME_PATTERN, 182 new String []{vdbName})); 183 } 184 185 191 public static ObjectName getCacheObjectName(String vdbName) 192 { 193 return getJmxObjectName(vdbName + "--cache", SEQUOIA_TYPE_CACHE); 194 } 195 196 206 public static ObjectName getRequestManagerObjectName(String vdbName) 207 throws MalformedObjectNameException 208 { 209 return new ObjectName (MessageFormat.format( 210 REQUESTMANAGER_OBJECTNAME_PATTERN, new String []{vdbName})); 211 } 212 213 223 public static ObjectName getLoadBalancerObjectName(String vdbName) 224 throws MalformedObjectNameException 225 { 226 return new ObjectName (MessageFormat.format(LOADBALANCER_OBJECTNAME_PATTERN, 227 new String []{vdbName})); 228 } 229 230 240 public static ObjectName getBackendTaskQueuesObjectName(String vdbName, 241 String backendName) throws MalformedObjectNameException 242 { 243 return new ObjectName (MessageFormat.format( 244 BACKENDTASKQUEUES_OBJECTNAME_PATTERN, 245 new String []{vdbName, backendName})); 246 } 247 248 255 public static ObjectName getAbstractSchedulerObjectName(String vdbName) 256 throws MalformedObjectNameException 257 { 258 return new ObjectName (MessageFormat.format( 259 ABSTRACTSCHEDULER_OBJECTNAME_PATTERN, new String []{vdbName})); 260 } 261 262 269 public static ObjectName getParsingCacheObjectName(String vdbName) 270 throws MalformedObjectNameException 271 { 272 return new ObjectName (MessageFormat.format(PARSINGCACHE_OBJECTNAME_PATTERN, 273 new String []{vdbName})); 274 } 275 276 285 public static boolean mbeanNeedAuthentication(ObjectName mbean) 286 { 287 String type = mbean.getKeyProperty("type"); if (type == null) 289 { 290 return false; 291 } 292 if (type.equalsIgnoreCase(CONTROLLER_TYPE_VALUE) 293 || type.equalsIgnoreCase(DATACOLLECTOR_TYPE_VALUE)) 294 { 295 return false; 296 } 297 else 298 { 299 return true; 300 } 301 } 302 } | Popular Tags |