跳到主要内容

VPN级别消息暂存管理

您可以执行以下消息VPN级别的消息池管理任务:

  • 更改有序主题的起始编号
  • 删除消息
  • 从一个端点复制消息到另一个端点

更改有序主题的起始编号

此功能已被弃用,不应再使用。

要更改有序主题订阅的默认起始序列号从1开始,请输入以下命令:

solace(admin)# message-spool message-vpn <vpn-name>
solace(admin/message-spool)# sequenced-topic <topic> next-sequence-number <seq-num>

其中:

<topic>是现有有序主题的名称

<seq-num>是新的序列号,范围在1到263-1之间

每当序列号被管理员更改时,都会生成一个INFO级别的Solace syslog事件。如果管理员将序列号更改为低于当前下一个序列号的值,将导致发出重复的序列号。同样,更改为更高的值将导致序列号出现间隙。有关如何创建有序主题订阅的信息,请参考消息VPN级保证消息传递配置。

删除消息

要从给定的消息VPN中删除一条、部分或所有入队的消息,请输入以下管理命令:

solace(admin)# message-spool message-vpn <vpn-name>
solace(admin/message-spool)# delete-messages {{queue <queue-name>} | {topic-endpoint <te-name>}} [message <msg-id> [to <to-msg-id>]]

其中:

<queue-name>是指定消息队列的完整名称,或队列名称的一部分,使用通配符?代表名称中的一个字符,或使用通配符代表名称中的零个或多个字符,其中仅输入通配符指定所有队列。

<te-name>是指定主题端点的完整名称,或队列名称的一部分,使用通配符?代表名称中的一个字符,或使用通配符代表名称中的零个或多个字符,其中仅输入通配符指定所有主题端点。

message <msg-id>指定删除指定的入队消息。

to <to-msg-id>指定删除从由<msg-id>指定的消息标识符开始到由<to-msg-id>指定的消息标识符为止的一系列入队消息。

示例:

solace(admin)# message-spool message-vpn blue
solace(admin/message-spool)# delete-messages topic-endpoint solace21

从一个端点复制消息到另一个端点

在某些情况下,可能需要从一个端点(无论是队列还是主题端点)复制单个消息到另一个端点,或者从重播日志到端点。例如,如果事件代理因为应用程序无法消费消息而将消息移动到死信队列(DMQ),一旦应用程序问题得到解决,您可以将该消息从DMQ复制回原始队列。

要将消息从一个端点复制到另一个端点,请输入以下管理命令:

solace(admin)# message-spool message-vpn <vpn-name>
solace(admin/message-spool)# copy-message {source {{queue <queue-name>} | {topic-endpoint <te-name>} | {replay-log <replay-log-name>}}} {destination {{queue <queue-name>} | {topic-endpoint <te-name>}}} {message <replication-group-msg-id>}

其中:

<queue-name>是指定消息队列的完整名称。

<te-name>是指定主题端点的完整名称。

<replay-log-name>是消息重播日志的名称。

<replication-group-msg-id>是您想要复制的消息的复制组消息ID。复制组消息ID是Solace消息的属性,由传递消息到队列和主题端点的事件代理分配,它在HA组和事件代理复制组中的特定队列或主题端点上唯一标识一条消息。

示例:

solace(admin)# message-spool message-vpn orange
solace(admin/message-spool)# copy-message source queue dmq1 destination queue q1 message rmid1:12eb1-a19b418311c-00000000-00000005