gpt4 book ai didi

java - Tomcat8 使用连接池到 OracleDB 的问题

转载 作者:行者123 更新时间:2023-11-28 22:46:45 24 4
gpt4 key购买 nike

我们有一个由第 3 方供应商提供的应用程序,该应用程序在 Tomcat 8 和 JDK 8 上运行到带有 ojdbc7.jar 和 xdb6.jar 驱动程序的 Oracle 12 数据库。该应用程序可以运行,但速度比预期的要慢。在调查时,应用程序似乎配置为使用连接池,但应用程序似乎正在为每个查询创建新连接,而不是使用任何最初创建的数据库连接。

很遗憾,我无权访问第 3 方应用程序的代码。但是,希望知道我在 Tomcat 设置中缺少什么来进行池化工作。

我已经尝试浏览 Apache 的旧 Oracle 连接文档,并尝试在网络上找到其他选项。

<Resource name="jdbc/DataSource" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:XE"
username="myProxyUser" password="myPassword"
initialSize="5" maxTotal="100" maxIdle="-1"
maxWaitMillis="30000"
validationQuery="select 1 from dual"
testOnBorrow="true"
accessToUnderlyingConnectionAllowed = "true"
connectionProperties="defaultRowPrefetch=100"
removeAbandoned = "true"
removeAbandonedTimeout = "30"/>

最佳答案

可以查看tomcat docs ,主要使用factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"

example on how to configure a resource for JNDI lookups

<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"
timeBetweenEvictionRunsMillis="30000"
maxActive="100"
minIdle="10"
maxWait="10000"
initialSize="10"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jmxEnabled="true"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;
org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="root"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mysql"/>

关于java - Tomcat8 使用连接池到 OracleDB 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57557803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com