Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

java.sql.SQLRecoverableException - jdbc से पुनः कनेक्ट करें

ऐसा लगता है कि कनेक्शन किसी फ़ायरवॉल या अन्य गतिविधि द्वारा गिराया जा रहा है। हमें इसी तरह की समस्या का सामना करना पड़ा है जहां डेटाबेस कनेक्शन को समाप्त कर रहा था जो 30 मिनट के लिए निष्क्रिय थे।

समस्या को दूर करने के लिए हमने निम्नलिखित गुणों को निर्दिष्ट करके डेटाबेस पूल को ट्यून किया है

testOnBorrow:-Setting it true will force the pooling provider to run the validation query while handing out the connection to the application.
testWhileIdle:-Setting it true will enable the validation when the connection is sitting idle in the pool.
timeBetweenEvictionRunsMillis:- Setting this property to non-zero will allow the evictor thread to run,which will test the idle connections.

समस्या को पुन:उत्पन्न करने के लिए डेटाबेस पक्ष पर कनेक्शन को मारने की आवश्यकता होगी। हमने mssql का उपयोग करके एक छोटा परीक्षण किया है जिसमें हम सर्वर टूल्स का उपयोग करके कनेक्शन को समाप्त कर सकते हैं और पूल फिर से कनेक्शन स्थापित कर रहा था।

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="${myjdbc.driverClassName}" />
    <property name="url" value="${myjdbc.url}" />
    <property name="username" value="${myjdbc.username}" />
    <property name="password" value="${myjdbc.password}" />
    <property name="testOnBorrow" value="true" />
    <property name="testWhileIdle" value="true" />
    <property name="timeBetweenEvictionRunsMillis" value="3000" />
</bean>

ध्यान दें कि समय के बीच EvictionRunsMillis लाखों में है।

उपरोक्त कॉन्फ़िगरेशन अमान्य कनेक्शन की जांच करेगा और उन्हें डेटाबेस या फ़ायरवॉल द्वारा अचानक बंद कर दिए जाने पर उन्हें पूल से छोड़ देगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल में एलटीआरआईएम () फ़ंक्शन

  2. SQL में कुल रनिंग की गणना कैसे करें

  3. डेटाटाइप CLOB को VARCHAR2 (एसक्यूएल) में कैसे बदलें

  4. डेलाइट सेविंग टाइम के साथ टाइमस्टैम्प गणना

  5. आप Oracle में अधिकतम संभव तिथि कैसे प्राप्त करते हैं?