internal csQueueSender(string[] args)
    {
        ParseArgs(args);

#if _NET_20
        try {
            tibemsUtilities.initSSLParams(serverUrl, args);
        }
        catch (Exception e)
        {
            System.Console.WriteLine("Exception: " + e.Message);
            System.Console.WriteLine(e.StackTrace);
            System.Environment.Exit(-1);
        }
#endif
        if (data.Count == 0)
        {
            Console.Error.WriteLine("Error: must specify at least one message text");
            usage();
        }

        Console.WriteLine("\n------------------------------------------------------------------------");
        Console.WriteLine("csQueueSender SAMPLE");
        Console.WriteLine("------------------------------------------------------------------------");
        Console.WriteLine("Server....................... " + ((serverUrl != null)?serverUrl:"localhost"));
        Console.WriteLine("User......................... " + ((userName != null)?userName:"******"));
        Console.WriteLine("Queue........................ " + queueName);
        Console.WriteLine("------------------------------------------------------------------------\n");

        try {
            QueueConnectionFactory factory = new TIBCO.EMS.QueueConnectionFactory(serverUrl);

            QueueConnection connection = factory.CreateQueueConnection(userName, password);

            QueueSession session = connection.CreateQueueSession(false, Session.AUTO_ACKNOWLEDGE);

            /*
             * Use createQueue() to enable sending into dynamic queues.
             */
            TIBCO.EMS.Queue queue = session.CreateQueue(queueName);

            QueueSender sender = session.CreateSender(queue);

            /* publish messages */
            for (int i = 0; i < data.Count; i++)
            {
                TextMessage message = session.CreateTextMessage();
                string      text    = (string)data[i];
                message.Text = text;
                sender.Send(message);
                Console.WriteLine("Sent message: " + text);
            }

            connection.Close();
        } catch (EMSException e) {
            Console.Error.WriteLine(e.StackTrace);
            Environment.Exit(0);
        }
    }
Beispiel #2
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("\n  The Message Producing Pattern has to be either FF or RR\n" + "  Usage:" +

                                  Process.GetCurrentProcess().ProcessName + "  FF(or RR)  CorrelationID");

                Environment.Exit(-1);
            }

            try
            {
                QueueSession session = Messaging.EMS.Connection.EMSQueueConnection.connection.CreateQueueSession(false, Session.AUTO_ACKNOWLEDGE);

                Queue queue = session.CreateQueue(System.Configuration.ConfigurationManager.AppSettings["QueueName"]);

                Process CurrentProcess = Process.GetCurrentProcess();

                String MainThreadName = Environment.MachineName + "_" + CurrentProcess.ProcessName + "_" + CurrentProcess.Id;
                Thread.CurrentThread.Name = MainThreadName;

                msg = (TextMessage)session.CreateTextMessage("hellothere-");

                string Text =
                    "\n\n MachineName : " + Environment.MachineName +
                    "\n SendingProcessName : " + Process.GetCurrentProcess().ProcessName +
                    "\n SendingProcessId : " + Process.GetCurrentProcess().Id +
                    "\n Method : " + System.Reflection.MethodBase.GetCurrentMethod().Name +
                    "\n ThreadName:\"" + Thread.CurrentThread.Name + "\"" +
                    "\n ClientId: " + Messaging.EMS.Connection.EMSQueueConnection.connection.ClientID;
                string seperator = "\n\n*****************************************************************************************\n";

                msg.Text += Text;
                try { msg.CorrelationID = (args[1]); } /*Absorb this AOOB exception :) */ catch (Exception e) { };


                switch (args[0])
                {
                case "FF":
                    Console.WriteLine(seperator + "About to Fire (and Forget ) :\n\n" + msg.ToString());
                    Messaging.EMS.Producers.Messageproducer.SendMessage(msg, queue);
                    break;

                case "RR":
                    Console.WriteLine(seperator + "About to send request:\n\n" + msg.ToString());
                    Message reply = Messaging.EMS.Producers.Messageproducer.SendRequestAndReceiveReply(msg, queue);
                    if (reply is TextMessage)
                    {
                        Console.WriteLine(seperator + "Received Response:\n\n" + reply.ToString());
                    }
                    break;

                default:
                    Console.WriteLine("The Message Producing Pattern has to be either FF or RR  ");
                    Environment.Exit(-1);
                    break;
                }



                // Messaging.EMS.Producers.Messageproducer.SendMessage(msg, queue);
            }
            catch (Exception e) { Console.WriteLine("\n\n*********Exception thrown:\n" + "\n\n***********" + e.StackTrace + e.ToString()); }
        }