首页 > 解决方案 > 如何从 .net 客户端为 ibm amqp 主题创建不可修改的持久订阅者?

问题描述

我们有一个客户端使用 .net 客户端通过 amqp(由客户端指定)连接到我们的 IBM mq 主题。我们已经通过管理方式创建了订阅者。每当客户端使用 .net 客户端通过 amqp 通道连接到我们的主题时,它都会修改订阅者的到期或持久属性。我们应该如何防止客户修改我们的订阅者。(它专门创建了全新的订阅者,持久属性设置为 NO)

我们无权访问客户端代码,但它类似于 https://github.com/amqphub/equipage/blob/master/amqpnetlite/Subscriptions/DurableSubscribe/DurableSubscribe.cs

我们创建了一个持久且无限期的管理员订阅者。

dis sub(':private:123:TOPIC01')
23 : dis sub(':private:123:TOPIC01')
AMQ8096: WebSphere MQ subscription inquired.
SUBID(xxxxxxx)
SUB(:private:123:TOPIC01') TOPICSTR(TOPIC01)
TOPICOBJ( ) DISTYPE(RESOLVED)
DEST(SYSTEM.MANAGED.DURABLE.xxxxx)
DESTQMGR(xxxxx) PUBAPPID( )
SELECTOR( ) SELTYPE(NONE)
USERDATA( )
PUBACCT(xxxx)
DESTCORL(xxxx)
DESTCLAS(MANAGED) DURABLE(YES)
EXPIRY(UNLIMITED) PSPROP(MSGPROP)
PUBPRTY(ASPUB) REQONLY(NO)
SUBSCOPE(ALL) SUBLEVEL(1)
SUBTYPE(ADMIN) VARUSER(ANY)
WSCHEMA(TOPIC) SUBUSER(mqm)
CRDATE(2020-11-13) CRTIME(12:38:26)
ALTDATE(2020-11-13) ALTTIME(12:38:26)

但是当客户端连接到 IBM MQ 时,它会修改订阅者。

dis sub(':private:123:TOPIC01')
37 : dis sub(':private:123:TOPIC01')
AMQ8096: WebSphere MQ subscription inquired.
SUBID(xxxx)
SUB(:private:123:TOPIC01) TOPICSTR(TOPIC01)
TOPICOBJ(SYSTEM.BASE.TOPIC) DISTYPE(RESOLVED)
DEST(SYSTEM.MANAGED.NDURABLE.xxx)
DESTQMGR(xxxx) PUBAPPID( )
SELECTOR( ) SELTYPE(NONE)
USERDATA(000)
PUBACCT(xxx)
DESTCORL(xxx)
DESTCLAS(MANAGED) DURABLE(NO)
EXPIRY(UNLIMITED) PSPROP(MSGPROP)
PUBPRTY(ASPUB) REQONLY(NO)
SUBSCOPE(ALL) SUBLEVEL(1)
SUBTYPE(API) VARUSER(FIXED)
WSCHEMA(TOPIC) SUBUSER(xxx)
CRDATE(2020-11-13) CRTIME(10:12:39)
ALTDATE(2020-11-13) ALTTIME(10:12:39)

检查新订户是否已创建,并将持久设置为 NO,从早期的 YES 值更改

寻求您的帮助

标签: .netibm-mqpublish-subscribeamqp

解决方案


推荐阅读