Udostępnij przez


<msmqIntegration>

Określa transport MSMQ dla powiązania niestandardowego.

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

Składnia

<msmqIntegration customDeadLetterQueue="Uri"
                 deadLetterQueue="Custom/None/System"
                 durable="Boolean"
                 exactlyOnce="Boolean"
                 manualAddressing="Boolean"
                 maxBufferPoolSize="Integer"
                 maxImmediateRetries="Integer"
                 maxReceivedMessageSize="Integer"
                 maxRetryCycles="Integer"
                 rejectAfterLastRetry="Boolean"
                 retryCycleDelay="TimeSpan"
                 serializationFormat="XML/Binary/ActiveX/ByteArray/Stream"
                 timeToLive="TimeSpan"
                 useSourceJournal="Boolean"
                 useMsmqTracing="Boolean">
  <msmqTransportSecurity>
  </msmqTransportSecurity>
</msmqIntegration>

Typ

Type

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Attributes

Attribute Description
Customdeadletterqueue Identyfikator URI wskazujący lokalizację kolejki utraconych komunikatów dla aplikacji, w której komunikaty wygasły lub nie zostały dostarczone do aplikacji.

W przypadku komunikatów, które wymagają gwarancji ExactlyOnce (tj. exactlyOnce jest ustawiona na true), ten atrybut jest domyślnie ustawiony na kolejkę komunikatów transakcyjnych całej systemu w msMQ.

W przypadku komunikatów, exactlyOnce które nie wymagają żadnych gwarancji (czyli jest ustawiona na false), ten atrybut domyślnie ma wartość null.

Wartość musi używać schematu net.msmq. Wartość domyślna to null.

Jeśli deadLetterQueue jest ustawiona wartość None lub System, ten atrybut musi być ustawiony na null. Jeśli ten atrybut nie nullma wartości , deadLetterQueue należy ustawić wartość Custom.
Deadletterqueue Określa typ kolejki utraconych wiadomości do użycia.

Prawidłowe wartości obejmują

- Niestandardowy: niestandardowa kolejka deadletter.
- Brak: nie ma kolejki deadletter ma być używany.
- System: użyj kolejki systemu deadletter.

Ten atrybut jest typu DeadLetterQueue.
Trwałe Wartość logiczna określająca, czy komunikaty przetwarzane przez to powiązanie są trwałe, czy nietrwałe. Wartość domyślna to true.

Trwały komunikat przetrwa awarię menedżera kolejek, podczas gdy komunikat nietrwały. Komunikaty nietrwałe są przydatne, gdy aplikacje wymagają mniejszego opóźnienia i mogą tolerować sporadyczne utracone komunikaty.

Jeśli exactlyOnce ustawiono wartość true, komunikaty muszą być trwałe.
Exactlyonce Wartość logiczna określająca, czy komunikaty przetwarzane przez to powiązanie będą odbierane dokładnie raz. Wartość domyślna to true.

Wiadomość można wysyłać z zabezpieczeniami lub bez ich gwarancji. Zapewnienie umożliwia aplikacji upewnienie się, że wysłany komunikat dotarł do kolejki komunikatów odbierających lub jeśli nie, aplikacja może to określić, odczytując kolejkę utraconych komunikatów.

exactlyOnce, gdy jest ustawiona wartość true, wskazuje, że usługa MSMQ zapewni, że wysłana wiadomość zostanie dostarczona do kolejki komunikatów odbierających raz i tylko raz, a jeśli dostarczanie zakończy się niepowodzeniem, komunikat zostanie wysłany do kolejki utraconych komunikatów.

Komunikaty wysyłane z zestawem exactlyOncetrue muszą być wysyłane tylko do kolejki transakcyjnej.
Manualaddressing Wartość logiczna, która umożliwia użytkownikowi przejęcie kontroli nad adresowanie komunikatów. Ta właściwość jest zwykle używana w scenariuszach routera, w których aplikacja określa, do którego z kilku miejsc docelowych ma być wysyłany komunikat.

Po ustawieniu trueopcji na kanał zakłada, że komunikat został już rozwiązany i nie dodaje do niego żadnych dodatkowych informacji. Użytkownik może następnie indywidualnie adresować każdą wiadomość.

Po ustawieniu wartości falsena wartość domyślny mechanizm adresowania programu Windows Communication Foundation (WCF) automatycznie tworzy adresy dla wszystkich komunikatów.

Wartość domyślna to false.
maxBufferPoolSize Dodatnia liczba całkowita określająca maksymalny rozmiar puli. Wartość domyślna to 524288.

Wiele części programu WCF używa. Tworzenie i niszczenie za każdym razem, gdy są używane, jest kosztowne, a odzyskiwanie pamięci dla jest również kosztowne. W przypadku pul można pobrać bufor z puli, użyć go i zwrócić go do puli po zakończeniu. W związku z tym unika się nakładu pracy związanego z tworzeniem i niszczeniem.
maxImmediateRetries Liczba całkowita określająca maksymalną liczbę natychmiastowych ponownych prób w komunikacie odczytanym z kolejki aplikacji. Wartość domyślna to 5.

Jeśli zostanie podjęta maksymalna liczba natychmiastowych ponownych prób dla komunikatu, a komunikat nie jest używany przez aplikację, komunikat jest wysyłany do kolejki ponawiania prób w celu ponawiania próby w późniejszym czasie. Jeśli nie określono żadnych cykli ponawiania prób, komunikaty są wysyłane do kolejki komunikatów trucizny lub do nadawcy jest wysyłane potwierdzenie ujemne.
maxReceivedMessageSize Dodatnia liczba całkowita określająca maksymalny rozmiar komunikatu w bajtach, w tym nagłówki. Nadawca komunikatu otrzymuje błąd PROTOKOŁU SOAP, gdy komunikat jest zbyt duży dla odbiorcy. Odbiorca odrzuca komunikat i tworzy wpis zdarzenia w dzienniku śledzenia. Wartość domyślna to 65536.
Maxretrycycles Liczba całkowita określająca maksymalną liczbę cykli ponawiania prób dostarczenia komunikatów do odbieranej aplikacji. Wartość domyślna to MaxValue.

