[英]How to Connect to Multiple Google spanner DB running on different host from Spring Boot App
[英]How to connect a Springboot app to an Azure SB with multiple subscriptions (with same name) across different topics
我在使用 JMSListeners 連接到 Azure 服務總線的 Springboot 應用程序中有一個 Controller。
Method 1:
@JmsListener(destination = "${topicX}", containerFactory = "topicJmsListenerContainerFactory",
subscription = "${XXX}")
Method 2:
@JmsListener(destination = "${topicY}", containerFactory = "topicJmsListenerContainerFactory",
subscription = "${XXX}")
如您所見,主題名稱不同,但訂閱名稱相同。
Springboot 應用程序啟動時出現錯誤。
這是錯誤:
原因:javax.jms.JMSRuntimeException:非共享持久訂閱已處於活動狀態,名稱為“XXX”。
我是 Azure SB 和主題的新手,所以我不確定這是否可以做到? 或者不同主題下的多個訂閱不應該被命名為相同的?
這是我繼承的一些代碼,用於調試並找出可能的解決方案,所以我沒有太多關於為什么這樣做的細節。 如果您需要更多信息,我很樂意與您分享。
請幫忙!
我嘗試通過注釋掉其中一種方法並確認它有效。
我想了解是否有辦法在沒有錯誤的情況下運行這兩種方法。
據我所知,每個訂閱在服務總線命名空間中都是不同的。
在這里,我試圖在不同的主題中創建一個新的訂閱,而名為Subscription
的訂閱已經存在於其他一些主題中,門戶網站給了我以下錯誤
@Component
public class TopicReceiveController {
private static final String TOPIC_NAME1 = "test";
private static final String TOPIC_NAME2 = "newtest";
private static final String SUBSCRIPTION_NAME1 = "Subscription";
private static final String SUBSCRIPTION_NAME2 = "Subscription2";
private final Logger logger = LoggerFactory.getLogger(TopicReceiveController.class);
@JmsListener(destination = TOPIC_NAME1, containerFactory = "topicJmsListenerContainerFactory",
subscription = SUBSCRIPTION_NAME1)
public void receiveMessage(String Name) {
logger.info("Received message: {}", Name);
}
@JmsListener(destination = TOPIC_NAME2, containerFactory = "topicJmsListenerContainerFactory",
subscription = SUBSCRIPTION_NAME2)
public void receiveMessageNewTopic(String Name) {
logger.info("Received message: {}", Name);
}
}
Output:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.