Komut dosyası göreve uzaktan özel bir ileti sırası gönderme
Message Queuing (MSMQ olarak da bilinir), geliştiricilerin uygulama programları ile hızla ve güvenle iletileri gönderme ve alma ile iletişim kolaylaştırır.Bir ileti sırası, yerel bilgisayara veya uzak bilgisayarda bulunan ve ortak veya özel olabilir.Içinde Integration Services, MSMQ Bağlantı Yöneticisi ve Message Queue görevi uzak bir bilgisayardaki özel bir sıraya gönderme desteklemez. Ancak, görev komut dosyası kullanarak, bu uzak bir özel sıra için ileti göndermek kolay bir işlemdir.
Not
Birden çok paket arasında daha kolay yeniden kullanabileceğiniz bir görev oluşturmak isterseniz, bu komut görevin örnek kodu özel bir görev için başlangıç noktası olarak kullanarak göz önünde bulundurun.Daha fazla bilgi için bkz:Özel görev geliştirme.
Açıklama
Aşağıdaki örnek bir varolan MSMQ Bağlantı Yöneticisi, nesneleri ve yöntemleri ile birlikte kullandığı System.Messaging ad, uzak bir özel iletinin sıraya paket değişken bulunan metin olarak göndermek için. Çağrı M:Microsoft.SqlServer.Dts.ManagedConnections.MSMQConn.AcquireConnection(System.Object) MSMQ Bağlantı Yöneticisi yöntemi işlevi bir MessageQueue , nesneSend yöntem bu görevi gerçekleştirir.
Bu komut dosyası görev örnek yapılandırmak için
MSMQ, Bağlantı Yöneticisi varsayılan adla oluşturun.Bir geçerli uzak özel sıranın yolunu aşağıdaki biçimde ayarlayın:
FORMATNAME:DIRECT=OS:<computername>\private$\<queuename>
Oluşturma bir Integration Services Adlandırılmış değişken MessageText of type String ileti metni komut geçirmek için . Varsayılan bir ileti, değişken değeri olarak girin.
Tasarım yüzeyi için bir kod görev ekleyin ve düzenleyin.Üzerinde Komut dosyası sekmesiKomut dosyası görev Düzenleyicisi, add the MessageText değişken için ReadOnlyVariables özellik değişken komut dosyası içinde kullanılabilir hale getirmek için.
Click Edit Script to open the Microsoft Visual Studio Tools for Applications (VSTA) script editor.
Komut dosyası projeye bir başvuru eklemek System.Messaging ad alanı.
Aşağıdaki bölüm kodda komut penceresinin içeriğini değiştirir.
Code
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 = ScriptResults.Success
End Sub
End Class
using System;
using Microsoft.SqlServer.Dts.Runtime;
using System.Messaging;
public class ScriptMain
{
public void Main()
{
MessageQueue remotePrivateQueue = new MessageQueue();
string messageText;
remotePrivateQueue = (MessageQueue)(Dts.Connections["Message Queue Connection Manager"].AcquireConnection(Dts.Transaction) as MessageQueue);
messageText = (string)(Dts.Variables["MessageText"].Value);
remotePrivateQueue.Send(messageText);
Dts.TaskResult = (int)ScriptResults.Success;
}
}
|