尝试使用Oracle将Tomcat的JDBC池集成到我的Web应用程序时遇到 SELECT c.CLM_ID,
c.PATID,
c.ADMIT_DT,
d.LN_ID,
d.DATE_OF_SERVICE
FROM CLM_HDR c
INNER JOIN CLM_DET d ON
c.CLM_ID = d.CLM_ID
WHERE
c.ADMIT_DT between ‘2017-07-01’ and ‘2017-07-31’ and
c.CLM_ID NOT IN
(
SELECT c.CLM_ID
FROM CLM_DET c
WHERE c.DATE_OF_SERVICE > ‘2017-07-31’
)
错误。
在针对应用程序运行集成测试几分钟后,我通常会看到此错误间歇性出现。
我的配置是:
两个webapps,都使用相同的资源。在Spring中完成配置:
ORA-12519, TNS:no appropriate service handler found
在conf / context.xml中定义的DataSource资源,如下所示:
<jee:jndi-lookup id="webDS" jndi-name="jdbc/web"
expected-type="javax.sql.DataSource" />
我已尝试过在其他地方提出的各种建议,例如增加或减少<Resource name="jdbc/web" auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
timeBetweenEvictionRunsMillis="30000"
maxActive="20"
maxIdle="10"
minIdle="5"
removeAbandonedTimeout="60"
removeAbandoned="false"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
username="${database.user}"
password="${database.password}"
driverClassName="${database.driver}"
url="${database.url}" />
大小,但到目前为止没有运气。我之前使用c3p0来管理连接池。有了这个开关,我想知道是否需要做一些与连接关闭有关的额外配置,因为看起来我正在泄漏它们。
堆栈跟踪:
maxActive
答案 0 :(得分:2)
您的验证查询(SELECT 1
)在Oracle中不起作用。它必须是select 1 from dual
。
似乎在使用错误的验证查询时,应用程序无法识别健康的连接,并将所有连接标记为无效。