Campi in MQWXP - Struttura dei parametri di uscita del carico di lavoro del cluster

Descrizione dei campi in MQWXP - Struttura del parametro di uscita del carico di lavoro del cluster

StrucId ( MQCHAR4 ) - immissione
L'identificativo della struttura per la struttura del parametro di uscita del carico di lavoro cluster.
  • Il valore StrucId è MQWXP_STRUC_ID.
  • Per il linguaggio di programmazione C, viene definita anche la costante MQWXP_STRUC_ID_ARRAY . Ha lo stesso valore di MQWXP_STRUC_ID. Si tratta di un array di caratteri invece di una stringa.
Versione ( MQLONG ) - immissione
Indica il numero di versione della struttura. Versione assume uno dei seguenti valori:
MQWXP_VERSION_1
Version-1 struttura del parametro di uscita del carico di lavoro del cluster.
MQWXP_VERSION_1 è supportato in tutti gli ambienti.
MQWXP_VERSION_2
Struttura del parametro di uscita del carico di lavoro del cluster Version-2 .
MQWXP_VERSION_2 è supportato nei seguenti ambienti: AIX®, HP-UX, Linux®, IBM® i, Solaris e Windows.
MQWXP_VERSION_3
Struttura del parametro di uscita del carico di lavoro del cluster Version-3 .
MQWXP_VERSION_3 è supportato nei seguenti ambienti: AIX, HP-UX, Linux, IBM i, Solaris e Windows.
MQWXP_VERSION_4
Version-4 struttura del parametro di uscita del carico di lavoro del cluster.
MQWXP_VERSION_4 è supportato nei seguenti ambienti: AIX, HP-UX, Linux, IBM i, Solaris e Windows.
MQWXP_CURRENT_VERSION
La versione corrente della struttura del parametro di uscita del carico di lavoro del cluster.
ExitId ( MQLONG ) - immissione
Indica il tipo di uscita richiamata. L'uscita del carico di lavoro del cluster è l'unica uscita supportata.
  • Il valore ExitId deve essere MQXT_CLUSTER_WORKLOAD_EXIT
ExitReason ( MQLONG ) - immissione
Indica il motivo per richiamare l'uscita del carico di lavoro del cluster. ExitReason assume uno dei seguenti valori:
MQXR_INIT
Indica che l'uscita viene richiamata per la prima volta.
Acquisire e inizializzare tutte le risorse di cui l'uscita potrebbe aver bisogno, come la memoria principale.
MQXR_TERM
Indica che l'uscita sta per essere terminata.
Liberare tutte le risorse che l'uscita potrebbe aver acquisito da quando è stata inizializzata, come la memoria principale.
MQXR_CLWL_OPEN
Richiamato da MQOPEN.
MQXR_CLWL_PUT
Richiamato da MQPUT o MQPUT1.
MQXR_CLWL_MOVE
Richiamato da MCA quando lo stato del canale è cambiato.
MQXR_CLWL_REPOS
Richiamato da MQPUT o MQPUT1 per un messaggio PCF del gestore repository.
MQXR_CLWL_REPOS_MOVE
Richiamato da MCA per un messaggio PCF del gestore repository se lo stato del canale è stato modificato.
ExitResponse ( MQLONG ) - output
Impostare ExitResponse per indicare se l'elaborazione del messaggio continua. Deve essere uno dei seguenti valori:
MQXCC_OK
Continuare l'elaborazione del messaggio normalmente.
  • DestinationChosen identifica la destinazione a cui deve essere inviato il messaggio.
MQXCC_SUPPRESS_FUNCTION
Interrompere l'elaborazione del messaggio.
  • Le azioni intraprese dal gestore code dipendono dal motivo per cui è stata richiamata l'exit:
    Tabella 1. Azioni eseguite dal gestore code.

    Questa tabella contiene due colonne. La prima colonna elenca i motivi di uscita e la seconda colonna descrive l'azione eseguita per ciascun motivo di uscita.

    ExitReason Azione eseguita
    • MQXR_CLWL_OPEN
    • MQXR_CLWL_REPOS
    • MQXR_CLWL_PUT
    La chiamata MQOPEN, MQPUTo MQPUT1 non riesce con codice di completamento MQCC_FAILED e codice motivo MQRC_STOPPED_BY_CLUSTER_EXIT.
    • MQXR_CLWL_MOVE
    • MQXR_CLWL_REPOS_MOVE
    Il messaggio viene inserito nella coda di messaggi non recapitabili.
