首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果具有OracleDependency,则OracleCommand执行块

如果具有OracleDependency,则OracleCommand执行块
EN

Stack Overflow用户
提问于 2009-10-30 22:48:40
回答 1查看 1.6K关注 0票数 1

我有以下代码:

代码语言:javascript
复制
OracleConnection conn = new OracleConnection(connString);
OracleCommand command = new OracleCommand("select * from testtable", conn);
conn.Open();
OracleDependency.Port = 2010;
OracleDependency dependency = new OracleDependency(command);
command.AddRowid = true;
command.Notification.IsNotifiedOnce = false;

dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);

command.CommandTimeout = 1000;
DataTable t = new DataTable();
OracleDataAdapter adapter = new OracleDataAdapter(command);
adapter.Fill(t);
conn.Close();

这是一个非常简单的代码,它使用Oracle Notification Service接收有关特定表更改的通知。

我的问题是,当我调用adapter.Fill(t);时,执行只是阻塞。如果没有附加依赖项,则该命令在实例中执行,因此它既不是数据库,也不是数据。通过查询表user_change_notification_regs,我可以看到回调正在向数据库注册,并且还打开了指定的端口(2010):

代码语言:javascript
复制
net8://(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST='myIp')(PORT=2010)))?PR=0

我无计可施,无计可施。

EN

回答 1

Stack Overflow用户

发布于 2009-12-22 11:32:49

当我尝试将端口号设置为我的机器上已经使用的端口号时,我在类似的情况下看到了一个异常。当我注释掉设置端口号时,它运行得很好,所以也许您可以尝试一下?并检查"netstat -na“中使用的端口。

我看到的例外是:

代码语言:javascript
复制
Oracle.DataAccess.Client.OracleException: ORA-24912: Listener thread failed. Listen failed.
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck)
at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
at Oracle.DataAccess.Client.OracleDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)

令人困惑的是(至少对我而言)异常不是在设置端口时引发的,而是在稍后对其执行第一次查询时引发的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1650247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档