set_message_queue_paramT_set_message_queue_paramSetMessageQueueParamSetMessageQueueParam (Operator)

Name

set_message_queue_paramT_set_message_queue_paramSetMessageQueueParamSetMessageQueueParam — Setzen von Parametern für eine Warteschlange von Nachrichten.

Signatur

set_message_queue_param( : : QueueHandle, GenParamName, GenParamValue : )

Herror T_set_message_queue_param(const Htuple QueueHandle, const Htuple GenParamName, const Htuple GenParamValue)

void SetMessageQueueParam(const HTuple& QueueHandle, const HTuple& GenParamName, const HTuple& GenParamValue)

void HMessageQueue::SetMessageQueueParam(const HTuple& GenParamName, const HTuple& GenParamValue) const

void HMessageQueue::SetMessageQueueParam(const HString& GenParamName, const HTuple& GenParamValue) const

void HMessageQueue::SetMessageQueueParam(const char* GenParamName, const HTuple& GenParamValue) const

void HMessageQueue::SetMessageQueueParam(const wchar_t* GenParamName, const HTuple& GenParamValue) const   (Nur Windows)

static void HOperatorSet.SetMessageQueueParam(HTuple queueHandle, HTuple genParamName, HTuple genParamValue)

void HMessageQueue.SetMessageQueueParam(HTuple genParamName, HTuple genParamValue)

void HMessageQueue.SetMessageQueueParam(string genParamName, HTuple genParamValue)

Beschreibung

set_message_queue_paramset_message_queue_paramSetMessageQueueParamSetMessageQueueParamSetMessageQueueParam setzt Parameter für eine Warteschlange von Nachrichten oder führt Aktionen auf einer solchen aus.

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName können mehrere Parameter und Aktionen und in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue die korrespondierenden Werte übergeben werden. Dabei müssen stets die gleiche Anzahl von Parameternamen und Werten übergeben werden und die Reihenfolge der Werte muss mit der der Namen übereinstimmen. Die Parameter und Aktionen werden in der Reihenfolge abgearbeitet, in der sie in einem Tupel dem Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamName übergeben wurden. Dabei kann im Falle von Aktionsparameter der Effekt eines früheren Aktionsparameters nicht rückgängig gemacht werden, wenn eine spätere Aktion fehlschlagen sollte.

Folgende Parameternamen werden unterstützt:

'abort_dequeuing'"abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing":

Bricht alle dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessage Operator ab, die in beliebigen Threads auf Nachrichten warten. Die abgebrochenen Aufrufe von dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessage geben den Fehler H_ERR_MQCNCL zurück. Jeder weitere zukünftige Aufruf von dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessage kehrt sofort mit dem Fehler H_ERR_MQCNCL zurück, unabhängig vom Status der Warteschlange.

Diese Aktion wird typischerweise verwendet bevor die Warteschlange aufgeräumt wird. Denn es ist nicht erlaubt die Warteschlange über clear_message_queueclear_message_queueClearMessageQueueClearMessageQueueClearMessageQueue frei zu geben, während sie noch von anderen Operatoren verwendet wird. Daher ist es in der Regel notwendig, nach der Aktion 'abort_dequeuing'"abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing" auf die Beendigung der Threads zu warten, um sicherzustellen, dass kein Operator das Warteschlangenobjekt mehr verwenden kann.

Die Aktion wirkt sich jedoch nicht auf die Nachrichtenobjekte aus, die in der Warteschlange gespeichert sind. Der Effekt, dass auch alle weiteren Aufruf von dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessage abgebrochen werden, kann mit Hilfe der Aktion 'restore_queue'"restore_queue""restore_queue""restore_queue""restore_queue" wieder aufgehoben werden.

Der korrespondierende Parameterwert der Aktion muss den Integerwert 1 haben.

'restore_queue'"restore_queue""restore_queue""restore_queue""restore_queue":

Hebt die Auswirkungen einer vorangegangenen 'abort_dequeuing'"abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing" Aktion wieder auf. Dies bedeutet, dass der nächste Aufruf von dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessage wieder Nachrichtenobjekte aus der Warteschlange empfangen wird.