Jeden cykl ponawiania prób próbuje dostarczyć komunikat do aplikacji określoną liczbę razy. Liczba wykonanych prób jest ustawiana przez maxImmediateRetries atrybut . Jeśli aplikacja nie może użyć komunikatu po wyczerpaniu prób dostarczenia, komunikat zostanie wysłany do kolejki ponawiania prób. Kolejne cykle ponawiania prób składają się z komunikatu zwracanego z kolejki ponawiania prób do kolejki aplikacji w celu ponownego dostarczenia do aplikacji po opóźnieniu określonym przez retryCycleDelay atrybut. Atrybut maxRetryCycles określa liczbę cykli ponawiania prób używanych przez aplikację do próby dostarczenia komunikatu.
rejectAfterLastRetry Wartość logiczna określająca, jaką akcję należy podjąć dla komunikatu, który zakończył się niepowodzeniem dostarczania po maksymalnej liczbie ponownych prób.

true oznacza, że do nadawcy jest zwracane potwierdzenie ujemne, a komunikat zostaje porzucony; false oznacza, że komunikat jest wysyłany do kolejki komunikatów trucizny. Wartość domyślna to false.

Jeśli wartość to false, aplikacja odbierającą może odczytać kolejkę komunikatów trucizny w celu przetworzenia komunikatów otrutych (czyli komunikatów, które zakończyły się niepowodzeniem).

MsMQ 3.0 nie obsługuje zwracania negatywnego potwierdzenia do nadawcy, więc ten atrybut zostanie zignorowany w MSMQ 3.0.
Retrycycledelay Element TimeSpan określający opóźnienie czasu między cyklami ponawiania próby podczas próby dostarczenia komunikatu, którego nie można dostarczyć natychmiast. Wartość domyślna to 00:10:00.

Jeden cykl ponawiania prób próbuje dostarczyć komunikat do aplikacji odbieranej określoną liczbę razy. Liczba wykonanych prób jest określana maxImmediateRetries przez atrybut . Jeśli aplikacja nie może użyć komunikatu po określonej liczbie natychmiastowych ponownych prób, komunikat zostanie wysłany do kolejki ponawiania prób. Kolejne cykle ponawiania prób składają się z komunikatu zwracanego z kolejki ponawiania prób do kolejki aplikacji w celu ponownego dostarczenia do aplikacji po opóźnieniu określonym przez retryCycleDelay atrybut. Liczba cykli ponawiania prób jest określana przez maxRetryCycles atrybut.
serializationFormat Określa formatator używany do serializacji obiektów, które są wysyłane w ramach komunikatu MSMQ. Prawidłowe wartości to

- ActiveX: formater ActiveX jest używany podczas serializacji obiektów COM.
- Binary: Serializuje obiekt do pakietu binarnego.
- ByteArray: Serializuje obiekt do tablicy bajtów.
- Strumień: serializuje obiekt do strumienia.
- Xml: Serializuje obiekt do pakietu XML. Wartość domyślna to XML.

Ten atrybut jest typu MsmqMessageSerializationFormat.
timeToLive Element TimeSpan określający, jak długo komunikaty są prawidłowe przed ich wygaśnięciem i są umieszczane w kolejce utraconych komunikatów. Wartość domyślna to 1.00:00:00, co oznacza 1 dzień.

Ten atrybut jest ustawiony, aby upewnić się, że komunikaty wrażliwe na czas nie stają się nieaktualne, zanim zostaną przetworzone przez odbierające aplikacje. Komunikat w kolejce, który nie jest używany przez aplikację odbierającą w określonym przedziale czasu, mówi się, że wygasł. Wygasłe komunikaty są wysyłane do specjalnej kolejki nazywanej kolejką utraconych wiadomości. Lokalizacja kolejki utraconych komunikatów jest ustawiana z atrybutem customDeadLetterQueue lub odpowiednią wartością domyślną na podstawie gwarancji.
useMsmqTracing Wartość logiczna określająca, czy komunikaty przetwarzane przez to powiązanie powinny być śledzone. Wartość domyślna to false.

Po włączeniu śledzenia komunikaty raportów są tworzone i wysyłane do kolejki raportów za każdym razem, gdy komunikat opuszcza lub dociera do komputera kolejkowania komunikatów.
useSourceJournal Wartość logiczna określająca, czy kopie komunikatów przetworzonych przez to powiązanie powinny być przechowywane w kolejce dziennika źródłowego. Wartość domyślna to false.

Aplikacje w kolejce, które chcą przechowywać rekord komunikatów, które opuściły kolejkę wychodzącą komputera, mogą kopiować komunikaty do kolejki dziennika. Gdy komunikat opuści kolejkę wychodzącą i zostanie odebrane potwierdzenie, że komunikat został odebrany na komputerze docelowym, kopia komunikatu jest przechowywana w kolejce dziennika systemowego komputera wysyłającego.

Elementy podrzędne

Składnik Description
Msmqtransportsecurity Określa ustawienia zabezpieczeń transportu dla tego powiązania. Ten element jest typu MsmqTransportSecurityElement.

Elementy nadrzędne

Składnik Description
<wiążący> Definiuje wszystkie możliwości powiązania niestandardowego.

Zobacz także