溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

減少JDBC連接池開銷的方法有哪些

發(fā)布時間:2021-07-15 09:49:27 來源:億速云 閱讀:136 作者:chen 欄目:編程語言

本篇內容主要講解“減少JDBC連接池開銷的方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“減少JDBC連接池開銷的方法有哪些”吧!

在一個服務器的應用中,會處理來自多個不同用戶的請求,并且必須為每一個用戶保持并打開一個鏈接(防止事務的崩潰),由于創(chuàng)建一個Connection的盡管實現(xiàn)起來簡單,但對于大流量的服務器應用來說卻要花費大量的時間。

為了使JDBC連接池連接的時間盡可能的少

解決方法有以下幾種:

一:為每個訪問數(shù)據(jù)的servlet和jsp頁面維護一個Connection,并保持在一個實例變量中,直到應用關閉,但這樣會導致大量的多線程問題。另外對于數(shù)據(jù)庫能保持的連接數(shù)代價時昂貴的,商業(yè)數(shù)據(jù)指定價格一部分時基于同時打開的連接數(shù)的。

二:***的做法就是使用一個JDBC連接池。其優(yōu)點有以下幾點:

1:創(chuàng)建連接的時間縮短,因為在池中鏈接時可以重用的。

2:解決了多線程的問題。

3:連接池可以指定Connection的***連接數(shù),使得每一個鏈接得到***效的利用。

另外:由于所有的用戶使用的時同樣的Connection對象,因此不能依賴數(shù)據(jù)庫引擎著個的限制用戶對保護資源的訪問,因此要為不同的用戶角色組使用不同的連接池,為不同的數(shù)據(jù)帳戶來創(chuàng)建不同的Connection對象。

在jdk文檔中明確說明了:DataSource是一個接口,作為DriverManager工具的替代項,DataSource對象是獲取連接的***方法。

實現(xiàn)此接口的類可以提供JDBC連接池功能。

PooledConnection類,該類為連接池管理提供鉤子(hook)的對象。PooledConnection對象表示到數(shù)據(jù)源的物理連接,當應用程序調用DataSource.getConnection方法時,它取回Connection對象。如果連接池已完成,則該Connection對象實際上是到PooledConnection對象的句柄,這是一個物理連接。

需要注意的是當應用調用close()方法時,并不是關閉數(shù)據(jù)庫鏈接,而是通知其鏈接在池中已不再使用,然后DataSource會將該PooledConnection返回至JDBC連接池。

基于JDBC的應用中幾乎全是圍繞Connection接口展開的,必須創(chuàng)建一個連接Connection,此連接相當于應用和數(shù)據(jù)庫之間的一個通道,并且它還是事務的邊界,只有通過同一個Connection執(zhí)行的SQL語句才能組成一個事務。

在一個服務器的應用中,會處理來自多個不同用戶的請求,并且必須為每一個用戶保持并打開一個鏈接(防止事務的崩潰),由于創(chuàng)建一個Connection的盡管實現(xiàn)起來簡單,但對于大流量的服務器應用來說卻要花費大量的時間。

減少JDBC連接池開銷的方法有哪些

到此,相信大家對“減少JDBC連接池開銷的方法有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI