zoukankan      html  css  js  c++  java
  • .NET使用C#连接TIBCO的JMS消息服务

    using System;
    using System.Collections.Generic;
    using System.Text;
    using TIBCO.EMS;

    namespace EII.JMS
    {
    public class MsgReceiver
    {
    private TopicSubscriber subscriber;
    private TopicConnection connection;

    public string ServerUrl { get; set; }
    public string UserName { get; set; }
    public string PassWord { get; set; }
    public string TopicName { get; set; }
    public string DurableName { get; set; }
    public string ClientID { get; set; }

    /// <summary>
    /// JMS消息接收器
    /// </summary>
    /// <param name="serverUrl">服务器地址</param>
    /// <param name="userName">用户名</param>
    /// <param name="passWord">密码</param>
    /// <param name="topicName">Topic名称</param>
    /// <param name="durableName">Durable名称</param>
    /// <param name="clientID">客户端ID</param>
    public MsgReceiver(string serverUrl, string userName, string passWord, string topicName, string durableName, string clientID)
    {
    this.ServerUrl = serverUrl;
    this.UserName = userName;
    this.PassWord = passWord;
    this.TopicName = topicName;
    this.DurableName = durableName;
    this.ClientID = clientID;
    }

    /// <summary>
    /// 连接服务器
    /// </summary>
    /// <returns></returns>
    public bool ConnectServer()
    {
    try
    {
    TopicConnectionFactory factory
    = new TIBCO.EMS.TopicConnectionFactory(ServerUrl);
    connection
    = factory.CreateTopicConnection(UserName, PassWord);

    if (ClientID != null)
    {
    connection.ClientID
    = ClientID;
    }

    TopicSession session
    = connection.CreateTopicSession(false, Session.AUTO_ACKNOWLEDGE);
    Topic topic
    = session.CreateTopic(TopicName);
    subscriber
    = session.CreateDurableSubscriber(topic, DurableName);
    connection.Start();
    return true;
    }
    catch (EMSException e)
    {
    throw new Exception(e.ToString());
    }
    }

    /// <summary>
    /// 接收消息
    /// </summary>
    /// <returns></returns>
    public string Receive()
    {
    try
    {
    BytesMessage message
    = subscriber.Receive() as BytesMessage;

    if (message != null)
    {
    byte[] file = new byte[message.BodyLength];
    message.ReadBytes(file);

    return System.Text.Encoding.UTF8.GetString(file);
    }
    else
    {
    return null;
    }
    }
    catch (Exception ex)
    {
    throw ex;
    }
    }

    /// <summary>
    /// 关闭连接
    /// </summary>
    public void CloseConn()
    {
    try
    {
    this.connection.Close();
    }
    catch (Exception ex)
    {
    throw ex;
    }
    }
    }
    }
  • 相关阅读:
    安装64位Oracle 10g超详细教程
    Linux同平台Oracle数据库整体物理迁移
    Oracle 删除重复数据只留一条
    linux下通过脚本实现自动重启程序的方法
    Linux查看系统开机时间
    Linux下oracle数据库启动和关闭操作
    curl: (6) Couldn’t resolve host ‘www.ttlsa.com’
    linux 怎么查找oracle11g的安装目录
    Linux系统管理员:不要害怕升级内核
    The Binder Architecture
  • 原文地址:https://www.cnblogs.com/kxlf/p/1689545.html
Copyright © 2011-2022 走看看