クラス org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorに対する継承グラフ

Inheritance graph
[凡例]
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

説明

This class implements retrieval of data to all possible objects in the controller or other c-jdbc components. It gets its interface from the corresponding MBean.

作者:
Nicolas Modrzyk

DataCollector.java79 行で定義されています。

Public メソッド

 DataCollector (Controller controller)
String[][] retrieveBackendsData () throws DataCollectorException
String[][] retrieveBackendsData (String virtualDatabasename) throws DataCollectorException
String[][] retrieveCacheData () throws DataCollectorException
String[][] retrieveCacheData (String virtualDatabasename) throws DataCollectorException
String[][] retrieveCacheStatsData () throws DataCollectorException
String[][] retrieveCacheStatsData (String virtualDatabasename) throws DataCollectorException
String[][] retrieveClientsData () throws DataCollectorException
String[][] retrieveClientsData (String virtualDatabasename) throws DataCollectorException
String[][] retrieveControllerLoadData ()
String[][] retrieveSQLStats () throws DataCollectorException
String[][] retrieveSQLStats (String virtualDatabasename) throws DataCollectorException
String[][] retrieveVirtualDatabasesData ()
Controller getController ()
String[][] retrieveSchedulerData (String virtualDatabasename) throws DataCollectorException
AbstractDataCollector retrieveDataCollectorInstance (int dataType, String targetName, String virtualDbName) throws DataCollectorException
long retrieveData (AbstractDataCollector collector) throws DataCollectorException
boolean hasVirtualDatabase (String name)

変数

Controller controller

スタティック変数

Trace logger = Trace.getLogger("org.objectweb.cjdbc.controller.jmx")

Private メソッド

VirtualDatabase getVirtualDatabase (String name) throws DataCollectorException


コンストラクタとデストラクタ

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.DataCollector Controller  controller  ) 
 

Create a new DataCollector associated to this controller.

引数:
controller to collect data from

DataCollector.java90 行で定義されています。

00091   {
00092     this.controller = controller;
00093   }


メソッド

Controller org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.getController  ) 
 

戻り値:
Returns the controller.

DataCollector.java298 行で定義されています。

00299   {
00300     return controller;
00301   }

VirtualDatabase org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.getVirtualDatabase String  name  )  throws DataCollectorException [private]
 

Try to get a virtual database from its name

引数:
name of the virtual database
戻り値:
virtual database object
例外:
DataCollectorException if does not exist

DataCollector.java102 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.getVirtualDatabase().

参照元 org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveBackendsData(), org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveCacheData(), org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveCacheStatsData(), org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveClientsData(), org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveSchedulerData(), と org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveSQLStats().

00104   {
00105     VirtualDatabase vd = controller.getVirtualDatabase(name);
00106     if (vd == null)
00107       throw new DataCollectorException("Unknown Database");
00108     return vd;
00109   }

boolean org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.hasVirtualDatabase String  name  ) 
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.hasVirtualDatabase(java.lang.String)

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java424 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.hasVirtualDatabase().

