apache tomcat jdbc-poolの使用方法とその属性の説明
14225 ワード
spingのプロファイルにこのように書く、データソース構成、mysqlのデータソース
tomcat jdbc-poolのプロパティは多く、次のようなものがあります.
公式ドキュメントの説明によると、個人的にいくつかの属性について中国語で説明し、google翻訳よりも正常です.
接続プールの名前
接続プールによって作成された接続の自動コミット(auto-commit)ステータスを指定します.
接続プールによって作成された接続対データベースの読み取り専用プロパティ
接続プールによって作成される接続のトランザクション・レベル(TransactionIsolation)を指定します.使用可能な値は次のいずれかです.(詳細はjavadoc)NONE,READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, SERIALIZA
jmxの管理機能をオンにする
テストスレッドが使用され、プール内の接続が正常に使用されるかどうかをテストします.
接続がアイドル状態になったときにアイドルオブジェクト駆逐プロセスのチェックを通過するかどうかを指定します(アイドルオブジェクト駆逐プロセスがある場合).検証が失敗した場合、接続プールは切断されます.注意:値がtrueの場合にこの設定を有効にするには、validationQueryパラメータが空でない文字列である必要があります.
接続が呼び出されたときに検証されたかどうかを指定します.検証が失敗した場合、接続は接続プールによって切断され、接続プールによって別の接続を呼び出そうとします.接続がプールに戻ったときに検証されたかどうかを指定します.注意:値がtrueの場合にこの設定を有効にするには、validationQueryパラメータが空でない文字列である必要があります.
接続がプールに戻ったときに検証されたかどうかを指定します.注意:値がtrueの場合にこの設定を有効にするには、validationQueryパラメータが空でない文字列である必要があります.
時間間隔をミリ秒単位で検証します.
ミリ秒で表されるアイドルオブジェクト駆逐プロセスが実行状態からスリープ状態に入る数値.値が正数でない場合は、アイドルオブジェクト駆逐プロセスが実行されないことを示します.
プール内の作業接続の最大数です.この値は非正数であり、記述に制限はありません.
ミリ秒で表される接続プールに使用可能な接続がない場合、使用可能な接続が返されるのを待つ時間、タイムアウトすると例外が放出され、値が-1の場合、無期限に待機します.
ミリ秒で表される接続プールに使用可能な接続がない場合、使用可能な接続が返されるのを待つ時間、タイムアウトすると例外が放出され、値が-1の場合、無期限に待機します.
プール内の最小アイドル接続数です.接続数がこの値より少ない場合、プールはその値に補足する接続数を作成します.
プールで許可されている最大接続数、値が正数でない場合は制限されません
接続プール各アイドル・オブジェクトの駆逐プロセスのオブジェクト数をチェックします(アイドル・オブジェクトの駆逐プロセスがある場合)
ミリ秒で表される接続は、アイドルオブジェクト駆逐プロセスによって駆逐される前にプール内でアイドル状態を維持する最小時間(アイドルオブジェクト駆逐プロセスが存在する場合).
無効な接続をクリアしたときに、クリア情報のフラグをログに記録するかどうか.無効な文と接続を記録し、各接続がオンまたは新規の文のシステムオーバーヘッドを追加します.「removeAbandoned」をオンにすると、無効に設定された接続が接続プールで回収される可能性があります.このメカニズムは、(getNumIdle()<2)と(getNumActive()>getMaxActive()−3)の2つの条件を満たすときに起動します.たとえば、maxActive=20を仮定し、現在18のアクティブな接続があり、1つの空き接続があり、「removeAbandoned」メカニズムが起動します.ただし、アクティブな接続が使用されていない場合にのみ、「removeAbandonedTimeout」(デフォルトでは300秒)を超える接続がクリアされます.結果セットを巡回する場合、使用する接続はアクティブな接続としてマークされません.
「removeAbandonedTimout」の設定を超えた無効な接続を消去するかどうか.値が「true」の場合、「removeAbandonedTimout」の設定を超える無効な接続が消去されます.このプロパティを設定すると、接続を閉じるのに適していないプログラムからデータベースの接続を復元できます.無効な文と接続を記録し、各接続がオンまたは新規の文のシステムオーバーヘッドを追加します.
無効な接続を消去する時間を秒で表します.
tomcat jdbc接続プールのブロッキングを設定します.内蔵ブロッキング:
開いたstatementを追跡する、接続が返却されたときに閉じる.
複数のブロッキング用;分割、たとえば:
データソースとしてjndiを指定
わかりません.以上のプロパティは、私が理解できない場合は、デフォルト値を維持したほうがいいです.
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
わかりません.以上のプロパティは、私が理解できない場合は、デフォルト値を維持したほうがいいです.