public MessageSender(String broker, String topicName) { //Create connection try { sonicSender = new SonicCommunicator(topicName, broker); cf = sonicSender.GetConnectionFactory(); conn = cf.createConnection(); session = (Session)conn.createSession(false, Sonic.Jms.SessionMode.AUTO_ACKNOWLEDGE); } catch (JMSException jmse) { throw new Exception("Unable to establish connection to MQ." + jmse.Message + " / " + jmse.InnerException); } Console.WriteLine("Create Session: " + session.ToString()); //create the topic try { topic = session.createTopic(topicName); publisher = session.createProducer(topic); tempTopic = session.createTemporaryTopic(); subscriber = session.createConsumer(tempTopic); conn.start(); } catch (JMSException jmse) { throw new Exception("Unable to create topic." + jmse.Message + " / " + jmse.InnerException); } }
public virtual string SendMessage(string messageText) { //var log = SCMS.Logging.Log.Create(GetType()); string line = ""; try { line = string.Format("Start IVRSonicCommunicator::SendMessage()\t {0}\t Raw outbound async message : {1} ", FormatLogMessage("Tams topic Name"), messageText); // log.Info(line); EnsureOpenConnection(); var document = new XmlDocument(); document.LoadXml(messageText); var message = _session.createXMLMessage(); var replyTo = _session.createTemporaryTopic(); _messageConsumer = _session.createConsumer(replyTo); message.setJMSReplyTo(replyTo); message.setDocument(document); _messageProducer.send(_topic, message); _session.commit(); line = string.Format("End IVRSonicCommunicator::SendMessage()\t JMSMessageID: {0}", message.getJMSMessageID()); //log.Info(line); return (message.getJMSMessageID()); } catch (Exception ex) { // log.Error(ex); //Context.Logger.Log( // GetType().Name, // LogSeverity.Error, // "Error Sending with the Sonic Communicator: Exception writing to sonic." + FormatLogMessage(), // ex); } return (null); }
private void EnsureOpenConnection() { if (_connection != null) return; _connection = GetNewConnectionFactory().createConnection(); _session = (Sonic.Jms.Ext.Session)_connection.createSession(true, SessionMode.AUTO_ACKNOWLEDGE); _topic = _session.createTopic(_topicName); _messageProducer = _session.createProducer(null); _messageConsumer = _session.createConsumer(_topic); _connection.setExceptionListener(this); _connection.start(); }
//Sending message to Juris public virtual string SendMessageToJuris(string messageText,string jurisReplyToTopicName) { //var log = SCMS.Logging.Log.Create(GetType()); string line = ""; try { line = string.Format("Start IVRSonicCommunicator::SendMessageToJuris()\t {0}\t Message : {1} ", FormatLogMessage("Juris Topic Name") , messageText); // log.Info(line); EnsureOpenConnection(); var document = new XmlDocument(); document.LoadXml(messageText); var message = _session.createXMLMessage(); var topicReplyTo = _session.createTopic(jurisReplyToTopicName); _messageConsumer = _session.createConsumer(topicReplyTo); //Create durable subscriber _messageConsumer = _session.createDurableSubscriber(topicReplyTo, "jurisSubscriber"); //end message.setJMSReplyTo(topicReplyTo); message.setDocument(document); _messageProducer.send(_topic, message); _session.commit(); line = string.Format("End IVRSonicCommunicator::SendMessageToJuris(), Received JMSMessageID: {0} ", message.getJMSMessageID()); // log.Info(line); return (message.getJMSMessageID()); } catch (Exception ex) { // log.Error(ex); } return (null); }