1. 程式人生 > >WebSphere連線池引數詳解

WebSphere連線池引數詳解

應用程式讀取資料庫有2種方式,一種是直接連線資料庫,一種是呼叫連線池。
    1)       直連是程式直接建立物理連線,呼叫資料庫進行資料讀取。直連的建立會帶來很大的系統開銷,若程式中多處頻繁使用直連,會造成應用伺服器資源消耗過多,影響程式的效能。
    2)       連線池是建立和管理一個物理連線的緩衝池,其中會保留一定數量建立的物理連線不關閉,當有客戶端請求時,呼叫連線池,可以有效減少物理連線的建立次數,降低直連所帶來的系統開銷,緩解應用伺服器壓力,提高程式效能。
    下面我對連線池各引數意義進行講解:
    連線超時
    連線超時是指,當對指定連線池進行請求時,池中沒有可用連線(連線全部被使用,或者資料庫請求超時),當請求時間到達指定之間時未響應,那麼這個時候就會產生超時異常,通過日誌可以發現。
    連線超時的設定,是對我們應用響應速度的一種把關,客戶往往要求我們的產品在多長時間必須有響應,所以連線超時的設定,可以讓我們發現哪些程式點有響應速度問題,可能是資料庫查詢語句問題,也有可能是程式邏輯死迴圈,再有可能就是資料庫表結構需要優化,還有可能是最大連線數到達最大值。
    最大連線數

    最大連線數是指當前連線池中允許建立的最大物理連線數,當到達指定值後,將不允許建立物理連線。和連線超時相對應,當達到最大值後,連線請求將等待,直到池中有空閒連線為止,否則報連線超時錯誤。當使用叢集機制時,會同時存在多個相同連線池,這個時候需要考慮最大數量的設定。
    最大連線數可以有效控制建立物理連線的數量,連線池的大小影響著伺服器資源的佔用情況,若連線池過大,則會長期佔用伺服器可利用資源,若連線池過小,無法滿足現場環境應用高負載使用壓力。最大連線數的設定應根據TPV觀測資料進行合理配置。
    最小連線數
    最小連線數是指當前連線池要保留的最小物理連線,其決定未使用超時維護機制的下限,連線池的建立不是根據最小連線數而特意建立,而是根據使用者請求而建立,系統會一直維護最小的連線數目。
    最小連線數使應用伺服器保持一定數量的物理連線,利用應用伺服器維護機制,合理分配伺服器資源。當應用程式訪問頻繁,但訪問人數少的情況下,最小連線數的合理配置,可以將有效的資源進行充分利用,滿足特定應用需求。
    收集時間

    收集時間是連線池維護機制的核心,是指每次維護連線池的時間間隔。其有兩個維護指標,分別為未使用超時和時效超時,其值應該小於兩個指標中的任何一個。每一次維護週期中,連線池都會將連線池中超時的物理連線關閉,以減少系統佔用資源。
    合理的收集時間設定,是幫助我們關閉不必要的連線,節省系統資源佔用的有效途徑。收集時間設定不易過大,因為時間間隔過長,會使很多未被使用的物理連線持續佔用資源。若收集時間過小,則頻繁的維護會帶來很多系統開銷,連線池的主要精力都放到了維護上。
    未使用的超時
    未使用的超時指池中的物理連線空閒未使用的時間間隔,每隔指定時間,系統會為連線標記,幫助收集時間在維護過程中進行關閉。未使用的超時應該小於實效超時時間,並且其以最小連線數為標準,當連線數超過最小連線數時,其才起作用。
    未使用超時的設定,幫助我們關閉不必要的空閒連線,釋放系統資源,並且減少資料庫開銷。根據現場環境使用情況,我們可以根據系統訪問頻繁程式,來定製合理的未使用超時,如果過小,當訪問頻繁程度大時,總需要重新建立,如果過大,當訪問頻繁程度不大時,連線池又空閒佔用過多。
    時效超時

    實效超時指關閉物理連線的時間間隔,這個值是指到達指定的時間後,關閉滿足時間條件的物理連線,若這個物理連線未使用,則直接關閉,若這個連線正在使用,則當前事務結束後,關閉此連線。這個值不受最小連線數的影響,若沒有新建立的連線,此機制會關閉連線直到為0。
    時效超時的設定,是為了方式應用程式或者資料庫造成的資料庫連線持續佔用,可能導致的原因包括程式邏輯錯誤,資料庫宕機導致的錯誤等。還有一種情況為人為導致,就是若某個使用者持續佔用一個資源不放,會導致其他使用者無法訪問。所以時效超時的設定,是對不合理使用應用,或者連結錯誤等進行強行關閉,保證程式的穩定性和永續性。

相關推薦

WebSphere連線引數

應用程式讀取資料庫有2種方式,一種是直接連線資料庫,一種是呼叫連線池。     1)       直連是程式直接建立物理連線,呼叫資料庫進行資料讀取。直連的建立會帶來很大的系統開銷,若程式中多處頻繁使用直連,會造成應用伺服器資源消耗過多,影響程式的效能。     2)   

DBCP連線引數-2.4.0版本

BasicDataSource 配置引數 這些配置均在dbcp原始碼的BasicDataSource類的createPoolableConnectionFactory方法中使用和初始化。具體程式碼如下: protected PoolableConnectionFactory createPo

DBCP連線配置引數列表

