📄 datasourceservice.java
字号:
/* * PoolMan Java Object Pooling and Caching Library * Copyright (C) 1999-2001 The Code Studio * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * The full license is located at the root of this distribution * in the LICENSE file. */package com.codestudio.management;import com.codestudio.util.JDBCPool;import com.codestudio.util.JDBCPoolMetaData;import com.codestudio.util.ObjectPool;import com.codestudio.util.SQLManager;import javax.management.MBeanRegistration;/** * An MBean defining the manageable attributes of a JDBCPool * and PoolManDataSource. */public class DataSourceService extends ObjectPoolService implements DataSourceServiceMBean, MBeanRegistration { private JDBCPoolMetaData jdbcMeta; public DataSourceService() { this.metadata = new JDBCPoolMetaData(); this.jdbcMeta = (JDBCPoolMetaData) this.metadata; } /* SERVICE ACTIONS */ public void start() throws Exception { // create the pool and put it in SQLManager via singleton callback SQLManager m = SQLManager.getInstance(); JDBCPool pool = m.createPool(this.jdbcMeta); pool.log("PoolMan DataSourceService: Created JDBC Connection Pool named: " + getDbname()); // flip the switch this.available = true; } public void stop() throws Exception { // flip the switch this.available = false; // retrieve the pool SQLManager m = SQLManager.getInstance(); JDBCPool pool = (JDBCPool) m.getPool(getDbname()); // remove it from the manager m.removePool(getDbname()); // destroy the pool pool.log("PoolMan DataSourceService: Destroying JDBC Connection Pool " + getDbname()); pool.closeAllResources(); pool = null; } public boolean isRunning() { return this.available; } /* PHYSICAL CONNECTION METHODS */ public String getDriver() { return this.jdbcMeta.getDriver(); } public void setDriver(String driver) { this.jdbcMeta.setDriver(driver); } public String getURL() { return this.jdbcMeta.getURL(); } public void setURL(String URL) { this.jdbcMeta.setURL(URL); } public String getUserName() { return this.jdbcMeta.getUserName(); } public void setUserName(String username) { this.jdbcMeta.setUserName(username); } public String getPassword() { return this.jdbcMeta.getPassword(); } public void setPassword(String password) { this.jdbcMeta.setPassword(password); } /* DATASOURCE METHODS */ public String getDbname() { return this.jdbcMeta.getName(); } public void setDbname(String n) { this.jdbcMeta.setName(n); } public String getJNDIName() { return this.jdbcMeta.getJNDIName(); } public void setJNDIName(String n) { this.jdbcMeta.setJNDIName(n); } public boolean isNativeResults() { return this.jdbcMeta.isNativeResults(); } public void setNativeResults(boolean b) { this.jdbcMeta.setNativeResults(b); } public boolean isDataSourceDeployed() { JDBCPool pool = (JDBCPool) SQLManager.getInstance().getPool(getDbname()); return pool.isDataSourceDeployed(); } /* POOL BEHAVIOR METHODS */ public boolean isPoolPreparedStatements() { return this.jdbcMeta.isPoolPreparedStatements(); } public void setPoolPreparedStatements(boolean poolingPreparedStatements) { this.jdbcMeta.setPoolPreparedStatements(poolingPreparedStatements); } public String getValidationQuery() { return this.jdbcMeta.getValidationQuery(); } public void setValidationQuery(String sql) { this.jdbcMeta.setValidationQuery(sql); } public String getInitialPoolSQL() { return this.jdbcMeta.getInitialPoolSQL(); } public void setInitialPoolSQL(String sql) { this.jdbcMeta.setInitialPoolSQL(sql); } public String getInitialConnectionSQL() { return this.jdbcMeta.getInitialConnectionSQL(); } public void setInitialConnectionSQL(String sql) { this.jdbcMeta.setInitialConnectionSQL(sql); } public boolean isRemoveOnExceptions() { return this.jdbcMeta.isRemoveOnExceptions(); } public void setRemoveOnExceptions(boolean b) { this.jdbcMeta.setRemoveOnExceptions(b); } /* POOLED CONNECTION METHODS */ public int getInitialConnections() { return getInitialObjects(); } public void setInitialConnections(int n) { setInitialObjects(n); } public int getConnectionTimeout() { return getObjectTimeout(); } public void setConnectionTimeout(int n) { setObjectTimeout(n); } /* TX METHODS */ public int getTransactionTimeout() { return this.jdbcMeta.getTransactionTimeout(); } public void setTransactionTimeout(int n) { this.jdbcMeta.setTransactionTimeout(n); } public String getTxIsolationLevel() { return this.jdbcMeta.getTxIsolationLevel(); } public void setTxIsolationLevel(String s) { this.jdbcMeta.setTxIsolationLevel(s); } /* QUERY CACHE METHODS */ public boolean isCacheEnabled() { return this.jdbcMeta.isCacheEnabled(); } public void setCacheEnabled(boolean b) { this.jdbcMeta.setCacheEnabled(b); } public int getCacheSize() { return this.jdbcMeta.getCacheSize(); } public void setCacheSize(int n) { this.jdbcMeta.setCacheSize(n); } public int getCacheRefreshInterval() { return this.jdbcMeta.getCacheRefreshInterval(); } public void setCacheRefreshInterval(int seconds) { this.jdbcMeta.setCacheRefreshInterval(seconds); } /* READ-ONLY MONITORING METHODS */ public int getAvailableConnections() { ObjectPool pool = SQLManager.getInstance().getPool(getDbname()); return pool.numCheckedInObjects(); } public int getUnavailableConnections() { ObjectPool pool = SQLManager.getInstance().getPool(getDbname()); return pool.numCheckedOutObjects(); } public int getTotalConnections() { ObjectPool pool = SQLManager.getInstance().getPool(getDbname()); return pool.numTotalObjects(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -