クラス org.objectweb.cjdbc.controller.core.Controller

org.objectweb.cjdbc.controller.core.Controllerのコラボレーション図

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

説明

The C-JDBC controller main class. It registers itself in the RMI registry and waits for C-JDBC driver requests.

作者:
Emmanuel Cecchet

Mathieu Peltier

Nicolas Modrzyk

Duncan Smith

バージョン:
1.0

Controller.java93 行で定義されています。

Public メソッド

 Controller (String ipAddress, int port, int backlog) throws NotCompliantMBeanException, JmxException
String getAssociatedString ()
void addVirtualDatabases (String xml, String virtualName, int autoLoad, String checkPoint) throws ControllerException
void addVirtualDatabases (String xml) throws ControllerException
void addVirtualDatabase (VirtualDatabase vdb) throws ControllerException
synchronized void addVirtualDatabase (VirtualDatabase vdb, int autoLoad, String checkPoint) throws ControllerException
String viewInfo () throws Exception
String viewConfiguration () throws Exception
String viewDatabases () throws Exception
String viewDatabasesXml () throws Exception
String removeVirtualDatabase (String virtualname) throws ControllerException
void addDriver (byte[] bytes) throws Exception
VirtualDatabase getVirtualDatabase (String virtualDatabaseName)
void refreshLogConfiguration () throws ControllerException
String getVersionNumber ()
String getXml ()
String getXmlController ()
String getXmlVirtualDatabases ()
ControllerServerThread getConnectionThread ()
void shutdown () throws ControllerException
void shutdown (int level) throws ControllerException
void shutdownDatabase (String databaseName, int level) throws ControllerException
void shutdown (int level, boolean systemExit) throws ControllerException
String saveConfiguration () throws VirtualDatabaseException
boolean hasVirtualDatabase (String name)
void endOfController (Exception fatal)
void launch ()
String getName ()
String loadXmlConfiguration (String filename, String virtualName, int autoLoad, String checkPoint) throws Exception
String loadXML (String filename) throws Exception
String addDriver (String filename) throws Exception
ArrayList getVirtualDatabases ()
String getIPAddress ()
void setIPAddress (String ipAddress)
int getPortNumber ()
void setPortNumber (int port)
int getBacklogSize ()
void setBacklogSize (int size)
boolean getJmxEnable ()
String getJmxName ()
void setJmxEnable (boolean enable)
Hashtable getConfiguration ()
boolean isSecurityEnabled ()
ControllerSecurityManager getSecurity ()
void setSecurity (ControllerSecurityManager security)
ArrayList listVirtualDatabases ()
String generateReport () throws Exception
ArrayList listBackends (String virtualDbName) throws Exception
ArrayList listDatabaseClients (String virtualDbName) throws Exception
boolean isCacheEnableForDatabase (String virtualDbName) throws Exception
void setConfiguration (Hashtable configuration)
String viewDatabaseXml (String databaseName) throws Exception
String generateLogReport () throws Exception
File[] listAvailableDumpFiles ()
boolean removeDumpFile (File dumpFile)
String viewLogConfigurationFile () throws IOException
void updateLogConfigurationFile (String newConfiguration) throws IOException, ControllerException
boolean isDistributedVirtualDatabase (String databaseName)
ReportManager getReport ()
void setReport (ReportManager report)

Static Public メソッド

void main (String args[]) throws Exception
String getVersion ()

スタティック変数

Trace logger

Private メソッド

String prettyXml (String xml)
String applyXsl (String xml, String xsl)
File internationalizeXsl (File xsl) throws Exception

Private 変数

int portNumber
int backlogSize
String ipAddress
ControllerServerThread connectionThread
Hashtable virtualDatabases
Hashtable configuration
ControllerSecurityManager security
ReportManager report
TransformerFactory tFactory
Transformer infoTransformer
boolean isShuttingDown


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

org.objectweb.cjdbc.controller.core.Controller.Controller String  ipAddress,
int  port,
int  backlog
throws NotCompliantMBeanException, JmxException
 

Creates a new Controller instance.

引数:
ipAddress bind the controller to this ipAddress
port bind the controller to listen to this port
backlog backlog connection size
例外:
NotCompliantMBeanException in case the bean does not comply with jmx
JmxException the bean could not be registered
Controller.java146 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.ipAddress, と org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

00148 { 00149 super(ControllerMBean.class); 00150 virtualDatabases = new Hashtable(); 00151 this.ipAddress = ipAddress; 00152 this.portNumber = port; 00153 this.backlogSize = backlog; 00154 ObjectName name = JmxConstants.getControllerObjectName(); 00155 MBeanServerManager.registerMBean(this, name); 00156 }


メソッド

String org.objectweb.cjdbc.controller.core.Controller.addDriver String  filename  )  throws Exception
 

Reads a driver JAR file.

引数:
filename name of the file
戻り値:
a diagnostic message
例外:
Exception if an error occurs
Controller.java1039 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.addDriver(), org.objectweb.cjdbc.controller.core.Controller.isSecurityEnabled(), と org.objectweb.cjdbc.controller.core.Controller.security.

