соединения, что мое приложение использует для подключения к БД следующее:Как отключить пул соединений? Строка
private const string oradb = "Data Source=(DESCRIPTION=(ADDRESS_LIST="
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=host.name)(PORT=1521)))"
+ "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=service.name)));"
+ "User Id=myusername;Password=mypass;";
Во всех точках доступа DB моего приложения я использую следующий шаблон:
OracleConnection conn = new OracleConnection(oradb);
try
{
Console.WriteLine("Opening DB Connection...");
conn.Open();
string queryString = string.Format(@"SELECT ...");
using (OracleCommand command = new OracleCommand(queryString, conn))
{
using (OracleDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
...
}
}
}
}
catch (Exception e)
{
Console.WriteLine("Exception occured during DB access: {0}", e.Message);
dbr.Error = e.Message;
}
finally
{
Console.WriteLine("Closing DB connection");
conn.Close();
conn.Dispose();
}
Наверняка я правильно обрабатывать исключения и в try/catch/finally закрытие и размещение объекта связи. Тем не менее, часто я получаю сообщение службы оракула, что я занимаюсь сессиями оракула. Более того, если я просто оставлю свое приложение открытым и на следующий день попытаюсь выполнить операцию, я получаю первый случай ora-12537 network session end of file
, а затем вторая попытка. После некоторого чтения мне кажется, что мне нужно отключить пул соединений. Если это правильный способ решить, как отключить пул? Если нет, то какая другая вещь может быть неправильной?
Не совсем то, что вы просили, но ... 'OracleConnection.ClearPool (conn);' –
Где мне это нужно? Могу ли я указать строку подключения, чтобы не использовать пул? – Pablo
Не знаю, отсюда комментарий, а не ответ. Я думаю, что вы можете очистить пул после 'Close()' –