java.sql.SQLException: Listener refused the connection with the following error: ORA-12519, TNS:no appropriate service handler found

前端 未结 3 2157
栀梦
栀梦 2021-02-10 17:08

I am passing Resultset object to each thread. Each thread is connecting to the database and inserting data. Untill thread 110 it is working fine. After it crosses 111 thread it

3条回答
  •  故里飘歌
    2021-02-10 17:35

    Your multi-threaded application is opening too many Connections/Sessions. Hence, the listener is dropping and blocking new connections for a while.

    Check your DB resource usage first:

    SELECT * FROM v$resource_limit WHERE resource_name IN ('processes','sessions');
    

    Check to see if your MAX_UTILIZATION for either your Processes or Sessions is getting too close to the LIMIT_VALUE. If yes, you should either:

    1. Use DB Connection pooling to share Connection objects between threads. Or,
    2. Increase the number of processes/sessions that Oracle can service simultaneously.

    Actually, Connection Pooling (#1) should always be done. An application cannot scale up otherwise. Check Apache Commons DBCP for details. For #2, open a new SQL*Plus session as SYSTEM and run:

    ALTER system SET processes= scope=spfile;
    

    to increase backend concurrency. Then RESTART the Database. IMPORTANT!

提交回复
热议问题