簡體   English   中英

Tibco EMS-偵聽EMS異常“不允許創建目的地”

[英]Tibco EMS - Listening to EMS Exception “Not allowed to create destination”

我正在嘗試聽EMS服務器,如下所示:

Topic clientTopic = _subscriberSession.CreateTopic(topicName);
TopicSubscriber clientTopicSubscriber = _subscriberSession.CreateSubscriber(clientTopic, selector, true);
clientTopicSubscriber.MessageHandler += new EMSMessageHandler(test_MessageHandler);

但是,當我這樣做時,會引發異常:
TIBCO.EMS.InvalidDestinationException:'不允許創建目的地'

我知道EMS已配置為禁用隊列和主題創建。 但是,我只是想聽聽這個話題。 我也嘗試過“ CreateConsumer”。 我不明白怎么了。 我只是想聽,而不是創建隊列或主題。 你們知道怎么了嗎?

此外,我正在嘗試收聽的主題已存在且已通過驗證。

        var context = new LookupContext(environment);
        var factory = context.Lookup(config.ConnectionFactory) as ConnectionFactory;
        try
        {
            connectionCorp = factory.CreateConnection();
        }
        catch {
            var connectionFactory = new ConnectionFactory(factory.Url, "Receiver", environment);
            connectionCorp = connectionFactory.CreateConnection();
        }
        connectionCorp.Start();
        sessionCorp = connectionCorp.CreateSession(false, SessionMode.ClientAcknowledge);
        var queue = context.Lookup(config.Name) as Destination;
        if(queue is TIBCO.EMS.Topic)
        {
            var selector = string.Format("To='{0}' and From='{1}'", config.ToAddress, config.FromAddress);
            msgConsumer = sessionCorp.CreateConsumer(queue, selector,false);
            msgConsumer.MessageHandler += (sender, args) => {
                action(args);
            };
        }
        else
        {
            msgConsumer = sessionCorp.CreateConsumer(queue);
            msgConsumer.MessageHandler += (sender, args) => {
                action(args);
            };
        }

即使您只在聽一個主題,默認情況下,您也需要具有查看任何流量的權限。 同樣,僅訂閱主題也需要“訂閱”權限。

在您的情況下,您可以添加(將foo替換為您的實際客戶主題,並將user1替換為您的用戶名)

主題= foo用戶=用戶1 PERM =訂閱

或者,如果您現在還不想打擾權限,只需將'>'通配符添加到topic.conf和queue.conf的一行中,然后重新啟動tibemsd:

>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM