尝试从 JMS 主题中删除消息而不使用

问题描述 投票:0回答:1

我一直在编写一些代码来从 JMS 主题中删除消息,而不从我们的数据库中使用它们(由于我们的数据库存在一些问题)。我发现没有专门的方法可以直接从主题中删除消息,但我一直在尝试创建 JMS 连接并创建主题和使用者,然后使用它来删除消息。

我遇到的问题是在我的代码中创建 JMS 会话后,它应该使用现有主题创建主题,创建消费者,然后循环消费者并删除消息。在主题创建过程中出现问题,我不确定主题名称的格式是否错误或什么,但我需要获取主题的正确语法应该是什么的示例,或者是否可能存在不同的问题。另外,我能够单独列出我的融合环境中的主题名称,但我得到的格式也不起作用,它看起来像这样:

myJMSModule!MyJMSServer@[email protected]

这是我的代码:

                    context = InitialContext(jndi_props)
                    connection_factory = context.lookup("my/connectionFactory")
                    connection = connection_factory.createConnection()
                    session = connection.createSession(False, javax.jms.Session.AUTO_ACKNOWLEDGE)
                    topic =    session.createTopic("Where im having issues")
                    consumer = session.createConsumer(topic, selector)
                    connection.start()



                    try:
                       while True:
                           message = consumer.receiveNoWait()
                           if message is None:
                               break

                           if isinstance(message, JMSMessageInfo):
                              print("Removing message: %s " % message.getJMSMessageID())
                              session.deleteMessage(message) # Acknowledge the message to remove it



                    finally:
                       consumer.close()
                       session.close()
                       connection.close()

这是我经常遇到的错误之一:

weblogic.jms.common.JMSException: weblogic.jms.common.JMSException: [JMSExceptions:045103]While trying to find a topic or a queue, the specific JMS server requested could not be found. The linked exception may contain more information about the reason for failure.

我需要一些帮助,或者如果您知道更好的方法来从主题中删除消息而不消耗它们,这也会非常有帮助。

session.createTopic
是我的问题出现的地方。我尝试过
My.TOPIC.NAME
/My.TOPIC.NAME
myJMSServer/My.TOPIC.NAME
myJMSModule/My.TOPIC.NAME
等格式。

jms weblogic oracle-fusion-middleware
1个回答
0
投票

JMS API 不支持任何在不实际使用消息的情况下删除消息的方法。

© www.soinside.com 2019 - 2024. All rights reserved.