スクリプト タスクによるリモート プライベート メッセージ キューへの送信
新規 : 2006 年 4 月 14 日
Microsoft Windows メッセージ キューでは、開発者がメッセージを送受信することにより、アプリケーション プログラムとすばやく確実に通信できます。メッセージ キューは、ローカル コンピュータまたはリモート コンピュータに存在し、パブリックであることも、プライベートであることもあります。Integration Services MSMQ 接続マネージャとメッセージ キュー タスクでは、リモート コンピュータ上のプライベート キューへの送信はサポートされません。ただし、スクリプト タスクを使用することにより、リモート プライベート キューにメッセージを簡単に送信できます。
メモ : |
---|
複数のパッケージでより簡単に再利用できるタスクを作成する場合は、このスクリプト タスク サンプルのコードを基にした、カスタム タスクの作成を検討してください。詳細については、「カスタム タスクの開発」を参照してください。 |
説明
次の例では、既存の MSMQ 接続マネージャを System.Messaging 名前空間のオブジェクトおよびメソッドと共に使用して、パッケージ変数に含まれているテキストをリモート プライベート メッセージ キューに送信します。MSMQ 接続マネージャの M:Microsoft.SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System.Object) メソッドを呼び出すと、このタスクを実行する Send メソッドを持つ MessageQueue オブジェクトが返されます。
このスクリプト タスクの例を構成するには
既定の名前を使用して MSMQ 接続マネージャを作成します。有効なリモート プライベート キューのパスを次の形式で設定します。
FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>
メッセージ テキストをスクリプトに渡すために、String 型の MessageText という名前の Integration Services 変数を作成します。この変数の値として既定のメッセージを入力します。
スクリプト タスクをデザイン画面に追加して編集します。[スクリプト タスク エディタ] の [スクリプト] タブで、ReadOnlyVariables プロパティに
MessageText
変数を追加し、この変数をスクリプト内で使用できるようにします。[スクリプトのデザイン] をクリックして、Visual Studio for Applications スクリプト エディタを開きます。
スクリプト プロジェクトに System.Messaging 名前空間への参照を追加します。
スクリプト ウィンドウの内容を、次のコードで置き換えます。
コード
Imports System
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Messaging
Public Class ScriptMain
Public Sub Main()
Dim remotePrivateQueue As MessageQueue
Dim messageText As String
remotePrivateQueue = _
DirectCast(Dts.Connections("Message Queue Connection Manager").AcquireConnection(Dts.Transaction), _
MessageQueue)
messageText = DirectCast(Dts.Variables("MessageText").Value, String)
remotePrivateQueue.Send(messageText)
Dts.TaskResult = Dts.Results.Success
End Sub
End Class