MQXCC_SUPPRESS_EXIT
Continuare normalmente l'elaborazione del messaggio corrente. Non richiamare nuovamente l'uscita fino a quando il gestore code non viene arrestato.
Il gestore di code elabora i messaggi successivi come se l'attributo ClusterWorkloadExit è vuoto. DestinationChosen identifica la destinazione a cui viene inviato il messaggio corrente.
Qualsiasi altro valore
Elaborare il messaggio come se MQXCC_SUPPRESS_FUNCTION fosse specificato.
ExitResponse2 ( MQLONG ) - input/output
Impostare ExitResponse2 per fornire al gestore code ulteriori informazioni.
  • MQXR2_STATIC_CACHE è il valore predefinito ed è impostato all'entrata dell'uscita.
  • Quando ExitReason ha il valore MQXR_INIT, l'uscita può impostare uno dei seguenti valori in ExitResponse2:
    MQXR2_STATIC_CACHE
    L'uscita richiede una cache cluster statico.
    • Se la cache del cluster è statica, l'uscita non deve utilizzare la chiamata MQXCLWLN per navigare nelle catene di record nella cache del cluster.
    • Se la cache del cluster è dinamica, l'uscita non può navigare correttamente tra i record nella cache.
      Nota: il gestore code elabora la restituzione dalla chiamata MQXR_INIT come se l'exit avesse restituito MQXCC_SUPPRESS_EXIT nel campo ExitResponse .
    MQXR2_DYNAMIC_CACHE
    L'uscita può funzionare con una cache statica o dinamica.
    • Se l'uscita restituisce questo valore, l'uscita deve utilizzare la chiamata MQXCLWLN per navigare nelle catene di record nella cache del cluster.
Feedback ( MQLONG ) - immissione
Un campo riservato. Il valore è zero.
Indicatori ( MQLONG ) - immissione
Indica le informazioni sul messaggio da inserire.
  • Il valore di Indicatori è MQWXP_PUT_BY_CLUSTER_CHL. Il messaggio ha origine da un canale cluster, piuttosto che localmente o da un canale non cluster. In altre parole, il messaggio proviene da un altro gestore code del cluster.
Riservato ( MQLONG ) - immissione
Un campo riservato. Il valore è zero.
ExitUserArea ( MQBYTE16 ) - ingresso/uscita
Impostare ExitUserArea per comunicare tra le chiamate all'uscita.
  • ExitUserArea è inizializzato a zero binario prima della prima invocazione dell'uscita. Tutte le modifiche apportate a questo campo dall'uscita vengono conservate nei richiami dell'uscita che si verificano tra la chiamata MQCONN e la chiamata MQDISC corrispondente. Il campo viene reimpostato su zero binario quando si verifica la chiamata MQDISC .
  • Il primo richiamo dell'exit è indicato dal campo ExitReason con valore MQXR_INIT.
  • Sono definite le seguenti costanti:
    MQXUA_NONE - stringa
    MQXUA_NONE_ARRAY - array di caratteri
    Nessuna informazione utente. Entrambe le costanti sono zero binario per la lunghezza del campo.
    MQ_EXIT_USER_AREA_LENGTH
    La lunghezza di ExitUserArea.
ExitData ( MQCHAR32 ) - immissione
Il valore dell'attributo ClusterWorkloadData dell'attributo queue-manager. Se non è stato definito alcun valore per tale attributo, questo campo è vuoto.
  • La lunghezza di ExitData è fornita da MQ_EXIT_DATA_LENGTH.
MsgDescPtr ( PMQMD ) - ingresso
L'indirizzo di una copia del descrittore del messaggio ( MQMD ) per il messaggio in fase di elaborazione.
  • Tutte le modifiche apportate al descrittore del messaggio dall'uscita vengono ignorate dal gestore code.
  • Se ExitReason ha uno dei seguenti valori MsgDescPtr è impostato sul puntatore null e non viene passato alcun descrittore di messaggio all'uscita:
    • MQXR_INIT
    • MQXR_TERM
    • MQXR_CLWL_OPEN
MsgBufferPtr ( PMQVOID ) - ingresso
L'indirizzo di un buffer contenente una copia dei primi MsgBufferLength dei dati del messaggio.
  • Tutte le modifiche apportate ai dati del messaggio dall'uscita vengono ignorate dal gestore code.
  • Nessun dato di messaggio viene passato all'uscita quando:
    • MsgDescPtr è il puntatore nullo.
    • Il messaggio non contiene dati.
    • L'attributo ClusterWorkloadLength è pari a zero.
    In questi casi, MsgBufferPtr è il puntatore nullo.
