WebSphere MQ - Persystencja komunikatów
Autor: Marcin Kasiński
26.04.2012 12:59:49 +0200
Persystencja komunikatów jest bardzo ważnym parametrem oznaczającym czy komunikaty maja być trwale przechowywane przez menadżer kolejek i nie mogą zaginąć. Komunikaty dzielimy na persystentne i nie persystentne. Jeśli komunikat jest persystentny oznacza to, że będzie on logowany w pamięci trwalej, co powoduje to, ze nie ma możliwości jego utraty. Komunikat taki przetrwa nawet restart menadżera kolejek. W związku z tym, że komunikaty takie musza być logowane ich procesowanie trwa zdecydowanie dłużej niż komunikatów niepersystentnych. Komunikaty niepersystentne z kolei nie gwarantują dostarczenia do adresata ze względu na swoja ulotna naturę. Nie są one logowane tak jak komunikaty persystentne, ale za to są o wiele szybciej procesowane.
To czy wysyłany komunikat powinien być persystentny zależy od logiki aplikacji. Jeśli np. aplikacja wysyła dane synchronizacyjne o zmianach w swoim systemie, a inne aplikacje te informacje potrzebują, aby zaktualizować własne bazy wskazane jest, aby komunikaty te były persystentne. Jeśli z kolei wysyłany komunikat jest zapytaniem o informacje w innym systemie I wiemy, ze w przypadku niepowodzenia zawsze możemy zapytać się ponownie zalecane jest, aby komunikaty takie uczynić nie persystentnymi.
Persystencję komunikatu określa parametr persistence i przyjmuje on następujące wartości:
- MQC.MQPER_PERSISTENTkomunikat persystentny
- MQC.MQPER_NOT_PERSISTENTkomunikat niepersystentny
- MQC.MQPER_PERSISTENTCE_AS_Q_DEFpersystencja komunikatu zgodna z definicja kolejki.
Komentarze
Dodaj Komentarz
Newsletter
Jeżeli chcesz być na bieżąco informowany o aktualnościach i poradach IT zapisz się do naszego newslettera.