Struttura MQRFH2

L'intestazione MQRFH2 contiene informazioni sulla struttura di un messaggio, ed i clienti previsti, per abilitare un broker dei messaggi ad elaborare il messaggio e consegnarlo o pubblicarlo per tali clienti.

Il valore 'MQRFH2  ' deve essere inserito nel campo Formato dell'intestazione precedente (di solito MQMD). La costante MQFMT_RF_HEADER_2 è definita con questo valore.

Relativamente al linguaggio di programmazione C, è anche definita la costante MQFMT_RF_HEADER_2_ARRAY. Questa costante ha lo stesso valore diMQFMT_RF_HEADER_2, ma è un array di caratteri, non una stringa.

La serie di caratteri e la codifica dei campi nell'intestazione MQRFH2 sono come riportato di seguito:

L'intestazione MQRFH2 contiene i seguenti campi:

Nome campo Descrizione Dettagli
StrucId Identificativo della struttura

Il valore deve essere MQRFH_STRUC_ID, che è l'identificativo per la struttura dell'intestazione di formattazione e regole.

Relativamente al linguaggio di programmazione C, è anche definita la costante MQRFH_STRUC_ID_ARRAY; tale costante ha lo stesso valore di MQRFH_STRUC_ID, ma è un array di caratteri, non una stringa.

Version Numero di versione della struttura

Il valore deve essere MQRFH_VERSION_2, che è la versione 2 della struttura dell'intestazione di formattazione e regole.

Struclength Lunghezza totale di MQRFH2 (incluso NameValueData)

Il valore iniziale di questo campo è MQRFH_STRUC_LENGTH_FIXED_2, che è la lunghezza della parte fissa della struttura di intestazione MQRFH2.

Questa è la lunghezza in byte della struttura di intestazione MQRFH2, inclusi gli eventuali campiNameValueLength e NameValueData alla fine della struttura.

Alla fine della struttura potrebbero essere presenti più di una coppia di questi campi, nella sequenza: lunghezza1, dati1, lunghezza2, dati2, ....... La lunghezza di eventuali dati utente che seguono l'ultimo campoNameValueData alla fine della struttura non è inclusa in StrucLength.

Nota: Se Struclength non è un multiplo di quattro, potrebbero verificarsi dei problemi con la conversione dei dati utente in alcuni ambienti del sistema operativo.
Encoding Codifica numerica dei dati che seguono NameValueData

Il valore iniziale di questo campo è MQENC_NATIVE.

Questo campo specifica come sono rappresentati i valori numerici in qualsiasi dato che segue l'ultimo campoNameValueData. Ciò è valido per i dati interi binari, i dati interi decimali compressi e i dati a virgola mobile.

CodedCharSetId Identificativo della serie di caratteri dei dati che seguono NameValueData

Il valore iniziale di questo campo è MQCCSI_INHERIT, che significa che l'identificativo della serie di caratteri è lo stesso della struttura corrente.

Questo campo identifica la serie di caratteri codificata per eventuali stringhe di caratteri nei dati che seguono l'ultimo campo NameValueData.

Format Nome del formato dei dati che seguono NameValueData

Il valore iniziale di questo campo è MQFMT_NONE.

Questo campo specifica il nome del formato di eventuali dati che seguono l'ultimo campo NameValueData. Il nome deve essere riempito con spazi fino alla fine del campo.

Nota: Non utilizzare un carattere nullo per terminare il nome prima della fine del campo; il gestore code non cambia il carattere nullo con un carattere vuoto o qualsiasi altro carattere che segue il carattere nullo, nell'intestazione MQRFH2.
Nota: Non specificare un nome contenente all'interno o all'inizio caratteri vuoti.
Flags Indicatori

Il valore iniziale di questo campo è MQRFH_NONE, che significa che non sono presenti indicatori.

NameValueCCSID Identificativo della serie di caratteri di NameValueData

Il valore iniziale di questo campo è 1208, che significa che è utilizzata la serie di caratteri codificata UTF-8.

Questo campo identifica la serie di caratteri codificata per i dati nel campo NameValueData. Differisce dalla serie di caratteri per altre stringhe di caratteri nella struttura di intestazione MQRFH2 e potrebbe essere diversa dalla serie di caratteri per eventuali dati dei caratteri che seguono l'ultimo campo NameValueData.

NameValueCCSID deve avere uno dei seguenti valori:

1200: UCS-2 (serie non determinata)

1208: UTF-8

13488: UCS-2 2.0

17584: una serie secondaria UCS-2 2.1 (include il simbolo dell'euro €)

Per la serie di caratteri UCS-2, la codifica (ordine di byte) del campo NameValueData deve essere la stessa degli altri campi nella struttura di intestazione MQRFH2.

Nota: Non sono supportati i caratteri da X'D800' a X'DFFF'.

I due seguenti campi sono facoltativi, ma se presenti devono presentarsi come coppia. Possono essere ripetuti come coppia il numero di volte richiesto.

Se questi campi si presentano più di una volta, devono essere nella sequenza ..... lunghezza1, dati1, lunghezza2, dati2, .......

NameValueLength Lunghezza di NameValueData

Questo campo specifica la lunghezza, in byte, del campo NameValueData che segue questo campo.

Nota: Se NameValueLength non è un multiplo di quattro, potrebbe riscontrarsi un problema con la conversione dei dati che seguono il campo NameValueData.
NameValueData Questa è una stringa di caratteri a lunghezza variabile che contiene i dati codificati utilizzando una struttura tipo XML

La lunghezza, in byte, di questa stringa è data dal campo NameValueLength che precede questo campo NameValueData.

Per evitare il problema descritto nella nota allegata alla descrizione del campo NameValueLength, estendere questo campo con spazi cosicché la relativa lunghezza è un multiplo di quattro oppure terminare il campo con un carattere nullo.

Definizione del linguaggio di programmazione C

La struttura riportata di seguito è definita nel file di intestazione cmqc.h fornito con WebSphere MQ. Le costanti utilizzate nell'ambito del campo NameValueData sono definite nel file di intestazione BipRfc.h fornito con WebSphere Message Broker.
typedef struct tagMQRFH2 {
  MQCHAR4  StrucId;         /*  Identificativo struttura                    */
  MQLONG   Version;         /*  Numero versione struttura                   */
  MQLONG   StrucLength;     /*  Lunghezza totale di MQRFH2 incluso
                                 NameValueData                              */
  MQLONG   Encoding;        /*  Codifica numerica dei dati che seguono
                                 NameValueData                              */
  MQLONG   CodedCharSetId;  /*  Identificativo della serie di caratteri
                                 dei dati che seguono NameValueData         */
  MQCHAR8  Format;          /*  Nome del formato dei dati che seguono
                                 NameValueData                              */
  MQLONG   Flags;           /*  Indicatori                                  */
  MQLONG   NameValueCCSID;  /*  ID serie di caratteri di NameValueData      */
 } MQRFH2;
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
aq06930_