Der korrespondierende Parameterwert der Aktion muss den Integerwert 1 haben.

'flush_queue'"flush_queue""flush_queue""flush_queue""flush_queue":

Leert die Warteschlange. Alle sich in der Warteschlange befindenden Nachrichten werden aus der Warteschlange entfernt und alle damit verbundenen Ressourcen freigegeben, insbesondere die im Nachrichtenobjekt gespeicherten Tupel und Objektdaten.

Der korrespondierende Parameterwert der Aktion muss den Integerwert 1 haben.

'max_message_num'"max_message_num""max_message_num""max_message_num""max_message_num":

Setzt die maximale Anzahl von Nachrichten, die eine Warteschlange zu einem Zeitpunkt enthalten kann. Der Aufruf des Operators enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessage gibt dann den Wert H_ERR_MQOVL zurück, wenn die Warteschlange nach der Operation mehr Nachrichten enthalten würde als das gesetzte Maximum.

Das Setzen des Parameters 'max_message_num'"max_message_num""max_message_num""max_message_num""max_message_num" hat jedoch keine Auswirkung auf bereits eingereihte Nachrichtenobjekte. D.h. es werden durch diese Aktion keine Nachrichten aus der Warteschlange entfernt.

Der Parameterwert in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue kann ein positiver Integerwert oder -1 sein, falls die Größe der Warteschlange nicht limitiert sein soll (default). Der String 'infinite'"infinite""infinite""infinite""infinite" wird ebenfalls akzeptiert.

Ausführungsinformationen

Parameter

QueueHandleQueueHandleQueueHandleQueueHandlequeueHandle (input_control)  message_queue HMessageQueue, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Warteschlangenobjekt.

Parameteranzahl: QueueHandle == 1

Restriktion: QueueHandle != 0

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Namen der Parameter oder Aktionen.

Parameteranzahl: GenParamName == GenParamValue

Defaultwert: 'max_message_num' "max_message_num" "max_message_num" "max_message_num" "max_message_num"

Werteliste: 'abort_dequeuing'"abort_dequeuing""abort_dequeuing""abort_dequeuing""abort_dequeuing", 'flush_queue'"flush_queue""flush_queue""flush_queue""flush_queue", 'max_message_num'"max_message_num""max_message_num""max_message_num""max_message_num", 'restore_queue'"restore_queue""restore_queue""restore_queue""restore_queue"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  tuple(-array) HTupleHTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Werte zu den Parameternamen oder Aktionen.

Parameteranzahl: GenParamName == GenParamValue

Defaultwert: 1

Wertevorschläge: 1, -1

Beispiel (HDevelop)

* abort waiting dequeue_message operators
set_message_queue_param (Queue, 'abort_dequeuing', 1)

Ergebnis

Im Erfolgsfall gibt set_message_queue_paramset_message_queue_paramSetMessageQueueParamSetMessageQueueParamSetMessageQueueParam den Wert 2 (H_MSG_TRUE) zurück. Andernfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_message_queuecreate_message_queueCreateMessageQueueCreateMessageQueueCreateMessageQueue

Nachfolger

clear_message_queueclear_message_queueClearMessageQueueClearMessageQueueClearMessageQueue

Siehe auch

create_message_queuecreate_message_queueCreateMessageQueueCreateMessageQueueCreateMessageQueue, clear_message_queueclear_message_queueClearMessageQueueClearMessageQueueClearMessageQueue, enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessage, dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessage, get_message_queue_paramget_message_queue_paramGetMessageQueueParamGetMessageQueueParamGetMessageQueueParam, create_messagecreate_messageCreateMessageCreateMessageCreateMessage, clear_messageclear_messageClearMessageClearMessageClearMessage, set_message_tupleset_message_tupleSetMessageTupleSetMessageTupleSetMessageTuple, get_message_tupleget_message_tupleGetMessageTupleGetMessageTupleGetMessageTuple, set_message_objset_message_objSetMessageObjSetMessageObjSetMessageObj, get_message_objget_message_objGetMessageObjGetMessageObjGetMessageObj

Modul

Foundation