次の方法で共有


<msmqIntegrationBinding>

MSMQ を介してメッセージをルーティングすることでキューのサポートを提供するバインディングを定義します。

configuration
  system.serviceModel
    <bindings>
      <customBinding>
        <binding>
          msmqIntegrationBinding>

構文

<msmqIntegrationBinding>
  <binding closeTimeout="TimeSpan"
           customDeadLetterQueue="Uri"
           deadLetterQueue="Uri"
           durable="Boolean"
           exactlyOnce="Boolean"
           maxReceivedMessageSize="Integer"
           maxRetryCycles="Integer"
           name="String"
           openTimeout="TimeSpan"
           receiveContextEnabled="Boolean"
           receiveErrorHandling="Drop/Fault/Move/Reject"
           receiveTimeout="TimeSpan"
           receiveRetryCount="Integer"
           retryCycleDelay="TimeSpan"
           sendTimeout="TimeSpan"
           serializationFormat="XML/Binary/ActiveX/ByteArray/Stream"
           timeToLive="TimeSpan"
           useMsmqTracing="Boolean"
           useSourceJournal="Boolean">
  </binding>
</msmqIntegrationBinding>

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明
closeTimeout クローズ操作が完了するまでの期間を指定する TimeSpan 値。 この値は必ず Zero 以上である必要があります。 既定値は 00:01:00 です。
customDeadLetterQueue アプリケーションごとの配信不能キューの場所が含まれている URI です。ここには、期限切れのメッセージや、転送または配信に失敗したメッセージが配置されます。

配信不能キューは、送信元アプリケーションのキュー マネージャーにある、配信に失敗した期限切れメッセージのキューです。

CustomDeadLetterQueue によって指定される URI は、net.msmq スキームを使用する必要があります。
deadLetterQueue 使用する配信不能キューがある場合にその種類を指定する DeadLetterQueue 値。

配信不能キューは、アプリケーションへの配信に失敗したメッセージが転送される場所です。

exactlyOnce 保証が必要なメッセージ (つまり、exactlyOnce 属性が true に設定される) の場合、この属性は、既定で MSMQ のトランザクション システム全体の配信不能キューになります。

保証が必要ないメッセージの場合、この属性の既定値は null です。
durable メッセージがキューで非揮発性か揮発性かを示すブール値です。 非揮発性メッセージは、キュー マネージャーがクラッシュしても残り、揮発性メッセージは失われます。 アプリケーションで待ち時間の短縮が要求され、場合によってはメッセージが失われてもかまわない場合は、揮発性メッセージが適しています。 exactlyOnce 属性が true に設定されている場合、メッセージは永続的にする必要があります。 既定では、 trueです。
exactlyOnce 各メッセージが 1 回だけ受信されるかどうかを示すブール値です。 その後、送信側に配信エラーが通知されます。 durablefalse の場合、この属性は無視されて、配信が保証されずにメッセージが転送されます。 既定値は、true です。 詳細については、「ExactlyOnce」を参照してください。
maxReceivedMessageSize このバインディングにより処理される最大メッセージ サイズ (ヘッダーを含む) をバイト単位で定義する正の整数です。 この制限を超えるメッセージの送信者が、SOAP エラーを受信します。 メッセージは受信者によってドロップされ、トレース ログにこのイベントのエントリが作成されます。 既定値は 65536 です。 このメッセージ サイズの制限は、サービス拒否 (DoS) 攻撃への露出を制限するためのものです。
maxRetryCycles 有害メッセージ検出機能により使用される再試行サイクルの回数を示す整数です。 すべてのサイクルの配信試行にすべて失敗すると、メッセージは有害メッセージになります。 既定値は 2 です。 詳細については、「MaxRetryCycles」を参照してください。
name バインディングの構成名を格納する文字列です。 この値は、バインディングの ID として使用されるため、一意にする必要があります。 NET Framework 4 以降では、バインディングおよび動作に名前を付ける必要はありません。 既定の構成と、名前のないバインディングと動作については、「簡略化された構成」と「WCF サービスの簡略化された構成」を参照してください。
openTimeout 実行中の操作が完了するまでの時間間隔を指定する TimeSpan 値です。 この値は必ず Zero 以上である必要があります。 既定値は 00:01:00 です。
receiveErrorHandling 有害メッセージおよびディスパッチ不能メッセージの処理方法を指定する ReceiveErrorHandling 値。
receiveRetryCount アプリケーション キューからアプリケーションへのメッセージの転送が失敗した場合に、キュー マネージャーが即時再試行を行う最大回数を指定する整数。

