Opcje pobierania komunikatów MQ

Opcje pobierania komunikatów MQ sterują działaniami elementu MQGET.

Można określić jedną lub więcej opcji opisanych dalej w niniejszej sekcji lub też nie wybrać żadnej z nich. Jeśli zostanie wybrana więcej niż jedna opcja, ich wartości mogą być:
  • Zsumowane (nie należy dodawać tej samej stałej więcej niż raz) lub
  • Złożone przy użyciu bitowej operacji OR (jeśli język programowania obsługuje operacje bitowe).

Wartość początkowa pola Opcje to MQGMO_NO_WAIT plus MQGMO_PROPERTIES_AS_Q_DEF.

Opcje właściwości

Następujące opcje odnoszą się do właściwości komunikatu:
MQGMO_PROPERTIES_AS_Q_DEF

Właściwości komunikatu, z wyjątkiem właściwości, które są zawarte w deskryptorze lub rozszerzeniu komunikatu, muszą być przedstawione jako zdefiniowane przez właściwość kolejki PropertyControl. Jeśli udostępniono element MsgHandle, ta opcja jest ignorowana, a właściwości komunikatu są dostępne za pomocą elementu MsgHandle, z wyjątkiem sytuacji, gdy wartość właściwości kolejki PropertyControl wynosi MQPROP_FORCE_MQRFH2.

Jest to działanie domyślne w sytuacji, gdy nie są określone opcje właściwości.

MQGMO_PROPERTIES_IN_HANDLE

Właściwości komunikatu muszą być udostępnione za pomocą elementu MsgHandle. Jeśli nie udostępniono uchwytu komunikatu, wywołanie zakończy się niepowodzeniem z następującej przyczyny: MQRC_HMSG_ERROR.

MQGMO_NO_PROPERTIES

Nie zostaną pobrane żadne właściwości komunikatu, z wyjątkiem właściwości zawartych w deskryptorze lub rozszerzeniu komunikatu. Jeśli udostępniony zostanie element MsgHandle, zostanie on zignorowany.

MQGMO_PROPERTIES_FORCE_MQRFH2

Właściwości komunikatu, z wyjątkiem właściwości, które są zawarte w deskryptorze lub rozszerzeniu komunikatu, muszą być przedstawione przy użyciu nagłówków MQRFH2. Zapewni to kompatybilność z wcześniejszymi wersjami na potrzeby aplikacji oczekujących na pobranie właściwości, jednak nie umożliwiają wprowadzenia zmian pozwalających na użycie uchwytów komunikatów. Jeśli udostępniony zostanie element MsgHandle, zostanie on zignorowany.

MQGMO_PROPERTIES_COMPATIBILITY
Jeśli komunikat zawiera właściwość z przedrostkiem mcd., jms., usr. lub mqext., wszystkie właściwości komunikatu są dostarczane do aplikacji w nagłówku MQRFH2. W przeciwnym razie wszystkie właściwości komunikatu, z wyjątkiem właściwości, które są zawarte w deskryptorze komunikatu lub w rozszerzeniu, są usuwane i nie są już dostępne dla aplikacji.

Opcja domyślna

Jeśli nie jest wymagana żadna z opisanych powyżej opcji, można użyć następującej opcji:
MQGMO_NONE
Wartość ta wskazuje, że nie określono innych opcji. Wszystkie opcje przyjmują wówczas wartości domyślne. Opcja MQGMO_NONE stanowi rozszerzenie dokumentacji programu. Opcja ta nie jest przeznaczona do użytku wraz z jakąkolwiek inną opcją, ponieważ jednak jej wartość wynosi zero, takie użycie nie zostanie wykryte.