oracle保持会话连接,Oracle会话在关闭连接后保持打开状态

在测试新应用程序时,我们遇到了一个问题,即存储过程有时需要1分钟才能执行并导致超时。特别是它不是一个存储过程,它可以是任何存储过程。

试图重现这个问题,我创建了一个小的(本地)testapp,它在不同的线程中调用相同的存储过程(代码如下)。

现在看来,Oracle会议仍在。非活动。 Oracle服务器的CPU达到100%。

我使用System.Data.OracleClient

我不确定一个是否与另一个有关,但它会减慢从数据库获得答案所需的时间。

for (int index = 0; index < 1000; ++index)

{

ThreadPool.QueueUserWorkItem(GetStreet, index);

_runningThreads++;

WriteThreadnumber(_runningThreads);

}

private void GetStreet(object nr)

{

const string procName = "SPCK_ISU.GETPREMISESBYSTREET";

DataTable dataTable = null;

var connectionstring = ConfigurationManager.ConnectionStrings["CupolaDB"].ToString();

try

{

using (var connection = new OracleConnection(connectionstring))

{

connection.Open();

using (var command = new OracleCommand(procName, connection))

{

//Fill parameters

using (var oracleDataAdapter = new OracleDataAdapter(command))

{

//Fill datatable

}

}

}

}

finally

{

if (dataTable != null)

dataTable.Dispose();

}

}编辑:

我只是让dba对开放会话进行统计,并且有105个会话保持开放状态。关闭我的应用程序后,会话被删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值