コード例 #1
0
        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();
        }
コード例 #2
0
        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;
                }
            }
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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();
        }