繁体   English   中英

Spring Batch-ORA 12516 SQLState 66000-TNS:Listener无法使用具有匹配协议栈的处理程序

[英]Spring Batch - ORA 12516 SQLState 66000 - TNS:Listener could not available handler with matching protocol stack

当我运行Spring批处理来处理100多个记录时,出现以下错误,

 "Listener Refused the connection with the following error: ORA-12516,  
  TNS:Listener could not available handler with matching protocol stack". 

但是,当我运行该批处理以处理少于50条记录时,它可以正常工作。

在我的阅读器的批处理前步骤中,我查询数据库以获取记录。

例如,如果我从数据库中获得100条记录,则使用循环,我将从每条记录中提取一个特定字段,并使用该特定字段查询另一个表。 因此,第二个查询在for循环中运行了100次。

在日志中,我可以看到批处理运行了一段时间(在循环中查询了一些记录),然后引发了错误。

请帮我解决这个问题。

更改了我的数据源bean

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${database.driverClassName}" />
    <property name="url" value="${database.url}" />
    <property name="username" value="${database.username}" />
    <property name="password" value="${database.password}" />
</bean>

对此

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="${database.driverClassName}" />
    <property name="url" value="${database.url}" />
    <property name="username" value="${database.username}" />
    <property name="password" value="${database.password}" />
    <property name="connectionProperties"   value="initialSize=1,maxTotal=10" />
</bean> 

OnlyGod团队 -

Oracle数据库服务器“ PROCESSES”的值配置得太低,您可以分步解决

  1. 启动“ SQL Plus”

  2. 登录为“系​​统”

  3. 键入以下命令(以检查数据库是否正在使用spfile):

     show parameter spfile 
  4. 假设它表明您正在使用spfile,然后键入以下命令:

     alter system set PROCESSES=300 scope = spfile 
  5. 获得一些停机时间(无需使用数据库),然后重新启动Oracle数据库服务器(或简单地相关的Oracle数据库),或者您可以在notepad ++中对其进行编辑

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM