Attività Message QueueMessage Queue Task

L'attività Message Queue consente di usare Microsoft Message Queuing (noto anche come MSMQ) per scambiare messaggi tra pacchetti di SQL ServerSQL Server Integration ServicesIntegration Services o per inviare messaggi a una coda di applicazione elaborata da un'applicazione personalizzata.The Message Queue task allows you to use Message Queuing (also known as MSMQ) to send and receive messages between SQL ServerSQL Server Integration ServicesIntegration Services packages, or to send messages to an application queue that is processed by a custom application. I messaggi possono essere in forma di testo semplice, di file o di variabili con i rispettivi valori.These messages can take the form of simple text, files, or variables and their values.

Tramite l'attività Message Queue è possibile coordinare operazioni nell'intera azienda.By using the Message Queue task, you can coordinate operations throughout your enterprise. Se la destinazione è occupata o non disponibile, i messaggi possono essere messi in coda e recapitati in un secondo tempo. L'attività può ad esempio mettere in coda i messaggi destinati ai computer portatili offline dei rappresentanti, che li riceveranno quando si connetteranno alla rete.Messages can be queued and delivered later if the destination is unavailable or busy; for example, the task can queue messages for the offline laptop computer of sales representatives, who receive their messages when they connect to the network. È possibile utilizzare l'attività Message Queue per gli scopi seguenti:You can use the Message Queue task for the following purposes:

  • Ritardare l'esecuzione dell'attività fino all'archiviazione di altri pacchetti.Delaying task execution until other packages check in. Si supponga ad esempio che, al termine della manutenzione notturna in ogni filiale dell'azienda, un'attività Message Queue invii un messaggio al computer della sede centraleFor example, after nightly maintenance at each of your retail sites, a Message Queue task sends a message to your corporate computer. e che in tale computer sia in esecuzione un pacchetto contenente varie attività Message Queue, ognuna delle quali in attesa del messaggio di una filiale specifica.A package running on the corporate computer contains Message Queue tasks, each waiting for a message from a particular retail site. Alla ricezione di un messaggio dalla filiale corrispondente, l'attività carica i dati dal computer della filiale.When a message from a site arrives, a task uploads data from that site. Al termine dell'archiviazione da parte di tutte le filiali, il pacchetto calcola i totali riepilogativi.After all the sites have checked in, the package computes summary totals.

  • Inviare file di dati al computer responsabile della loro elaborazione.Sending data files to the computer that processes them. L'output del registratore di cassa di un ristorante, ad esempio, può essere inviato in un messaggio di tipo file di dati al sistema di paghe della sede centrale, che estrae i dati relativi alle mance dei singoli camerieri.For example, the output from a restaurant cash register can be sent in a data file message to the corporate payroll system, where data about each waiter's tips is extracted.

  • Distribuire file in tutta l'azienda.Distributing files throughout your enterprise. È ad esempio possibile utilizzare l'attività Message Queue per inviare il file di un pacchetto a un altro computer,For example, a package can use a Message Queue task to send a package file to another computer. dove è presente un pacchetto in esecuzione che utilizza un'attività Message Queue per recuperare e salvare il pacchetto localmente.A package running on the destination computer then uses a Message Queue task to retrieve and save the package locally.

    Per inviare o ricevere messaggi, l'attività Message Queue utilizza uno dei tipi di messaggi seguenti: file di dati, stringa, messaggio stringa in variabile o variabile.When sending or receiving messages, the Message Queue task uses one of four message types: data file, string, string message to variable, or variable. I messaggi di tipo messaggio stringa in variabile possono essere utilizzati solo per la ricezione di messaggi.The string message to variable message type can be used only when receiving messages.

    Per connettersi a una coda di messaggi l'attività utilizza una gestione connessione MSMQ.The task uses an MSMQ connection manager to connect to a message queue. Per altre informazioni, vedere Gestione connessione MSMQ.For more information, see MSMQ Connection Manager. Per altre informazioni su Microsoft Message Queuing, vedere MSDN Library.For more information about Message Queuing, see the MSDN Library.

    Affinché sia possibile usare l'attività Message Queue, è necessario avere installato il servizio Integration ServicesIntegration Services .The Message Queue task requires that the Integration ServicesIntegration Services service be installed. Alcuni dei componenti di SQL ServerSQL Server che è possibile selezionare per l'installazione nella pagina Componenti da installare o Selezione funzionalità dell'Installazione guidata di SQL ServerSQL Server installano solo un subset parziale dei componenti di Integration ServicesIntegration Services .Some SQL ServerSQL Server components that you may select for installation on the Components to Install page or the Feature Selection page of the SQL ServerSQL Server Installation Wizard install a partial subset of Integration ServicesIntegration Services components. Tali componenti si rivelano utili per attività specifiche, ma le funzionalità di Integration ServicesIntegration Services risulteranno limitate.These components are useful for specific tasks, but the functionality of Integration ServicesIntegration Services will be limited. L'opzione SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) , ad esempio, installa i componenti di Integration ServicesIntegration Services necessari per la progettazione dei pacchetti, ma il servizio Integration ServicesIntegration Services non viene installato e l'attività Message Queue non è disponibile.For example, the SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) option installs the Integration ServicesIntegration Services components required to design a package, but the Integration ServicesIntegration Services service is not installed, and therefore the Message Queue task is not functional. Per garantire l'installazione completa di Integration ServicesIntegration Services, è necessario selezionare Integration ServicesIntegration Services nella pagina Componenti da installare .To ensure a complete installation of Integration ServicesIntegration Services, you must select Integration ServicesIntegration Services on the Components to Install page. Per altre informazioni sull'installazione e l'esecuzione dell'attività Message Queue, vedere Installazione di Integration Services.For more information about installing and running the Message Queue task, see Install Integration Services.

