Each session in your database has a limited number of database links that can be opened at the same time.If you access a database link in a session, then the link remains open until you close the session.
Cause for ora-02020: The current session has exceeded the INIT parameter 'open_links' maximum.
Action: Increase the open_links limit, or free up some open links by committing or rolling back the transaction and canceling open cursors that reference remote databases.
OPEN_LINKS cannot be modified in real-time, so you will have to change it in the spfile or pfile and bounce the database.
SQL> show parameter open_links
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_links integer 4
open_links_per_instance integer 4
SQL>alter system set open_links=10 scope=spdile;
Then bounce the database
NOTE:You can also try to close the dblink if possible
SQL>ALTER SESSION CLOSE DATABASE LINK linkname;
If you are not sure how many database links are opened up concurrently by your session's database application, you can query v$dblink.
SQL> select in_transaction, count(*) from v$dblink group by in_transaction;
IN_ COUNT(*)
--- ----------
YES 1
Cause for ora-02020: The current session has exceeded the INIT parameter 'open_links' maximum.
Action: Increase the open_links limit, or free up some open links by committing or rolling back the transaction and canceling open cursors that reference remote databases.
OPEN_LINKS cannot be modified in real-time, so you will have to change it in the spfile or pfile and bounce the database.
SQL> show parameter open_links
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_links integer 4
open_links_per_instance integer 4
SQL>alter system set open_links=10 scope=spdile;
Then bounce the database
NOTE:You can also try to close the dblink if possible
SQL>ALTER SESSION CLOSE DATABASE LINK linkname;
If you are not sure how many database links are opened up concurrently by your session's database application, you can query v$dblink.
SQL> select in_transaction, count(*) from v$dblink group by in_transaction;
IN_ COUNT(*)
--- ----------
YES 1
No comments:
Post a Comment