次の方法で共有


Message Queue Task

メッセージ キュー タスクでは、Message Queuing (MSMQ) を使用して、SQL Server Integration Services パッケージ間でメッセージを送受信したり、カスタム アプリケーションによって処理されるアプリケーションのキューにメッセージを送信したりすることができます。 これらのメッセージは、簡単なテキスト形式、ファイル、変数、またはそれらの値です。

メッセージ キュー タスクを使用することにより、企業の組織全体の操作を調整できます。 送信先が使用できない場合やビジーの場合、メッセージをキューに入れ、後で配信できます。たとえば、送信先が販売担当者のオフラインのラップトップ コンピューターの場合、キューにメッセージが入れられ、販売担当者はネットワークに接続したときに受信できます。 メッセージ キュー タスクは、次の目的で使用できます。

  • 他のパッケージがチェックインするまでタスクの実行を遅らせることができます。 たとえば、各小売り店舗で夜間のメンテナンスが終了した後、メッセージ キュー タスクは本社のコンピューターにメッセージを送信します。 この本社のコンピューターで実行するパッケージには複数のメッセージ キュー タスクが含まれており、それぞれが個々の店舗からのメッセージを待機しています。 メッセージが店舗から到着すると、タスクは店舗のデータをアップロードします。 すべての店舗がチェックインしたら、パッケージは合計を集計します。

  • データ ファイルを処理するコンピューターに、データ ファイルを送信できます。 たとえば、レストランの会計レジの出力をデータ ファイル メッセージとして給与計算システムに送信して、ウェイターのチップに関するデータを抽出できます。

  • 企業の組織全体にファイルを配信できます。 たとえば、あるパッケージでメッセージ キュー タスクを使用して、別のコンピューターにパッケージ ファイルを送信できます。 送信先のコンピューターで実行するパッケージは、メッセージ キュー タスクを使用してパッケージをローカルに取得し保存します。

メッセージ キュー タスクは、メッセージの送受信時に、"データ ファイル"、"文字列"、"文字列メッセージを変数に指定"、"変数" の 4 つのうちのいずれかのメッセージ型を使用します。 "文字列メッセージを変数に指定" メッセージ型は、メッセージの受信時にのみ使用できます。

タスクは MSMQ 接続マネージャーを使用して、メッセージ キューに接続します。 詳細については、「 MSMQ 接続マネージャー」を参照してください。 メッセージ キューの詳細については、 MSDN ライブラリを参照してください。

メッセージ キュー タスクには、 Integration Services サービスのインストールが必要です。 SQL Server インストール ウィザードの [インストールするコンポーネント] ページまたは [機能の選択] ページでインストールの選択をした SQL Server コンポーネントによっては、 Integration Services コンポーネントのサブセットの一部がインストールされます。 これらのコンポーネントを使用して一部のタスクを実行することは可能ですが、 Integration Services のすべての機能は使用できません。 たとえば、 SQL Server Data Tools (SSDT) のオプションでは、パッケージをデザインするために必要な Integration Services コンポーネントがインストールされますが、 Integration Services サービスはインストールされません。したがって、メッセージ キュー タスクは機能しません。 Integration Servicesを完全にインストールするには、 Integration Services [インストールするコンポーネント] ページで を選択する必要があります。 メッセージ キュー タスクのインストールと実行の詳細については、「 Integration Services のインストール」を参照してください。

注意

コンピューターのオペレーティング システムが FIPS モードで構成され、タスクで暗号化が使用されている場合は、メッセージ キュー タスクは Federal Information Processing Standard (FIPS) 140-2 に準拠することができません。 メッセージ キュー タスクで暗号化が使用されていない場合は、タスクを正常に実行することができます。

メッセージ型

メッセージ キュー タスクで用意されているメッセージ型は、次の方法で構成できます。

  • "Data file" メッセージは、ファイルにメッセージが含まれることを指定します。 メッセージを受信するときに、タスクによってファイルを保存したり既存のファイルを上書きできるように、また、タスクによってメッセージを受信できるパッケージを指定するように、タスクを構成できます。

  • "String" メッセージは、メッセージを文字列として指定します。 メッセージを受信するときに、タスクが受信した文字列とユーザー定義の文字列とを比較したり、比較に基づいて処理を実行するように構成できます。 文字列比較では、完全な比較、大文字と小文字を区別する比較、大文字と小文字を区別しない比較、またはサブストリングを使用した比較を設定できます。

  • "String message to variable" では、基になるメッセージを、送信先の変数に送信される文字列として指定できます。 完全な比較、大文字と小文字を区別しない比較、またはサブストリングの比較を使用して、受信した文字列とユーザー定義の文字列とを比較するようにタスクを構成できます。 このメッセージ型は、タスクがメッセージを受信するときにのみ使用できます。

  • "Variable" メッセージは、メッセージが 1 つ以上の変数を含むことを指定します。 タスクは、メッセージに含まれる変数の名前を指定するように構成できます。 メッセージを受信するときに、メッセージを受信するパッケージおよびメッセージの送信先となる変数の両方を指定するようにタスクを構成できます。

sending messages

メッセージ キュー タスクを構成してメッセージを送信する場合、メッセージ キュー テクノロジで現在サポートされている暗号化アルゴリズム (RC2 および RC4) のいずれかを使用してメッセージを暗号化できます。 現在、いずれの暗号化アルゴリズムも、メッセージ キュー テクノロジでまだサポートされていない最新のアルゴリズムと比較して、暗号強度の弱さが指摘されています。 そのため、メッセージ キュー タスクを使ってメッセージを送信する場合は、必要な暗号強度を満たすことができるかどうかを十分に検討する必要があります。

受信、メッセージ

メッセージ キュー タスクは、メッセージを受信する場合に次の方法で構成できます。

  • メッセージをバイパスするか、またはメッセージをキューから削除します。

  • タイムアウトを指定します。

  • タイムアウトが発生した場合には失敗します。

  • メッセージが "Data file" に格納されている場合、既存のファイルを上書きします。

  • メッセージが "Data file message" 型を使用している場合、メッセージ ファイルを別のファイル名で保存します。

メッセージ キュー タスクで使用できるカスタム ログ メッセージ

次の表は、メッセージ キュー タスクのカスタム ログ エントリの一覧です。 詳細については、「Integration Services (SSIS) のログ記録」および「ログ用のカスタム メッセージ」を参照してください。

ログ エントリ 説明
MSMQAfterOpen タスクで開いていたメッセージ キューを終了したことを示します。
MSMQBeforeOpen タスクがメッセージ キューを開く操作を開始したことを示します。
MSMQBeginReceive タスクがメッセージの受信を開始したことを示します。
MSMQBeginSend タスクがメッセージの送信を開始したことを示します。
MSMQEndReceive タスクがメッセージの受信を終了したことを示します。
MSMQEndSend タスクがメッセージの送信を終了したことを示します。
MSMQTaskInfo タスクに関する説明情報を提供します。
MSMQTaskTimeOut タスクがタイムアウトしたことを示します。

メッセージ キュー タスクの構成

プロパティを設定するには SSIS デザイナーから行うか、またはプログラムによって設定します。 SSIS Designerで設定できるプロパティの詳細については、次のいずれかのトピックをクリックしてください。

プログラムによってこれらのプロパティを設定する方法の詳細については、開発者ガイドの Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask クラスのドキュメントを参照してください。

これらのプロパティを SSIS デザイナーで設定する方法の詳細については、「 タスクまたはコンテナーのプロパティを設定する」を参照してください。

参照

Integration Services タスク
制御フロー