void SendMessage() { XMSFactoryFactory factoryFactory; IConnectionFactory cf; IConnection connectionWMQ; ISession sessionWMQ; IDestination destination; IMessageProducer producer; ITextMessage textMessage; Env.ConnVariables conn = env.Conn; // Get an instance of factory. factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ); // Create WMQ Connection Factory. cf = factoryFactory.CreateConnectionFactory(); // Set the properties ConnectionPropertyBuilder.SetConnectionProperties(cf, env); // Create connection. connectionWMQ = cf.CreateConnection(); Console.WriteLine("Connection created"); // Create session sessionWMQ = connectionWMQ.CreateSession(false, AcknowledgeMode.AutoAcknowledge); Console.WriteLine("Session created"); // Create destination destination = sessionWMQ.CreateTopic(conn.topic_name); destination.SetIntProperty(XMSC.WMQ_TARGET_CLIENT, XMSC.WMQ_TARGET_DEST_MQ); Console.WriteLine("Destination created"); // Create producer producer = sessionWMQ.CreateProducer(destination); Console.WriteLine("Publisher created"); // Start the connection to receive messages. connectionWMQ.Start(); Console.WriteLine("Connection started"); // Create a text message and send it. textMessage = sessionWMQ.CreateTextMessage(); textMessage.Text = xmsJson.toJsonString(); producer.Send(textMessage); Console.WriteLine("Message published"); // Cleanup producer.Close(); destination.Dispose(); sessionWMQ.Dispose(); connectionWMQ.Close(); }
private void ReceiveMessages() { XMSFactoryFactory factoryFactory; IConnectionFactory cf; // Get an instance of factory. factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ); // Create WMQ Connection Factory. cf = factoryFactory.CreateConnectionFactory(); foreach (Env.ConnVariables e in env.GetEndpoints()) { Console.WriteLine("Consuming messages from endpoint {0}({1})", e.host, e.port); // Set the properties ConnectionPropertyBuilder.SetConnectionProperties(cf, e); try { ReceiveMessagesFromEndpoint(cf); } catch (XMSException ex) { Console.WriteLine("XMSException caught: {0}", ex); Console.WriteLine("Error Code: {0}", ex.ErrorCode); Console.WriteLine("Error Message: {0}", ex.Message); if (ex.LinkedException != null && IBM.XMS.MQC.MQRC_Q_MGR_NOT_AVAILABLE.ToString().Equals(ex.LinkedException.Message)) { Console.WriteLine("Queue Manager on this endpoint not available"); Console.WriteLine("Moving onto next endpoint"); continue; } Console.WriteLine("Unexpected Error - Aborting"); throw; } } }
void ReceiveMessages() { XMSFactoryFactory factoryFactory; IConnectionFactory cf; IConnection connectionWMQ; ISession sessionWMQ; IDestination destination; IMessageConsumer consumer; ITextMessage textMessage; Env.ConnVariables conn = env.Conn; // Get an instance of factory. factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ); // Create WMQ Connection Factory. cf = factoryFactory.CreateConnectionFactory(); // Set the properties ConnectionPropertyBuilder.SetConnectionProperties(cf, env); // Create connection. connectionWMQ = cf.CreateConnection(); Console.WriteLine("Connection created"); // Create session sessionWMQ = connectionWMQ.CreateSession(false, AcknowledgeMode.AutoAcknowledge); Console.WriteLine("Session created"); // Create destination destination = sessionWMQ.CreateQueue(conn.queue_name); Console.WriteLine("Destination created"); // Create consumer consumer = sessionWMQ.CreateConsumer(destination); Console.WriteLine("Consumer created"); // Start the connection to receive messages. connectionWMQ.Start(); Console.WriteLine("Connection started"); Console.WriteLine("Receive message: " + TIMEOUTTIME / 1000 + " seconds wait time"); // Wait for 30 seconds for messages. Exit if no message by then while (SimpleResponse.keepRunning) { textMessage = (ITextMessage)consumer.Receive(TIMEOUTTIME); if (textMessage != null) { Console.WriteLine("Message received."); Console.Write(textMessage); Console.WriteLine("\n"); replyToMessage(textMessage, sessionWMQ); } else { Console.WriteLine("Wait timed out."); } } // Cleanup consumer.Close(); destination.Dispose(); sessionWMQ.Dispose(); connectionWMQ.Close(); }
void SendMessage() { XMSFactoryFactory factoryFactory; IConnectionFactory cf; IConnection connectionWMQ; ISession sessionWMQ; IDestination destination; IDestination temporaryDestination; IMessageProducer producer; ITextMessage textMessage; Env.ConnVariables conn = env.Conn; // Get an instance of factory. factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ); // Create WMQ Connection Factory. cf = factoryFactory.CreateConnectionFactory(); // Set the properties ConnectionPropertyBuilder.SetConnectionProperties(cf, env); cf.SetStringProperty(XMSC.WMQ_TEMPORARY_MODEL, conn.model_queue_name); // Create connection. connectionWMQ = cf.CreateConnection(); Console.WriteLine("Connection created"); // Create session sessionWMQ = connectionWMQ.CreateSession(false, AcknowledgeMode.AutoAcknowledge); Console.WriteLine("Session created"); // Create destination destination = sessionWMQ.CreateQueue(conn.queue_name); destination.SetIntProperty(XMSC.WMQ_TARGET_CLIENT, XMSC.WMQ_TARGET_DEST_MQ); Console.WriteLine("Destination created"); // Create producer producer = sessionWMQ.CreateProducer(destination); Console.WriteLine("Producer created"); // Start the connection to receive messages. connectionWMQ.Start(); Console.WriteLine("Connection started"); // Create a text message and send it. textMessage = sessionWMQ.CreateTextMessage(); String corrID = xmsJson.correlationID; textMessage.Text = xmsJson.toJsonString(); //***disable for correl id by using message id textMessage.JMSCorrelationID = corrID; textMessage.JMSExpiration = 900000; temporaryDestination = sessionWMQ.CreateTemporaryQueue(); textMessage.JMSReplyTo = temporaryDestination; producer.Send(textMessage); Console.WriteLine("Message sent"); Console.WriteLine(textMessage.JMSCorrelationID); Console.WriteLine(corrID); String str = textMessage.JMSMessageID; String selector = "JMSCorrelationID='ID:" + JsonMessage.getCorrFilter(corrID) + "'"; Console.WriteLine(selector); IMessageConsumer consumer = sessionWMQ.CreateConsumer(temporaryDestination, selector); ITextMessage responseMessage = (ITextMessage)consumer.Receive(TIMEOUTTIME); if (responseMessage != null) { Console.WriteLine("Message received."); Console.Write(responseMessage); Console.WriteLine("\n"); } else { Console.WriteLine("Wait timed out."); } // Cleanup producer.Close(); destination.Dispose(); sessionWMQ.Dispose(); connectionWMQ.Close(); }