00425   {
00426     return controller.hasVirtualDatabase(name);
00427   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveBackendsData String  virtualDatabasename  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveBackendsData(java.lang.String)

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java122 行で定義されています。

参照先 org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.acquireReadLockBackendLists(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getBackends(), org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.getVirtualDatabase(), と org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.releaseReadLockBackendLists().

00124   {
00125     VirtualDatabase vdb = getVirtualDatabase(virtualDatabasename);
00126     try
00127     {
00128       vdb.acquireReadLockBackendLists();
00129     }
00130     catch (InterruptedException e)
00131     {
00132       String msg = Translate.get("virtualdatabase.fail.read.lock", e);
00133       throw new DataCollectorException(msg);
00134     }
00135     ArrayList backends = vdb.getBackends();
00136     int backendListSize = backends.size();
00137     String[][] data = new String[backendListSize][];
00138     for (int i = 0; i < backendListSize; i++)
00139     {
00140       data[i] = ((DatabaseBackend) backends.get(i)).getBackendData();
00141     }
00142     vdb.releaseReadLockBackendLists();
00143     return data;
00144   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveBackendsData  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveBackendsData()

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java114 行で定義されています。

00115   {
00116     throw new DataCollectorException("Not Implemented");
00117   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveCacheData String  virtualDatabasename  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveCacheData(java.lang.String)

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java158 行で定義されています。

参照先 org.objectweb.cjdbc.controller.cache.result.AbstractResultCache.getCacheData(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getRequestManager(), と org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.getVirtualDatabase().

00160   {
00161     VirtualDatabase vdb = getVirtualDatabase(virtualDatabasename);
00162     AbstractResultCache cache = vdb.getRequestManager().getResultCache();
00163     if (cache == null)
00164       throw new DataCollectorException(ExceptionTypes.NO_CACHE_ENABLED);
00165     else
00166     {
00167       try
00168       {
00169         return cache.getCacheData();
00170       }
00171       catch (Exception e)
00172       {
00173         throw new DataCollectorException(e.getMessage());
00174       }
00175     }
00176   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveCacheData  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveCacheData()

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java149 行で定義されています。

00150   {
00151     throw new DataCollectorException(ExceptionTypes.NOT_IMPLEMENTED);
00152 
00153   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveCacheStatsData String  virtualDatabasename  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveCacheStatsData(java.lang.String)

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java189 行で定義されています。

参照先 org.objectweb.cjdbc.controller.cache.result.AbstractResultCache.getCacheStatsData(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getRequestManager(), と org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.getVirtualDatabase().

00191   {
00192     VirtualDatabase vdb = getVirtualDatabase(virtualDatabasename);
00193     AbstractResultCache cache = vdb.getRequestManager().getResultCache();
00194     if (cache == null)
00195       throw new DataCollectorException("No Cache enabled.");
00196     else
00197     {
00198       try
00199       {
00200         return cache.getCacheStatsData();
00201       }
00202       catch (Exception e)
00203       {
00204         throw new DataCollectorException(e.getMessage());
00205       }
00206     }
00207   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveCacheStatsData  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveCacheStatsData()

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java181 行で定義されています。

00182   {
00183     throw new DataCollectorException(ExceptionTypes.NOT_IMPLEMENTED);
00184   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveClientsData String  virtualDatabasename  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveClientsData(java.lang.String)

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java220 行で定義されています。

参照先 org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getActiveThreads(), と org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.getVirtualDatabase().

00222   {
00223     VirtualDatabase vdb = getVirtualDatabase(virtualDatabasename);
00224     ArrayList activeThreads = vdb.getActiveThreads();
00225     int size = activeThreads.size();
00226     String[][] data = new String[size][];
00227     for (int i = 0; i < size; i++)
00228     {
00229       data[i] = ((VirtualDatabaseWorkerThread) activeThreads.get(i))
00230           .retrieveClientData();
00231     }
00232     return data;
00233   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveClientsData  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveClientsData()

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java212 行で定義されています。

00213   {
00214     throw new DataCollectorException("Not Implemented");
00215   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveControllerLoadData  ) 
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveControllerLoadData()

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java238 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.getConnectionThread(), と org.objectweb.cjdbc.controller.core.Controller.getIPAddress().

00239   {
00240     long total = Runtime.getRuntime().totalMemory();
00241     long free = Runtime.getRuntime().freeMemory();
00242     String[][] data = new String[1][6];
00243     data[0][0] = controller.getIPAddress();
00244     data[0][1] = "" + total / 1024 / 1024;
00245     data[0][2] = "" + (total - free) / 1024 / 1024;
00246     data[0][3] = "" + Thread.activeCount();
00247     data[0][4] = ""
00248         + controller.getConnectionThread()
00249             .getControllerServerThreadPendingQueueSize();
00250     data[0][5] = "" + controller.getConnectionThread().getIdleWorkerThreads();
00251     return data;
00252   }

long org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveData AbstractDataCollector  collector  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveData

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java413 行で定義されています。

00415   {
00416     // Get the new value and return it
00417     // recall reference to controller (is transient in collector)
00418     collector.setController(controller);
00419     return collector.collectValue();
00420   }

AbstractDataCollector org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveDataCollectorInstance int  dataType,
String  targetName,
String  virtualDbName
throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveDataCollectorInstance

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java319 行で定義されています。

00321   {
00322     switch (dataType)
00323     {
00324       /*
00325        * Controller Collectors
00326        */
00327       case CONTROLLER_TOTAL_MEMORY :
00328         return new TotalMemoryCollector(controller);
00329       case CONTROLLER_USED_MEMORY :
00330         return new UsedMemoryCollector(controller);
00331       case CONTROLLER_WORKER_PENDING_QUEUE :
00332         return new ControllerWorkerPendingQueueCollector(controller);
00333       case CONTROLLER_THREADS_NUMBER :
00334         return new ThreadsCountCollector(controller);
00335       case CONTROLLER_IDLE_WORKER_THREADS :
00336         return new ControllerIdleThreadsCollector(controller);
00337       /*
00338        * Backend collectors
00339        */
00340       case BACKEND_ACTIVE_TRANSACTION :
00341         return new ActiveTransactionCollector(targetName, virtualDbName);
00342       case BACKEND_PENDING_REQUESTS :
00343         return new PendingRequestsCollector(targetName, virtualDbName);
00344       case BACKEND_TOTAL_ACTIVE_CONNECTIONS :
00345         return new ActiveConnectionsCollector(targetName, virtualDbName);
00346       case BACKEND_TOTAL_REQUEST :
00347         return new RequestsCollector(targetName, virtualDbName);
00348       case BACKEND_TOTAL_READ_REQUEST :
00349         return new ReadRequestsCollector(targetName, virtualDbName);
00350       case BACKEND_TOTAL_WRITE_REQUEST :
00351         return new WriteRequestsCollector(targetName, virtualDbName);
00352       case BACKEND_TOTAL_TRANSACTIONS :
00353         return new TransactionsCollector(targetName, virtualDbName);
00354       /*
00355        * VirtualDatabase collectors
00356        */
00357       case DATABASES_ACTIVE_THREADS :
00358         return new ActiveDatabaseThreadCollector(virtualDbName);
00359       case DATABASES_PENDING_CONNECTIONS :
00360         return new PendingDatabaseConnectionCollector(virtualDbName);
00361       case DATABASES_NUMBER_OF_THREADS :
00362         return new DatabaseThreadsCollector(virtualDbName);
00363       /*
00364        * Cache stats collectors
00365        */
00366       case CACHE_STATS_COUNT_HITS :
00367         return new CountHitsCollector(virtualDbName);
00368       case CACHE_STATS_COUNT_INSERT :
00369         return new CountInsertCollector(virtualDbName);
00370       case CACHE_STATS_COUNT_SELECT :
00371         return new CountSelectCollector(virtualDbName);
00372       case CACHE_STATS_HITS_PERCENTAGE :
00373         return new HitsRatioCollector(virtualDbName);
00374       case CACHE_STATS_NUMBER_ENTRIES :
00375         return new CacheEntriesCollector(virtualDbName);
00376       /*
00377        * Scheduler collectors
00378        */
00379       case SCHEDULER_NUMBER_READ :
00380         return new NumberReadCollector(virtualDbName);
00381       case SCHEDULER_NUMBER_REQUESTS :
00382         return new NumberRequestsCollector(virtualDbName);
00383       case SCHEDULER_NUMBER_WRITES :
00384         return new NumberWriteCollector(virtualDbName);
00385       case SCHEDULER_PENDING_TRANSACTIONS :
00386         return new PendingTransactionsCollector(virtualDbName);
00387       case SCHEDULER_PENDING_WRITES :
00388         return new PendingWritesCollector(virtualDbName);
00389       /*
00390        * Client collectors
00391        */
00392       case CLIENT_BYTES_READ :
00393         return new ClientBytesReadCollector(virtualDbName, targetName);
00394       case CLIENT_BYTES_WRITTEN :
00395         return new ClientBytesWrittenCollector(virtualDbName, targetName);
00396       case CLIENT_TIME_ACTIVE :
00397         return new ClientActiveTimeCollector(virtualDbName, targetName);
00398       case CLIENT_READING_SPEED :
00399         return new ClientReadingSpeedCollector(virtualDbName, targetName);
00400       case CLIENT_WRITING_SPEED :
00401         return new ClientWritingSpeedCollector(virtualDbName, targetName);
00402       /*
00403        * Unknown collector
00404        */
00405       default :
00406         throw new DataCollectorException(ExceptionTypes.INVALID_COLLECTOR_TYPE);
00407     }
00408   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveSchedulerData String  virtualDatabasename  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveSchedulerData(java.lang.String)

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java306 行で定義されています。

参照先 org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getRequestManager(), org.objectweb.cjdbc.controller.scheduler.AbstractScheduler.getSchedulerData(), と org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.getVirtualDatabase().

00308   {
00309     VirtualDatabase vdb = getVirtualDatabase(virtualDatabasename);
00310     AbstractScheduler scheduler = vdb.getRequestManager().getScheduler();
00311     String[][] data = new String[1][];
00312     data[0] = scheduler.getSchedulerData();
00313     return data;
00314   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveSQLStats String  virtualDatabasename  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveSQLStats()

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java265 行で定義されています。

参照先 org.objectweb.cjdbc.controller.monitoring.SQLMonitoring.getAllStatsInformation(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getSQLMonitor(), と org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.getVirtualDatabase().

00267   {
00268     VirtualDatabase vdb = getVirtualDatabase(virtualDatabasename);
00269     if (vdb.getSQLMonitor() == null)
00270       throw new DataCollectorException("No SQL monitoring enabled.");
00271     else
00272       return vdb.getSQLMonitor().getAllStatsInformation();
00273   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveSQLStats  )  throws DataCollectorException
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveSQLStats()

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java257 行で定義されています。

00258   {
00259     throw new DataCollectorException("Not Implemented");
00260   }

String [][] org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.retrieveVirtualDatabasesData  ) 
 

参照:
org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBean.retrieveVirtualDatabasesData()

org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollectorMBeanに実装されています.

DataCollector.java278 行で定義されています。

参照先 org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getActiveThreads(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getCurrentNbOfThreads(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getName(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getPendingConnections(), と org.objectweb.cjdbc.controller.core.Controller.getVirtualDatabases().

00279   {
00280     ArrayList dbs = controller.getVirtualDatabases();
00281     int size = dbs.size();
00282     String[][] data = new String[size][4];
00283     VirtualDatabase db;
00284     for (int i = 0; i < size; i++)
00285     {
00286       db = (VirtualDatabase) dbs.get(i);
00287       data[i][0] = db.getName();
00288       data[i][1] = "" + db.getActiveThreads().size();
00289       data[i][2] = "" + db.getPendingConnections().size();
00290       data[i][3] = "" + db.getCurrentNbOfThreads();
00291     }
00292     return data;
00293   }


変数

Controller org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.controller [package]
 

DataCollector.java83 行で定義されています。

Trace org.objectweb.cjdbc.controller.monitoring.datacollector.DataCollector.logger = Trace.getLogger("org.objectweb.cjdbc.controller.jmx") [static, package]
 

Logger instance

DataCollector.java82 行で定義されています。


このクラスの説明は次のファイルから生成されました:
CJDBCversion1.0rc6に対してWed May 5 18:02:49 2004に生成されました。 doxygen 1.3.6