问题标签 [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.
java - JMS Push Consumer 延迟从 Oralce AQ 获取消息
我有一个应用程序,我在其中实施了 Oracle AQ。我注意到,在向 AQ 生成消息后,JMS Push 消费者对消息的消费有几秒钟的延迟。
我运行了这个场景,我在 AQ 中生成了几条消息,比如一小时内 10 条消息。我注意到消息的消费有几秒钟的延迟。我计算了这种情况下的平均延迟时间,结果为 12 秒,最大延迟时间为 13.5 秒。
但是当我将生产速度提高到一小时内 1000 条消息时。我看到消费延迟减少了。我得到了 5 秒的恒定平均值,最大延迟为 5.2 秒。
我可以假设 JMS 消费者线程可能有一些睡眠时间但我有点困惑,因为我使用的是 Push 消费者而不是 Poll 消费者。
请帮助我找出这种延迟的原因以及如何缩短这个时间间隔。
~谢谢
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 中尝试过的方法:
创建了一个本地条目作为内联 XML 条目:
名称:jmsMsgToSoapMsg_xslt
值:<localEntry key="jmsMsgToSoapMsg_xslt" src="file:jmsMsgToSoapMsg.xslt"/>
然后我尝试通过切换到源视图并粘贴代理定义来创建自定义代理。但是,当我点击“保存”时,出现错误:
“无法从源生成数据:Synapse 命名空间https://ws.apache.org/ns/synapse - 配置中不存在。”
代理中的任何地方都没有引用该命名空间。但是,我注意到它被自动插入到本地条目定义中:
并且没有办法删除它。任何建议如何解决这个问题?
java - JMS 112 使用 spring ds 的无效连接
我正在使用 spring 数据源并且无法连接到 Oracle AQ 队列。
但仍然得到这个:oracle.jms.AQjmsException: JMS-112: Connection is invalid
任何提示将不胜感激。
jms - 无法为 Oracle AQ 配置 jndi.properties Flume
我正在尝试将我的Apache Flume
应用程序源连接到Oracle AQ
.
jndi.properties
在类路径中,配置如下:
我在日志中收到以下错误:
我已经java.naming.security.principal=remote
java.naming.security.credentials=remotepwd
从一个例子中复制了,我真的不知道我需要插入什么值。
关于如何jndi.properties
正确配置文件的任何建议?
jms - 使用 Oracle AQ 配置 Flume
我有一个关于使用配置Apache Flume
的问题。为了在和远程服务器之间进行设置(例如),我需要配置数据源吗?Oracle AQ
JMS
JMS
Oracle AQ
Flume
WebLogic
Flume 向我抛出了未配置数据源的异常。我已经阅读Oracle
了文档,它说为了让第 3 方服务器与 AQ JMS 一起工作,我需要 WebLogic 数据源。
我不想和 一起工作WebLogic
,所以我想确保我已经正确理解它并且没有其他方法。
所以我想为flume设置一个源来接收来自Oracle AQ的消息,我必须创建一个WebLogic
数据源还是可以直接使用队列?
c++ - C++ 6.0 与 Oracle AQ 的集成
我有一个在 VS 6.0 上构建的旧应用程序,我需要与 Oracle AQ 进行小型集成。我原本打算使用 OCCI,但我发现它不再支持 Microsoft Visual C++ 6.0。
有没有四处走走来实现这一点?
谢谢,
java - Oracle AQ Prioritized JMS 消息以相反的优先级顺序传递
我创建了一个这样的 oracle 队列
然后我像这样使用spring发送消息JMSTemplate
:
如果我select
从priorityqueue
我可以看到的所有内容都以不同的优先级放在那里:
接下来我使用这些消息......不是什么花哨的东西 - 像这样:
但是输出看起来像这样:
- 优先级 [1]
- 优先[4]
- 优先 [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_TABLE
说,sort_list
即[t]he columns to be used as the sort key in ascending order
它看起来不像降序是一个选项。
另外 - 发送时,我设置了两次优先级 - 一次在消息上,一次在jmsTemplate
. 我真的应该这样做吗?
oracle - Oracle 高级队列 - 出队不起作用
我似乎找不到解决问题的方法,我已经被困了好几个小时了。
我正在使用 Oracle AQ:
这是我的一位订阅者:
订户注册:
每当我的数据库上发生某个事件时,我都会使用触发器通过从我的ITEM_API
包中调用以下过程将“事件”添加到我的 AQ:
它正在工作,因为当我检查我的 AQ 表时,我可以找到“事件”,但是我的出队方法没有出队,如下图所示,没有DEQ_TIME
.
这是我的出队方法,也来自我的ITEM_API
包:
难道我做错了什么?我怎样才能解决这个问题?我认为我的订阅者注册可能有问题,但我不确定。
编辑:我刚刚发现,如果我删除订阅者和寄存器,然后重新添加它们,它们将使所有消息出列。但是,如果另一个事件入队,它会无限期地停留在那里(或者直到我删除并再次添加订阅者):
状态为 0 且为 no 的记录DEQ_TIME
是新记录。
我需要调度程序或类似的东西吗?
编辑:我已经向我的 AQ 添加了调度程序传播:
甚至添加了 next_time 字段:
还是不行。有什么建议么?我猜 AQ 通知不起作用,并且我的回调程序永远不会被调用。我怎样才能解决这个问题?
编辑:我已经从包中删除了我的程序只是为了测试目的,所以我的队友可以编译 ITEM_API 包(我不知道重新编译包是否会对出队过程产生影响)。还是不行。
multithreading - 高级 Oracle AQ 出队顺序
我有一个 Java 应用程序,它使用 Oracle 队列将消息存储在队列中,以便稍后由多个线程使用排队消息进行处理。此队列中的消息可以相互关联,因此必须根据我的应用程序的业务逻辑按特定顺序进行处理。基本上,我想实现只要队列中的另一条消息 B 尚未完全处理,一条消息 A 的出队就会被阻止。我在这里看到的 Oracle AQ 提供的唯一武器是延迟和优先级参数。然而,这些不能用于实现上述场景,因为在某些情况下,两个相关消息仍然可以同时出队和处理。是否有任何工具可以帮助建立消息的高级处理顺序?
java - 到 Oracle AQ 的队列连接:java.lang.NoSuchMethodError: oracle.jdbc.internal.OracleConnection.getDbCsId()S
使用 java 创建与 Oracle AQ 的连接时出现问题。这里的代码:
我收到这样的错误:
通过此行时:
t_sess = t_conn.createTopicSession(true, Session.CLIENT_ACKNOWLEDGE);
有没有人可以帮助我?