使用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?
请帮助。
提前致谢。
答案 0 :(得分:0)
通常,每个连接都应具有唯一的clientId。否则你将得到" ClientId已经存在"如果已经有一个具有相同clientId的连接。
答案 1 :(得分:0)
我终于找到了解决方法。而不是Receive方法,我使用了一个方法ReceiveNoWait方法,然后一切正常。