01040 { 01041 // Test if addDriver is enabled. 01042 if (isSecurityEnabled() && security.getAllowAdditionalDriver() == false) 01043 { 01044 return Translate.get("controller.addDriver.abort", filename); 01045 } 01046 try 01047 { 01048 filename = filename.trim(); 01049 File file; 01050 FileInputStream fileInput = null; 01051 try 01052 { 01053 file = new File(filename); 01054 fileInput = new FileInputStream(file); 01055 } 01056 catch (FileNotFoundException fnf) 01057 { 01058 return Translate.get("controller.file.not.found", filename); 01059 } 01060 01061 // Read the file into an array of bytes 01062 try 01063 { 01064 long size = file.length(); 01065 if (size > Integer.MAX_VALUE) 01066 { 01067 // File is too large 01068 fileInput.close(); 01069 return Translate.get("controller.addDriver.too.large"); 01070 01071 } 01072 byte[] bytes = new byte[(int) size]; 01073 01074 int nb = fileInput.read(bytes); 01075 fileInput.close(); 01076 if (nb != size) 01077 { 01078 return Translate.get("controller.file.unreadable", filename); 01079 } 01080 01081 // Send the file contents to the controller 01082 addDriver(bytes); 01083 return Translate.get("controller.addDriver.successful", filename); 01084 } 01085 catch (IOException e) 01086 { 01087 return Translate.get("controller.addDriver.transfer.failed", filename); 01088 } 01089 } 01090 catch (Exception e) 01091 { 01092 return Translate.get("controller.addDriver.send.failed", e); 01093 } 01094 }

void org.objectweb.cjdbc.controller.core.Controller.addDriver byte[]  bytes  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.addDriver(byte[])
Controller.java484 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.logger.

参照元 org.objectweb.cjdbc.controller.core.Controller.addDriver().

00485 { 00486 // Try to find drivers directory in the classpath 00487 File driversDirectory = null; 00488 URL url = Controller.class 00489 .getResource(ControllerConstants.C_JDBC_DRIVER_JAR_FILE); 00490 boolean error = false; 00491 if (url != null) 00492 { 00493 driversDirectory = (new File(url.getFile())).getParentFile(); 00494 error = (driversDirectory == null) || !driversDirectory.exists(); 00495 } 00496 00497 if (error) 00498 { 00499 String msg = Translate.get("controller.driver.dir.not.found"); 00500 logger.error(msg); 00501 throw new ControllerException(msg); 00502 } 00503 00504 // Read the array of bytes to a file 00505 File temp = null; 00506 try 00507 { 00508 temp = File.createTempFile("driver", "zip", driversDirectory); 00509 FileOutputStream output = new FileOutputStream(temp); 00510 output.write(bytes); 00511 output.close(); 00512 } 00513 catch (IOException e) 00514 { 00515 String msg = Translate.get("controller.add.jar.read.failed", e); 00516 logger.error(msg); 00517 throw new ControllerException(msg); 00518 } 00519 00520 // Unzip the file content 00521 try 00522 { 00523 Enumeration entries; 00524 ZipFile zipFile = new ZipFile(temp); 00525 00526 // Read the file 00527 int lenght; 00528 InputStream in; 00529 BufferedOutputStream out; 00530 byte[] buffer = new byte[1024]; 00531 00532 entries = zipFile.entries(); 00533 while (entries.hasMoreElements()) 00534 { 00535 ZipEntry entry = (ZipEntry) entries.nextElement(); 00536 00537 if (entry.isDirectory()) 00538 { 00539 // Create the directory 00540 if (logger.isDebugEnabled()) 00541 logger.debug(Translate.get("controller.add.jar.extract.dir", entry 00542 .getName())); 00543 00544 (new File(driversDirectory, entry.getName())).mkdir(); 00545 continue; 00546 } 00547 00548 // Extract the file 00549 if (logger.isDebugEnabled()) 00550 logger.debug(Translate.get("controller.add.jar.extract.file", entry 00551 .getName())); 00552 00553 in = zipFile.getInputStream(entry); 00554 out = new BufferedOutputStream(new FileOutputStream(driversDirectory 00555 + System.getProperty("file.separator") + entry.getName())); 00556 while ((lenght = in.read(buffer)) >= 0) 00557 out.write(buffer, 0, lenght); 00558 00559 in.close(); 00560 out.close(); 00561 } 00562 00563 zipFile.close(); 00564 temp.delete(); 00565 logger.info(Translate.get("controller.add.jar.to.directory", 00566 driversDirectory.toString())); 00567 } 00568 catch (IOException e) 00569 { 00570 String msg = Translate.get("controller.driver.extract.failed", e); 00571 logger.error(msg); 00572 throw new ControllerException(msg); 00573 } 00574 }

synchronized void org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabase VirtualDatabase  vdb,
int  autoLoad,
String  checkPoint
throws ControllerException
 

Add the virtual database with the specified options

引数:
vdb the VirtualDatabase object to add
autoLoad specified if backends should be enabled
checkPoint specified the checkPoint to recover from, leave null if no recovery speficied
例外:
ControllerException if database already exists on the specified Controller object
Controller.java237 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.hasVirtualDatabase(), org.objectweb.cjdbc.controller.core.Controller.logger, と org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

00239 { 00240 // Add the database or retrieve it if it already exists 00241 if (hasVirtualDatabase(vdb.getDatabaseName())) 00242 { 00243 String msg = Translate.get("controller.database.already.exists", vdb 00244 .getDatabaseName()); 00245 logger.warn(msg); 00246 throw new ControllerException(msg); 00247 } 00248 else 00249 { 00250 virtualDatabases.put(vdb.getDatabaseName(), vdb); 00251 00252 // Send notification 00253 if (MBeanServerManager.isJmxEnabled()) 00254 { 00255 Hashtable databases = new Hashtable(); 00256 try 00257 { 00258 databases.put("backends", vdb.getAllBackendNames()); 00259 } 00260 catch (VirtualDatabaseException e) 00261 { 00262 // ignore 00263 } 00264 RmiConnector 00265 .broadcastNotification(this, 00266 CjdbcNotificationList.CONTROLLER_VIRTUALDATABASE_ADDED, 00267 CjdbcNotificationList.NOTIFICATION_LEVEL_INFO, Translate.get( 00268 "notification.virtualdatabase.added", vdb.getName()), 00269 databases); 00270 } 00271 } 00272 00273 // Enable backends with the proper states 00274 try 00275 { 00276 switch (autoLoad) 00277 { 00278 case ControllerConstants.AUTO_ENABLE_TRUE : 00279 vdb.enableAllBackend(checkPoint); 00280 break; 00281 case ControllerConstants.AUTO_ENABLE_FALSE : 00282 break; 00283 case ControllerConstants.AUTO_ENABLE_RESTORE : 00284 vdb.enableAllBackendsFromRecovery(checkPoint); 00285 break; 00286 default : 00287 break; 00288 } 00289 } 00290 catch (VirtualDatabaseException e) 00291 { 00292 throw new ControllerException(e); 00293 } 00294 00295 logger.info(Translate.get("controller.add.virtualdatabase", vdb 00296 .getDatabaseName())); 00297 if (logger.isDebugEnabled()) 00298 logger.debug(Translate.get("controller.database.enabled", autoLoad)); 00299 }

void org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabase VirtualDatabase  vdb  )  throws ControllerException
 

Registers a new VirtualDatabase in this controller.

引数:
vdb the VirtualDatabase to register
例外:
ControllerException if an error occurs
Controller.java220 行で定義されています。
00222 { 00223 this.addVirtualDatabase(vdb, ControllerConstants.AUTO_ENABLE_BACKEND, 00224 ControllerConstants.DATABASE_DEFAULT_CHECKPOINT); 00225 }

void org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabases String  xml  )  throws ControllerException
 

Register a VirtualDatabase with default options

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.addVirtualDatabases(String)
Controller.java203 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.logger.

00204 { 00205 if (logger.isDebugEnabled()) 00206 { 00207 logger.debug(Translate.get("controller.loading.virtualdatabase")); 00208 } 00209 this.addVirtualDatabases(xml, null, 00210 ControllerConstants.AUTO_ENABLE_BACKEND, 00211 ControllerConstants.DATABASE_DEFAULT_CHECKPOINT); 00212 }

void org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabases String  xml,
String  virtualName,
int  autoLoad,
String  checkPoint
throws ControllerException
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.addVirtualDatabases(String, String, boolean, String)
Controller.java173 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.logger, と org.objectweb.cjdbc.controller.xml.DatabasesParser.readXML().

参照元 org.objectweb.cjdbc.controller.core.Controller.loadXmlConfiguration().

00175 { 00176 if (logger.isDebugEnabled()) 00177 logger 00178 .debug(Translate.get("controller.add.virtualdatabase", virtualName)); 00179 if (virtualName != null && this.hasVirtualDatabase(virtualName)) 00180 { 00181 throw new ControllerException(Translate 00182 .get("controller.add.virtualdatabase.already.used")); 00183 } 00184 try 00185 { 00186 DatabasesParser parser = new DatabasesParser(this, virtualName, 00187 autoLoad, checkPoint); 00188 parser.readXML(xml, true); 00189 } 00190 catch (Exception e) 00191 { 00192 String msg = Translate.get("controller.add.virtualdatabase.failed", e); 00193 logger.warn(msg, e); 00194 throw new ControllerException(msg); 00195 } 00196 }

String org.objectweb.cjdbc.controller.core.Controller.applyXsl String  xml,
String  xsl
[private]
 

Apply xslt to xml

引数:
xml to transform
xsl transformation to apply
戻り値:
xml formatted string or error message
Controller.java365 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.infoTransformer, org.objectweb.cjdbc.controller.core.Controller.internationalizeXsl(), org.objectweb.cjdbc.controller.core.Controller.logger, と org.objectweb.cjdbc.controller.core.Controller.tFactory.

参照元 org.objectweb.cjdbc.controller.core.Controller.prettyXml(), org.objectweb.cjdbc.controller.core.Controller.viewConfiguration(), と org.objectweb.cjdbc.controller.core.Controller.viewDatabases().

00366 { 00367 try 00368 { 00369 StringWriter result = new StringWriter(); 00370 if (tFactory == null) 00371 tFactory = TransformerFactory.newInstance(); 00372 File infoXsl = internationalizeXsl(new File(this.getClass().getResource( 00373 "/" + xsl).getFile())); 00374 if (logger.isDebugEnabled()) 00375 logger.debug(Translate.get("controller.xml.use.xsl", infoXsl)); 00376 //if(infoTransformer==null) 00377 infoTransformer = tFactory.newTransformer(new StreamSource(infoXsl)); 00378 infoTransformer.transform(new StreamSource(new StringReader(xml)), 00379 new StreamResult(result)); 00380 return result.toString(); 00381 } 00382 catch (Exception e) 00383 { 00384 String msg = Translate.get("controller.xml.transformation.failed", e); 00385 00386 if (logger.isDebugEnabled()) 00387 logger.debug(msg, e); 00388 logger.error(msg); 00389 return msg; 00390 } 00391 }

void org.objectweb.cjdbc.controller.core.Controller.endOfController Exception  fatal  ) 
 

Create report about fatal error

引数:
fatal the cause of the fatal error
Controller.java920 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.ReportManager.getReportLocation(), org.objectweb.cjdbc.controller.core.ReportManager.isGenerateOnFatal(), org.objectweb.cjdbc.controller.core.Controller.logger, と org.objectweb.cjdbc.controller.core.Controller.report.

参照元 org.objectweb.cjdbc.controller.core.ControllerServerThread.ControllerServerThread().

00921 { 00922 logger.fatal(Translate.get("fatal.error")); 00923 if (report.isGenerateOnFatal()) 00924 { 00925 new ReportManager(this, fatal).generate(); 00926 logger.info(Translate.get("fatal.report.generated", report 00927 .getReportLocation() 00928 + File.separator + ControllerConstants.REPORT_FILE)); 00929 } 00930 Runtime.getRuntime().exit(1); 00931 }

String org.objectweb.cjdbc.controller.core.Controller.generateLogReport  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.generateLogReport()
Controller.java1337 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.ReportManager.generateJustLogs(), と org.objectweb.cjdbc.controller.core.Controller.report.

01338 { 01339 ReportManager report = new ReportManager(this, true); 01340 return report.generateJustLogs(); 01341 }

String org.objectweb.cjdbc.controller.core.Controller.generateReport  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.generateReport()
Controller.java1263 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.ReportManager.generate(), org.objectweb.cjdbc.controller.core.Controller.report, と org.objectweb.cjdbc.controller.core.ReportManager.startReport().

01264 { 01265 report.startReport(); 01266 return report.generate(); 01267 }

String org.objectweb.cjdbc.controller.core.Controller.getAssociatedString  ) 
 

参照:
org.objectweb.cjdbc.controller.jmx.AbstractStandardMBean.getAssociatedString()
Controller.java161 行で定義されています。
00162 { 00163 return "controller"; 00164 }

int org.objectweb.cjdbc.controller.core.Controller.getBacklogSize  ) 
 

Get the controller socket backlog size.

戻り値:
the backlog size
Controller.java1154 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.backlogSize.

参照元 org.objectweb.cjdbc.controller.core.ControllerServerThread.ControllerServerThread().

01155 { 01156 return backlogSize; 01157 }

Hashtable org.objectweb.cjdbc.controller.core.Controller.getConfiguration  ) 
 

Get current configuration options

戻り値:
configure a Hashtable with controller options
Controller.java1221 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.configuration.

参照元 org.objectweb.cjdbc.controller.core.ReportManager.writeControllerSettings().

01222 { 01223 return configuration; 01224 }

ControllerServerThread org.objectweb.cjdbc.controller.core.Controller.getConnectionThread  ) 
 

Access the connection thread. Need this for shutting down

戻り値:
connectionThread
Controller.java722 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.connectionThread.

参照元 org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.shutdownServerConnectionThread().

00723 { 00724 return connectionThread; 00725 }

String org.objectweb.cjdbc.controller.core.Controller.getIPAddress  ) 
 

Get the IP address to bind the controller to

戻り値:
the IP address
Controller.java1114 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.ipAddress.

参照元 org.objectweb.cjdbc.controller.core.ControllerServerThread.ControllerServerThread().

01115 { 01116 return ipAddress; 01117 }

boolean org.objectweb.cjdbc.controller.core.Controller.getJmxEnable  ) 
 

Returns jmx enable

戻り値:
jmxEnabled
Controller.java1174 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.getJmxName(), org.objectweb.cjdbc.controller.core.Controller.getXmlController(), org.objectweb.cjdbc.controller.core.Controller.shutdownDatabase(), と org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.shutdownJmxAgent().

01175 { 01176 return MBeanServerManager.isJmxEnabled(); 01177 }

String org.objectweb.cjdbc.controller.core.Controller.getJmxName  ) 
 

Return the jmx name of this controller (hostname:rmiport)

戻り値:
jmx name
Controller.java1184 行で定義されています。

参照先 org.objectweb.cjdbc.controller.jmx.RmiConnector.getHostName(), org.objectweb.cjdbc.controller.core.Controller.getJmxEnable(), org.objectweb.cjdbc.controller.core.Controller.getName(), と org.objectweb.cjdbc.controller.jmx.RmiConnector.getPort().

参照元 org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.handle(), と org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.joinGroup().

01185 { 01186 if (getJmxEnable()) 01187 { 01188 RmiConnector connector = ((RmiConnector) RmiConnector.getRmiConnectors() 01189 .get(0)); 01190 return connector.getHostName() + ":" + connector.getPort(); 01191 } 01192 else 01193 return getName(); 01194 }

String org.objectweb.cjdbc.controller.core.Controller.getName  ) 
 

Returns the controller name.

戻り値:
String
Controller.java957 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.ipAddress, と org.objectweb.cjdbc.controller.core.Controller.portNumber.

参照元 org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.ControllerShutdownThread(), org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.getControllerName(), org.objectweb.cjdbc.controller.core.Controller.getJmxName(), org.objectweb.cjdbc.controller.virtualdatabase.DistributedVirtualDatabase.handle(), と org.objectweb.cjdbc.controller.core.Controller.launch().

00958 { 00959 return ipAddress + ":" + portNumber; 00960 }

int org.objectweb.cjdbc.controller.core.Controller.getPortNumber  ) 
 

Get the controller port number

戻り値:
the port number
Controller.java1134 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.portNumber.

参照元 org.objectweb.cjdbc.controller.core.ControllerServerThread.ControllerServerThread().

01135 { 01136 return portNumber; 01137 }

ReportManager org.objectweb.cjdbc.controller.core.Controller.getReport  ) 
 

Returns the report value.

戻り値:
Returns the report.
Controller.java1430 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.ControllerShutdownThread().

01431 { 01432 return report; 01433 }

ControllerSecurityManager org.objectweb.cjdbc.controller.core.Controller.getSecurity  ) 
 

戻り値:
Returns the security.
Controller.java1239 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.security.

参照元 org.objectweb.cjdbc.controller.core.ControllerServerThread.ControllerServerThread(), と org.objectweb.cjdbc.controller.core.Controller.getXmlController().

01240 { 01241 return security; 01242 }

String org.objectweb.cjdbc.controller.core.Controller.getVersion  )  [static]
 

Returns Version as a long String

戻り値:
version
Controller.java1211 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.main().

01212 { 01213 return Translate.get("controller.info", Constants.VERSION); 01214 }

String org.objectweb.cjdbc.controller.core.Controller.getVersionNumber  ) 
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.getVersionNumber()
Controller.java612 行で定義されています。
00613 { 00614 return Constants.VERSION; 00615 }

