MessageQueue コンストラクタ (String)
指定したパスのメッセージ キューのキューを参照する MessageQueue クラスの新しいインスタンスを初期化します。
名前空間: System.Messaging
アセンブリ: System.Messaging (system.messaging.dll 内)
構文
'宣言
Public Sub New ( _
path As String _
)
'使用
Dim path As String
Dim instance As New MessageQueue(path)
public MessageQueue (
string path
)
public:
MessageQueue (
String^ path
)
public MessageQueue (
String path
)
public function MessageQueue (
path : String
)
パラメータ
- path
この MessageQueue が参照するキューの場所。
例外
例外の種類 | 条件 |
---|---|
Path プロパティが無効です。設定されていない可能性があります。 |
解説
パス、書式名、ラベルが判明している、メッセージ キューの特定のキューに MessageQueue の新しいインスタンスを結び付ける場合は、このオーバーロードを使用します。キューを参照する最初のアプリケーションに排他アクセス許可を与える場合は、DenySharedReceive プロパティに true を設定するか、読み取りアクセス制限パラメータを渡すコンストラクタを使用する必要があります。
MessageQueue コンストラクタは MessageQueue クラスの新しいインスタンスをインスタンス化します。メッセージ キューの新しいキューは作成しません。メッセージ キューに新しいキューを作成するには、Create(String) を使用します。
path パラメータの構文は、参照するキューの種類によって異なります。詳細については、次の表を参照してください。
キューの種類 |
構文 |
---|---|
パブリック キュー |
MachineName\QueueName |
プライベート キュー |
MachineName\Private$\QueueName |
ジャーナル キュー |
MachineName\QueueName\Journal$ |
コンピュータの履歴キュー |
MachineName\Journal$ |
コンピュータ配信不能キュー |
MachineName\Deadletter$ |
コンピュータ トランザクション配信不能キュー |
MachineName\XactDeadletter$ |
代わりに、FormatName または Label を使用してキューのパスを記述することもできます。詳細については、次の表を参照してください。
参照 |
構文 |
例 |
---|---|---|
書式名 |
FormatName: [ format name ] |
FormatName:Public= 5A5F7535-AE9A-41d4-935C-845C2AFF7112 FormatName:DIRECT=SPX: NetworkNumber; HostNumber\QueueName FormatName:DIRECT=TCP: IPAddress\QueueName FormatName:DIRECT=OS: MachineName\QueueName |
ラベル |
Label: [ label ] |
Label: TheLabel |
オフラインで作業をするには、パス名構文ではなく書式名構文をコンストラクタで使用する必要があります。パス名構文を使用すると、パスを書式名に解決するプライマリ ドメイン コントローラが利用できないため、例外がスローされます。
MessageQueue のインスタンスの初期プロパティ値を次の表に示します。これらの値は、path パラメータで指定されたパスのメッセージ キューのキュー プロパティに基づきます。
プロパティ |
初期値 |
---|---|
false |
|
0 |
|
DefaultPropertiesToSend クラスの既定のコンストラクタで設定される値。 |
|
メッセージ キューのキューのプライバシ レベル設定が "Body" の場合は true。それ以外の場合は false。 |
|
Label |
|
メッセージ キューのキューのコンピュータ名プロパティの値。 |
|
InfiniteQueueSize |
|
MessagePropertyFilter クラスの既定のコンストラクタで設定される値。 |
|
Path |
コンストラクタで設定しない場合は Empty。 |
コンストラクタで設定しない場合は Empty。 |
|
DenySharedReceive |
false |
メッセージ キューオブジェクトの履歴設定が有効な場合は true。それ以外の場合は false。 |
Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows CE プラットフォームメモ : デバイスで Active Directory がサポートされないため、.NET Compact Framework ではリモート キューがトランザクションかどうかを確認できません。リモート トランザクション キューにメッセージを送信するには、コンストラクタに渡す path パラメータに ;XACTONLY を付加します。詳細については、「.NET Compact Framework の MSMQ」を参照してください。
使用例
さまざまな種類のパス名構文を使用して、新しい MessageQueue オブジェクトを作成するコード例を次に示します。いずれの場合も、コンストラクタでパスが定義されているキューにメッセージを送信します。
Imports System
Imports System.Messaging
Public Class MyNewQueue
' Provides an entry point into the application.
'
' This example demonstrates several ways to set
' a queue's path.
Public Shared Sub Main()
' Create a new instance of the class.
Dim myNewQueue As New MyNewQueue()
myNewQueue.SendPublic()
myNewQueue.SendPrivate()
myNewQueue.SendByLabel()
myNewQueue.SendByFormatName()
myNewQueue.MonitorComputerJournal()
myNewQueue.MonitorQueueJournal()
myNewQueue.MonitorDeadLetter()
myNewQueue.MonitorTransactionalDeadLetter()
Return
End Sub 'Main
' References public queues.
Public Sub SendPublic()
Dim myQueue As New MessageQueue(".\myQueue")
myQueue.Send("Public queue by path name.")
Return
End Sub 'SendPublic
' References private queues.
Public Sub SendPrivate()
Dim myQueue As New MessageQueue(".\Private$\myQueue")
myQueue.Send("Private queue by path name.")
Return
End Sub 'SendPrivate
' References queues by label.
Public Sub SendByLabel()
Dim myQueue As New MessageQueue("Label:TheLabel")
myQueue.Send("Queue by label.")
Return
End Sub 'SendByLabel
' References queues by format name.
Public Sub SendByFormatName()
Dim myQueue As New _
MessageQueue("FormatName:Public=" + _
"5A5F7535-AE9A-41d4-935C-845C2AFF7112")
myQueue.Send("Queue by format name.")
Return
End Sub 'SendByFormatName
' References computer journal queues.
Public Sub MonitorComputerJournal()
Dim computerJournal As New MessageQueue(".\Journal$")
While True
Dim journalMessage As Message = _
computerJournal.Receive()
' Process the journal message.
End While
Return
End Sub 'MonitorComputerJournal
' References queue journal queues.
Public Sub MonitorQueueJournal()
Dim queueJournal As New _
MessageQueue(".\myQueue\Journal$")
While True
Dim journalMessage As Message = _
queueJournal.Receive()
' Process the journal message.
End While
Return
End Sub 'MonitorQueueJournal
' References dead-letter queues.
Public Sub MonitorDeadLetter()
Dim deadLetter As New MessageQueue(".\DeadLetter$")
While True
Dim deadMessage As Message = deadLetter.Receive()
' Process the dead-letter message.
End While
Return
End Sub 'MonitorDeadLetter
' References transactional dead-letter queues.
Public Sub MonitorTransactionalDeadLetter()
Dim TxDeadLetter As New MessageQueue(".\XactDeadLetter$")
While True
Dim txDeadLetterMessage As Message = _
TxDeadLetter.Receive()
' Process the transactional dead-letter message.
End While
Return
End Sub 'MonitorTransactionalDeadLetter
End Class 'MyNewQueue
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 demonstrates several ways to set
// a queue's path.
//**************************************************
public static void Main()
{
// Create a new instance of the class.
MyNewQueue myNewQueue = new MyNewQueue();
myNewQueue.SendPublic();
myNewQueue.SendPrivate();
myNewQueue.SendByLabel();
myNewQueue.SendByFormatName();
myNewQueue.MonitorComputerJournal();
myNewQueue.MonitorQueueJournal();
myNewQueue.MonitorDeadLetter();
myNewQueue.MonitorTransactionalDeadLetter();
return;
}
// References public queues.
public void SendPublic()
{
MessageQueue myQueue = new MessageQueue(".\\myQueue");
myQueue.Send("Public queue by path name.");
return;
}
// References private queues.
public void SendPrivate()
{
MessageQueue myQueue = new
MessageQueue(".\\Private$\\myQueue");
myQueue.Send("Private queue by path name.");
return;
}
// References queues by label.
public void SendByLabel()
{
MessageQueue myQueue = new MessageQueue("Label:TheLabel");
myQueue.Send("Queue by label.");
return;
}
// References queues by format name.
public void SendByFormatName()
{
MessageQueue myQueue = new
MessageQueue("FormatName:Public=5A5F7535-AE9A-41d4" +
"-935C-845C2AFF7112");
myQueue.Send("Queue by format name.");
return;
}
// References computer journal queues.
public void MonitorComputerJournal()
{
MessageQueue computerJournal = new
MessageQueue(".\\Journal$");
while(true)
{
Message journalMessage = computerJournal.Receive();
// Process the journal message.
}
}
// References queue journal queues.
public void MonitorQueueJournal()
{
MessageQueue queueJournal = new
MessageQueue(".\\myQueue\\Journal$");
while(true)
{
Message journalMessage = queueJournal.Receive();
// Process the journal message.
}
}
// References dead-letter queues.
public void MonitorDeadLetter()
{
MessageQueue deadLetter = new
MessageQueue(".\\DeadLetter$");
while(true)
{
Message deadMessage = deadLetter.Receive();
// Process the dead-letter message.
}
}
// References transactional dead-letter queues.
public void MonitorTransactionalDeadLetter()
{
MessageQueue TxDeadLetter = new
MessageQueue(".\\XactDeadLetter$");
while(true)
{
Message txDeadLetter = TxDeadLetter.Receive();
// Process the transactional dead-letter message.
}
}
}
}
#using <system.dll>
#using <system.messaging.dll>
using namespace System;
using namespace System::Messaging;
ref class MyNewQueue
{
public:
// References public queues.
void SendPublic()
{
MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );
myQueue->Send( "Public queue by path name." );
return;
}
// References private queues.
void SendPrivate()
{
MessageQueue^ myQueue = gcnew MessageQueue( ".\\Private$\\myQueue" );
myQueue->Send( "Private queue by path name." );
return;
}
// References queues by label.
void SendByLabel()
{
MessageQueue^ myQueue = gcnew MessageQueue( "Label:TheLabel" );
myQueue->Send( "Queue by label." );
return;
}
// References queues by format name.
void SendByFormatName()
{
MessageQueue^ myQueue = gcnew MessageQueue( "FormatName:Public=5A5F7535-AE9A-41d4 -935C-845C2AFF7112" );
myQueue->Send( "Queue by format name." );
return;
}
// References computer journal queues.
void MonitorComputerJournal()
{
MessageQueue^ computerJournal = gcnew MessageQueue( ".\\Journal$" );
while ( true )
{
Message^ journalMessage = computerJournal->Receive();
// Process the journal message.
}
}
// References queue journal queues.
void MonitorQueueJournal()
{
MessageQueue^ queueJournal = gcnew MessageQueue( ".\\myQueue\\Journal$" );
while ( true )
{
Message^ journalMessage = queueJournal->Receive();
// Process the journal message.
}
}
// References dead-letter queues.
void MonitorDeadLetter()
{
MessageQueue^ deadLetter = gcnew MessageQueue( ".\\DeadLetter$" );
while ( true )
{
Message^ deadMessage = deadLetter->Receive();
// Process the dead-letter message.
}
}
// References transactional dead-letter queues.
void MonitorTransactionalDeadLetter()
{
MessageQueue^ TxDeadLetter = gcnew MessageQueue( ".\\XactDeadLetter$" );
while ( true )
{
Message^ txDeadLetter = TxDeadLetter->Receive();
// Process the transactional dead-letter message.
}
}
};
//*************************************************
// Provides an entry point into the application.
//
// This example demonstrates several ways to set
// a queue's path.
//*************************************************
int main()
{
// Create a new instance of the class.
MyNewQueue^ myNewQueue = gcnew MyNewQueue;
myNewQueue->SendPublic();
myNewQueue->SendPrivate();
myNewQueue->SendByLabel();
myNewQueue->SendByFormatName();
myNewQueue->MonitorComputerJournal();
myNewQueue->MonitorQueueJournal();
myNewQueue->MonitorDeadLetter();
myNewQueue->MonitorTransactionalDeadLetter();
return 0;
}
package MyProject;
import System.*;
import System.Messaging.*;
/// <summary>
/// Provides a container class for the example.
/// </summary>
public class MyNewQueue
{
//**************************************************
// Provides an entry point into the application.
//
// This example demonstrates several ways to set
// a queue's path.
//**************************************************
public static void main(String[] args)
{
// Create a new instance of the class.
MyNewQueue myNewQueue = new MyNewQueue();
myNewQueue.SendPublic();
myNewQueue.SendPrivate();
myNewQueue.SendByLabel();
myNewQueue.SendByFormatName();
myNewQueue.MonitorComputerJournal();
myNewQueue.MonitorQueueJournal();
myNewQueue.MonitorDeadLetter();
myNewQueue.MonitorTransactionalDeadLetter();
return;
} //main
// References public queues.
public void SendPublic()
{
MessageQueue myQueue = new MessageQueue(".\\myQueue");
myQueue.Send("Public queue by path name.");
return;
} //SendPublic
// References private queues.
public void SendPrivate()
{
MessageQueue myQueue = new MessageQueue(".\\Private$\\myQueue");
myQueue.Send("Private queue by path name.");
return;
} //SendPrivate
// References queues by label.
public void SendByLabel()
{
MessageQueue myQueue = new MessageQueue("Label:TheLabel");
myQueue.Send("Queue by label.");
return;
} //SendByLabel
// References queues by format name.
public void SendByFormatName()
{
MessageQueue myQueue =
new MessageQueue("FormatName:Public=5A5F7535-AE9A-41d4"
+ "-935C-845C2AFF7112");
myQueue.Send("Queue by format name.");
return;
} //SendByFormatName
// References computer journal queues.
public void MonitorComputerJournal()
{
MessageQueue computerJournal = new MessageQueue(".\\Journal$");
while (true) {
Message journalMessage = computerJournal.Receive();
// Process the journal message.
}
} //MonitorComputerJournal
// References queue journal queues.
public void MonitorQueueJournal()
{
MessageQueue queueJournal = new MessageQueue(".\\myQueue\\Journal$");
while (true) {
Message journalMessage = queueJournal.Receive();
// Process the journal message.
}
} //MonitorQueueJournal
// References dead-letter queues.
public void MonitorDeadLetter()
{
MessageQueue deadLetter = new MessageQueue(".\\DeadLetter$");
while (true) {
Message deadMessage = deadLetter.Receive();
// Process the dead-letter message.
}
} //MonitorDeadLetter
// References transactional dead-letter queues.
public void MonitorTransactionalDeadLetter()
{
MessageQueue objTxDeadLetter = new MessageQueue(".\\XactDeadLetter$");
while (true) {
Message txDeadLetter = objTxDeadLetter.Receive();
// Process the transactional dead-letter message.
}
} //MonitorTransactionalDeadLetter
} //MyNewQueue
.NET Framework のセキュリティ
- 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「」を参照してください。
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0
.NET Compact Framework
サポート対象 : 2.0
参照
関連項目
MessageQueue クラス
MessageQueue メンバ
System.Messaging 名前空間
FormatName
Label
QueueName
Path