MessageQueue in .NET SW개발

간단한 내용인데, 요즘 쉽게 디테일 한 것들을 잊어먹어서.. -_-;; 대략 정리..

참조 사이트: http://msdn.microsoft.com/ko-kr/library/system.messaging.messagequeue.aspx

.NET Framework에 있는 System.MessageQueue 클래스는 MS Message Queue의 레퍼 클래스이다.
메세지 큐 기술을 사용하면 각기 다른 시간에 실행되는 다른 응용 프로그램이 이기종 네트워크 및 시스템(일시적인 오프라인 포함)에서도 서로 통신할 수 있다. 응용 프로그램은 큐에서 메시지 보내기(Send(Object), 받기(Receive()) 및 피킹(peeking)을 할 수 있다.

MSMQ에 대해서는 MSMQ의 Platform SDK에 있는 Message Queue(http://msdn.microsoft.com/en-us/library/ms711472%28VS.85%29.aspx)항목을 참조하면 된다.

VS 2008에서 MessageQueue를 사용하기 위해서는, System.MessageQueue.dll를 참조해야 한다.
알단 참조 추가를 통해서, .NET 탭에서 System.Messaging을 추가하면 된다.


MessageQueue의 생성자를 이용하여 기존의 리소스에 연결하거나, 서버에 큐를 만들 거나 삭제할 수 있다. 


서버 Public 큐 생성

    MessageQueue publicQueue=null;
    if(MessageQueue.Exists(".\\myQueue") == false)
    {
        publicQueue = MessageQueue.Create(".\\myQueue");
    }
    else
    {
        publicQueue = newMessageQueue(".\\myQueue");
    }


서버 Public 큐 삭제

    if(MessageQueue.Exists(".\\myQueue"))
        MessageQueue.Delete(".\\myQueue");

 

동기적인 형식으로 Public 큐로 보내기

    MessageQueue publicQueue = newMessageQueue(".\\myQueue");
    publicQueue.Send("Public queue by path name");
    publicQueue.Close();

 

동기적인 형식으로 Public 큐로 받기

    MessageQueue publicQueue = newMessageQueue(".\\myQueue");
    Message mesg=publicQueue.Receive();
    string mesgStr = (string)mesg.Body;


    Console.WriteLine(mesgStr);


다음 내용은, 위의 MSDN 사이트에서 private 큐와 Label, FormatName을 이용한 코드의 일부분이다.

    public void SendPrivate()
    {
        MessageQueue myQueue = new MessageQueue(".\\Private$\\myQueue");
        myQueue.Send("Private queue by path name");
    }

    public void SendByLabel()
    {
        MessageQueue myQueue = new MessageQueue("Label:TheLabel");
        myQueue.Send("Queue by label.");
    }

    public void SendByFormatName()
    {
        MessageQueue myQueue = new MessageQueue("FormatName:Public=5A5F7535-AE9A-41d4"+"-935C-845C2AFF7112");
        myQueue.Send("Queue by format name.");
    }


 


트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://ausgang.egloos.com/tb/2372062 [도움말]

덧글

댓글 입력 영역