Я записываю форматированный текст в CLOB
в таблице Oracle.В конце концов, при запуске процесса таблица будет заблокирована.Когда наш администратор БД проверяет соединения, создается впечатление, что я создал несколько блокировок для таблицы и других соединений от других пользователей нет.Любые идеи о том, почему приведенный ниже код может в конечном итоге создать блокировки на столе?Обычно этот код запускается несколько дней по 100 раз в день, прежде чем будет создана блокировка.Похоже, что нет зависших транзакций.
public void Update_Html_Out(string key, string shortTitle, string htmlText)
{
byte[] newvalue = Encoding.Unicode.GetBytes(htmlText);
string sql = "UPDATE html_out SET short_title = :short_title, actual_text = :clob WHERE key = :key";
using (var conn = new OracleConnection(_connectionString))
using (var cmd = new OracleCommand(sql, conn))
{
conn.Open();
using (var transaction = conn.BeginTransaction(IsolationLevel.ReadCommitted))
{
cmd.Transaction = transaction;
using (var clob = new OracleClob(conn))
{
clob.Write(newvalue, 0, newvalue.Length);
cmd.Parameters.Add("short_title", shortTitle);
cmd.Parameters.Add("clob", clob);
cmd.Parameters.Add("key", key);
cmd.ExecuteNonQuery();
transaction.Commit();
}
}
}
}