VirtualDatabase org.objectweb.cjdbc.controller.core.Controller.getVirtualDatabase String  virtualDatabaseName  ) 
 

Gets the VirtualDatabase object corresponding to a virtual database name.

引数:
virtualDatabaseName the virtual database name
戻り値:
a VirtualDatabase object or null if not found
Controller.java583 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

参照元 org.objectweb.cjdbc.controller.core.ControllerWorkerThread.run(), と org.objectweb.cjdbc.controller.core.Controller.viewDatabaseXml().

00584 { 00585 return (VirtualDatabase) virtualDatabases.get(virtualDatabaseName); 00586 }

ArrayList org.objectweb.cjdbc.controller.core.Controller.getVirtualDatabases  ) 
 

Returns information about the available virtual databases.

戻り値:
ArrayList of information about virtual databases.
Controller.java1101 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

参照元 org.objectweb.cjdbc.controller.core.Controller.listAvailableDumpFiles(), と org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.shutdownDatabases().

01102 { 01103 ArrayList result = new ArrayList(); 01104 for (Iterator iter = virtualDatabases.values().iterator(); iter.hasNext();) 01105 result.add(iter.next()); 01106 return result; 01107 }

String org.objectweb.cjdbc.controller.core.Controller.getXml  ) 
 

参照:
org.objectweb.cjdbc.common.xml.XmlComponent.getXml()
Controller.java620 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.getXmlController(), org.objectweb.cjdbc.controller.core.Controller.logger, と org.objectweb.cjdbc.controller.core.Controller.prettyXml().

参照元 org.objectweb.cjdbc.controller.core.Controller.getXmlController(), と org.objectweb.cjdbc.controller.core.ReportManager.writeControllerInfo().

00621 { 00622 try 00623 { 00624 return prettyXml(getXmlController()); 00625 } 00626 catch (Exception e) 00627 { 00628 logger.error(Translate.get("controller.xml.transformation.failed", e)); 00629 return e.getMessage(); 00630 } 00631 }

String org.objectweb.cjdbc.controller.core.Controller.getXmlController  ) 
 

Return the xml version of the controller.xml file without doc type declaration, just data.

戻り値:
controller xml data
Controller.java639 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.configuration, org.objectweb.cjdbc.controller.core.Controller.getJmxEnable(), org.objectweb.cjdbc.controller.core.ReportManager.getReportLocation(), org.objectweb.cjdbc.controller.core.Controller.getSecurity(), org.objectweb.cjdbc.controller.core.Controller.getXml(), org.objectweb.cjdbc.controller.core.ReportManager.isEnableFileLogging(), org.objectweb.cjdbc.controller.core.ReportManager.isGenerateOnFatal(), org.objectweb.cjdbc.controller.core.ReportManager.isGenerateOnShutdown(), org.objectweb.cjdbc.controller.core.ReportManager.isHideSensitiveData(), org.objectweb.cjdbc.controller.core.ReportManager.isReportEnabled(), と org.objectweb.cjdbc.controller.core.Controller.report.

参照元 org.objectweb.cjdbc.controller.core.Controller.getXml(), org.objectweb.cjdbc.controller.core.Controller.viewConfiguration(), と org.objectweb.cjdbc.controller.core.Controller.viewInfo().

00640 { 00641 StringBuffer info = new StringBuffer(); 00642 info.append("<C-JDBC-CONTROLLER>"); 00643 info.append("<" + ControllerXmlTags.ELT_CONTROLLER + " " 00644 + ControllerXmlTags.ATT_CONTROLLER_IP + "=\"" + this.getIPAddress() 00645 + "\" " + ControllerXmlTags.ATT_CONTROLLER_PORT + "=\"" 00646 + this.getPortNumber() + "\" " + ">"); 00647 00648 info.append("<" + ControllerXmlTags.ELT_INTERNATIONALIZATION + " " 00649 + ControllerXmlTags.ATT_LANGUAGE + "=\"" 00650 + Locale.getDefault().getLanguage() + "\"/>"); 00651 00652 if (report.isReportEnabled()) 00653 { 00654 info.append("<" + ControllerXmlTags.ELT_REPORT + " " 00655 + ControllerXmlTags.ATT_REPORT_ENABLE_FILE_LOGGING + "=\"" 00656 + report.isEnableFileLogging() + "\" " 00657 + ControllerXmlTags.ATT_REPORT_HIDE_SENSITIVE_DATA + "=\"" 00658 + report.isHideSensitiveData() + "\" " 00659 + ControllerXmlTags.ATT_REPORT_GENERATE_ON_FATAL + "=\"" 00660 + report.isGenerateOnFatal() + "\" " 00661 + ControllerXmlTags.ATT_REPORT_GENERATE_ON_SHUTDOWN + "=\"" 00662 + report.isGenerateOnShutdown() + "\" " 00663 + ControllerXmlTags.ATT_REPORT_REPORT_LOCATION + "=\"" 00664 + report.getReportLocation() + "\" />"); 00665 } 00666 00667 if (getJmxEnable()) 00668 { 00669 info.append("<" + ControllerXmlTags.ELT_JMX + ">"); 00670 if (configuration.containsKey(JmxConstants.ADAPTOR_TYPE_HTTP)) 00671 { 00672 info.append("<" + ControllerXmlTags.ELT_HTTP_JMX_ADAPTOR + " " 00673 + ControllerXmlTags.ATT_JMX_ADAPTOR_PORT + "=\"" 00674 + configuration.get(JmxConstants.ADAPTOR_TYPE_HTTP) + "\" />"); 00675 } 00676 if (configuration.containsKey(JmxConstants.ADAPTOR_TYPE_RMI)) 00677 { 00678 info.append("<" + ControllerXmlTags.ELT_RMI_JMX_ADAPTOR + " " 00679 + ControllerXmlTags.ATT_JMX_ADAPTOR_PORT + "=\"" 00680 + configuration.get(JmxConstants.ADAPTOR_TYPE_RMI) + "\" />"); 00681 } 00682 00683 info.append("</" + ControllerXmlTags.ELT_JMX + ">"); 00684 } 00685 00686 if (this.isSecurityEnabled()) 00687 info.append(this.getSecurity().getXml()); 00688 info.append("</" + ControllerXmlTags.ELT_CONTROLLER + ">"); 00689 info.append("</C-JDBC-CONTROLLER>"); 00690 return info.toString(); 00691 }

String org.objectweb.cjdbc.controller.core.Controller.getXmlVirtualDatabases  ) 
 

Same as above but for the virtual databases.

戻り値:
xml virtual databases data.
Controller.java698 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.logger, と org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

参照元 org.objectweb.cjdbc.controller.core.Controller.saveConfiguration(), org.objectweb.cjdbc.controller.core.Controller.viewDatabases(), と org.objectweb.cjdbc.controller.core.Controller.viewDatabasesXml().

00699 { 00700 try 00701 { 00702 StringBuffer info = new StringBuffer(); 00703 info.append("<C-JDBC>"); 00704 ArrayList virtualDatabases = this.getVirtualDatabases(); 00705 for (int i = 0, size = virtualDatabases.size(); i < size; i++) 00706 info.append(((VirtualDatabase) virtualDatabases.get(i)).getXml()); 00707 info.append("</C-JDBC>"); 00708 return info.toString(); 00709 } 00710 catch (Exception e) 00711 { 00712 logger.error(e.getMessage(), e); 00713 return e.getMessage(); 00714 } 00715 }

boolean org.objectweb.cjdbc.controller.core.Controller.hasVirtualDatabase String  name  ) 
 

Tests if a VirtualDatabase of a given name exists in this controller.

引数:
name the virtual database name
戻り値:
true if the virtual database exists
Controller.java866 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

参照元 org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabase(), と org.objectweb.cjdbc.controller.core.Controller.removeVirtualDatabase().

00867 { 00868 return virtualDatabases.containsKey(name); 00869 }

File org.objectweb.cjdbc.controller.core.Controller.internationalizeXsl File  xsl  )  throws Exception [private]
 

Controller.java393 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.applyXsl().

00394 { 00395 int point = xsl.getAbsolutePath().lastIndexOf('.'); 00396 String xslPath = xsl.getAbsolutePath(); 00397 xslPath = xslPath.substring(0, point) + "_" + Locale.getDefault() 00398 + xslPath.substring(point); 00399 File i18nXsl = new File(xslPath); 00400 if (i18nXsl.exists() == false) 00401 { 00402 ResourceBundle rb = ResourceBundle.getBundle("c-jdbc-xsl"); 00403 BufferedReader br = new BufferedReader(new FileReader(xsl)); 00404 String xml = ""; 00405 String oi18n = "<i18n>"; 00406 String ci18n = "</i18n>"; 00407 int oi18nl = oi18n.length(); 00408 int ci18nl = oi18nl + 1; 00409 StringBuffer buffer = new StringBuffer(); 00410 String i18n = ""; 00411 while ((xml = br.readLine()) != null) 00412 { 00413 int indexOpen = 0, indexClose = 0; 00414 while ((indexOpen = xml.indexOf(oi18n)) != -1) 00415 { 00416 indexClose = xml.indexOf(ci18n); 00417 i18n = xml.substring(indexOpen + oi18nl, indexClose).trim(); 00418 try 00419 { 00420 i18n = rb.getString(i18n); 00421 } 00422 catch (Exception ignore) 00423 // if the key has no match return the key itself 00424 { 00425 } 00426 xml = xml.substring(0, indexOpen) + i18n 00427 + xml.substring(indexClose + ci18nl); 00428 } 00429 buffer.append(xml + System.getProperty("line.separator")); 00430 } 00431 BufferedWriter bw = new BufferedWriter(new FileWriter(i18nXsl)); 00432 bw.write(buffer.toString()); 00433 bw.flush(); 00434 bw.close(); 00435 } 00436 return i18nXsl; 00437 }

boolean org.objectweb.cjdbc.controller.core.Controller.isCacheEnableForDatabase String  virtualDbName  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.isCacheEnableForDatabase(java.lang.String)
Controller.java1300 行で定義されています。

参照先 org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getRequestManager(), と org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

01302 { 01303 VirtualDatabase vdb = (VirtualDatabase) virtualDatabases.get(virtualDbName); 01304 if (vdb == null) 01305 throw new Exception(ExceptionTypes.DATABASE_NOT_FOUND); 01306 else 01307 { 01308 return (vdb.getRequestManager().getResultCache() == null) ? false : true; 01309 } 01310 }

boolean org.objectweb.cjdbc.controller.core.Controller.isDistributedVirtualDatabase String  databaseName  ) 
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.isDistributedVirtualDatabase(java.lang.String)
Controller.java1416 行で定義されています。

参照先 org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.isDistributed().

01417 { 01418 VirtualDatabase db = getVirtualDatabase(databaseName); 01419 if (db == null || !db.isDistributed()) 01420 return false; 01421 else 01422 return true; 01423 }

boolean org.objectweb.cjdbc.controller.core.Controller.isSecurityEnabled  ) 
 

Check whether security is enabled or not

戻り値:
true if there is not null controller security manager
Controller.java1231 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.security.

参照元 org.objectweb.cjdbc.controller.core.Controller.addDriver(), org.objectweb.cjdbc.controller.core.ControllerServerThread.ControllerServerThread(), と org.objectweb.cjdbc.controller.core.Controller.shutdown().

01232 { 01233 return security != null; 01234 }

void org.objectweb.cjdbc.controller.core.Controller.launch  ) 
 

Actively launch the controller Add startup actions here to avoid them in <method>main </method> Controller.java937 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.connectionThread, org.objectweb.cjdbc.controller.core.Controller.getName(), と org.objectweb.cjdbc.controller.core.Controller.logger.

参照元 org.objectweb.cjdbc.controller.core.Controller.main().

00938 { 00939 connectionThread = new ControllerServerThread(this); 00940 connectionThread.start(); 00941 00942 SimpleDateFormat formatter = new SimpleDateFormat( 00943 "yyyy.MM.dd ww 'at' hh:mm:ss a zzz"); 00944 Date day = new Date(); 00945 String date = formatter.format(day); 00946 logger.info(Translate.get("controller.date", date)); 00947 logger.info(Translate.get("controller.ready", getName())); 00948 }

File [] org.objectweb.cjdbc.controller.core.Controller.listAvailableDumpFiles  ) 
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.listAvailableDumpFiles()

参照:
java.io.FilenameFilter#accept(java.io.File, java.lang.String)
Controller.java1346 行で定義されています。

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

01347 { 01348 if (getVirtualDatabases().size() <= 0) 01349 return new File[0]; 01350 01351 File f = new File(((VirtualDatabase) getVirtualDatabases().get(0)) 01352 .getRequestManager().getBackupManager().getBackupDir()); 01353 if (f.exists()) 01354 { 01355 return f.listFiles(new FilenameFilter() 01356 { 01360 public boolean accept(File dir, String name) 01361 { 01362 if (name.endsWith(ZipMe.ZIP_EXT)) 01363 return true; 01364 else 01365 return false; 01366 } 01367 }); 01368 } 01369 else 01370 return new File[0]; 01371 }

ArrayList org.objectweb.cjdbc.controller.core.Controller.listBackends String  virtualDbName  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.listBackends(java.lang.String)
Controller.java1272 行で定義されています。

参照先 org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.viewAllBackendNames(), と org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

01273 { 01274 VirtualDatabase vdb = (VirtualDatabase) virtualDatabases.get(virtualDbName); 01275 if (vdb == null) 01276 throw new Exception(ExceptionTypes.DATABASE_NOT_FOUND); 01277 else 01278 { 01279 return vdb.viewAllBackendNames(); 01280 } 01281 }

ArrayList org.objectweb.cjdbc.controller.core.Controller.listDatabaseClients String  virtualDbName  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.listDatabaseClients(java.lang.String)
Controller.java1286 行で定義されています。

参照先 org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.viewAllClientNames(), と org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

01287 { 01288 VirtualDatabase vdb = (VirtualDatabase) virtualDatabases.get(virtualDbName); 01289 if (vdb == null) 01290 throw new Exception(ExceptionTypes.DATABASE_NOT_FOUND); 01291 else 01292 { 01293 return vdb.viewAllClientNames(); 01294 } 01295 }

ArrayList org.objectweb.cjdbc.controller.core.Controller.listVirtualDatabases  ) 
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.listVirtualDatabases()
Controller.java1255 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

01256 { 01257 return new ArrayList(virtualDatabases.keySet()); 01258 }

String org.objectweb.cjdbc.controller.core.Controller.loadXML String  filename  )  throws Exception
 

Read a XML configuration file for a set of virtual databases

引数:
filename XML configuration file name
戻り値:
a diagnostic message (success or error)
例外:
Exception if an error occurs
Controller.java1025 行で定義されています。
01026 { 01027 return this.loadXmlConfiguration(filename, null, 01028 ControllerConstants.AUTO_ENABLE_BACKEND, 01029 ControllerConstants.DATABASE_DEFAULT_CHECKPOINT); 01030 }

