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_PERSISTENT : komunikat persystentny
MQC.MQPER_NOT_PERSISTENT : komunikat niepersystentny
MQC.MQPER_PERSISTENTCE_AS_Q_DEF : persystencja komunikatu zgodna z definicja kolejki.
Powrót
|