1 22 23 package org.continuent.sequoia.common.jmx.monitoring.backend; 24 25 import org.continuent.sequoia.common.exceptions.DataCollectorException; 26 import org.continuent.sequoia.common.jmx.monitoring.AbstractDataCollector; 27 import org.continuent.sequoia.controller.backend.DatabaseBackend; 28 import org.continuent.sequoia.controller.core.Controller; 29 import org.continuent.sequoia.controller.monitoring.datacollector.DataCollector; 30 import org.continuent.sequoia.controller.virtualdatabase.VirtualDatabase; 31 32 37 public abstract class AbstractBackendDataCollector 38 extends AbstractDataCollector 39 { 40 private String backendName; 41 private String virtualDatabaseName; 42 43 49 public AbstractBackendDataCollector(String backendName, 50 String virtualDatabaseName) 51 { 52 super(); 53 this.backendName = backendName; 54 this.virtualDatabaseName = virtualDatabaseName; 55 } 56 57 60 public long collectValue() throws DataCollectorException 61 { 62 try 63 { 64 VirtualDatabase vdb = ((Controller) controller) 65 .getVirtualDatabase(virtualDatabaseName); 66 DatabaseBackend db = vdb.getAndCheckBackend(backendName, 67 VirtualDatabase.NO_CHECK_BACKEND); 68 return this.getValue(db); 69 } 70 catch (Exception e) 71 { 72 throw new DataCollectorException(DataCollector.BACKEND_NOT_ACCESSIBLE); 73 } 74 } 75 76 82 public abstract long getValue(Object backend); 83 84 87 public String getTargetName() 88 { 89 return backendName; 90 } 91 } 92 | Popular Tags |