Bagikan melalui


Dukungan untuk Manajemen Antrean

Dengan adaptor BizTalk Server MQSeries, Anda sekarang dapat membuat dan menghapus antrean dari jarak jauh di MQSeries Queue Manager. Ini didukung karena BizTalk Server menggunakan objek MQSAgent COM+ jarak jauh yang berkomunikasi langsung dengan MQSeries Queue Manager. Biasanya MQSAgent ini digunakan pada durasi untuk membaca dan menulis pesan ke antrean MQSeries Server jarak jauh. Lebih dari satu server BizTalk dapat menjadi klien layanan jarak jauh ini. Selain itu, fungsi pembuatan dan penghapusan antrean disediakan oleh MQSAgent ini dan dapat dipanggil langsung dari dalam orkestrasi atau adaptor. Ini memungkinkan skenario yang sangat dinamis di mana orkestrasi atau adaptor dapat membuat antrean sementara dan kemudian mengirim pesan di atasnya, menerima balasan pada antrean lain, dan akhirnya menghapus antrean sementara.

API CreateQueue dan DeleteQueue

API CreateQueue dan DeleteQueue didefinisikan sebagai berikut.

Definisi Struktur

typedef enum QueueUsage {  
      Normal       = 0,  
      Transmission = 1  
} QueueUsage;  
  
typedef enum ResultCode {  
      QueueAlreadyExists                     = 0, //  no bits set  
      QueueCreated                           = 1, //  QueueCreated  
      QueueCreatedAndRemoteDefinitionUpdated = 5, //  QueueCreated | RemoteDefinitionUpdated  
      QueueAndRemoteDefinitionCreated        = 7, //  QueueCreated | RemoteDefinitionCreated | RemoteDefinitionUpdated  
      QueueDoesNotExist                      = 8, //  QueueDoesNotExist  
      QueueDeleted                           = 16 //  QueueDeleted  
} ResultCode;  

Definisi Antarmuka

[  
            object,  
            uuid(E90AC1A6-657B-4680-AF6A-89F11113FB8B),  
            dual,  
            nonextensible,  
            helpstring("IMQSAdmin Interface"),  
            pointer_default(unique)  
]  
interface IMQSAdmin2 : IDispatch{  
  
HRESULT CreateQueue (  
[in]BSTR queueManager,  
[in]BSTR newQueueName,  
[in]QueueUsage usage,  
[in]BSTR remoteDefinition,  
[in]BSTR remoteQName,  
[in]BSTR remoteQMgrName,  
[in]BOOL updateExistingRemoteDefinition,  
[out, retval]ResultCode* resultCode);  
  
HRESULT DeleteQueue (  
[in]BSTR queueManager,  
[in]BSTR newQueueName,  
[out, retval]ResultCode* resultCode);  
};  
  
      [  
            uuid(412AF00D-7CA8-4d2a-AFF6-F61CE2E29A0D),  
            helpstring("MQSAdmin Class")  
      ]  
      coclass MQSAdmin  
      {  
            [default] interface IMQSAdmin2;  
      };  
  

Contoh

Selesaikan langkah-langkah dalam Contoh 1 untuk membuat aplikasi konsol Visual Studio C# yang dapat digunakan untuk membuat atau menghapus antrean MQSeries Server.

Contoh 1

Membuat aplikasi konsol C# untuk mengelola antrean MQSeries Server
  1. Buat Aplikasi Konsol Visual C# baru di Visual Studio dengan nama MQSeriesQueues.

  2. Ganti kode yang ada dalam file Program.cs yang dihasilkan dengan kode di bawah ini:

    using System;  
    using System.Collections.Generic;  
    using System.Text;  
    using MQSAgentLib;  
    
    namespace MQSeriesQueues  
    {  
        class ManageQueues  
        {  
            public static void Main(string[] args)  
            {  
                // The first argument should be "c" (without quotes)  
                // to create a queue, anything else to delete a queue.  
                // The 2nd and 3rd arguments should be the name of   
                // the MQSeries Queue Manager and the name of   
                // the queue to be created or deleted for example  
                // the following usage will create the local   
                // queue testq for the Queue Manager QM_Test  
                // MQSeriesQueues c QM_Test testq  
                createordeleteQs(args[0], args[1], args[2]);  
            }  
    
            static void createordeleteQs(string Qswitch, string QMgr, string QName)  
            {   
            if ((Qswitch =="c" & (QMgr != null & QName != null)))  
                {  
                    CreateQueue(QMgr, QName);  
                }  
                else if(QMgr != null & QName != null)  
                {  
                    DeleteQueue(QMgr, QName);  
                }  
             }  
    
            static void CreateQueue(string Qmgr, string Qname)  
            {  
                MQSAdmin admin = new MQSAdmin();    
    
                ResultCode resultCode = admin.CreateQueue(Qmgr, Qname, 0, "", "", "", 0);  
    
                if ((resultCode & ResultCode.QueueCreated) == ResultCode.QueueCreated)  
                {  
                    Console.WriteLine("Queue Created.");  
                }  
                else if ((resultCode & ResultCode.QueueAlreadyExists) == ResultCode.QueueAlreadyExists)  
                {  
                    Console.WriteLine("Queue Already Exists.");  
                }  
            }  
    
            static void DeleteQueue(string Qmgr, string Qname)  
            {  
                MQSAdmin admin = new MQSAdmin();  
    
                ResultCode resultCode = admin.DeleteQueue(Qmgr, Qname);  
    
                if ((resultCode & ResultCode.QueueDeleted) == ResultCode.QueueDeleted)  
                {  
                    Console.WriteLine("Queue successfully deleted.");  
                }  
                if ((resultCode & ResultCode.QueueDoesNotExist) == ResultCode.QueueDoesNotExist)  
                {  
                    Console.WriteLine("Queue did not exist anyway!");  
                }  
            }  
    
        }  
    }  
    
  3. Tambahkan referensi ke proyek ini ke Pustaka Tipe MQSAgent 1.0. Pustaka Tipe MQSAgent 1.0 tersedia pada tab COM dari kotak dialog Tambahkan referensi.

    Catatan

    Komponen MQSAgent COM+ harus diinstal pada komputer tempat Anda menjalankan aplikasi konsol ini. Untuk informasi selengkapnya tentang menginstal komponen MQSAgent COM+ lihat Menggunakan Wizard Konfigurasi MQSAgent COM+.

  4. Buat aplikasi konsol.

  5. Buka perintah di direktori yang sama dengan aplikasi konsol yang dikompilasi.

  6. Ketik nama aplikasi konsol yang dikompilasi dengan argumen yang sesuai dan tekan ENTER. Misalnya, untuk menghapus testq antrean untuk Queue Manager QM_Test Anda akan mengetik teks berikut di prompt perintah dan menekan ENTER:

    MQSeriesQueues d QM_Test testq  
    
  7. Untuk membuat testq antrean untuk Queue Manager QM_Test Anda akan mengetik teks berikut pada prompt perintah dan menekan ENTER:

    MQSeriesQueues c QM_Test testq