保持OracleConnection活着

时间:2018-01-09 22:49:08

标签: database vb.net oracle

我目前遇到的问题是甲骨文的开放票,但与此同时我需要找到解决方法。

我在vb.net中开发了一个Windows服务,它“监听”进入Oracle数据库队列的传入请求。 Oracle正在调查的问题是,在大约20分钟不活动之后,即队列中没有新请求,服务显然无法注意到任何进入队列的新请求。无论我等多久,服务都无法检测到任何其他内容。

到目前为止解决问题的解决方案是在任务计划程序中有一个任务,每20分钟触发一次并重新启动服务,这显然不太理想。

我想知道是否有任何方法可以在我的代码中实现“保持活动”命令或“ping”到数据库以模拟连接中的某些活动。

这是我打开连接的方式。

oConn = New OracleConnection(connectionString)

oConn.Open()

我能用这个做点什么吗?我查看了OracleConnection类,但似乎没有任何对这种情况有用的东西。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我不知道它是否会有所帮助,但是 - 你走了。

正如你提到的“ping”,TNSPING会有什么好处吗?

C:\>tnsping xe

TNS Ping Utility for 64-bit Windows: Version 11.2.0.2.0 - Production on 09-SIJ-2018 23:52:

Copyright (c) 1997, 2014, Oracle.  All rights reserved.

Used parameter files:
C:\Users\lf\Documents\E_0_library\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = lf.dat
CT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))
OK (10 msec)

C:\>

或者,如果它不能使连接保持活动状态,那么最便宜的选项可能是

SQL> select * from dual@xe;

D
-
X

SQL>

这些选项可能太简单了。希望其他人能够更好地提供帮助。