配信試行を最大回数実行してもアプリケーションがメッセージにアクセスできない場合、メッセージは、後で再配信するために再試行キューに送信されます。 メッセージが送信キューに戻されるまでの時間は、retryCycleDelay で制御されます。 再試行サイクルが maxRetryCycles 値に達した場合は、メッセージが有害メッセージ キューに送信されるか、送信者に否定応答が返されます。
receiveTimeout 受信操作が完了するまでの時間間隔を指定する TimeSpan 値です。 この値は必ず Zero 以上である必要があります。 既定値は 00:10:00 です。
receiveContextEnabled キュー内のメッセージを処理するための受信コンテキストが有効になっているかどうかを指定するブール値。 これが true に設定されている場合、サービスではキューのメッセージを "ピーク" してメッセージの処理を開始できます。問題が発生して例外がスローされた場合、メッセージはキューに残ります。 サービスではメッセージを "ロック" して、後で処理を再試行することもできます。 ReceiveContext には、処理されたメッセージを "完了" してキューから削除するためのメカニズムがあります。ネットワーク上でのキューへのメッセージの読み込みや再書き込みはされなくなり、個々のメッセージは処理中にさまざまなサービス インスタンス間でバウンスされなくなります。
retryCycleDelay すぐに配信できなかったメッセージを配信しようとするときの、再試行サイクルの時間遅延を指定する TimeSpan 値です。 実際の待機時間はさらに長くなる場合があるため、この値で定義されるのは最小待機時間だけです。 既定値は、00:30:00 です。 詳細については、「RetryCycleDelay」を参照してください。
sendTimeout 送信操作が完了するまでの時間間隔を指定する TimeSpan 値です。 この値は必ず Zero 以上である必要があります。 既定値は 00:01:00 です。
serializationFormat メッセージ本文のシリアル化に使用される形式を定義します。 この属性は MsmqMessageSerializationFormat 型です。
timeToLive メッセージの期限が切れて、配信不能キューに入れられるまでのメッセージの有効期間を指定する TimeSpan 値です。 既定値は 1.00:00:00 です。

この属性を設定すると、タイムリーなメッセージが受信側アプリケーションで処理される前に古くなることがなくなります。 キュー内のメッセージのうち、指定された期間内に受信アプリケーションで処理されなかったメッセージは、期限切れと呼ばれます。 期限切れのメッセージは、配信不能キューと呼ばれる特別なキューに送信されます。 配信不能キューの場所は、保証の内容に基づいて、DeadLetterQueue 属性を使用して設定されるか、適切な既定値に設定されます。
useMsmqTracing このバインディングにより処理されるメッセージをトレースするかどうかを指定するブール値です。 既定では、 falseです。 トレースが有効な場合、メッセージ キュー コンピューターでメッセージが送受信されるたびに、レポート メッセージが作成され、レポート キューに送信されます。
useSourceJournal このバインディングにより処理されるメッセージのコピーをソース ジャーナルに保存するかどうかを指定するブール値です。 既定では、 falseです。

キューに置かれたアプリケーションでは、コンピューターの発信キューから送信されたメッセージの記録を残す場合は、メッセージをジャーナル キューにコピーできます。 メッセージが発信キューから送信され、送信先のコンピューターで受信されたという応答を受け取ると、メッセージのコピーが送信元のコンピューターのシステム ジャーナル キューに保持されます。

{SerializationFormat} 属性

[値] 説明
xml XML 形式
Binary バイナリ形式
ActiveX ActiveX 形式
ByteArray オブジェクトをバイト配列にシリアル化します。
ストリーム ストリームとして書式設定された本文。

子要素

要素 説明
<security> バインディングのセキュリティ設定を定義します。 この要素は MsmqIntegrationSecurityElement 型です。

親要素

要素 説明
<bindings> この要素には、標準バインディングおよびカスタム バインドのコレクションが保持されます。

解説

このバインド要素を使用することで、Windows Communication Foundation (WCF) アプリケーションは、COM、MSMQ ネイティブ API、または System.Messaging 名前空間で定義された型を使用する既存の MSMQ アプリケーションとメッセージを送受信できるようになります。この構成要素を使用すると、キューのアドレス指定方法、転送保証の指定方法、メッセージを非揮発性として保存する必要性の有無、およびメッセージの保護および認証方法を指定できます。 詳細については、「方法 : WCF エンドポイントとメッセージ キュー アプリケーションを使用してメッセージを交換する」を参照してください。

<configuration>
  <system.ServiceModel>
    <bindings>
      <msmqIntegrationBinding>
        <binding closeTimeout="00:00:10"
                 openTimeout="00:00:20"
                 receiveTimeout="00:00:30"
                 sendTimeout="00:00:40"
                 deadLetterQueue="net.msmq://localhost/blah"
                 durable="true"
                 exactlyOnce="true"
                 maxReceivedMessageSize="1000"
                 maxImmediateRetries="11"
                 maxRetryCycles="12"
                 poisonMessageHandling="Disabled"
                 rejectAfterLastRetry="false"
                 retryCycleDelay="00:05:55"
                 timeToLive="00:11:11"
                 useSourceJournal="true"
                 useMsmqTracing="true"
                 serializationFormat="Binary">
          <security mode="None" />
        </binding>
      </msmqIntegrationBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

関連項目