See the question and my original answer on StackOverflow

When connection pooling is enabled, which is good and of course the way to go in an ASP.NET scenario (and in most scenarios in fact), you should not store any db connection. You must open and close connections when you need it.

Here is a link about SQL Server, but it's the same with Oracle that explains it: SqlConnection Class

So the code you need to use when calling Oracle should be something like this, anywhere in your app, whenyou need it:

Using connection As New OracleConnection(connectionString)
    connection.Open()
    ' Do work here; connection closed on following line.
End Using

The thing is: you cannot have connection pooling enabled with specific user information in the connection string. So I suggest you implement your auditing code without using the connection string.