I had this type of problem with Oracle for a long time...
I used to query hundreds of servers via dblinks and connections remain active too long !
In Oracle, if you want to close databases links, you have to commit before, even "select" statements...
You can try to commit statements...
I hope this helps...
Franck