String org.objectweb.cjdbc.controller.core.Controller.loadXmlConfiguration String  filename,
String  virtualName,
int  autoLoad,
String  checkPoint
throws Exception
 

Read a XML configuration file and load only the VirtualDatabase specified in the arguments list

引数:
filename XML configuration file name to take info on VirtualDatabase
virtualName the only database to load, null if should load all
autoLoad specifies if the backends should be enabled automatically after loading
checkPoint checkPoint to recover from when enabling backends. Leave null if no recovery option is needed.
戻り値:
a diagnostic message (success or error)
例外:
Exception if an error occurs
Controller.java978 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabases(), と org.objectweb.cjdbc.controller.core.Controller.logger.

00980 { 00981 try 00982 { 00983 filename = filename.trim(); 00984 FileReader fileReader; 00985 try 00986 { 00987 fileReader = new FileReader(filename); 00988 } 00989 catch (FileNotFoundException fnf) 00990 { 00991 return Translate.get("controller.file.not.found", filename); 00992 } 00993 00994 // Read the file 00995 BufferedReader in = new BufferedReader(fileReader); 00996 StringBuffer xml = new StringBuffer(); 00997 String line; 00998 do 00999 { 01000 line = in.readLine(); 01001 if (line != null) 01002 xml.append(line); 01003 } 01004 while (line != null); 01005 01006 // Send it to the controller 01007 addVirtualDatabases(xml.toString(), virtualName, autoLoad, checkPoint); 01008 return Translate.get("controller.file.send", filename); 01009 } 01010 catch (Exception e) 01011 { 01012 logger.error(Translate.get("controller.loadXml.failed", e), e); 01013 throw new ControllerException(Translate.get("controller.loadXml.failed", 01014 e)); 01015 } 01016 }

void org.objectweb.cjdbc.controller.core.Controller.main String  args[]  )  throws Exception [static]
 

Launches the C-JDBC controller and bind it with RMI registry. The available options are:

  • -h or --help <port>: displays usage informations.
  • -j or --jmx <port>: optinal JMX server HTTP adaptor port number.
  • -n or --name <name>: optional controller name.
  • -i or --ip <ip>: optional IP address to beind the controller to.
  • -r or --rmi <port>: optional RMI registry port number.
  • -v or --version: displays version informations.

The controller starts listening for socket connections on the default port. Jmx is configured, and a virtual database can be added.

org.objectweb.cjdbc.controller.core.ControllerConstants#DEFAULT_PORT Default Listening port

引数:
args command line arguments (see above)
例外:
Exception when everything goes wrong
Controller.java900 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.ControllerFactory.getController(), org.objectweb.cjdbc.controller.core.Controller.getVersion(), org.objectweb.cjdbc.controller.core.Controller.launch(), と org.objectweb.cjdbc.controller.core.Controller.logger.

00901 { 00902 logger.info(getVersion()); 00903 00904 System.setProperty("javax.management.builder.initial", 00905 org.objectweb.cjdbc.controller.jmx.MBeanServerBuilder.class.getName()); 00906 00907 ControllerFactory conf = new ControllerFactory(args); 00908 Controller controller = conf.getController(); 00909 if (controller != null) 00910 controller.launch(); 00911 else 00912 throw new Exception(Translate.get("controller.configure.failed")); 00913 }

String org.objectweb.cjdbc.controller.core.Controller.prettyXml String  xml  )  [private]
 

Indent xml with xslt

引数:
xml to indent
戻り値:
xml
Controller.java341 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.applyXsl(), と org.objectweb.cjdbc.controller.core.Controller.logger.

参照元 org.objectweb.cjdbc.controller.core.Controller.getXml(), org.objectweb.cjdbc.controller.core.Controller.saveConfiguration(), org.objectweb.cjdbc.controller.core.Controller.viewDatabasesXml(), org.objectweb.cjdbc.controller.core.Controller.viewDatabaseXml(), と org.objectweb.cjdbc.controller.core.Controller.viewInfo().

00342 { 00343 try 00344 { 00345 return applyXsl(xml, "c-jdbc-pretty.xsl"); 00346 } 00347 catch (RuntimeException e) 00348 { 00349 logger.error(e.getMessage(), e); 00350 return e.getMessage(); 00351 } 00352 catch (Exception e) 00353 { 00354 return e.getMessage(); 00355 } 00356 }

void org.objectweb.cjdbc.controller.core.Controller.refreshLogConfiguration  )  throws ControllerException
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.refreshLogConfiguration()
Controller.java593 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.logger.

00594 { 00595 try 00596 { 00597 LogManager.configure(this.getClass().getResource( 00598 ControllerConstants.LOG4J_RESOURCE).getFile()); 00599 if (logger.isDebugEnabled()) 00600 logger.info(Translate.get("controller.refresh.log.success")); 00601 } 00602 catch (Exception e) 00603 { 00604 throw new ControllerException(Translate 00605 .get("controller.logconfigfile.not.found")); 00606 } 00607 }

boolean org.objectweb.cjdbc.controller.core.Controller.removeDumpFile File  dumpFile  ) 
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.removeDumpFile(java.io.File)
Controller.java1376 行で定義されています。
01377 { 01378 logger.info(Translate.get("controller.remove.dump", dumpFile.getName())); 01379 return dumpFile.delete(); 01380 }

String org.objectweb.cjdbc.controller.core.Controller.removeVirtualDatabase String  virtualname  )  throws ControllerException
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.removeVirtualDatabase(String)
Controller.java442 行で定義されています。

参照先 org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.disableAllBackend(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getAllBackendNames(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getName(), org.objectweb.cjdbc.controller.core.Controller.hasVirtualDatabase(), と org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

00444 { 00445 if (hasVirtualDatabase(virtualname)) 00446 { 00447 VirtualDatabase vdb = (VirtualDatabase) virtualDatabases.get(virtualname); 00448 try 00449 { 00450 vdb.disableAllBackend(); 00451 } 00452 catch (VirtualDatabaseException e) 00453 { 00454 throw new ControllerException(e); 00455 } 00456 this.virtualDatabases.remove(virtualname); 00457 00458 // Send notification 00459 if (MBeanServerManager.isJmxEnabled()) 00460 { 00461 Hashtable databases = new Hashtable(); 00462 try 00463 { 00464 databases.put("backends", vdb.getAllBackendNames()); 00465 } 00466 catch (VirtualDatabaseException e) 00467 { 00468 // ignore 00469 } 00470 RmiConnector.broadcastNotification(this, 00471 CjdbcNotificationList.CONTROLLER_VIRTUALDATABASE_REMOVED, 00472 CjdbcNotificationList.NOTIFICATION_LEVEL_INFO, Translate.get( 00473 "notification.virtualdatabase.removed", vdb.getName()), 00474 databases); 00475 } 00476 } 00477 return Translate.get("controller.removeVirtualDatabase.success", 00478 virtualname); 00479 }

String org.objectweb.cjdbc.controller.core.Controller.saveConfiguration  )  throws VirtualDatabaseException
 

Save current configuration of the controller to a default file

戻り値:
Status message
例外:
VirtualDatabaseException if an error occurs
参照:
org.objectweb.cjdbc.controller.core.ControllerConstants.getSaveFile
Controller.java836 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.getXmlVirtualDatabases(), org.objectweb.cjdbc.controller.core.Controller.logger, と org.objectweb.cjdbc.controller.core.Controller.prettyXml().

00837 { 00838 String msg = Translate.get("controller.save.configuration"); 00839 try 00840 { 00841 String configurationFile = ControllerConstants 00842 .getSaveFile(new SimpleDateFormat("EEE, MMM d, yy") 00843 .format(new Date())); 00844 DataOutputStream dos = new DataOutputStream(new BufferedOutputStream( 00845 new FileOutputStream(configurationFile))); 00846 StringBuffer xml = new StringBuffer(); 00847 xml.append(prettyXml(getXmlVirtualDatabases().toString())); 00848 dos.write(xml.toString().getBytes()); 00849 dos.close(); 00850 } 00851 catch (Exception e) 00852 { 00853 msg = Translate.get("controller.save.configuration.failed", e); 00854 logger.error(msg); 00855 } 00856 return msg; 00857 }

void org.objectweb.cjdbc.controller.core.Controller.setBacklogSize int  size  ) 
 

Set the controller socket backlog size.

引数:
size backlog size
Controller.java1164 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.backlogSize.

01165 { 01166 backlogSize = size; 01167 }

void org.objectweb.cjdbc.controller.core.Controller.setConfiguration Hashtable  configuration  ) 
 

Sets the configuration value.

引数:
configuration The configuration to set.
Controller.java1317 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.ControllerFactory.setup().

01318 { 01319 this.configuration = configuration; 01320 }

void org.objectweb.cjdbc.controller.core.Controller.setIPAddress String  ipAddress  ) 
 