Nota

L'attività Message Queue ha esito negativo in conformità con lo standard FIPS (Federal Information Processing Standard) 140-2 se il sistema operativo del computer è configurato in modalità FIPS e l'attività utilizza la crittografia.The Message Queue task fails to comply with Federal Information Processing Standard (FIPS) 140-2 when the computer's operating system is configured in FIPS mode and the task uses encryption. Se non viene utilizzata la crittografia, l'attività Message Queue viene eseguita correttamente.If the Message Queue task does not use encryption, the task can run successfully.

Tipi di messaggiMessage Types

Per configurare i tipi di messaggi disponibili per l'attività Message Queue, procedere nel modo seguente:You can configure the message types that the Message Queue task provides in the following ways:

  • Il tipo di messaggioFile di dati specifica che il messaggio è contenuto in un file.Data file message specifies that a file contains the message. Per quanto riguarda la ricezione dei messaggi, è possibile configurare l'attività in modo da salvare il file, sovrascrivere un file esistente e specificare il pacchetto da cui l'attività può ricevere messaggi.When receiving messages, you can configure the task to save the file, overwrite an existing file, and specify the package from which the task can receive messages.

  • Il tipo di messaggioStringa specifica che il messaggio è una stringa.String message specifies the message as a string. Per quanto riguarda la ricezione dei messaggi, è possibile configurare l'attività in modo da confrontare la stringa ricevuta con una stringa definita dall'utente ed eseguire un'azione che dipende dal risultato del confronto.When receiving messages, you can configure the task to compare the received string with a user-defined string and take action depending on the comparison. Il confronto tra le stringhe può essere esatto, con o senza distinzione tra maiuscole e minuscole oppure utilizzare una sottostringa.String comparison can be exact, case-sensitive or case-insensitive, or use a substring.

  • Messaggio stringa in variabile specifica che l'origine del messaggio è una stringa che viene inviata a una variabile di destinazione.String message to variable specifies the source message as a string that is sent to a destination variable. È possibile configurare l'attività in modo da confrontare la stringa ricevuta con una stringa definita dall'utente, utilizzando un confronto esatto, senza distinzione tra maiuscole e minuscole o tra sottostringhe.You can configure the task to compare the received string with a user-defined string using an exact, case-insensitive, or substring comparison. Questo tipo di messaggio è disponibile solo quando l'attività riceve messaggi.This message type is available only when the task is receiving messages.

  • Variabile specifica che il messaggio contiene una o più variabili.Variable specifies that the message contains one or more variables. È possibile configurare l'attività in modo da specificare i nomi delle variabili incluse nel messaggio.You can configure the task to specify the names of the variables included in the message. Per quanto riguarda la ricezione dei messaggi, è possibile configurare l'attività in modo da specificare sia il pacchetto da cui può ricevere messaggi, sia la variabile che costituisce la destinazione del messaggio.When receiving messages, you can configure the task to specify both the package from which it can receive messages and the variable that is the destination of the message.

