问题标签 [oracle-aq]

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 回答
760 浏览

java - JMS Push Consumer 延迟从 Oralce AQ 获取消息

我有一个应用程序,我在其中实施了 Oracle AQ。我注意到,在向 AQ 生成消息后,JMS Push 消费者对消息的消费有几秒钟的延迟。

我运行了这个场景,我在 AQ 中生成了几条消息,比如一小时内 10 条消息。我注意到消息的消费有几秒钟的延迟。我计算了这种情况下的平均延迟时间,结果为 12 秒,最大延迟时间为 13.5 秒。

但是当我将生产速度提高到一小时内 1000 条消息时。我看到消费延迟减少了。我得到了 5 秒的恒定平均值,最大延迟为 5.2 秒。

我可以假设 JMS 消费者线程可能有一些睡眠时间但我有点困惑,因为我使用的是 Push 消费者而不是 Poll 消费者。

请帮助我找出这种延迟的原因以及如何缩短这个时间间隔。

~谢谢

0 投票
1 回答
819 浏览

jms - 定义 WS02 代理时“http://ws.apache.org/ns/synapse - 配置中不存在”

我得到了http://wso2.com/library/tutorials/2011/11/configuring-wso2-esb-with-oracle-as-messaging-media/中列出的示例 以在准系统突触下工作。现在试图让它在 WS02 中工作。

在突触中,我只是将列出的代理放在突触定义文件​​中。这是我在 WSO2 中尝试过的方法:

  1. 创建了一个本地条目作为内联 XML 条目:

    名称:jmsMsgToSoapMsg_xslt

    值:<localEntry key="jmsMsgToSoapMsg_xslt" src="file:jmsMsgToSoapMsg.xslt"/>

  2. 然后我尝试通过切换到源视图并粘贴代理定义来创建自定义代理。但是,当我点击“保存”时,出现错误:

    “无法从源生成数据:Synapse 命名空间https://ws.apache.org/ns/synapse - 配置中不存在。”

代理中的任何地方都没有引用该命名空间。但是,我注意到它被自动插入到本地条目定义中:

并且没有办法删除它。任何建议如何解决这个问题?

0 投票
2 回答
1386 浏览

java - JMS 112 使用 spring ds 的无效连接

我正在使用 spring 数据源并且无法连接到 Oracle AQ 队列。

但仍然得到这个:oracle.jms.AQjmsException: JMS-112: Connection is invalid任何提示将不胜感激。

0 投票
1 回答
773 浏览

jms - 无法为 Oracle AQ 配置 jndi.properties Flume

我正在尝试将我的Apache Flume应用程序源连接到Oracle AQ. jndi.properties在类路径中,配置如下:

我在日志中收到以下错误:

我已经java.naming.security.principal=remote java.naming.security.credentials=remotepwd从一个例子中复制了,我真的不知道我需要插入什么值。

关于如何jndi.properties正确配置文件的任何建议?

0 投票
1 回答
243 浏览

jms - 使用 Oracle AQ 配置 Flume

我有一个关于使用配置Apache Flume的问题。为了在和远程服务器之间进行设置(例如),我需要配置数据源吗?Oracle AQJMSJMSOracle AQFlumeWebLogic

Flume 向我抛出了未配置数据源的异常。我已经阅读Oracle了文档,它说为了让第 3 方服务器与 AQ JMS 一起工作,我需要 WebLogic 数据源。

我不想和 一起工作WebLogic,所以我想确保我已经正确理解它并且没有其他方法。

所以我想为flume设置一个源来接收来自Oracle AQ的消息,我必须创建一个WebLogic数据源还是可以直接使用队列?

0 投票
0 回答
94 浏览

c++ - C++ 6.0 与 Oracle AQ 的集成

我有一个在 VS 6.0 上构建的旧应用程序,我需要与 Oracle AQ 进行小型集成。我原本打算使用 OCCI,但我发现它不再支持 Microsoft Visual C++ 6.0。

有没有四处走走来实现这一点?

谢谢,

0 投票
1 回答
751 浏览

java - Oracle AQ Prioritized JMS 消息以相反的优先级顺序传递

我创建了一个这样的 oracle 队列

然后我像这样使用spring发送消息JMSTemplate

如果我selectpriorityqueue我可以看到的所有内容都以不同的优先级放在那里:

接下来我使用这些消息......不是什么花哨的东西 - 像这样:

但是输出看起来像这样:

  1. 优先级 [1]
  2. 优先[4]
  3. 优先 [9]

当它真的应该是 9、4、1 时。

java.jms.Message的文档明确指出[t]he JMS API defines ten levels of priority value, with 0 as the lowest priority and 9 as the highest.

我究竟做错了什么?我研究了按优先级降序创建队列,但文档CREATE_QUEUE_TABLEsort_list[t]he columns to be used as the sort key in ascending order它看起来不像降序是一个选项。

另外 - 发送时,我设置了两次优先级 - 一次在消息上,一次在jmsTemplate. 我真的应该这样做吗?

0 投票
3 回答
11611 浏览

oracle - Oracle 高级队列 - 出队不起作用

我似乎找不到解决问题的方法,我已经被困了好几个小时了。

我正在使用 Oracle AQ:

这是我的一位订阅者:

订户注册:

每当我的数据库上发生某个事件时,我都会使用触发器通过从我的ITEM_API包中调用以下过程将“事件”添加到我的 AQ:

它正在工作,因为当我检查我的 AQ 表时,我可以找到“事件”,但是我的出队方法没有出队,如下图所示,没有DEQ_TIME.

这是我的出队方法,也来自我的ITEM_API包:

难道我做错了什么?我怎样才能解决这个问题?我认为我的订阅者注册可能有问题,但我不确定。

编辑:我刚刚发现,如果我删除订阅者和寄存器,然后重新添加它们,它们将使所有消息出列。但是,如果另一个事件入队,它会无限期地停留在那里(或者直到我删除并再次添加订阅者):

状态为 0 且为 no 的记录DEQ_TIME是新记录。

我需要调度程序或类似的东西吗?

编辑:我已经向我的 AQ 添加了调度程序传播:

甚至添加了 next_time 字段:

还是不行。有什么建议么?我猜 AQ 通知不起作用,并且我的回调程序永远不会被调用。我怎样才能解决这个问题?

编辑:我已经从包中删除了我的程序只是为了测试目的,所以我的队友可以编译 ITEM_API 包(我不知道重新编译包是否会对出队过程产生影响)。还是不行。

0 投票
1 回答
388 浏览

multithreading - 高级 Oracle AQ 出队顺序

我有一个 Java 应用程序,它使用 Oracle 队列将消息存储在队列中,以便稍后由多个线程使用排队消息进行处理。此队列中的消息可以相互关联,因此必须根据我的应用程序的业务逻辑按特定顺序进行处理。基本上,我想实现只要队列中的另一条消息 B 尚未完全处理,一条消息 A 的出队就会被阻止。我在这里看到的 Oracle AQ 提供的唯一武器是延迟和优先级参数。然而,这些不能用于实现上述场景,因为在某些情况下,两个相关消息仍然可以同时出队和处理。是否有任何工具可以帮助建立消息的高级处理顺序?

0 投票
0 回答
1667 浏览

java - 到 Oracle AQ 的队列连接:java.lang.NoSuchMethodError: oracle.jdbc.internal.OracleConnection.getDbCsId()S

使用 java 创建与 Oracle AQ 的连接时出现问题。这里的代码:

我收到这样的错误:

通过此行时:

t_sess = t_conn.createTopicSession(true, Session.CLIENT_ACKNOWLEDGE);

有没有人可以帮助我?