Set the IP address to bind the controller to

引数:
ipAddress the IP address to use
Controller.java1124 行で定義されています。
01125 { 01126 this.ipAddress = ipAddress; 01127 }

void org.objectweb.cjdbc.controller.core.Controller.setJmxEnable boolean  enable  ) 
 

set enable JMX

引数:
enable true if jmx should be enable.
Controller.java1201 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.configuration.

01202 { 01203 configuration.put(ControllerFactory.JMX_ENABLE, "" + enable); 01204 }

void org.objectweb.cjdbc.controller.core.Controller.setPortNumber int  port  ) 
 

Set the controller backlog size.

引数:
port the port number to set
Controller.java1144 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.portNumber.

01145 { 01146 portNumber = port; 01147 }

void org.objectweb.cjdbc.controller.core.Controller.setReport ReportManager  report  ) 
 

Sets the report value.

引数:
report The report to set.
Controller.java1440 行で定義されています。
01441 { 01442 this.report = report; 01443 }

void org.objectweb.cjdbc.controller.core.Controller.setSecurity ControllerSecurityManager  security  ) 
 

引数:
security The security to set.
Controller.java1247 行で定義されています。
01248 { 01249 this.security = security; 01250 }

void org.objectweb.cjdbc.controller.core.Controller.shutdown int  level,
boolean  systemExit
throws ControllerException
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.shutdown
Controller.java798 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.ReportManager.getReportLocation(), org.objectweb.cjdbc.controller.core.shutdown.ShutdownThread.getShutdownGroup(), org.objectweb.cjdbc.controller.core.ReportManager.isGenerateOnShutdown(), org.objectweb.cjdbc.controller.core.Controller.isSecurityEnabled(), org.objectweb.cjdbc.controller.core.Controller.isShuttingDown, org.objectweb.cjdbc.controller.core.Controller.logger, org.objectweb.cjdbc.controller.core.Controller.report, org.objectweb.cjdbc.controller.core.Controller.security, org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.setSystemExit(), と org.objectweb.cjdbc.controller.core.Controller.shutdown().

00800 { 00801 if (isShuttingDown) 00802 { 00803 logger.info(Translate.get("controller.already.shutting.down", this 00804 .getName())); 00805 return; 00806 } 00807 isShuttingDown = true; 00808 00809 if (isSecurityEnabled() && !security.getAllowConsoleShutdown()) 00810 throw new ControllerException(Translate 00811 .get("controller.shutdown.refused")); 00812 00813 ControllerShutdownThread shutdown = new ControllerShutdownThread(this, 00814 level); 00815 shutdown.setSystemExit(systemExit); 00816 Thread thread = new Thread(shutdown.getShutdownGroup(), shutdown, 00817 "Controller Shutdown Thread"); 00818 thread.start(); 00819 00820 if (report != null && report.isGenerateOnShutdown()) 00821 { 00822 new ReportManager(this).generate(); 00823 logger.info(Translate.get("fatal.report.generated", report 00824 .getReportLocation() 00825 + File.separator + ControllerConstants.REPORT_FILE)); 00826 } 00827 }

void org.objectweb.cjdbc.controller.core.Controller.shutdown int  level  )  throws ControllerException
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.shutdown(int)
Controller.java740 行で定義されています。
00741 { 00742 this.shutdown(level, true); 00743 }

void org.objectweb.cjdbc.controller.core.Controller.shutdown  )  throws ControllerException
 

Turns the controller down by using default shutdown level

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.shutdown(int)
Controller.java732 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.shutdown().

00733 { 00734 this.shutdown(Constants.DEFAULT_SHUTDOWN_MODE); 00735 }

void org.objectweb.cjdbc.controller.core.Controller.shutdownDatabase String  databaseName,
int  level
throws ControllerException
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.shutdownDatabase(String, int)
Controller.java749 行で定義されています。