Spring DBCP配置 <bean id=“dataSource” class=“org.apache.commons.dbcp.BasicDataSource” destroy-method=“close”> <property name=“driverClassName” v

Java執行緒引數

JDK1.5中引入了強大的concurrent包,其中最常用的莫過了執行緒池的實現ThreadPoolExecutor,它給我們帶來了極大的方便,但同時,對於該執行緒池不恰當的設定也可能使其效率並不能達到預期的效果,甚至僅相當於或低於單執行緒的效率。 ThreadPoolExecutor類可設定

druid連線 使用,以java+mysql為例

druid資料來源連線池配置詳解,基於druid.jar。以java+mysq為例,配置是如下: 相關屬性: 配置 預設值 說明 name   配置這個屬性的意義在於,如

DBCP連線配置

Spring DBCP配置 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-meth

資料庫連線優缺點

一、訪問資料庫原因 在java程式中,需要訪問資料庫,做增刪改查等相關操作。如何訪問資料庫,做資料庫的相關操作呢? 二、Java連線資料庫方法概述  java.sql提供了一些介面和類,用於支援資料庫增刪改查等相關的操作。該jar包定義了java訪問各種不同資料庫(mysq

tomcat配置資料庫連線步驟

1.配置context.xml檔案<?xml version='1.0' encoding='utf-8'?> <Context reloadable="true">

Druid-----初次接觸德魯伊,資料庫阿里連線配置及應用

   由於專案中有好多sql寫的不夠規範,導致專案在執行時效率得到阻礙,組長下令說,利用德魯伊 來監控一下看看那些sql需要優化,才得此機會了解阿里這個開源的監控元件.   首先了解一下,什麼是Druid.   Druid是Java語言中最好的資料庫連線池,它能夠提供強大的

資料庫連線原理與自定義連線實現

實現原理資料庫連線池在初始化時將建立一定數量的資料庫連線放到連線池中,這些資料庫連線的數量是由最小資料庫連線數制約。無論這些資料庫連線是否被使用,連線池都將一直保證至少擁有這麼多的連線數量。連線池的最大資料庫連線數量限定了這個連線池能佔有的最大連線數,當應用程式向連線池請求的連

DBCP連線配置引數

initialSize="10"           初始化連線,連線池啟動時建立的初始化連線數量(預設值為0) maxActive="80"       

weblogic資料庫連線引數配置

比較容易混淆的引數解釋 1:Inactive Connection Timeout 這個引數很重要,是10以後的版本新加的,9版本沒有,一般情況建議不要開啟該引數,即使開啟也儘可能要把數值設定大些,比如1800秒等。這個欄位的具體官方解釋在10.3.0.0的版本如下,在X

Oracle WebLogic 10.3 連線引數配置

PinnedToThread 是一個能夠改善效能的選項,它啟用執行執行緒以保持已進入緩衝池的資料庫連線,即使在應用程式關閉邏輯連線之後。 啟用 PinnedToThread 後,WebLogic Server 將在應用程式首次使用某個執行執行緒保留連線時把連線緩衝池中的一個數據庫連線固定到此執行緒。當應用程

執行緒ThreadPoolExecutor配置、引數及例子

     對於執行緒池,我僅限於簡單的使用,對其原理和引數並不是很理解。以前只是在網上找個執行緒池的例子,然後模仿寫一下而已,最近專案中又再次用的執行緒池,做了一些研究,現記錄下,以備以後使用。     我以前利用執行緒池只會這樣用:

線程Executors

@override current pack 運行 sch [] block sta st3   為什麽要用線程池呢?   一是減少了創建和銷毀線程的次數,每個工作線程都可以被重復利用,可執行多個任務;  二是可以根據系統的承受能力,調整線程池中工作線線程的數目,防止因為因

JAVA線程原理(1)

err 最大 RKE private queue 分享 ren ++ ant 線程池的優點 1、線程是稀缺資源,使用線程池可以減少創建和銷毀線程的次數,每個工作線程都可以重復使用。 2、可以根據系統的承受能力,調整線程池中工作線程的數量,防止因為消耗過多內存導致服務器崩潰。

JAVA線程原理

for lar finall r.java worker IT 流程 unlock 都是 線程池的優點 1、線程是稀缺資源,使用線程池可以減少創建和銷毀線程的次數,每個工作線程都可以重復使用。 2、可以根據系統的承受能力,調整線程池中工作線程的數量,防止因為消耗過多內存導致

mencoder和ffmpeg引數2 (轉)

有很多軟體能夠擷取影片影象、合併影象,但如果影片太多,比如視訊網站為使用者上傳的影象生成預覽圖之類的,人工在gui方式下操作就不可取了,我們需要在命令列方式下來擷取、合併。 首先,擷取影片影象使用最多的就是mplayer或者ffmpeg,我用mplayer比較熟,本文就以此為例了,ffmpe

學習筆記--JDK中的URLConnection引數

JDK中的URLConnection引數詳解 針對JDK中的URLConnection連線Servlet的問題,網上有雖然有所涉及,但是隻是說明了某一個或幾個問題,是以FAQ的方式來解決的,而且比較零散,現在對這個類的使用就本人在專案中的使用經驗做如下總結:  1:>

MySQL 8.0.12 mysqlbinlog命令引數

1.版本號不同: # /usr/local/mysql57/bin/mysqlbinlog --version /usr/local/mysql57/bin/mysqlbinlog Ver 3.4 for linux-glibc2.12 at x86_64 # /usr/local/mysql8