问题标签 [advanced-queuing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
104 浏览

java - 构建自定义列表数据结构,测试工具中的绑定不匹配错误

我正在编写一个列表 ADT,与(堆栈和队列)不同,我将能够在列表中的任何位置添加/删除项目。我还希望能够遍历列表。所以我正在创建指针来跟踪项目。当我尝试在列表中添加项目(在测试工具类中)时,我得到一个绑定的不匹配。
请看一下下面的界面,我想您将能够获得更好的主意。

使用有界类型参数使 ObjectType 成为KeyInterface 下面的子类型是 KeyInterface

这是我的 List 实现的样子。

从逻辑上讲,我在这个类中看不到任何错误,并且我已经分别测试了这些方法。还制作了一个 List Iterator 类来遍历 List。这就是它的样子。

我知道 remove 方法没有做任何事情,因为它的设计很糟糕,请暂时忽略它。现在我被困在测试线束部分。我不知道如何添加不同的项目,因为类中有很多扩展。

无论我放在里面什么<>结果都是有界的不匹配。所以什么可以是有界参数的有效替代品。帮助??

0 投票
2 回答
563 浏览

oracle - Oracle AQ Enqueue 默认模式

从关于 DBMS_AQ 的入队方法的 Oracle 文档中,指定“对象的名称由可选的模式名称和名称指定。如果未指定模式名称,则假定当前模式。” [1]

有问题的系统定义了模式中的所有对象,我们称之为 DEV。然后像 DEV_AD 一样定义用户,并且在登录期间,有一个触发器将其当前模式更改为 DEV。这意味着当他们从某个表中选择 * 时,他们从 DEV.sometable 中选择 *,而不是 DEV_AD.sometable。这没有任何问题。

但是,当用户尝试在 SOMEQUEUE 上排队消息时,它不起作用 - 系统尝试在不存在的 DEV_AD.SOMEQUEUE 上排队,而不是在 DEV.SOMEQUEUE 上排队。通过将 DEV.SOMEQUEUE 而不仅仅是 SOMEQUEUE 作为 DBMS_AQ.ENQUEUE 的参数,消息成功排队。

这是一个 Oracle 错误(或文档错误),是否有解决方法?

如果这是一个错误,我们在接下来的几个月里仍然使用 10.2.0.4.0。是固定在11g吗?

[1] http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_aq.htm#ARPLS081

0 投票
2 回答
636 浏览

oracle - Oracle AQ 出队参数

我正在尝试将消息从 Oracle 队列中取出,但在设置 dequeue_options 时遇到了问题。我正在尝试使 ENQ_TIME 大于输入值(时间戳)的消息出列。我设法通过参数、msgid 或 enq_tid 使消息出列。我用了

那是有效的。当我尝试对 enq_time 执行相同操作时,我收到一个错误,即没有消息。我尝试在运算符的两侧使用 > 符号和不同的 to_char 转换字符串,但无法正常工作。

请指教。

0 投票
2 回答
357 浏览

oracle - 从 BizTalk 使用 Oracle 高级队列

我需要将来自 Oracle AQ 的消息消费到我的 BizTalk 服务器中。第三方将对消息进行排队,并且 BizTalk 服务器应该取消排队并使用它们。我通过互联网和 MSDN 阅读了所有内容,发现没有直接的方法可以从 BizTalk 使用 AQ。

我在这里错过了什么吗?

如果我想在 BizTalk 中使用 AQ,我有哪些选择?

我正在考虑编写存储过程来为我执行此操作,然后我调用存储过程,或者可能是位于 AQ 和 BizTalk 服务器中间的 WCF 服务。但我只想知道这里的专家建议。

0 投票
1 回答
515 浏览

oracle - 如何代表不同的用户执行 oracle DMBS_AQ.REGISTER?

一个特权调度程序用户 - user1 接收电子邮件通知,而另外两个(user2,user3)没有。

我想在 user3 模式上执行下面的代码,我们在 user2 上成功尝试了这个(代码直接在具有临时 sys.dbms_aq 访问权限的模式上执行)所以他现在收到他的通知。为 user1 上的 bot 用户代理启用了数据库访问。

如您所见,我知道“什么”解决了问题,但不知道该怎么做:-)

