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

How do you change vbulletin's home page to the forums instead of the default (CMS or Activity Stream)? -

c++ - Troubles when compiling phash program -