亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? poolbackeddatasource.java

?? c3p0數(shù)據(jù)庫連接池實(shí)現(xiàn)源碼
?? JAVA
字號:
/* * Distributed as part of c3p0 v.0.9.1-pre6 * * Copyright (C) 2005 Machinery For Change, Inc. * * Author: Steve Waldman <swaldman@mchange.com> * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 2.1, as  * published by the Free Software Foundation. * * This software 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. * * You should have received a copy of the GNU Lesser General Public License * along with this software; see the file LICENSE.  If not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. */package com.mchange.v2.c3p0;import java.io.*;import java.sql.*;import javax.sql.*;import com.mchange.v2.c3p0.impl.*;import com.mchange.v2.log.*;import java.beans.PropertyChangeEvent;import java.beans.PropertyVetoException;import java.beans.VetoableChangeListener;import java.beans.PropertyChangeListener;import java.util.Collection;import java.util.Collections;import java.util.Iterator;import java.util.LinkedList;import java.util.Map;import java.util.Set;import com.mchange.v2.c3p0.cfg.C3P0Config;public final class PoolBackedDataSource extends PoolBackedDataSourceBase implements PooledDataSource{    final static MLogger logger = MLog.getLogger( PoolBackedDataSource.class );        final static String NO_CPDS_ERR_MSG =       "Attempted to use an uninitialized PoolBackedDataSource. " +       "Please call setConnectionPoolDataSource( ... ) to initialize.";    //MT: unchanged post-ctor -- Ser: NOT transient... see read/writeObject() below    ComboPooledDataSource parent;    //MT: protected by this' lock    transient C3P0PooledConnectionPoolManager poolManager;    transient boolean is_closed = false;    //MT: end protected by this' lock    public PoolBackedDataSource()    { this( (ComboPooledDataSource) null ); }    PoolBackedDataSource( ComboPooledDataSource parent )    {	this.parent = parent;	PropertyChangeListener l = new PropertyChangeListener()	    {		public void propertyChange( PropertyChangeEvent evt )		{ resetPoolManager(); }	    };	this.addPropertyChangeListener( l );	//this.setNested( parent != null );	C3P0Registry.register( this );    }    public PoolBackedDataSource(String configName)    { 	this();		try	    {		if (configName != null)		    {			C3P0Config.bindNamedConfigToBean( this, configName ); 			if ( this.getDataSourceName().equals( this.getIdentityToken() ) ) //dataSourceName has not been specified in config			    this.setDataSourceName( configName );		    }	    }	catch (Exception e)	    {		if (logger.isLoggable( MLevel.WARNING ))		    logger.log( MLevel.WARNING, 				"Error binding PoolBackedDataSource to named-config '" + configName + 				"'. Some default-config values may be used.", 				e);	    }    }    ComboPooledDataSource owner()    { return parent; }// Commented out method is just super.getReference() with a lot of extra printing////     public javax.naming.Reference getReference() throws javax.naming.NamingException//     {// 	System.err.println("getReference()!!!!");// 	new Exception("PRINT-STACK-TRACE").printStackTrace();// 	javax.naming.Reference out = super.getReference();// 	System.err.println(out);// 	return out;//     }    //implementation of javax.sql.DataSource    public Connection getConnection() throws SQLException    {	PooledConnection pc = getPoolManager().getPool().checkoutPooledConnection();	return pc.getConnection();    }    public Connection getConnection(String username, String password) throws SQLException    { 	PooledConnection pc = getPoolManager().getPool(username, password).checkoutPooledConnection();	return pc.getConnection();    }    public PrintWriter getLogWriter() throws SQLException    { return assertCpds().getLogWriter(); }    public void setLogWriter(PrintWriter out) throws SQLException    { assertCpds().setLogWriter( out ); }    public int getLoginTimeout() throws SQLException    { return assertCpds().getLoginTimeout(); }    public void setLoginTimeout(int seconds) throws SQLException    { assertCpds().setLoginTimeout( seconds ); }    //implementation of com.mchange.v2.c3p0.PoolingDataSource    public int getNumConnections() throws SQLException    { return getPoolManager().getPool().getNumConnections(); }    public int getNumIdleConnections() throws SQLException    { return getPoolManager().getPool().getNumIdleConnections(); }    public int getNumBusyConnections() throws SQLException    { return getPoolManager().getPool().getNumBusyConnections(); }    public int getNumUnclosedOrphanedConnections() throws SQLException    { return getPoolManager().getPool().getNumUnclosedOrphanedConnections(); }    public int getNumConnectionsDefaultUser() throws SQLException    { return getNumConnections();}    public int getNumIdleConnectionsDefaultUser() throws SQLException    { return getNumIdleConnections();}    public int getNumBusyConnectionsDefaultUser() throws SQLException    { return getNumBusyConnections();}    public int getNumUnclosedOrphanedConnectionsDefaultUser() throws SQLException    { return getNumUnclosedOrphanedConnections();}    public void softResetDefaultUser() throws SQLException    { getPoolManager().getPool().reset(); }    public int getNumConnections(String username, String password) throws SQLException    { return getPoolManager().getPool(username, password).getNumConnections(); }    public int getNumIdleConnections(String username, String password) throws SQLException    { return getPoolManager().getPool(username, password).getNumIdleConnections(); }    public int getNumBusyConnections(String username, String password) throws SQLException    { return getPoolManager().getPool(username, password).getNumBusyConnections(); }    public int getNumUnclosedOrphanedConnections(String username, String password) throws SQLException    { return getPoolManager().getPool(username, password).getNumUnclosedOrphanedConnections(); }    public void softReset(String username, String password) throws SQLException    { getPoolManager().getPool(username, password).reset(); }    public int getNumBusyConnectionsAllUsers() throws SQLException    { return getPoolManager().getNumBusyConnectionsAllAuths(); }    public int getNumIdleConnectionsAllUsers() throws SQLException    { return getPoolManager().getNumIdleConnectionsAllAuths(); }    public int getNumConnectionsAllUsers() throws SQLException    { return getPoolManager().getNumConnectionsAllAuths(); }    public int getNumUnclosedOrphanedConnectionsAllUsers() throws SQLException    { return getPoolManager().getNumUnclosedOrphanedConnectionsAllAuths(); }    public void softResetAllUsers() throws SQLException    { getPoolManager().softResetAllAuths(); }    public int getNumUserPools() throws SQLException    { return getPoolManager().getNumManagedAuths(); }    public Collection getAllUsers() throws SQLException    { 	LinkedList out = new LinkedList();	Set auths = getPoolManager().getManagedAuths(); 	for ( Iterator ii = auths.iterator(); ii.hasNext(); ) 	    out.add( ((DbAuth) ii.next()).getUser() ); 	return Collections.unmodifiableList( out );    }    public synchronized void hardReset()    {	resetPoolManager();     }    public synchronized void close()    { 	resetPoolManager(); 	is_closed = true;	if (Debug.DEBUG && Debug.TRACE == Debug.TRACE_MAX && logger.isLoggable(MLevel.FINEST))	    { 		logger.log(MLevel.FINEST, 			   this.getClass().getName() + '@' + Integer.toHexString( System.identityHashCode( this ) ) +			   " has been closed. ",			   new Exception("DEBUG STACK TRACE for PoolBackedDataSource.close()."));	    }    }    /**     * @deprecated the force_destroy argument is now meaningless, as pools are no longer     *             potentially shared between multiple DataSources.     */    public void close(boolean force_destroy)    { close(); }    //other code    public synchronized void resetPoolManager() //used by other, wrapping datasources in package, and in mbean package    { resetPoolManager( true ); }    public synchronized void resetPoolManager( boolean close_checked_out_connections ) //used by other, wrapping datasources in package, and in mbean package    {	if ( poolManager != null )	    {		poolManager.close( close_checked_out_connections );		poolManager = null;	    }     }     private synchronized ConnectionPoolDataSource assertCpds() throws SQLException     {	 if ( is_closed )	     throw new SQLException(this + " has been closed() -- you can no longer use it.");	 ConnectionPoolDataSource out = this.getConnectionPoolDataSource();         if ( out == null )           throw new SQLException(NO_CPDS_ERR_MSG);         return out;     }     private synchronized C3P0PooledConnectionPoolManager getPoolManager() throws SQLException     {	if (poolManager == null)	    {		ConnectionPoolDataSource cpds = assertCpds();		poolManager = new C3P0PooledConnectionPoolManager(cpds, null, null, this.getNumHelperThreads());		if (logger.isLoggable(MLevel.INFO))		    logger.info("Initializing c3p0 pool... " + 				(parent == null ? this.toString() : parent.toString()) /* + "; using pool manager: " + poolManager */);	    }        return poolManager;	         }        // Serialization stuff    private static final long serialVersionUID = 1;    private static final short VERSION = 0x0001;        private void writeObject( ObjectOutputStream oos ) throws IOException    {	oos.writeShort( VERSION );	oos.writeObject( parent );    }	    private void readObject( ObjectInputStream ois ) throws IOException, ClassNotFoundException    {	short version = ois.readShort();	switch (version)	    {	    case VERSION:		this.parent = (ComboPooledDataSource) ois.readObject();		break;	    default:		throw new IOException("Unsupported Serialized Version: " + version);	    }    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
777久久久精品| 亚洲一级二级三级| 亚洲一区二区四区蜜桃| 精东粉嫩av免费一区二区三区| 91视频com| 精品毛片乱码1区2区3区| 亚洲美女屁股眼交| 国产精品亚洲成人| 在线不卡a资源高清| 亚洲人被黑人高潮完整版| 国产伦精品一区二区三区免费迷 | 精品国产免费久久| 一区二区三区在线观看网站| 福利电影一区二区三区| 精品少妇一区二区三区日产乱码| 曰韩精品一区二区| 成人av在线一区二区三区| 久久亚洲一区二区三区四区| 视频一区免费在线观看| 91免费小视频| 国产精品电影院| 盗摄精品av一区二区三区| 精品国产91乱码一区二区三区| 日韩激情视频网站| 欧美日韩国产精选| 亚洲午夜私人影院| 欧洲av在线精品| 一区二区三区丝袜| 日本精品视频一区二区三区| 中文字幕一区二区在线播放| 成人av在线电影| 中文字幕第一区综合| 国产.精品.日韩.另类.中文.在线.播放| 欧美一区二区福利在线| 蜜桃av一区二区| 日韩久久久久久| 黄网站免费久久| 久久一区二区视频| 国产99久久久国产精品潘金| 国产日韩欧美亚洲| av一区二区三区在线| 国产精品色眯眯| 99在线精品观看| 一区二区三区 在线观看视频| 91网上在线视频| 亚洲成a人片在线不卡一二三区 | 色哟哟国产精品免费观看| 亚洲女子a中天字幕| 欧美性欧美巨大黑白大战| 日韩高清在线不卡| 26uuu国产在线精品一区二区| 国产揄拍国内精品对白| 中文字幕一区二区三中文字幕| 91首页免费视频| 亚洲国产aⅴ成人精品无吗| 日韩视频国产视频| 国产999精品久久| 亚洲乱码日产精品bd| 91精品久久久久久久91蜜桃| 国产一区二区三区黄视频| 亚洲欧美在线视频观看| 欧美日本韩国一区| 国产成人精品一区二区三区网站观看| 中文字幕一区二区三区精华液| 欧美另类高清zo欧美| 经典三级一区二区| 亚洲男人都懂的| 欧美tk丨vk视频| 一本大道av一区二区在线播放| 视频一区免费在线观看| 亚洲国产高清在线| 91麻豆精品国产91久久久资源速度 | 欧美电影精品一区二区| 色香色香欲天天天影视综合网| 人妖欧美一区二区| 亚洲欧美在线aaa| 亚洲精品一线二线三线无人区| 色综合久久综合网| 国产综合成人久久大片91| 一级日本不卡的影视| 久久久久久久免费视频了| 欧美日韩国产bt| aa级大片欧美| 狠狠狠色丁香婷婷综合激情 | 中文字幕日韩一区| 日韩欧美一级二级三级久久久| 一本一道久久a久久精品| 久久99国产精品久久| 亚洲一二三专区| 国产精品国产三级国产普通话蜜臀| 制服丝袜国产精品| 在线观看精品一区| 99国产精品久久久| 国产一区美女在线| 日韩高清不卡在线| 亚洲综合av网| 亚洲日本乱码在线观看| 国产日韩欧美不卡| 国产亚洲欧美激情| 久久久国际精品| 久久综合色鬼综合色| 欧美一二三区精品| 777色狠狠一区二区三区| 欧美人成免费网站| 欧美三级日韩三级| 欧美日韩亚洲高清一区二区| 91精品福利视频| 在线观看视频一区二区| 色综合久久天天| 色综合色综合色综合| 一本久久综合亚洲鲁鲁五月天 | 激情欧美一区二区| 蜜桃免费网站一区二区三区| 日av在线不卡| 国产在线播精品第三| 国产精品综合一区二区| 国产精品一区二区三区99| 国产成人在线观看| 成人免费高清在线| 91在线免费播放| 日本黄色一区二区| 欧美日韩午夜影院| 欧美一区二区日韩一区二区| 9191久久久久久久久久久| 欧美一区三区四区| 精品区一区二区| 欧美经典三级视频一区二区三区| 欧美激情综合网| 一区二区日韩av| 免费一级片91| 国产精品91一区二区| 成人国产精品免费观看动漫 | av影院午夜一区| 欧美伊人久久大香线蕉综合69| 欧美色中文字幕| 欧美xxxx在线观看| 欧美国产日韩在线观看| 亚洲黄色在线视频| 精品一区二区在线免费观看| 国产成人精品三级麻豆| 色域天天综合网| 日韩午夜激情免费电影| 国产欧美日本一区视频| 亚洲精品精品亚洲| 精品一区二区三区在线视频| 成人精品鲁一区一区二区| 在线观看免费亚洲| 久久一夜天堂av一区二区三区| 亚洲色图.com| 热久久一区二区| 99视频一区二区三区| 日韩免费在线观看| 国产精品久久久久久久久免费相片| 亚洲精品久久久久久国产精华液| 久久精品国产999大香线蕉| 成人黄色av电影| 精品欧美黑人一区二区三区| 1024国产精品| 国产一区二区三区免费看| 色噜噜久久综合| 精品av久久707| 亚洲一区二区三区四区不卡| 国产老肥熟一区二区三区| 欧美性大战久久| 国产精品久久久久久久第一福利 | 欧美伦理影视网| 日韩一区有码在线| 国产一区在线精品| 777a∨成人精品桃花网| 亚洲精品视频一区二区| 国产成人欧美日韩在线电影| 欧美一级理论性理论a| 亚洲综合图片区| 91丨porny丨国产入口| 欧美激情综合五月色丁香小说| 免费av成人在线| 欧美日韩的一区二区| 亚洲你懂的在线视频| av一区二区三区| 中文字幕在线观看一区二区| 国产精品白丝jk白祙喷水网站| 日韩欧美国产三级| 亚洲va欧美va人人爽| 欧美三级视频在线观看| 一区二区三区免费在线观看| 99久久精品99国产精品| 中文子幕无线码一区tr| 国内一区二区在线| 日韩一区二区三区视频在线| 日韩专区在线视频| 欧美亚洲国产bt| 亚洲激情男女视频| 91视频国产观看| 亚洲黄色小说网站| 欧美性xxxxxx少妇| 亚洲成人自拍偷拍| 欧美一区二区三区在线观看| 日韩高清在线观看| 亚洲精品一区二区三区99| 韩国av一区二区三区四区|