sending messagesSending Messages

Quando si configura l'attività Message Queue per l'invio di messaggi, per crittografare i messaggi è possibile utilizzare uno degli algoritmi di crittografia attualmente supportati dalla tecnologia MSMQ, ovvero RC2 e RC4.When configuring the Message Queue task to send messages, you can use one of the encryption algorithms that are currently supported by the Message Queuing technology, RC2 and RC4, to encrypt the message. Entrambi questi algoritmi di crittografia sono attualmente considerati vulnerabili rispetto ad algoritmi più recenti non ancora supportati dalla tecnologia MSMQ.Both of these encryption algorithms are now considered cryptographically weak compared to newer algorithms, which Message Queuing technology do not yet support. È pertanto consigliabile valutare con attenzione le esigenze di crittografia ai fini dell'invio di messaggi tramite l'attività Message Queue.Therefore, you should consider your cryptography needs carefully when sending messages using the Message Queue task.

ricezione di messaggiReceiving Messages

Per quanto riguarda la ricezione di messaggi, è possibile configurare l'attività Message Queue in modo da:When receiving messages, the Message Queue task can be configured in the following ways:

  • Ignorare il messaggio ricevuto oppure rimuoverlo dalla coda.Bypassing the message, or removing the message from the queue.

  • Specificare un timeout.Specifying a time-out.

  • Generare un errore in caso di timeout.Failing if a time-out occurs.

  • Sovrascrivere un file esistente, se il messaggio è archiviato in un file di dati.Overwriting an existing file, if the message is stored in a Data file.

  • Salvare il file del messaggio con un nome di file diverso, se il messaggio è di tipo Messaggio file di dati .Saving the message file to a different file name, if the message uses the Data file message type.

Messaggi di registrazione personalizzati disponibili nell'attività Message QueueCustom Logging Messages Available on the Message Queue Task

Nella tabella seguente sono elencate le voci di log personalizzate disponibili per l'attività Message Queue.The following table lists the custom log entries for the Message Queue task. Per altre informazioni, vedere registrazione di Integration Services (SSIS).For more information, see Integration Services (SSIS) Logging.

Voce di logLog entry DescriptionDescription
MSMQAfterOpenMSMQAfterOpen Indica che l'attività ha terminato l'apertura della coda di messaggi.Indicates that the task finished opening the message queue.
MSMQBeforeOpenMSMQBeforeOpen Indica che l'attività ha iniziato ad aprire la coda di messaggi.Indicates that the task began to open the message queue.
MSMQBeginReceiveMSMQBeginReceive Indica che l'attività ha iniziato a ricevere un messaggio.Indicates that the task began to receive a message.
MSMQBeginSendMSMQBeginSend Indica che l'attività ha iniziato a inviare un messaggio.Indicates that the task began to send a message.
MSMQEndReceiveMSMQEndReceive Indica che l'attività ha terminato la ricezione di un messaggio.Indicates that the task finished receiving a message.
MSMQEndSendMSMQEndSend Indica che l'attività ha terminato l'invio di un messaggio.Indicates that the task finished sending a message.
MSMQTaskInfoMSMQTaskInfo Offre informazioni descrittive sull'attività.Provides descriptive information about the task.
MSMQTaskTimeOutMSMQTaskTimeOut Indica che si è verificato il timeout dell'attività.Indicates that the task timed out.

Configurazione dell'attività Message QueueConfiguration of the Message Queue Task

È possibile impostare le proprietà tramite Progettazione SSISSSIS o a livello di codice.You can set properties through SSISSSIS Designer or programmatically. Per informazioni sulle proprietà che è possibile impostare in Progettazione SSISSSIS , fare clic su uno degli argomenti seguenti:For information about the properties that you can set in SSISSSIS Designer, click one of the following topics:

Per altre informazioni su come impostare queste proprietà nella finestra di Progettazione SSISSSIS , vedere Impostazione delle proprietà di un'attività o di un contenitore.For more information about how to set these properties in SSISSSIS Designer, see Set the Properties of a Task or Container.

Vedere ancheSee Also

Attività di Integration Services Integration Services Tasks
Flusso di controlloControl Flow