<msmqIntegration>

Określa transport MSMQ dla powiązania niestandardowego.

<Konfiguracji>
  <System.servicemodel>
    <Powiązania>
      <Custombinding>
        <Wiązania>
          <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.

Atrybuty

Atrybut Opis
Customdeadletterqueue Identyfikator URI wskazujący lokalizację kolejki utraconych wiadomości dla aplikacji, w których komunikaty wygasły lub nie zostały dostarczone do aplikacji.

W przypadku komunikatów, które wymagają gwarancji ExactlyOnce (czyli exactlyOnce jest ustawiona na true), ten atrybut jest domyślny dla kolejki transakcyjnej transakcyjnej całej systemu w msMQ.

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

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

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

Prawidłowe wartości obejmują

- Niestandardowe: niestandardowa kolejka deadletter.
- Brak: nie należy używać kolejki deadletter.
- 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 nie jest niestabilny. 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 wysłać z gwarancjami 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 wiadomości.

exactlyOnce, w przypadku ustawienia na truewartość , 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 wiadomości.

Komunikaty wysyłane z exactlyOnce ustawionym ustawieniem true muszą być wysyłane tylko do kolejki transakcyjnej.
Manualaddressing Wartość logiczna, która umożliwia użytkownikowi przejęcie kontroli nad adresem wiadomości. 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 wartości truekanał zakłada, że komunikat został już rozwiązany i nie dodaje do niego żadnych dodatkowych informacji. Użytkownik może następnie adresować każdą wiadomość indywidualnie.

W przypadku ustawienia na wartość 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ć go i wrócić do puli po zakończeniu pracy. W związku z tym unika się nakładu pracy podczas tworzenia i niszczenia buforów.
maxImmediateRetries Liczba całkowita określająca maksymalną liczbę natychmiastowych prób ponawiania próby 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 pewnym późniejszym momencie w czasie. Jeśli nie określono cykli ponawiania prób, komunikaty są wysyłane do kolejki komunikatów otrucia lub do nadawcy jest wysyłane potwierdzenie negatywne.
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 za duży dla odbiornika. Odbiorca pominie 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óby dostarczenia komunikatów do aplikacji odbieranej. Wartość domyślna to MaxValue.

Pojedynczy 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óby. Kolejne cykle ponawiania składają się z komunikatu zwracanego z kolejki ponawiania prób do kolejki aplikacji w celu ponownego retryCycleDelay podjęcia próby dostarczenia do aplikacji po opóźnieniu określonym przez 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 po próbie maksymalnej liczby ponownych prób.

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

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

Program MSMQ 3.0 nie obsługuje zwracania negatywnego potwierdzenia do nadawcy, dlatego ten atrybut zostanie zignorowany w programie 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.

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

- ActiveX: Formater ActiveX jest używany podczas serializacji obiektów COM.
- Binarne: serializuje obiekt do pakietu binarnego.
- ByteArray: Serializuje obiekt na tablicę 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 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.
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.

Zobacz też