簡體   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