apache tomcat jdbc-poolの使用方法とその属性の説明

14225 ワード

spingのプロファイルにこのように書く、データソース構成、mysqlのデータソース
     
    
    
    
    
    
    
    
     
    
    
    
    
    
    
    
 

tomcat jdbc-poolのプロパティは多く、次のようなものがあります.
private volatile Properties dbProperties = new Properties();
    private volatile String url = null;
    private volatile String driverClassName = null;
    private volatile Boolean defaultAutoCommit = null;
    private volatile Boolean defaultReadOnly = null;
    private volatile int defaultTransactionIsolation = DataSourceFactory.UNKNOWN_TRANSACTIONISOLATION;
    private volatile String defaultCatalog = null;
    private volatile String connectionProperties;
    private volatile int initialSize = 10;
    private volatile int maxActive = DEFAULT_MAX_ACTIVE;
    private volatile int maxIdle = maxActive;
    private volatile int minIdle = initialSize;
    private volatile int maxWait = 30000;
    private volatile String validationQuery;
    private volatile int validationQueryTimeout = -1;
    private volatile String validatorClassName;
    private volatile Validator validator;
    private volatile boolean testOnBorrow = false;
    private volatile boolean testOnReturn = false;
    private volatile boolean testWhileIdle = false;
    private volatile int timeBetweenEvictionRunsMillis = 5000;
    private volatile int numTestsPerEvictionRun;
    private volatile int minEvictableIdleTimeMillis = 60000;
    private volatile boolean accessToUnderlyingConnectionAllowed = true;
    private volatile boolean removeAbandoned = false;
    private volatile int removeAbandonedTimeout = 60;
    private volatile boolean logAbandoned = false;
    private volatile String name = "Tomcat Connection Pool["+(poolCounter.addAndGet(1))+"-"+System.identityHashCode(PoolProperties.class)+"]";
    private volatile String password;
    private volatile String username;
    private volatile long validationInterval = 30000;
    private volatile boolean jmxEnabled = true;
    private volatile String initSQL;
    private volatile boolean testOnConnect =false;
    private volatile String jdbcInterceptors=null;
    private volatile boolean fairQueue = true;
    private volatile boolean useEquals = true;
    private volatile int abandonWhenPercentageFull = 0;
    private volatile long maxAge = 0;
    private volatile boolean useLock = false;
    private volatile InterceptorDefinition[] interceptors = null;
    private volatile int suspectTimeout = 0;
    private volatile Object dataSource = null;
    private volatile String dataSourceJNDI = null;
    private volatile boolean alternateUsernameAllowed = false;
    private volatile boolean commitOnReturn = false;
    private volatile boolean rollbackOnReturn = false;
    private volatile boolean useDisposableConnectionFacade = true;
    private volatile boolean logValidationErrors = false;
    private volatile boolean propagateInterruptState = false;
    private volatile boolean ignoreExceptionOnPreLoad = false;

公式ドキュメントの説明によると、個人的にいくつかの属性について中国語で説明し、google翻訳よりも正常です.url, driverClassName, username, passwordこれらの属性はjdbcの同級生を知っていて、私は説明しません.
name

接続プールの名前
defaultAutoCommit

接続プールによって作成された接続の自動コミット(auto-commit)ステータスを指定します.
DefaultReadOnly

接続プールによって作成された接続対データベースの読み取り専用プロパティ
DefaultTransactionIsolation

接続プールによって作成される接続のトランザクション・レベル(TransactionIsolation)を指定します.使用可能な値は次のいずれかです.(詳細はjavadoc)NONE,READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, SERIALIZA
JmxEnabled

jmxの管理機能をオンにする
TestWhileIdle

テストスレッドが使用され、プール内の接続が正常に使用されるかどうかをテストします.
ValidationQuery

接続がアイドル状態になったときにアイドルオブジェクト駆逐プロセスのチェックを通過するかどうかを指定します(アイドルオブジェクト駆逐プロセスがある場合).検証が失敗した場合、接続プールは切断されます.注意:値がtrueの場合にこの設定を有効にするには、validationQueryパラメータが空でない文字列である必要があります.
TestOnBorrow

