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