gpt4 book ai didi

azure - 使用 Azure ServiceBus 队列配置 WSO2 4.8.1

转载 作者:行者123 更新时间:2023-12-02 08:04:50 29 4
gpt4 key购买 nike

这是我的场景:

我在 WSO2 esb 4.8.1 中配置了一个 messageStore,如下所示:

 <messageStore class="org.apache.synapse.message.store.impl.jms.JmsStore"  name="JMSTest">
<parameter name="java.naming.factory.initial">org.apache.qpid.amqp_1_0.jms.jndi.PropertiesFileInitialContextFactory</parameter>
<parameter name="java.naming.provider.url">repository/conf/jms-jndi.properties</parameter>
<parameter name="store.jms.connection.factory">JMSMS</parameter>
<parameter name="store.jms.JMSSpecVersion">1.1</parameter>
<parameter name="store.jms.destination">QUEUE</parameter>
</messageStore>

我遵循了此official tutorial指示的配置连接队列。

序列第一次尝试使用此存储来存储消息时,会引发错误并忽略该消息。

[JMSTest-P-1]. Ignored MessageID : urn:uuid:414f50a0-91d2-4bdf-937b-cc283985c947 [JMSTest-P-1] cannot proceed. Message producer is null.

如果我尝试在接下来的 5 分钟内存储消息,存储将正常工作。但是在这种超时之后,如果我尝试存储消息,则会触发相同的错误。

我尝试将 store.jms.cache.connection 参数添加到 falsetransport.jms.CacheLevel 参数通过在管理控制台中编辑 sourceView 来设置 None ,但是如果我修改 MessageStore 选项卡中的配置,这些参数将被删除,因此我不知道它们是否真正被使用。

您知道要采用哪种外观才能使 messageStore 始终处于事件状态吗?

谢谢大家的回答

最佳答案

我能够通过降级所使用的 qpid 库来解决“超时”问题。

在Azure官方教程中没有指定qpid版本,所以我选择了最新的(qpid 0.32)。不要做。使用 qpid 0.26 和相同的配置,问题就消失了。有关信息,qpid 0.30 发生相同的错误

在我复制到 lib 目录中以使用 Azure 服务总线队列设置 WSO2 ESB 的 jar 下方,以及我的 conf 文件的内容:

/repository/components/lib/

geronimo-jms_1.1_spec-1.0.jar
qpid-amqp-1-0-client-0.26.jar
qpid-amqp-1-0-client-jms-0.26.jar
qpid-amqp-1-0-common-0.26.jar

/repository/conf/jms-jndi.properties

connectionfactory.JMSMS = amqps://<POLICY_NAME>:<BASE64_ENCODE_POLICY_KEY>@<NAMESPACE>.servicebus.windows.net
queue.QUEUE = <QUEUE_NAME>

请注意,您必须在队列级别而不是命名空间级别定义策略,并且队列在创建时不得分区。

我希望这会对你们中的一些人有所帮助。

关于azure - 使用 Azure ServiceBus 队列配置 WSO2 4.8.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46787819/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com