次の方法で共有


MessageQueue.Create メソッド (String, Boolean)

指定したパスにトランザクション メッセージ キューのキューまたは非トランザクションメッセージ キューのキューを作成します。

Overloads Public Shared Function Create( _
   ByVal path As String, _   ByVal transactional As Boolean _) As MessageQueue
[C#]
public static MessageQueue Create(stringpath,booltransactional);
[C++]
public: static MessageQueue* Create(String* path,booltransactional);
[JScript]
public static function Create(
   path : String,transactional : Boolean) : MessageQueue;

パラメータ

  • path
    作成するキューのパス。
  • transactional
    トランザクション キューを作成する場合は true 。非トランザクション キューを作成する場合は false

戻り値

新しいキューを表す MessageQueue

例外

例外の種類 条件
ArgumentException path パラメータが null 参照 (Visual Basic では Nothing) または空の文字列 ("") です。
MessageQueueException 指定したパスには既にキューが存在します。

または

メッセージ キューの API にアクセスしたときにエラーが発生しました。

解説

このオーバーロードを使用して、メッセージ キューにトランザクション キューを作成できます。非トランザクション キューは、 transactional パラメータを false に設定するか、 Create の別のオーバーロードを呼び出すことによって作成できます。

アプリケーションで MessageQueue クラスの新しいインスタンスを作成し、既存のキューにバインドする場合は、 MessageQueue コンストラクタを使用します。メッセージ キューに新しいキューを作成する場合は、 Create を呼び出します。

path パラメータの構文は、参照するキューの種類によって異なります。

キューの種類 構文
パブリック キュー MachineName\ QueueName
プライベート キュー MachineName\Private$\ QueueName

ローカル コンピュータでは、"." を使用します。構文の詳細については、 Path プロパティのトピックを参照してください。

このメソッドが各種のワークグループ モードで使用できるかどうかを次の表に示します。

ワークグループ モード 使用可否
ローカル コンピュータ いいえ
ローカル コンピュータ + 直接書式名 いいえ
リモート コンピュータ いいえ
リモート コンピュータ + 直接書式名 いいえ

使用例

[Visual Basic, C#, C++] パブリック トランザクション キューとプライベート トランザクション キューを作成する例を次に示します。選択したキューにメッセージを送信します。

 
Imports System
Imports System.Messaging

Namespace MyProject

    '/ <summary>
    '/ Provides a container class for the example.
    '/ </summary>
    Public Class MyNewQueue


        '**************************************************
        ' Provides an entry point into the application.
        '         
        ' This example creates new transactional queues.
        '**************************************************

        Public Shared Sub Main()
            ' Create a new instance of the class.
            Dim myNewQueue As New MyNewQueue()

            ' Create transactional queues.
            myNewQueue.CreatePublicTransactionalQueues()
            myNewQueue.CreatePrivateTransactionalQueues()

            Return

        End Sub 'Main


        '**************************************************
        ' Creates public transactional queues and sends a 
        ' message.
        '**************************************************

        Public Sub CreatePublicTransactionalQueues()

            ' Create and connect to a public Message Queuing queue.
            If Not MessageQueue.Exists(".\newPublicTransQueue1") Then

                ' Create the queue if it does not exist.
                Dim myNewPublicQueue As MessageQueue = _
                    MessageQueue.Create(".\newPublicTransQueue1", _
                    True)

                ' Send a message to the queue.
                myNewPublicQueue.Send("My message data.", _
                    New MessageQueueTransaction())
            End If

            If Not MessageQueue.Exists(".\newPublicTransQueue2") Then

                ' Create (but do not connect to) a second queue.
                MessageQueue.Create(".\newPublicTransQueue2", True)
            End If

            Return

        End Sub 'CreatePublicTransactionalQueues


        '**************************************************
        ' Creates private queues and sends a message.
        '**************************************************

        Public Sub CreatePrivateTransactionalQueues()

            ' Create and connect to a private Message Queuing queue.
            If Not MessageQueue.Exists(".\Private$\newPrivTransQ1") _
                Then

                ' Create the queue if it does not exist.
                Dim myNewPrivateQueue As MessageQueue = _
                    MessageQueue.Create(".\Private$\newPriTransQ1", _
                    True)

                ' Send a message to the queue.
                myNewPrivateQueue.Send("My message data.", New _
                    MessageQueueTransaction())
            End If

            ' Create (but do not connect to) a second private queue.
            If Not MessageQueue.Exists(".\Private$\newPrivTransQ2") _
                Then

                MessageQueue.Create(".\Private$\newPrivTransQ2", True)
            End If

            Return

        End Sub 'CreatePrivateTransactionalQueues

    End Class 'MyNewQueue
End Namespace 'MyProject

[C#] 
using System;
using System.Messaging;

namespace MyProject
{
    /// <summary>
    /// Provides a container class for the example.
    /// </summary>
    public class MyNewQueue
    {

        //**************************************************
        // Provides an entry point into the application.
        //         
        // This example creates new transactional queues.
        //**************************************************

        public static void Main()
        {
            // Create a new instance of the class.
            MyNewQueue myNewQueue = new MyNewQueue();

            // Create transactional queues.
            myNewQueue.CreatePublicTransactionalQueues();
            myNewQueue.CreatePrivateTransactionalQueues();

            return;
        }


        //**************************************************
        // Creates public transactional queues and sends a 
        // message.
        //**************************************************
        
        public void CreatePublicTransactionalQueues()
        {

            // Create and connect to a public Message Queuing queue.
            if (!MessageQueue.Exists(".\\newPublicTransQueue1"))
            {
                // Create the queue if it does not exist.
                MessageQueue myNewPublicQueue = 
                    MessageQueue.Create(".\\newPublicTransQueue1", 
                    true);

                // Send a message to the queue.
                myNewPublicQueue.Send("My message data.", new 
                    MessageQueueTransaction());
            }

            if (!MessageQueue.Exists(".\\newPublicTransQueue2"))
            {
                // Create (but do not connect to) second public queue.
                MessageQueue.Create(".\\newPublicTransQueue2", true);
            }

            return;

        }


        //**************************************************
        // Creates private queues and sends a message.
        //**************************************************
        
        public void CreatePrivateTransactionalQueues()
        {

            // Create and connect to a private Message Queuing queue.
            if (!MessageQueue.Exists(".\\Private$\\newPrivTransQ1"))
            {
                // Create the queue if it does not exist.
                MessageQueue myNewPrivateQueue = 
                    MessageQueue.Create(".\\Private$\\newPrivTransQ1", 
                    true);

                // Send a message to the queue.
                myNewPrivateQueue.Send("My message data.", new 
                    MessageQueueTransaction());
            }

            // Create (but do not connect to) a second private queue.
            if (!MessageQueue.Exists(".\\Private$\\newPrivTransQ2"))
            {
                MessageQueue.Create(".\\Private$\\newPrivTransQ2", 
                    true);
            }

            return;
        }
    }
}

[C++] 
#using <mscorlib.dll>
#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;

__gc class MyNewQueue 
{
public:
    // Creates public transactional queues and sends a 
    // message.
    void CreatePublicTransactionalQueues() 
    {
        // Create and connect to a public message Queuing queue.
        if (!MessageQueue::Exists(S".\\newPublicTransQueue1")) 
        {
            // Create the queue if it does not exist.
            MessageQueue* myNewPublicQueue = 
                MessageQueue::Create(S".\\newPublicTransQueue1", true);

            // Send a message to the queue.
            myNewPublicQueue->Send(S"My message data.", new 
                MessageQueueTransaction());
        }

        if (!MessageQueue::Exists(S".\\newPublicTransQueue2")) 
        {
            // Create (but do not connect to) second public queue
            MessageQueue::Create(S".\\newPublicTransQueue2", true);
        }

        return;
    }

    // Creates private queues and sends a message.
public:
    void CreatePrivateTransactionalQueues() 
    {
        // Create and connect to a private Message Queuing queue.
        if (!MessageQueue::Exists(S".\\Private$\\newPrivTransQ1")) 
        {
            // Create the queue if it does not exist.
            MessageQueue* myNewPrivateQueue = 
                MessageQueue::Create(S".\\Private$\\newPrivTransQ1", true);

            // Send a message to the queue.
            myNewPrivateQueue->Send(S"My message data.", new MessageQueueTransaction());
        }

        // Create (but do not connect to) a second private queue.
        if (!MessageQueue::Exists(S".\\Private$\\newPrivTransQ2")) 
        {
            MessageQueue::Create(S".\\Private$\\newPrivTransQ2", 
                true);
        }

        return;
    }
};

// Provides an entry point into the application.
// This example creates new transactional queues.
int main() 
{
    // Create a new instance of the class.
    MyNewQueue* myNewQueue = new MyNewQueue();

    // Create transactional queues.
    myNewQueue->CreatePublicTransactionalQueues();
    myNewQueue->CreatePrivateTransactionalQueues();

    return 0;
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

MessageQueue クラス | MessageQueue メンバ | System.Messaging 名前空間 | MessageQueue.Create オーバーロードの一覧 | Path | Delete | Exists | MessageQueue | Transactional