问题是 - 我们无法直接访问第二个帐户(user3)如何代表 user3 执行此代码?

已经尝试在 user3 上创建过程并立即执行匿名块,但它仍然在 DBA_QUEUE_SUBSCRIBERS 中向 USER# 1 而不是 3 注册。

数据库版本是 11.2.0.3.0 在 unix 上。

0 投票
1 回答
238 浏览

c# - 在 C# 中清除 Oracle 高级队列

我正在开发一个使用 Oracle 高级队列来控制它的 Windows 服务。命令对象将被放置在队列中,服务会将其出列并尝试执行任务。为了控制服务,我还开发了一个小命令应用程序。此应用程序会将命令放入队列,但我也希望它能够在按下按钮时通过调用 dbms_aqadm.purge_queue_table 来清除队列。我试过这两种方法。首先我试过:

我收到以下错误:

dbms_aqadm.purge_queue_table 有 3 个参数,我给它传递了 3 个参数。此外,它们是正确的类型。没有理由尽我所能说明为什么会发生此错误。我无法弄清楚如何让它消失,所以我尝试了以下方法:

并得到错误:

SQL 语句不是无效的。它在 SQL Developer 中运行良好。所以在任何一种情况下,我都会收到错误消息,除非我错过了我不应该得到的东西。我想不出办法解决这个问题。有人可以告诉我我做错了什么或如何解决这个问题吗?

0 投票
1 回答
660 浏览

oracle - Dequeinf XMLTYPE 消息抛出错误

我有以下代码用于从 AQ 中取出数据

执行后给我以下错误 -

错误报告 - ORA-06550:第 14 行,第 30 列:PLS-00306:调用“||”的参数数量或类型错误 ORA-06550:第 14 行,第 8 列:PL/SQL:语句被忽略 06550。00000 - “行 %s,列 %s:\n%s” *原因:通常是 PL/SQL 编译错误。*行动:

我已将上述块用于不同的有效负载类型,并且工作正常,但是当我使用 XMLTYPE 作为有效负载时,我遇到了这个问题。

我已经在没有使用 DBMS_OUTPUT.PUT_LINE ('Message: ' || message); 的情况下尝试了带有 XMLTYPE 有效负载的上述块;它工作得很好。

我在哪里犯错误?

0 投票
1 回答
873 浏览

java - 队列未清除已消费消息

我正在使用以下代码。我能够创建、浏览、发送和接收消息。但是当我从队列中消费一条消息时,它并没有从队列中清除。

有什么我想念的吗?

0 投票
1 回答
997 浏览

java - 调用“DROP_QUEUE_TABLE”时参数的数量或类型错误

我正在尝试使用 jdbcTemplate().update 方法删除队列。这是 -

DBMS_AQADM.DROP_QUEUE_TABLE 有两个参数。1) queue_table 作为字符串和 2) force 作为布尔值。

当我尝试运行上面的代码时,我得到 -

但是当我运行以下代码时,它可以正常工作-

我猜是,问题是将 oracle 对象(不是 varchar 或 int)作为参数传递。

我真的很想知道有什么办法可以解决这个问题。

0 投票
2 回答
6693 浏览

java - Java 中的 Oracle 高级队列

我正在实施 Oracle Advanced Queue 并且对它完全陌生。我对此有一些疑问。下面是我的代码:

我创建了一个队列表和一个队列。消息已从队列中写入和读取。

Q1。我可以在同一个队列中再写一条消息并从中读取吗?如果是,我们该怎么做?因为我尝试将消息写入同一个队列但不能

Q2。如何将上面的代码转换为发布订阅?如何通过多次阅读相同的消息来测试它?

任何帮助表示赞赏。