MsgBufferLength ( MQLONG ) - ingresso
La lunghezza del buffer contenente i dati del messaggio passati all'exit.
  • La lunghezza è controllata dall'attributo ClusterWorkloadLength gestore della coda.
  • La lunghezza potrebbe essere inferiore alla lunghezza del messaggio completo, vedere MsgLength.
MsgLength ( MQLONG ) - immissione
La lunghezza del messaggio completo passato all'uscita.
  • MsgBufferLength potrebbe essere inferiore alla lunghezza del messaggio completo.
  • MsgLength è zero se ExitReason è MQXR_INIT, MQXR_TERMo MQXR_CLWL_OPEN.
QName ( MQCHAR48 ) - immissione
Il nome della coda di destinazione. La coda è una coda cluster.
  • La lunghezza di QName è MQ_Q_NAME_LENGTH.
QMgrName ( MQCHAR48 ) - immissione
Il nome del gestore code locale che ha richiamato l'uscita del carico di lavoro cluster.
  • La lunghezza di QMgrName è MQ_Q_MGR_NAME_LENGTH.
DestinationCount ( MQLONG ) - immissione
Il numero di destinazioni possibili. Le destinazioni sono istanze della coda di destinazione e sono descritte dai record di destinazione.
  • Un record di destinazione è una struttura MQWDR . Esiste una struttura per ogni possibile instradamento a ciascuna istanza della coda.
  • Le strutture MQWDR sono indirizzate da un array di puntatori, vedi DestinationArrayPtr.
DestinationChosen ( MQLONG ) - input/output
La destinazione scelta.
  • Il numero della struttura MQWDR che identifica l'instradamento e l'istanza della coda a cui deve essere inviato il messaggio.
  • Il valore è compreso nell'intervallo 1 - DestinationCount.
  • All'input per l'uscita, DestinationChosen indica l'instradamento e l'istanza della coda selezionati dal gestore code. L'uscita può accettare questa scelta o scegliere un instradamento e un'istanza della coda differenti.
  • Il valore impostato dall'uscita deve essere compreso nell'intervallo 1 - DestinationCount. Se viene restituito un qualsiasi altro valore, il gestore code utilizza il valore di DestinationChosen nell'input per l'uscita.
DestinationArrayPtr ( PPMQWDR ) - ingresso
L'indirizzo di un array di puntatori ai record destinazione ( MQWDR ).
  • Sono presenti DestinationCount record di destinazione.
QArrayPtr ( PPMQWQR ) - immissione
L'indirizzo di un array di puntatori ai record della coda ( MQWQR ).
  • Se i record della coda sono disponibili, ci sono DestinationCount di essi.
  • Se non sono disponibili record della coda, QArrayPtr è il puntatore null.
    Nota: QArrayPtr può essere il puntatore null anche quando DestinationCount è maggiore di zero.
CacheContext ( MQPTR ) : Versione 2 - input
Il campo CacheContext è riservato per l'utilizzo da parte del gestore code. L'uscita non deve modificare il valore di questo campo.
CacheType ( MQLONG ) : Versione 2 - input
La cache del cluster ha uno dei seguenti tipi:
MQCLCT_STATIC
La cache è statica.
  • La dimensione della cache è fissa e non può aumentare con il funzionamento del gestore code.
  • Non è necessario utilizzare la chiamata MQXCLWLN per esplorare i record in questo tipo di cache.
MQCLCT_DYNAMIC
La cache è dinamica.
  • La dimensione della cache può aumentare in modo da contenere le informazioni sul cluster variabili.
  • È necessario utilizzare la chiamata MQXCLWLN per esplorare i record in questo tipo di cache.
CLWLMRUChannels ( MQLONG ) : Versione 3 - input
Indica il numero massimo di canali cluster in uscita attivi, da considerare per l'utilizzo da parte dell'algoritmo di scelta del carico di lavoro cluster.
  • CLWLMRUChannels è un valore compreso tra 1 e 999 999 999.
pEntryPoints ( PMQIEP ) : Versione 4
L'indirizzo di una struttura MQIEP tramite cui è possibile effettuare chiamate MQI e DCI.