接続が呼び出されたときに検証されたかどうかを指定します.検証が失敗した場合、接続は接続プールによって切断され、接続プールによって別の接続を呼び出そうとします.接続がプールに戻ったときに検証されたかどうかを指定します.注意:値がtrueの場合にこの設定を有効にするには、validationQueryパラメータが空でない文字列である必要があります.
TestOnReturn

接続がプールに戻ったときに検証されたかどうかを指定します.注意:値がtrueの場合にこの設定を有効にするには、validationQueryパラメータが空でない文字列である必要があります.
ValidationInterval

時間間隔をミリ秒単位で検証します.
TimeBetweenEvictionRunsMillis

ミリ秒で表されるアイドルオブジェクト駆逐プロセスが実行状態からスリープ状態に入る数値.値が正数でない場合は、アイドルオブジェクト駆逐プロセスが実行されないことを示します.
MaxActive

プール内の作業接続の最大数です.この値は非正数であり、記述に制限はありません.
InitialSize

ミリ秒で表される接続プールに使用可能な接続がない場合、使用可能な接続が返されるのを待つ時間、タイムアウトすると例外が放出され、値が-1の場合、無期限に待機します.
MaxWait

ミリ秒で表される接続プールに使用可能な接続がない場合、使用可能な接続が返されるのを待つ時間、タイムアウトすると例外が放出され、値が-1の場合、無期限に待機します.
MinIdle

プール内の最小アイドル接続数です.接続数がこの値より少ない場合、プールはその値に補足する接続数を作成します.
MaxIdle

プールで許可されている最大接続数、値が正数でない場合は制限されません
NumTestsPerEvictionRun

接続プール各アイドル・オブジェクトの駆逐プロセスのオブジェクト数をチェックします(アイドル・オブジェクトの駆逐プロセスがある場合)
MinEvictableIdleTimeMillis

ミリ秒で表される接続は、アイドルオブジェクト駆逐プロセスによって駆逐される前にプール内でアイドル状態を維持する最小時間(アイドルオブジェクト駆逐プロセスが存在する場合).
LogAbandoned

無効な接続をクリアしたときに、クリア情報のフラグをログに記録するかどうか.無効な文と接続を記録し、各接続がオンまたは新規の文のシステムオーバーヘッドを追加します.「removeAbandoned」をオンにすると、無効に設定された接続が接続プールで回収される可能性があります.このメカニズムは、(getNumIdle()<2)と(getNumActive()>getMaxActive()−3)の2つの条件を満たすときに起動します.たとえば、maxActive=20を仮定し、現在18のアクティブな接続があり、1つの空き接続があり、「removeAbandoned」メカニズムが起動します.ただし、アクティブな接続が使用されていない場合にのみ、「removeAbandonedTimeout」(デフォルトでは300秒)を超える接続がクリアされます.結果セットを巡回する場合、使用する接続はアクティブな接続としてマークされません.
RemoveAbandoned

「removeAbandonedTimout」の設定を超えた無効な接続を消去するかどうか.値が「true」の場合、「removeAbandonedTimout」の設定を超える無効な接続が消去されます.このプロパティを設定すると、接続を閉じるのに適していないプログラムからデータベースの接続を復元できます.無効な文と接続を記録し、各接続がオンまたは新規の文のシステムオーバーヘッドを追加します.
RemoveAbandonedTimeout

無効な接続を消去する時間を秒で表します.
JdbcInterceptors

tomcat jdbc接続プールのブロッキングを設定します.内蔵ブロッキング:org.apache.tomcat.jdbc.pool.interceptor.ConnectionState自動コミット、読み取り専用ステータス、catalog、トランザクション分離レベルなどのステータスを追跡
org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer

開いたstatementを追跡する、接続が返却されたときに閉じる.
複数のブロッキング用;分割、たとえば:poolProps.setJdbcInterceptors("org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer);
dataSourceJNDI

データソースとしてjndiを指定
accessToUnderlyingConnectionAllowed

わかりません.以上のプロパティは、私が理解できない場合は、デフォルト値を維持したほうがいいです.