Udostępnij za pośrednictwem


<msmqTransport>

Powoduje, że kanał przesyła komunikaty w transporcie MSMQ, gdy jest on uwzględniony w powiązaniu niestandardowym.

<Konfiguracji>
  <System.servicemodel>
    <Powiązania>
      <Custombinding>
        <Wiązania>
          <msmqTransport>

Składnia

<msmqTransport customDeadLetterQueue="Uri"
               deadLetterQueue="Custom/None/System"
               durable="Boolean"
               exactlyOnce="Boolean"
               manualAddressing="Boolean"
               maxBufferPoolSize="Integer"
               maxImmediateRetries="Integer"
               maxPoolSize="Integer"
               maxReceivedMessageSize="Integer"
               maxRetryCycles="Integer"
               queueTransferProtocol="Native/Srmp/SrmpSecure"
               rejectAfterLastRetry="Boolean"
               retryCycleDelay="TimeSpan"
               timeToLive="TimeSpan"
               useActiveDirectory="Boolean"
               useSourceJournal="Boolean"
               useMsmqTracing="Boolean"
               ...>
  <msmqTransportSecurity>
  </msmqTransportSecurity>
</msmqTransport>

Atrybuty i elementy

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

Atrybuty

Atrybut Opis
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, są przenoszone.

W przypadku komunikatów, które wymagają gwarancji ExactlyOnce (tj exactlyOnce . jest ustawiona na truewartość ), ten atrybut jest domyślnie ustawiony na kolejkę komunikatów utraconych w całym systemie w msMQ.

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

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

Jeśli deadLetterQueue parametr ma wartość None lub System, ten atrybut musi być ustawiony na nullwartość . Jeśli ten atrybut nie nullma wartości , deadLetterQueue należy ustawić Customwartość .
Deadletterqueue Określa typ kolejki utraconych komunikatów do użycia.

Prawidłowe wartości obejmują

- Niestandardowe: niestandardowa kolejka deadletter.
- Brak: nie należy używać kolejki deadletter.
- System: użyj kolejki deadletter systemu.

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ć okazjonalne utracone komunikaty.

Jeśli exactlyOnce jest ustawiona 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że zostać wysłana z gwarancjami lub bez ich możliwości. 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 ustawioną wartością 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 truewartości 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ść.

W przypadku ustawienia wartości falsedomyślny mechanizm adresowania 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 buforów. Wartość domyślna to 524288.

Wiele części programu WCF używa buforów. Tworzenie i niszczenie buforów za każdym razem, gdy są używane, jest kosztowne, a odzyskiwanie pamięci dla buforów jest również kosztowne. W przypadku pul buforów można pobrać bufor z puli, użyć jej i powrócić do puli po zakończeniu. W związku z tym unika się obciążeń związanych z tworzeniem i niszczeniem buforów.
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 i 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 negatywne.
maxPoolSize Dodatnia liczba całkowita określająca maksymalny rozmiar puli. Wartość domyślna to 524288.
Maxreceivedmessagesize Dodatnia liczba całkowita określająca maksymalny rozmiar komunikatu w bajtach, w tym nagłówki. Nadawca komunikatu odbiera błąd protokołu SOAP, gdy komunikat jest zbyt duży dla odbiornika. 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 aplikacji odbieranej. 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 zużyje komunikatu po wyczerpaniu prób dostarczenia, komunikat zostanie wysłany do kolejki ponawiania prób. Kolejne cykle ponawiania 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.
queueTransferProtocol Określa transport kanału komunikacyjnego w kolejce używany przez to powiązanie. Prawidłowe wartości to

- Natywny: użyj natywnego protokołu MSMQ.
- Srmp: użyj protokołu SOAP Reliable Messaging Protocol (SRMP).
- SrmpSecure: użyj transportu protokołu Soap Reliable Messaging Protocol Secure (SRMPS).

Ten atrybut jest typu QueueTransferProtocol.

Ponieważ usługa MSMQ nie obsługuje adresowania usługi Active Directory podczas korzystania z protokołu SOAP Reliable Messaging Protocol, nie należy ustawiać tego atrybutu na Srmp lub Srmps, gdy useActiveDirectory jest ustawiona na truewartość .
rejectAfterLastRetry Wartość logiczna określająca, jaką akcję należy podjąć dla komunikatu, który zakończył się niepowodzeniem po próbie maksymalnej liczby ponownych prób.

true oznacza, że do nadawcy jest zwracane potwierdzenie negatywne, 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ący może odczytać kolejkę komunikatów trucizny w celu przetworzenia komunikatów otrutych (czyli komunikatów, które zakończyły się niepowodzeniem).

Usługa MSMQ 3.0 nie obsługuje zwracania negatywnego potwierdzenia nadawcy, dlatego ten atrybut zostanie zignorowany w msMQ 3.0.
Retrycycledelay Element TimeSpan określający opóźnienie czasu między cyklami ponawiania 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 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 jest określana przez maxRetryCycles atrybut .
timeToLive Element TimeSpan określający, jak długo komunikaty są prawidłowe przed ich wygaśnięciem i są umieszczane w kolejce utraconych wiadomości. 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ę odbieraną w określonym przedziale czasu, mówi się, że wygasł. Wygasłe komunikaty są wysyłane do specjalnej kolejki o nazwie kolejka utraconych wiadomości. Lokalizacja kolejki utraconych wiadomości jest ustawiana za pomocą atrybutu customDeadLetterQueue lub odpowiedniego domyślnego ustawienia na podstawie gwarancji.
Useactivedirectory Wartość logiczna określająca, czy adresy kolejek powinny być konwertowane przy użyciu usługi Active Directory.

Adresy kolejek MSMQ mogą składać się z nazw ścieżek lub nazw formatów bezpośrednich. W przypadku nazwy formatu bezpośredniego program MSMQ rozpoznaje nazwę komputera przy użyciu nazw DNS, NetBIOS lub IP. Przy użyciu nazwy ścieżki program MSMQ rozpoznaje nazwę komputera przy użyciu usługi Active Directory. Domyślnie transport w kolejce programu Windows Communication Framework (WCF) konwertuje identyfikator URI kolejki komunikatów na nazwę formatu bezpośredniego. Ustawiając ten atrybut na truewartość , aplikacja może określić, że transport w kolejce powinien rozpoznać nazwę komputera przy użyciu usługi Active Directory, a nie DNS, NetBIOS lub IP.
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ą zachować zapis komunikatów, które opuściły kolejkę wychodzącą komputera, mogą skopiować komunikaty do kolejki dziennika. Gdy komunikat opuści kolejkę wychodzącą i zostanie odebrane potwierdzenie odebrania komunikatu na komputerze docelowym, kopia komunikatu jest przechowywana w kolejce dziennika systemowego komputera wysyłającego.

Elementy podrzędne

Element Opis
<msmqTransportSecurity> Określa ustawienia zabezpieczeń transportu dla tego powiązania. Ten element jest typu MsmqTransportSecurityElement.

Elementy nadrzędne

Element Opis
<Wiązania> Definiuje wszystkie możliwości powiązania niestandardowego.

Uwagi

Element msmqTransport umożliwia użytkownikowi ustawienie właściwości w kolejce kanału komunikacyjnego. Kanał komunikacji w kolejce używa kolejkowania komunikatów do transportu.

Ten element powiązania jest domyślnym elementem powiązania używanym przez standardowe powiązanie kolejkowania komunikatów (netMsmqBinding).

Zobacz też