Link to home
Start Free TrialLog in
Avatar of beeravally
beeravally

asked on

C# console application

hai,
i wnat write program for  MQ Series(Series).for that what i must do.means which name space i must import,etc.give me one code.i;ve got one program here.in that program thay are using MQ name space.i am giving the code below.pls find the error.




using System;

namespace dinoch.demo
{

      public class DotNetMqHello
      {
      
      
            private MQAX200.IMQQueueManager200  MyMqManager;
            private MQAX200.IMQSession200       MyMqSession;
            private MQAX200.IMQQueue200         MyMqQueue;
            public DotNetMqHello()
            {
                  MyMqSession = new MQAX200.MQSessionClass();
                  MyMqSession.ExceptionThreshold = 3;
            }

            public static void Main()
            {
                  DotNetMqHello Hello= new DotNetMqHello();
                  Hello.DoIt();
            }

            private void DoIt()
            {
                  DoConnect();
                  DoPut();
                  DoGet();
            }

            private void DoConnect()
            {
                  int OpenOptions;
                  String qmName= ""; // use the default local Queue Mgr
                  Object obj = MyMqSession.AccessQueueManager(qmName);

                  if (!(obj is MQAX200.IMQQueueManager200) )
                        Console.WriteLine("Sorry! Could Not get a Queue Manager.");

                  else
                  {
                        Console.WriteLine("Yes! Got a Queue Manager.");
                        MyMqManager = (MQAX200.IMQQueueManager200) obj;
                        if (MyMqManager != null)
                        {
                              if(MyMqManager.IsConnected)
                              {
                                    OpenOptions = (int) MQAX200.MQ.MQOO_INPUT_AS_Q_DEF + (int) MQAX200.MQ.MQOO_OUTPUT;
                                    MyMqQueue = (MQAX200.IMQQueue200) MyMqManager.AccessQueue("postcard", OpenOptions,"","","");
                                    if(MyMqQueue.IsOpen)
                                          Console.WriteLine("Connected to " + MyMqManager.name + "." + MyMqQueue.name ) ;
                              }
                        }
                  }
            }

            private void DoPut()
            {
                  MQAX200.IMQMessage200 Message;
                  MQAX200.IMQPutMessageOptions200 MessageOptions;

                  Message = (MQAX200.IMQMessage200) MyMqSession.AccessMessage();
                  Message.WriteString(System.DateTime.Now.ToString() + ": This is the test message" );

                  MessageOptions = (MQAX200.IMQPutMessageOptions200) MyMqSession.AccessPutMessageOptions();

                  MyMqQueue.ClearErrorCodes();
                  MyMqQueue.Put(Message, MessageOptions);

                  if(MyMqQueue.CompletionCode == 0)
                        Console.WriteLine("Put Succeeded.");

                  else if(MyMqQueue.CompletionCode == 2)
                        Console.WriteLine("Put Failed (" + MyMqQueue.ReasonName + ")");
            }

            private void DoGet()
            {
                  MQAX200.IMQMessage200 Message;
                  MQAX200.IMQGetMessageOptions200 MessageOptions;

                  Message = (MQAX200.IMQMessage200) MyMqSession.AccessMessage();
                  MessageOptions = (MQAX200.IMQGetMessageOptions200) MyMqSession.AccessGetMessageOptions();

                  if(MyMqQueue.IsOpen)
                  {
                        MyMqQueue.ClearErrorCodes();
                        // need to specify Missing.Value here because of an issue with the optional 3rd param (length)
                        MyMqQueue.Get(Message,MessageOptions, System.Reflection.Missing.Value);

                        if(MyMqQueue.CompletionCode == 0)
                        {
                              Console.WriteLine("Get Succeeded.");
                              Console.WriteLine(Message.ReadString(Message.MessageLength));
                        }

                        else if(MyMqQueue.CompletionCode == 2)
                              Console.WriteLine("Get Failed (" + MyMqQueue.ReasonName + ")");
                  }
            }

      } // end class

} // end namespace
Avatar of TheC2
TheC2

I haven't worked with MQSeries, but in most cases you should receive a few DLLs from along with the software that are .NET assemblies, and you need to add them to your project, only then you will have access to their namespaces.
What error do you get?
ASKER CERTIFIED SOLUTION
Avatar of heintalus
heintalus

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial