从.net连接到Tibco主题时出错 - ClientId已存在

时间:2014-03-09 09:25:01

标签: .net tibco ems

使用c#客户端使用持久订阅者订阅Tibco主题。我使用下面的代码

TopicConnectionFactory factory = new TIBCO.EMS.TopicConnectionFactory(serverUrl);
TopicConnection connection = factory.CreateTopicConnection(userName, password);
connection.ClientID = clientID;
TopicSession session = connection.CreateTopicSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.CreateTopic(topicName);
TopicSubscriber subscriber = session.CreateDurableSubscriber(topic, durableName); 
connection.Start();

当程序第一次运行时,上面的代码工作正常,并且能够接收消息。但是当我停止我的客户端程序并尝试再次运行它时,从现在开始,我根本无法连接到主题。它给了我一个错误

ClientId already exists at line
connection.ClientID = clientID;

我不确定clientId的作用是什么。每次连接到TOPIC时,我是否需要提供独特的clientid?

请帮助。

提前致谢。

2 个答案:

答案 0 :(得分:0)

通常,每个连接都应具有唯一的clientId。否则你将得到" ClientId已经存在"如果已经有一个具有相同clientId的连接。

答案 1 :(得分:0)

我终于找到了解决方法。而不是Receive方法,我使用了一个方法ReceiveNoWait方法,然后一切正常。