.net - 如何从 .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 值更改
寻求您的帮助
解决方案
推荐阅读
- .net - 客户端应该在请求完成之前等待 API HTTP 响应还是通过 API Websocket 更新?
- javascript - 使用 Javascript Puppeteer 获取标签的内部文本
- react-native - 如何在 React Native 中使用 yup 和 formik 验证 DateTimePickerModal?
- vba - 将列追加/添加到现有的 csv 文件
- java - 没有关于在 Android 项目中使用 Java 9 方法的警告
- python - 如何理解训练神经网络类型转换器(BERT)的结果?
- e-commerce - 在 Cornerstone (BigCommerce) 中更新结帐布局和 JS 行为
- c - 从子进程返回计算值
- filter - USRP N320 记录边缘
- python - Pandas Append 仅返回一个 Key 行。如何解决?