跳到主要内容

在PubSub+ JCSMP API中配置和撤销持久端点

在事件代理上配置持久队列或主题端点有两种方法:

  • 管理员可以通过 Broker Manager、SEMP、Solace CLI 或 SolAdmin 手动配置持久端点。

    • 即使对于管理员配置的端点,面向对象的 PubSub+ JCSMP API 也需要你创建一个逻辑队列或主题端点实例,以便在创建消费者流时使用。
  • 在已连接的会话中,客户端可以通过 PubSub+ JCSMP API 动态配置持久端点。要动态配置持久端点,请调用下面列出的方法,并传入端点属性和配置标志。有关详细信息,请参阅 PubSub+ JCSMP API 中的定义端点属性。

客户端可以通过 API 配置持久端点,而无需立即创建到它们的消费流。

有关如何动态配置持久端点的示例,请参阅 Solace 开发者中心上的 QueueProvisionAndBrowse.java 示例。

使用PubSub+ JCSMP API配置持久端点

要使用 PubSub+ JCSMP API 动态配置持久端点,请完成以下步骤:

  1. 创建端点的本地 API 表示。对于 JCSMP API,这是一个队列或端点对象。
  2. 将对象或属性列表传递给适当的方法或函数,以在事件代理上配置端点或队列。

以下代码片段展示了如何创建持久端点或队列的 API 表示,并在事件代理上进行配置:

// 创建本地队列或端点对象:
JCSMPFactory.createQueue(...)
JCSMPFactory.createDurableTopicEndpoint(...)

// 在事件代理上配置队列或端点:
JCSMPSession.provision(...)

有关更多信息,请参阅 PubSub+ JCSMP 消息传递 API 参考。

使用PubSub+ JCSMP API撤销持久端点

你可以通过以下两种方式撤销持久端点:

  • 管理员可以通过 Broker Manager、Solace CLI、SEMP 或 SolAdmin 在事件代理上移除持久端点。
  • 在已连接的会话中,客户端可以移除通过 API 配置的持久端点,方法如下:调用下面表格中列出的方法或函数,并传入要移除的端点、JCSMP API 的对象以及表示是否“撤销配置”应同步或异步完成的配置标志。有关详细信息,请参阅 PubSub+ JCSMP 消息传递 API 参考。

只有在客户端最初配置了端点(即,它是端点的所有者)或者端点是使用删除权限级别配置的(允许其他客户端移除端点,参阅 PubSub+ JCSMP API 中的定义端点属性)时,客户端才能移除端点。

通过管理界面(Broker Manager、SolAdmin、CLI 或 SEMP)创建的端点只能由管理进行撤销和删除。也就是说,如果端点是由管理创建的,那么无论配置的权限如何,客户端都无法使用 API 撤销该端点。

要动态撤销持久端点,请使用 JCSMPSession.deprovision(...) 方法。有关更多信息,请参阅 PubSub+ JCSMP 消息传递 API 参考。