共計 2539 個字符,預計需要花費 7 分鐘才能閱讀完成。
這期內容當中丸趣 TV 小編將會給大家帶來有關 tomcat/resin 中怎么利用全局數據庫連接池資源,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Tomcat 使用 JNDI Resource 來配置各種資源,包括數據庫連接池。這些 Resource 有兩種運行范圍,第一個就是 Context 級別,也就是說 Context 特有的 Resource,該 Resource 只能被其所屬的 Context 訪問,顯然這不是我們所要的。
另外一種就是定義全局命名資源,然后在 Context 中進行引用,下面是一個配置的例子 (server.xml):
Server port= 8005 shutdown= SHUTDOWN
GlobalNamingResources
!– 全局有效的 JDBC 資源 —
Resource name= jdbc/dlog auth= Container type= javax.sql.DataSource
maxActive= 100 maxIdle= 30 maxWait= 10000 defaultTransactionIsolation= 1 defaultAutoCommit= false
poolPreparedStatements= true maxOpenPreparedStatements= 1000 initialSize= 1
username= root password= root driverClassName= com.mysql.jdbc.Driver
url= jdbc:mysql://localhost:3306/dlogcn?autoReconnect=true /
/GlobalNamingResources
!– Define the Tomcat Stand-Alone Service —
Service name= Catalina
!– Define a non-SSL HTTP/1.1 Connector on port 8080 —
Connector port= 8080 maxHttpHeaderSize= 8192
maxThreads= 150 minSpareThreads= 25 maxSpareThreads= 75
enableLookups= false redirectPort= 8443 acceptCount= 100
connectionTimeout= 20000 disableUploadTimeout= true /
!– Define the top level container in our container hierarchy —
Engine name= Catalina defaultHost= localhost
Host name= localhost appBase= webapps
Context path= docBase= C:/PROJECTS/JAVA/DLOG4J_V3/webapp reloadable= true
!– 在 Context 引用全局 JDBC 資源 —
ResourceLink name= jdbc/dlog global= jdbc/dlog /
/Context
/Host
/Engine
/Service
/Server
相比較 Tomcat 來說,Resin 更為簡單,在 Resin2 中連接池的配置如下
caucho.com
http-server
http port= 80 /
servlet-mapping url-pattern= *.xtp servlet-name= xtp /
servlet-mapping url-pattern= *.jsp servlet-name= jsp /
resource-ref res-ref-name= java:/comp/env/jdbc/dlog res-type= javax.sql.DataSource
init-param driver-name= com.mysql.jdbc.Driver /
init-param url= jdbc:mysql://localhost:3306/dlogcn?autoReconnect=true /
init-param user= root /
init-param password= moabc /
init-param maxConnections= 100 /
/resource-ref
!– default host if no other host matches —
host id=
web-app id= app-dir= C:/PROJECTS/JAVA/DLOG4J_V3/webapp /
/host
/http-server
/caucho.com
你可以把這段配置放在 web-app 中,則該連接池只有對應的 webapp 才能訪問,放在 host 則,host 中的所有 web-app 都可以訪問,放在 http-server 中,則整個 resin 的所有 webapp 都可以訪問。
(實驗過程中發現 resin2 的文檔有誤,如果 res-ref-name 寫為 jdbc/dlog,則 webapp 怎么都找不到這個資源,改成 java:/comp/env/jdbc/dlog 即可。)
接下來我們就可以在應用中使用如下代碼來獲取連接池的 DataSource 實例
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup(java:/comp/env
DataSource ds = (DataSource)envContext.lookup(jdbc/dlog
其他的應用服務器的配置可以按照這個思路參考它的手冊進行配置。應該說不管是采用何種方式,性能上不會有太大的區別,如何選擇就在于你整個服務器的項目結構。
上述就是丸趣 TV 小編為大家分享的 tomcat/resin 中怎么利用全局數據庫連接池資源了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注丸趣 TV 行業資訊頻道。