参照先 org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getAllBackendNames(), org.objectweb.cjdbc.controller.core.Controller.getJmxEnable(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getName(), org.objectweb.cjdbc.controller.core.Controller.logger, org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.shutdown(), と org.objectweb.cjdbc.controller.core.Controller.virtualDatabases.

00751 { 00752 VirtualDatabase database = this.getVirtualDatabase(databaseName); 00753 if (database != null) 00754 { 00755 virtualDatabases.remove(databaseName); 00756 if (getJmxEnable() == true) 00757 { 00758 try 00759 { 00760 MBeanServerManager.unregister(JmxConstants 00761 .getVirtualDbObjectName(databaseName)); 00762 } 00763 catch (Exception jmxException) 00764 { 00765 logger.error(Translate.get("jmx.shutdown.virtual.database.failed")); 00766 } 00767 } 00768 00769 // Send notification, if it fails after we're not in a coherent state 00770 // anymore 00771 if (MBeanServerManager.isJmxEnabled()) 00772 { 00773 Hashtable databases = new Hashtable(); 00774 try 00775 { 00776 databases.put("backends", database.getAllBackendNames()); 00777 } 00778 catch (VirtualDatabaseException e) 00779 { 00780 // ignore 00781 } 00782 RmiConnector.broadcastNotification(this, 00783 CjdbcNotificationList.CONTROLLER_VIRTUALDATABASE_REMOVED, 00784 CjdbcNotificationList.NOTIFICATION_LEVEL_INFO, Translate.get( 00785 "notification.virtualdatabase.removed", database.getName()), 00786 databases); 00787 } 00788 00789 database.shutdown(level); 00790 00791 logger.info(Translate.get("controller.shutdown.remove", databaseName)); 00792 } 00793 }

void org.objectweb.cjdbc.controller.core.Controller.updateLogConfigurationFile String  newConfiguration  )  throws IOException, ControllerException
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.updateLogConfigurationFile(java.lang.String)
Controller.java1401 行で定義されています。
01403 { 01404 File logFile = new File(getClass().getResource( 01405 ControllerConstants.LOG4J_RESOURCE).getFile()); 01406 BufferedWriter writer = new BufferedWriter(new FileWriter(logFile)); 01407 writer.write(newConfiguration); 01408 writer.flush(); 01409 writer.close(); 01410 refreshLogConfiguration(); 01411 }

String org.objectweb.cjdbc.controller.core.Controller.viewConfiguration  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.viewConfiguration
Controller.java312 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.applyXsl(), と org.objectweb.cjdbc.controller.core.Controller.getXmlController().

00313 { 00314 return applyXsl(getXmlController(), "c-jdbc-controller.xsl"); 00315 }

String org.objectweb.cjdbc.controller.core.Controller.viewDatabases  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.viewDatabases
Controller.java320 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.applyXsl(), と org.objectweb.cjdbc.controller.core.Controller.getXmlVirtualDatabases().

参照元 org.objectweb.cjdbc.controller.core.ReportManager.writeControllerInfo().

00321 { 00322 return applyXsl(getXmlVirtualDatabases(), "c-jdbc.xsl"); 00323 }

String org.objectweb.cjdbc.controller.core.Controller.viewDatabasesXml  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.viewDatabasesXml
Controller.java328 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.getXmlVirtualDatabases(), と org.objectweb.cjdbc.controller.core.Controller.prettyXml().

参照元 org.objectweb.cjdbc.controller.core.ReportManager.writeControllerInfo().

00329 { 00330 //return 00331 // "<C-JDBCTree>"+getXmlController()+getXmlVirtualDatabases()+"</C-JDBCTree>"; 00332 return prettyXml(getXmlVirtualDatabases()); 00333 }

String org.objectweb.cjdbc.controller.core.Controller.viewDatabaseXml String  databaseName  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.viewDatabaseXml(java.lang.String)
Controller.java1325 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.getVirtualDatabase(), org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabase.getXml(), と org.objectweb.cjdbc.controller.core.Controller.prettyXml().

01326 { 01327 VirtualDatabase database = getVirtualDatabase(databaseName); 01328 if (database != null) 01329 return prettyXml(database.getXml()); 01330 else 01331 return ""; 01332 }

String org.objectweb.cjdbc.controller.core.Controller.viewInfo  )  throws Exception
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.viewInfo
Controller.java304 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.Controller.getXmlController(), と org.objectweb.cjdbc.controller.core.Controller.prettyXml().

00305 { 00306 return prettyXml(getXmlController()); 00307 }

String org.objectweb.cjdbc.controller.core.Controller.viewLogConfigurationFile  )  throws IOException
 

参照:
org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean.viewLogConfigurationFile()
Controller.java1385 行で定義されています。
01386 { 01387 File logFile = new File(getClass().getResource( 01388 ControllerConstants.LOG4J_RESOURCE).getFile()); 01389 BufferedReader reader = new BufferedReader(new FileReader(logFile)); 01390 StringBuffer buffer = new StringBuffer(); 01391 String line; 01392 while ((line = reader.readLine()) != null) 01393 buffer.append(line + System.getProperty("line.separator")); 01394 reader.close(); 01395 return buffer.toString(); 01396 }


変数

int org.objectweb.cjdbc.controller.core.Controller.backlogSize [private]
 

Controller.java101 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.getBacklogSize(), と org.objectweb.cjdbc.controller.core.Controller.setBacklogSize().

Hashtable org.objectweb.cjdbc.controller.core.Controller.configuration [private]
 

Hashtable of options Controller.java121 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.getConfiguration(), org.objectweb.cjdbc.controller.core.Controller.getXmlController(), と org.objectweb.cjdbc.controller.core.Controller.setJmxEnable().

ControllerServerThread org.objectweb.cjdbc.controller.core.Controller.connectionThread [private]
 

Thread that listens for driver connections Controller.java111 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.getConnectionThread(), と org.objectweb.cjdbc.controller.core.Controller.launch().

Transformer org.objectweb.cjdbc.controller.core.Controller.infoTransformer [private]
 

Controller.java131 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.applyXsl().

String org.objectweb.cjdbc.controller.core.Controller.ipAddress [private]
 

The IP address to bind the controller to. Useful for machines that contain multiple network interface cards and wish to bind to a specific card. Default evaluates to localhost IP address (127.0.0.1). Controller.java108 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.Controller(), org.objectweb.cjdbc.controller.core.Controller.getIPAddress(), と org.objectweb.cjdbc.controller.core.Controller.getName().

boolean org.objectweb.cjdbc.controller.core.Controller.isShuttingDown [private]
 

Controller.java132 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.shutdown().

Trace org.objectweb.cjdbc.controller.core.Controller.logger [static, package]
 

初期値:

Trace .getLogger("org.objectweb.cjdbc.controller.core.Controller")
Logger instance. Controller.java114 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.addDriver(), org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabase(), org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabases(), org.objectweb.cjdbc.controller.core.Controller.applyXsl(), org.objectweb.cjdbc.controller.core.Controller.endOfController(), org.objectweb.cjdbc.controller.core.Controller.getXml(), org.objectweb.cjdbc.controller.core.Controller.getXmlVirtualDatabases(), org.objectweb.cjdbc.controller.core.Controller.launch(), org.objectweb.cjdbc.controller.core.Controller.loadXmlConfiguration(), org.objectweb.cjdbc.controller.core.Controller.main(), org.objectweb.cjdbc.controller.core.Controller.prettyXml(), org.objectweb.cjdbc.controller.core.Controller.refreshLogConfiguration(), org.objectweb.cjdbc.controller.core.Controller.saveConfiguration(), org.objectweb.cjdbc.controller.core.Controller.shutdown(), と org.objectweb.cjdbc.controller.core.Controller.shutdownDatabase().

int org.objectweb.cjdbc.controller.core.Controller.portNumber [private]
 

C-JDBC controller port number listening for driver connections Controller.java100 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.getName(), org.objectweb.cjdbc.controller.core.Controller.getPortNumber(), と org.objectweb.cjdbc.controller.core.Controller.setPortNumber().

ReportManager org.objectweb.cjdbc.controller.core.Controller.report [private]
 

Report Manager Controller.java127 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.ControllerShutdownThread(), org.objectweb.cjdbc.controller.core.Controller.endOfController(), org.objectweb.cjdbc.controller.core.Controller.generateLogReport(), org.objectweb.cjdbc.controller.core.Controller.generateReport(), org.objectweb.cjdbc.controller.core.Controller.getXmlController(), と org.objectweb.cjdbc.controller.core.Controller.shutdown().

ControllerSecurityManager org.objectweb.cjdbc.controller.core.Controller.security [private]
 

Security Manager Controller.java124 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.addDriver(), org.objectweb.cjdbc.controller.core.Controller.getSecurity(), org.objectweb.cjdbc.controller.core.Controller.isSecurityEnabled(), と org.objectweb.cjdbc.controller.core.Controller.shutdown().

TransformerFactory org.objectweb.cjdbc.controller.core.Controller.tFactory [private]
 

XSL Transformation Controller.java130 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.applyXsl().

Hashtable org.objectweb.cjdbc.controller.core.Controller.virtualDatabases [private]
 

Hashtable of VirtualDatabase objects. Controller.java118 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabase(), org.objectweb.cjdbc.controller.core.Controller.Controller(), org.objectweb.cjdbc.controller.core.Controller.getVirtualDatabase(), org.objectweb.cjdbc.controller.core.Controller.getVirtualDatabases(), org.objectweb.cjdbc.controller.core.Controller.getXmlVirtualDatabases(), org.objectweb.cjdbc.controller.core.Controller.hasVirtualDatabase(), org.objectweb.cjdbc.controller.core.Controller.isCacheEnableForDatabase(), org.objectweb.cjdbc.controller.core.Controller.listBackends(), org.objectweb.cjdbc.controller.core.Controller.listDatabaseClients(), org.objectweb.cjdbc.controller.core.Controller.listVirtualDatabases(), org.objectweb.cjdbc.controller.core.Controller.removeVirtualDatabase(), と org.objectweb.cjdbc.controller.core.Controller.shutdownDatabase().


このクラスの説明は次のファイルから生成されました:
CJDBCversion1.0.4に対してTue Oct 12 15:16:40 2004に生成されました。 doxygen 1.3.8