好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Oracle.ManagedDataAccess 连接报错ORA-03135: Connection

ODP.NET本身不会测试发送给客户端的连接的连接状态

1、为了安全起见, 在执行Connection.Open()时 ,请检查 从池接获取的连接是否可用,自己先打开验证一下

 1   if  (connection.State ==  System.Data.ConnectionState.Closed)
  2   {
  3           connection.Open();
  4   }
  5   else   if  (connection.State ==  System.Data.ConnectionState.Broken)
  6   {
  7            connection.Close();
  8            connection.Open();
  9  }

 

2、 通过设置连接字符串: Validate Connection = true  让ODP.NET为您进行检查

例如:

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1522))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME=dev)));User Id=AA;Password=AA;Validate Connection=true;

这两种方法都会对性能产生影响,因为它们每次需要连接到数据库时都会测试连接状态。

3、判断异常 如果获得ORA-03135,则请求新连接并像while循环一样再次执行查询。 在最佳情况下,您可以使第一个连接有效,然后查询将执行。 最坏的情况是,池中的所有连接都是陈旧的,在这种情况下,代码将被执行N次(其中N是连接池的大小)

 

 

Oracle.ManagedDataAccess 连接报错ORA-03135: Connection lost contact

标签:access   style   prot   原因   dev   断开连接   man   serve   while循环   

查看更多关于Oracle.ManagedDataAccess 连接报错ORA-03135: Connection的详细内容...

  阅读:44次