1
votes

We know that solace topic is just message property, and there are topic endpoint for JMS compliant, but per my test (VMR 8.10.0.1092):

  1. In Solace Admin UI, it seems we can't setup topic endpoint's subscription like queue, is it solace admin UI issue? enter image description here
  2. When i use solace JMS API to publish message to topic and if there are no durable subscriptions (queue/topic endpoint) for this topic, it will create one topic endpoint with random name and subscribed topic, for example: enter image description here
  3. When i use solace JMS API to subscribe the topic "T/sampleTopic", it also create one non-durable topic endpoint with random name and subscribed topic named T/sampleTopic.
  4. When i use solace JMS API to subscribe the topic "T/sampleTopic" and specify subscription durable to true, it also create one durable topic endpoint with default name(org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter) and subscribed topic named T/sampleTopic.
  5. When i use solace JMS API to subscribe the topic "T/sampleTopic" and specify subscription durable to true and setup subscription name with "T/sampleTopic", then it report error: Error Response (400) - Endpoint Property Mismatch, and after i delete the original topic endpoint "T/sampleTopic" and run again, then it create one "expected" topic endpoint: enter image description here

So, i do NOT know how to use solace topic endpoint with JMS API.

1
according my test, the solace topic endpoint should be something like subscription name.Emman Sun

1 Answers

2
votes

Topic endpoints are one of the two type of endpoints for the purpose of spooling guaranteed messages. Unlike queues, topic endpoints offer an ingress selector, but can only have one topic subscription (wildcards are allowed).

  1. No. Subscription of topic endpoints can only be managed by the application and not the UI.

  2. Topic endpoints are only created when a MessageConsumer, or a durable subscriber is used by the JMS application. It has nothing to do with publishers.

  3. It sounds like you are using a MessageConsumer that is subscribing to topic "T/sampleTopic". MessageConsumers on topics are mapped internally to non-durable topic endpoints.

  4. Yes, this is expected. Durable subscription will be mapped internally to a durable topic endpoint.

  5. It sounds like you have enabled "Dynamic Durables" in the connection factory, which causes the Solace JMS API to create endpoints. "Endpoint Property Mismatch" indicates that the endpoint that the API is trying to create contains one or more properties that does not match the one that already exists. Since "Dynamic Durables" is enabled, then you should leave creation of endpoints to the API. Note that the default setting of "Dynamic Durables" is disabled.