c# - Closing a database link in .NET, ORA-02080 -


i have code uses database link needs closed when it's done with. call dbms_session.close_database_link gives me error, ora-02080, though link no longer in use.

when tried in sql*plus, worked great , closed after ran commit. in .net, if run commit doesn't close.

using (var con = new oracle.dataaccess.client.oracleconnection(@"data source=firefly8;user id=user;password=pwd;pooling=false;"))             {                 con.open();                 var c = con.createcommand();                 c.commandtext = "select tnoam@link_2";                 using (var r = c.executereader())                 {                     r.read();                 }                 c.dispose();                  var c2 = con.createcommand();                 c2.commandtext = "begin commit; dbms_session.close_database_link ('link_2');end;";                  c2.executenonquery();             } 

i'm pretty stuck one. please help

based on comment @ben tried following, didn't work well:

    using (var con = new oracle.dataaccess.client.oracleconnection(@"data source=firefly8;user id=milk_new;password=milk_new;pooling=false;")) {     con.open();     var t = con.begintransaction();     var c = con.createcommand();     c.transaction = t;     c.commandtext = "select tnoam@link_2";     using (var r = c.executereader())     {         r.read();     }     t.commit();     c.dispose();      var c2 = con.createcommand();     c2.commandtext = "begin commit; dbms_session.close_database_link ('link_2');end;";      c2.executenonquery(); } 

thanks @luke, got on way , found solution.

it seems default oracle caches cursors , keeps them open. , if cursor open, can't close database link.

the flag in connection string controls cursor cache is:

statement cache size 

you can manually clear cache calling purgestatementcache cache method of oracleconnection class


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -