Вы находитесь на странице: 1из 555

MQSeries para AS/400

Consulta de programacin de aplicaciones (ILE RPG)


V ersin 5 Release 1

SC10-3412-00

MQSeries para AS/400

Consulta de programacin de aplicaciones (ILE RPG)


V ersin 5 Release 1

SC10-3412-00

Nota Antes de utilizar esta informacin y el producto al que da soporte, lea sin falta la informacin general del Apndice G. Avisos en la pgina 509.

Primera edicin (marzo de 2000) Esta edicin es aplicable a MQSeries para AS/400 Versin 5 Release 1 y a todos los releases y modificaciones ulteriores hasta que se indique lo contrario en nuevas ediciones. Copyright International Business Machines Corporation 1994, 2000. Reservados todos los derechos.

Contenido
Tablas . . . . . . . . . . . . . . . ix Acerca de este manual . . . . . . . . xi
Destinatarios del manual . . . . . . . . Conocimientos necesarios para comprender este manual . . . . . . . . . . . . . . Cmo utilizar este manual . . . . . . . Presentacin del texto en este manual . . Trminos utilizados en este manual . . . . . . . . . xi . xi . xii . xii . xii Campos . . . . . . . . . Valores iniciales y declaracin RPG Declaracin RPG . . . . . . . . . . . . . . . . . . . . . 19 . 28 . 29

Captulo 5. MQCNO - Opciones de conectar . . . . . . . . . . . . . . 31


Visin general . . . . . Campos . . . . . . . Valores iniciales y declaracin Declaracin RPG . . . . . . . RPG . . . . . . . . . . . . . . . . . . . . . . . . . . 31 31 35 35

Parte 1. Descripciones de tipos de datos . . . . . . . . . . . . . . . 1


Captulo 1. Tipos de datos elementales 3
Convenios utilizados en las descripciones de los tipos de datos . . . . . . . . . . . . . . . . 3 Tipos de datos elementales . . . . . . . . . 3 MQBYTE - Byte . . . . . . . . . . . . 3 MQBYTEn Serie de n bytes . . . . . . . . 4 MQCHAR Carcter . . . . . . . . . . 4 MQCHARn Serie de n caracteres . . . . . . 4 MQHCONN Asa de conexin . . . . . . . 5 MQHOBJ Asa de objeto . . . . . . . . . 5 MQLONG Entero largo . . . . . . . . . 5 Tipos de datos elementales . . . . . . . . 5

Captulo 6. MQDH - Cabecera de distribucin . . . . . . . . . . . . 37


Visin general . . . . . Campos . . . . . . . Valores iniciales y declaracin Declaracin RPG . . . . . . . RPG . . . . . . . . . . . . . . . . . . . . . . . . . . 37 38 41 41

Captulo 7. MQDLH - Cabecera de mensaje no entregado . . . . . . . . 43


Visin general . . . . . Campos . . . . . . . Valores iniciales y declaracin Declaracin RPG . . . . . . . RPG . . . . . . . . . . . . . . . . . . . . . . . . . . 43 45 49 49

Captulo 2. Tipos de datos de estructura Consideraciones sobre programacin . 7


Convenios utilizados en las descripciones de los de datos . . . . . . . . . . . . . . Consideraciones sobre el lenguaje . . . . . Archivos COPY . . . . . . . . . . Llamadas . . . . . . . . . . . . Estructuras . . . . . . . . . . . Convenios de notacin . . . . . . . Procedimientos MQI . . . . . . . . Consideraciones sobre las hebras . . . . Parmetros de llamada MQI . . . . . . Constantes con nombre . . . . . . . Control de compromiso . . . . . . . Codificacin de las llamadas de enlace . . Codificacin de las llamadas dinmicas . . tipos . . 7 . . 8 . . 8 . . 9 . . 10 . . 10 . . 10 . . 11 . . 11 . . 11 . . 11 . . 12 . . 13

Captulo 8. MQGMO - Opciones de obtener mensaje . . . . . . . . . . 51


Visin general . . . . . Campos . . . . . . . Valores iniciales y declaracin Declaracin RPG . . . . . . . RPG . . . . . . . . . . . . . . . . . . . . . . . . . . 51 52 76 76

Captulo 9. MQIIH - Cabecera de puente IMS . . . . . . . . . . . . . . . . 79


Visin general . . . . . Campos . . . . . . . Valores iniciales y declaracin Declaracin RPG . . . . . . . RPG . . . . . . . . . . . . . . . . . . . . . . . . . . 79 80 83 84

Captulo 10. MQMD - Descriptor de mensaje . . . . . . . . . . . . . . 85


Visin general . . . . . . . . . . . . . 86 Campos . . . . . . . . . . . . . . . 87 Valores iniciales y declaracin RPG . . . . . . 134 Declaracin RPG . . . . . . . . . . . 135

Captulo 3. MQBO - Opciones de empezar . . . . . . . . . . . . . . 15


Visin general . . . . . Campos . . . . . . . Valores iniciales y declaracin Declaracin RPG . . . . . . . RPG . . . . . . . . . . . . . . . . . . . . . . . . . . 15 15 16 16

Captulo 11. MQMDE - Extensin de descriptor de mensaje . . . . . . . 137


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 137 140 141 142

Captulo 4. MQCIH - Cabecera de puente CICS . . . . . . . . . . . . 17


Visin general . . . . . . . . . . . . . 18
Copyright IBM Corp. 1994, 2000

iii

Captulo 12. MQOD - Descriptor de objeto . . . . . . . . . . . . . . 143


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 143 144 151 152

Captulo 20. MQWIH - Cabecera de informacin de trabajo . . . . . . . 199


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 199 199 201 201

Captulo 13. MQOR - Registro de objeto . . . . . . . . . . . . . . 153


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 153 153 153 154

Captulo 21. MQXQH - Cabecera de cola de transmisin . . . . . . . . 203


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 203 206 207 207

Captulo 14. MQPMO - Opciones de poner mensaje . . . . . . . . . . . 155


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 155 156 170 171

Parte 2. Llamadas de funciones

209

Captulo 22. Descripciones de las llamadas . . . . . . . . . . . . . 211


Convenios utilizados en las descripciones de las llamadas . . . . . . . . . . . . . . . 211

Captulo 15. MQPMR - Registro de poner mensaje . . . . . . . . . . . 173


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 173 173 175 175

Captulo 23. MQBACK - Restituir cambios . . . . . . . . . . . . . 213


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 213 214 215

Captulo 16. MQRMH - Cabecera de mensaje de referencia . . . . . . . 177


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 177 178 184 185

Captulo 24. MQBEGIN - Empezar unidad de trabajo . . . . . . . . . 217


Sintaxis . . . . . Parmetros . . . . Notas de utilizacin . Invocacin RPG (ILE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 217 218 220

Captulo 17. MQRR - Registro de respuesta . . . . . . . . . . . . . 187


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 187 187 188 188

Captulo 25. MQCLOSE - Cerrar objeto 221


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 221 224 226

Captulo 18. MQTM - Mensaje desencadenante . . . . . . . . . . 189


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 189 190 193 193

Captulo 26. MQCMIT - Comprometer cambios . . . . . . . . . . . . . 227


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 227 228 229

Captulo 19. MQTMC2 - Mensaje desencadenante (formato de caracteres) . . . . . . . . . . . . 195


Visin general . . . . . . . . Campos . . . . . . . . . . Valores iniciales y declaracin de RPG Declaracin de RPG . . . . . . . . . . . . . . . . . . . . . . . . . 195 196 197 197

Captulo 27. MQCONN - Conectar gestor de colas . . . . . . . . . . 231


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 231 234 235

Captulo 28. MQCONNX - Conectar gestor de colas (ampliado) . . . . . 237

iv

Consulta de programacin de aplicaciones (ILE RPG)

Sintaxis . . . Parmetros . . Invocacin RPG

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. 237 . 237 . 238

Captulo 37. Atributos de todas las colas . . . . . . . . . . . . . . . 305 Captulo 38. Atributos de colas locales y colas modelo. . . . . . . . . . . 311 Captulo 39. Atributos de definiciones locales de colas remotas . . . . . . 327 Captulo 40. Atributos de colas alias 329

Captulo 29. MQDISC - Desconectar gestor de colas . . . . . . . . . . 239


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 239 240 240

Captulo 30. MQGET - Obtener mensaje. . . . . . . . . . . . . . 241


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 241 246 250

Captulo 41. Atributos de las listas de nombres . . . . . . . . . . . . . 331 Captulo 42. Atributos de las definiciones de proceso . . . . . . . 333 Captulo 43. Atributos del gestor de colas . . . . . . . . . . . . . . . 337

Captulo 31. MQINQ - Consultar los atributos de objeto . . . . . . . . . 251


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 251 259 260

Parte 4. Aplicaciones . . . . . . . 349


Captulo 44. Creacin de una aplicacin . . . . . . . . . . . . . 351
| |
Archivos de copia MQSeries . . . . . . . . 351 Preparacin de los programas para su ejecucin 351 Interfaces para el gestor de punto de sincronismo externo de AS/400 . . . . . . . . . . . 352 Puntos de sincronismo en las aplicaciones CICS para AS/400. . . . . . . . . . . . . . 353

Captulo 32. MQOPEN - Abrir objeto


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

261
. . . . 261 261 270 275

Captulo 33. MQPUT - Poner mensaje


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

277
. . . . 277 277 282 286

Captulo 45. Programas de ejemplo

355
356 357 357 357 358 358 358 359 359 360 360 361 363 364 364 365 366 366 367 367

Captulo 34. MQPUT1 - Poner un mensaje. . . . . . . . . . . . . . 287


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 287 292 293

Captulo 35. MQSET - Establecer atributos de objeto . . . . . . . . . 295


Sintaxis . . . . Parmetros . . . Notas de utilizacin Invocacin RPG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 295 298 299

Parte 3. Atributos de objeto . . . . 301


Captulo 36. Atributos de los objetos de MQSeries . . . . . . . . . . . . 303

Caractersticas explicadas en los programas de ejemplo . . . . . . . . . . . . . . . Preparacin y ejecucin de los programas de ejemplo . . . . . . . . . . . . . . . Ejecucin de los programas de ejemplo . . . . El programa de ejemplo de poner . . . . . . Diseo del programa de ejemplo de poner . . El programa de ejemplo de examinar . . . . . Diseo del programa de ejemplo de examinar El programa de ejemplo de obtener . . . . . . Diseo del programa de ejemplo de obtener . . El programa de ejemplo de peticin . . . . . . Utilizacin del desencadenamiento con el ejemplo de peticin . . . . . . . . . . Diseo del programa de ejemplo de peticin El programa de ejemplo de eco . . . . . . . Diseo del programa de ejemplo de eco . . . El programa de ejemplo de consultar . . . . . Diseo del programa de ejemplo de consultar El programa de ejemplo de establecer . . . . . Diseo del programa de ejemplo de establecer Los programas de ejemplo de desencadenamiento El supervisor de desencadenamiento de ejemplo AMQ3TRG4 . . . . . . . . . . . . .

Contenido

El servidor desencadenante de ejemplo AMQ3SRV4 . . . . . . . . . . . . . 368 Finalizacin de los programas de ejemplo de desencadenamiento . . . . . . . . . . 368 Ejecucin de los ejemplos utilizando colas remotas 369

Parte 5. Apndices . . . . . . . . 371


Apndice A. Cdigos de retorno . . . 373
Cdigos de terminacin . Cdigos de razn . . . . . . . . . . . . . . . . . . . . 373 . 373

Apndice B. Constantes de MQSeries

443
443 443 444 444 445 445 445 446 446 446 447 447 447 447 447 447 448 448 448 448 448 448 448 449 449 449 449 449 449 450 450 450 450 450 451 451

Lista de constantes . . . . . . . . . . . LN* (Longitudes de campos de tipo serie de caracteres y de tipo byte) . . . . . . . . AC* (Smbolo de contabilidad) . . . . . . ATT* (Tipo de smbolo de contabilidad) . . . AT* (Tipo de aplicacin) . . . . . . . . . BND* (Enlace) . . . . . . . . . . . . BO* (Opciones de empezar) . . . . . . . BO* (Identificador de estructura de opciones de empezar) . . . . . . . . . . . . . . BO* (Versin de opciones de empezar) . . . . CA* (Selector de atributo de tipo carcter). . . AD* (Descriptor ADS de cabecera CICS) . . . CC* (Cdigo de terminacin) . . . . . . . CS* (Identificador de juego de caracteres codificado) . . . . . . . . . . . . . CT* (Tarea conversacional de cabecera CICS) FC* (Recurso de cabecera CICS) . . . . . . CF* (Nombre de funcin de cabecera CICS) . . WI* (Intervalo de espera de obtener de cabecera CICS) . . . . . . . . . . . . . . . CI* (Identificador de correlacin) . . . . . . MQ* (Identificador de llamada) . . . . . . CIF* (Distintivos de cabecera CICS) . . . . . CI* (Longitud de cabecera CICS) . . . . . . CI* (Identificador de estructura de cabecera CICS) . . . . . . . . . . . . . . . CI* (Versin de cabecera CICS) . . . . . . LT* (Tipo de enlace de cabecera CICS) . . . . CMLV* (Nivel de mandato) . . . . . . . CN* (Opciones de conectar) . . . . . . . CN* (Identificador de estructura de opciones de conectar) . . . . . . . . . . . . . . CN* (Versin de opciones de conectar) . . . . CO* (Opciones de cerrar) . . . . . . . . OL* (Longitud de datos de salida de cabecera CICS) . . . . . . . . . . . . . . . CRC* (Cdigo de retorno de cabecera CICS) . . SC* (Cdigo de inicio de transaccin de cabecera CICS) . . . . . . . . . . . . TE* (Estado de final de tarea de cabecera CICS) CU* (Control de unidad de trabajo de cabecera CICS) . . . . . . . . . . . . . . . DCC* (Mscaras y factores de convertir caracteres) . . . . . . . . . . . . . DCC* (Opciones de convertir caracteres) . . .

DH* (Identificador de estructura de cabecera de distribucin). . . . . . . . . . . . . DH* (Versin de cabecera de distribucin) . . . DHF* (Distintivos de cabecera de distribucin) DL* (Soporte de lista de distribucin) . . . . DL* (Identificador de estructura de cabecera de mensaje no entregado) . . . . . . . . . DL* (Versin de cabecera de mensaje no entregado) . . . . . . . . . . . . . DX* (Identificador de estructura de parmetro de rutina de salida de conversin de datos) . . DX* (Versin de estructura de parmetro de rutina de salida de conversin de datos) . . . EI* (Intervalo de caducidad) . . . . . . . EN* (Codificacin). . . . . . . . . . . EN* (Mscaras de codificacin) . . . . . . EN* (Codificacin para enteros decimales empaquetados) . . . . . . . . . . . . EN* (Codificacin para nmeros de coma flotante) . . . . . . . . . . . . . . EN* (Codificacin para enteros binarios) . . . EV* (Notificacin de sucesos) . . . . . . . FB* (Informacin de retorno) . . . . . . . FM* (Formato) . . . . . . . . . . . . GI* (Identificador de grupo) . . . . . . . GM* (Opciones de obtener mensaje) . . . . . GM* (Identificador de estructura de opciones de obtener mensaje) . . . . . . . . . . . GM* (Versin de opciones de obtener mensaje) GS* (Estado de grupo) . . . . . . . . . HC* (Asa de conexin) . . . . . . . . . HO* (Asa de objeto) . . . . . . . . . . IA* (Selector de atributo de tipo entero) . . . IAU* (Autenticador IMS) . . . . . . . . IAV* (Valor de atributo de tipo entero) . . . . ICM* (Modalidad de compromiso IMS). . . . II* (Distintivos de cabecera IMS) . . . . . . II* (Longitud de cabecera IMS) . . . . . . II* (Identificador de estructura de cabecera IMS) II* (Versin de cabecera IMS) . . . . . . . ISS* (mbito de seguridad IMS) . . . . . . ITI* (Identificador de instancia de transaccin IMS) . . . . . . . . . . . . . . . ITS* (Estado de transaccin IMS) . . . . . . MD* (Identificador de estructura de descriptor de mensaje) . . . . . . . . . . . . . MD* (Versin de descriptor de mensaje) . . . ME* (Longitud de extensin de descriptor de mensaje) . . . . . . . . . . . . . . ME* (Identificador de estructura de extensin de descriptor de mensaje) . . . . . . . . . ME* (Versin de extensin de descriptor de mensaje) . . . . . . . . . . . . . . MEF* (Distintivos de extensin de descriptor de mensaje) . . . . . . . . . . . . . . MS* (Secuencia de entrega de mensajes) . . . MF* (Distintivos de mensaje) . . . . . . . MF* (Mscaras de distintivos de mensaje) . . . MI* (Identificador de mensaje). . . . . . . MO* (Opciones de emparejar) . . . . . . . MT* (Tipo de mensaje) . . . . . . . . .

451 451 451 451 452 452 452 452 452 452 452 453 453 453 453 453 454 454 455 455 455 455 456 456 456 457 457 457 457 458 458 458 458 458 458 458 458 459 459 459 459 459 459 460 460 460 460

vi

Consulta de programacin de aplicaciones (ILE RPG)

| |

| |

| | | | | |

MTK* (Smbolo de mensaje) . . . . . . . NC* (Cuenta de nombres) . . . . . . . . OD* (Longitud de descriptor de objeto) . . . OD* (Identificador de estructura de descriptor de objeto) . . . . . . . . . . . . . OD* (Versin de descriptor de objeto) . . . . OII* (Identificador de instancia de objeto) . . . OL* (Longitud original) . . . . . . . . . OO* (Opciones de abrir). . . . . . . . . OT* (Tipo de objeto) . . . . . . . . . . PE* (Permanencia). . . . . . . . . . . PL* (Plataforma) . . . . . . . . . . . PM* (Opciones de poner mensaje) . . . . . PM* (Longitud de estructura de opciones de poner mensaje) . . . . . . . . . . . . PM* (Identificador de estructura de opciones de poner mensaje) . . . . . . . . . . . . PM* (Versin de opciones de poner mensaje) PF* (Distintivos de campo de registro de poner mensaje) . . . . . . . . . . . . . . PR* (Prioridad) . . . . . . . . . . . . QA* (Inhibir obtener). . . . . . . . . . QA* (Inhibir poner) . . . . . . . . . . QA* (Memorizacin de restitucin) . . . . . QA* (Compartibilidad de cola) . . . . . . QD* (Tipo de definicin de cola) . . . . . . QSIE* (Sucesos de intervalo de servicio) . . . QT* (Tipo de cola). . . . . . . . . . . RC* (Cdigo de razn) . . . . . . . . . RL* (Longitud devuelta) . . . . . . . . . RM* (Identificador de estructura de cabecera de mensaje de referencia) . . . . . . . . . RM* (Versin de cabecera de mensaje de referencia) . . . . . . . . . . . . . RM* (Distintivos de cabecera de mensaje de referencia) . . . . . . . . . . . . . RO* (Opciones de informe) . . . . . . . . RO* (Mscaras de opciones de informe) . . . SCO* (mbito de cola) . . . . . . . . . SEG* (Segmentacin) . . . . . . . . . . SI* (Identificador de seguridad) . . . . . . SIT* (Tipo de identificador de seguridad) . . . SP* (Punto de sincronismo). . . . . . . . SS* (Estado de segmento) . . . . . . . . TC* (Control de desencadenamiento) . . . . TM* (Identificador de estructura de mensaje desencadenante) . . . . . . . . . . . TM* (Versin de mensaje desencadenante). . . TC* (Identificador de estructura de formato de tipo carcter de mensaje desencadenante) . . . TC* (Versin de formato de tipo carcter de mensaje desencadenante) . . . . . . . . TT* (Tipo de desencadenante) . . . . . . . US* (Utilizacin) . . . . . . . . . . . WI* (Intervalo de espera) . . . . . . . . WI* (Distintivos de cabecera de informacin de carga de trabajo) . . . . . . . . . . . WI* (Longitud de estructura de cabecera de informacin de carga de trabajo) . . . . . . WI* (Identificador de estructura de cabecera de informacin de carga de trabajo) . . . . . .

460 460 461 461 461 461 461 461 462 462 462 462 463 463 463 463 463 463 463 464 464 464 464 464 464 468 469 469 469 469 469 470 470 470 470 470 470 470 471 471 471 471 471 471 471 472 472 472

| |

WI* (Versin de cabecera de informacin de carga de trabajo) . . . . . . . . . XR* (Respuesta de rutina de salida de conversin de datos) . . . . . . . . XQ* (Identificador de estructura de cabecera cola de transmisin) . . . . . . . . XQ* (Versin de cabecera de cola de transmisin) . . . . . . . . . . .

. 472

. . 472 de . . 472 . . 473

Apndice C. Normas para validar las opciones de la MQI . . . . . . . . . 475


Llamada Llamada Llamada Llamada Llamada MQOPEN MQPUT . MQPUT1 MQGET . MQCLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 475 476 476 476

Apndice D. Codificaciones de mquina . . . . . . . . . . . . . 477


Codificacin de entero binario . . . . . . Codificacin de entero decimal empaquetado. Codificacin de coma flotante . . . . . . Construccin de codificaciones . . . . . Anlisis de codificaciones . . . . . . . Utilizacin de la aritmtica . . . . . . Resumen de las codificaciones de arquitectura mquina . . . . . . . . . . . . . . . . . . . de . . . . . . . 477 478 478 479 479 479

. 480

Apndice E. Opciones de informe


Estructura del campo de informe . Anlisis del campo de informe . Utilizacin de la aritmtica . . Estructura del campo de distintivos

. . 481
. 481 . 482 . 483 483

. . . . . . . . . . . . . . . de mensaje

Apndice F. Conversin de datos . . . 485


Proceso de conversin . . . . . . . . . Convenios de proceso . . . . . . . . . Conversin de los mensajes de informe. . . . MQDXP Parmetro de rutina de salida de conversin de datos . . . . . . . . . . Campos . . . . . . . . . . . . . Declaracin RPG (ILE) . . . . . . . . MQXCNVC - Convertir caracteres . . . . . Sintaxis . . . . . . . . . . . . . Parmetros . . . . . . . . . . . . Invocacin RPG . . . . . . . . . . . MQCONVX - Rutina de salida de conversin de datos . . . . . . . . . . . . . . . Sintaxis . . . . . . . . . . . . . Parmetros . . . . . . . . . . . . Notas de utilizacin . . . . . . . . . Invocacin RPG . . . . . . . . . . . . 485 . 487 . 491 . . . . . . . . . . . . 493 493 498 499 499 499 504 504 504 504 506 508

Apndice G. Avisos . . . . . . . . . 509


Informacin de la interfaz de programacin . Marcas registradas. . . . . . . . . . . . . 511 . 511

Glosario de trminos y abreviaturas

513 vii

Contenido

Bibliografa . . . . . . . . . . . . 527
Publicaciones de las distintas plataformas de MQSeries. . . . . . . . . . . . . Publicaciones especficas de cada plataforma MQSeries. . . . . . . . . . . . . Manuales en copia software . . . . . . Formato BookManager . . . . . . . Formato HTML . . . . . . . . . Portable Document Format (PDF) . . . . . . . . . . 527 . . . . . 529 530 530 530 530

Formato PostScript . . . . . . . . . Formato de ayuda Windows . . . . . . Informacin de MQSeries disponible en Internet Publicaciones relacionadas . . . . . . . .

. 530 . 530 531 . 531

ndice. . . . . . . . . . . . . . . 533 Envo de comentarios a IBM . . . . . 539

viii

Consulta de programacin de aplicaciones (ILE RPG)

Tablas
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Tipos de datos elementales . . . . . . . . 5 Archivos COPY de RPG. . . . . . . . . 8 Llamadas de servicio ILE RPG soportadas por cada programa de servicio . . . . . . . 12 Campos de MQBO . . . . . . . . . . 15 Valores iniciales de campos de MQBO . . . 16 Campos de MQCIH . . . . . . . . . . 17 Contenido de los campos de informacin de error de la estructura MQCIH . . . . . . 18 Valores iniciales de los campos de MQCIH 28 Campos de MQCNO . . . . . . . . . 31 Valores iniciales de campos de MQCNO 35 Campos de MQDH . . . . . . . . . . 37 Valores iniciales de los campos de MQDH 41 Campos de MQDLH . . . . . . . . . 43 Valores iniciales de campos de MQDLH 49 Campos de MQGMO . . . . . . . . . 51 Opciones MQGET relacionadas con los mensajes de grupos y de segmentos de mensajes lgicos . . . . . . . . . . . 64 Salida cuando la llamada MQGET o MQCLOSE no es coherente con la informacin de grupo y de segmento . . . . . . . . 66 Valores iniciales de campos de MQGMO 76 Campos de MQIIH . . . . . . . . . . 79 Valores iniciales de los campos de MQIIH 83 Campos de MQMD . . . . . . . . . . 85 Valores iniciales de campos de MQMD 134 Campos de MQMDE . . . . . . . . . 137 Accin del gestor de colas cuando se especifica MQMDE en MQPUT o MQPUT1 . 138 Valores iniciales de los campos de MQMDE 141 Campos de MQOD . . . . . . . . . 143 Valores iniciales de campos de MQOD 151 Campos de MQOR. . . . . . . . . . 153 Valores iniciales de campos de MQOR 153 Campos de MQPMO . . . . . . . . . 155 Opciones de MQPUT relacionadas con los mensajes de los grupos y los segmentos de mensajes lgicos . . . . . . . . . . 160 32. Resultado cuando no existe coherencia entre la llamada MQPUT o MQCLOSE y la informacin de grupos y segmentos . . . . Valores iniciales de campos de MQPMO Campos de MQPMR . . . . . . . . . Campos de MQRMH . . . . . . . . . Valores iniciales de campos de MQRMH Campos de MQRR . . . . . . . . . . Valores iniciales de campos de MQRR Campos de MQTM . . . . . . . . . Valores iniciales de campos de MQTM Campos de MQTMC2. . . . . . . . . Valores iniciales de campos de MQTMC2 Campos de MQWIH . . . . . . . . . Valores iniciales de campos de MQWIH Campos de MQXQH . . . . . . . . . Valores iniciales de campos de MQXQH Efectos de las opciones MQCLOSE en distintos tipos de objetos y colas . . . . . Opciones MQOPEN vlidas para cada tipo de cola . . . . . . . . . . . . . . . Atributos de todas las colas . . . . . . . Atributos de colas locales y modelo . . . . Atributos de definiciones locales de colas remotas . . . . . . . . . . . . . Atributos de las listas de nombres . . . . Atributos de las definiciones de proceso Atributos del gestor de colas . . . . . . Nombres de los programas de ejemplo Programas de ejemplo que explican la utilizacin de la MQI . . . . . . . . . Detalles del programa de ejemplo de cliente/servidor . . . . . . . . . . . Resumen de codificaciones de arquitecturas de mquina . . . . . . . . . . . . Campos de MQDXP . . . . . . . . . 162 170 173 177 184 187 188 189 193 195 197 199 201 203 207 222 267 305 311 327 331 333 337 355 356 362 480 493

33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.

17.

18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.

Copyright IBM Corp. 1994, 2000

ix

Consulta de programacin de aplicaciones (ILE RPG)

Acerca de este manual


MQSeries para AS/400 Versin 5 Release 1 forma parte del conjunto de productos IBM MQSeries. Proporciona servicios de programacin de aplicaciones en la plataforma AS/400 que permiten programar de un modo distinto. Esta estilo de programacin permite codificar comunicaciones indirectas de programa a programa utilizando colas de mensajes. El presente manual: v Ofrece una descripcin completa de la interfaz de programacin MQSeries para AS/400 en el lenguaje de programacin RPG. v Contiene informacin acerca de cmo construir una aplicacin ejecutable. v Contiene descripciones de programas de ejemplo.

| | | | | | | | | | | | |

Notas para los usuarios 1. En este manual se describe la interfaz de programacin MQSeries para AS/400 nicamente en el lenguaje de programacin RPGILE. Si necesita informacin detallada acerca del lenguaje de programacin RPGOPM, debera consultar el manual MQSeries Consulta de programacin de aplicaciones (RPG) V4R2. 2. Existen dos formas de utilizar la MQI desde dentro de un programa RPG: v Llamadas dinmicas a la interfaz de programa QMQM. v Llamadas de enlace esttico a los procedimientos de MQI. Utilizar llamadas de enlace suele ser el mtodo preferido, especialmente cuando el programa efecta llamadas repetidas a la MQI, pues requiere menos recursos. La nueva funcionalidad solo est disponible mediante la interfaz de Llamada de enlace esttico. Para obtener informacin acerca de cmo disear y escribir aplicaciones que utilizan los servicios que proporciona MQSeries, consulte la publicacin MQSeries Application Programming Guide.

Destinatarios del manual


El presente manual es para los diseadores de aplicaciones que utilizan tcnicas de colas de mensajes y para los programadores que tienen que implementar estos diseos.

Conocimientos necesarios para comprender este manual


Para escribir aplicaciones de colas de mensajes utilizando MQSeries para AS/400, debe saber cmo escribir programas en el lenguaje de programacin RPG. Para comprender este manual no es necesario haber escrito antes programas de colas de mensajes.

Copyright IBM Corp. 1994, 2000

xi

Acerca de este manual

Cmo utilizar este manual


Este manual contiene informacin de consulta que, por ejemplo, le permite averiguar rpidamente cmo utilizar una llamada determinada o cmo corregir una situacin de error especfica. El manual est dividido en cuatro partes: Parte 1. Descripciones de tipos de datos Describe los tipos de datos que las llamadas MQI utilizan. Parte 2. Llamadas de funciones Describe los parmetros y los cdigos de retorno de las llamadas. Parte 3. Atributos de objeto Describe los atributos de los objetos de MQSeries para AS/400. Parte 4. Aplicaciones Describe cmo construir programas MQSeries para AS/400 y el diseo de las aplicaciones de ejemplo que se proporcionan junto con MQSeries para AS/400.

Presentacin del texto en este manual


Este manual utiliza los siguientes tipos de letras: MQOPEN Ejemplo del nombre de una llamada CMPCOD Ejemplo del nombre de un parmetro de una llamada MQMD Ejemplo del nombre de un tipo de datos o de una estructura OOSETA Ejemplo del nombre de un valor

Trminos utilizados en este manual


Todos los trminos nuevos presentados en este manual estn definidos en el glosario. En el cuerpo del manual, se utilizan las siguientes abreviaturas de productos: CICS El producto CICS para AS/400 Adems, utilizamos las siguientes abreviaturas de nombres para este compilador de lenguaje: RPG Hace referencia al compilador IBM ILE RPG para OS/400

xii

Consulta de programacin de aplicaciones (ILE RPG)

Parte 1. Descripciones de tipos de datos


Captulo 1. Tipos de datos elementales . . . . Convenios utilizados en las descripciones de los tipos de datos . . . . . . . . . . . . . . . . Tipos de datos elementales . . . . . . . . . MQBYTE - Byte . . . . . . . . . . . . MQBYTEn Serie de n bytes . . . . . . . . MQCHAR Carcter . . . . . . . . . . MQCHARn Serie de n caracteres . . . . . . MQHCONN Asa de conexin . . . . . . . MQHOBJ Asa de objeto . . . . . . . . . MQLONG Entero largo . . . . . . . . . Tipos de datos elementales . . . . . . . . Captulo 2. Tipos de datos de estructura Consideraciones sobre programacin . . . Convenios utilizados en las descripciones de los de datos . . . . . . . . . . . . . . Consideraciones sobre el lenguaje . . . . . Archivos COPY . . . . . . . . . . Llamadas . . . . . . . . . . . . Estructuras . . . . . . . . . . . Convenios de notacin . . . . . . . Procedimientos MQI . . . . . . . . Consideraciones sobre las hebras . . . . Parmetros de llamada MQI . . . . . . Constantes con nombre . . . . . . . Control de compromiso . . . . . . . Codificacin de las llamadas de enlace . . Codificacin de las llamadas dinmicas . . Captulo 3. MQBO - Opciones de empezar Visin general . . . . . . . . . . Campos . . . . . . . . . . . . Valores iniciales y declaracin RPG . . . Declaracin RPG . . . . . . . . 3 3 3 3 4 4 4 5 5 5 5 Captulo 7. MQDLH - Cabecera de entregado . . . . . . . . Visin general . . . . . . . Campos . . . . . . . . . Valores iniciales y declaracin RPG Declaracin RPG . . . . . mensaje no . . . . . . 43 . . . . . . 43 . . . . . . 45 . . . . . . 49 . . . . . . 49

Captulo 8. MQGMO - Opciones de obtener mensaje . . . . . . . . . . . . . . . 51 Visin general . . . . . . . . . . . . . 51 Campos . . . . . . . . . . . . . . . 52 Valores iniciales y declaracin RPG . . . . . . 76 Declaracin RPG . . . . . . . . . . . 76 Captulo 9. MQIIH - Cabecera de puente Visin general . . . . . . . . . Campos . . . . . . . . . . . Valores iniciales y declaracin RPG . . Declaracin RPG . . . . . . . IMS . . 79 . . . . 79 . . . . 80 . . . . 83 . . . . 84

. . 7 tipos . . 7 . . 8 . . 8 . . 9 . . 10 . . 10 . . 10 . . 11 . . 11 . . 11 . . 11 . . 12 . . 13

Captulo 10. MQMD - Descriptor de mensaje . . 85 Visin general . . . . . . . . . . . . . 86 Campos . . . . . . . . . . . . . . . 87 Valores iniciales y declaracin RPG . . . . . . 134 Declaracin RPG . . . . . . . . . . . 135 Captulo 11. MQMDE - Extensin de descriptor de mensaje . . . . . . . . . . . . Visin general . . . . . . . . . . . . Campos . . . . . . . . . . . . . . Valores iniciales y declaracin de RPG . . . . Declaracin de RPG . . . . . . . . .

. . . 15 . . . 15 . . . 15 . . . 16 . . . 16 17 18 19 28 29

. . . . .

137 137 140 141 142

Captulo 4. MQCIH - Cabecera de puente CICS Visin general . . . . . . . . . . . . Campos . . . . . . . . . . . . . . Valores iniciales y declaracin RPG . . . . . Declaracin RPG . . . . . . . . . . Captulo 5. MQCNO - Opciones de Visin general . . . . . . . Campos . . . . . . . . . Valores iniciales y declaracin RPG Declaracin RPG . . . . .

. . . .

Captulo 12. MQOD - Descriptor de objeto . . . 143 Visin general . . . . . . . . . . . . . 143 Campos . . . . . . . . . . . . . . . 144 Valores iniciales y declaracin de RPG . . . . . 151 Declaracin de RPG . . . . . . . . . . 152 Captulo 13. MQOR - Registro de objeto . . . 153 Visin general . . . . . . . . . . . . . 153 Campos . . . . . . . . . . . . . . . 153 Valores iniciales y declaracin de RPG . . . . . 153 Declaracin de RPG . . . . . . . . . . 154 Captulo 14. MQPMO - Opciones de poner mensaje . . . . . . . . . . . . . . . 155 Visin general . . . . . . . . . . . . . 155 Campos . . . . . . . . . . . . . . . 156 Valores iniciales y declaracin de RPG . . . . . 170 Declaracin de RPG . . . . . . . . . . 171 Captulo 15. MQPMR - Registro de poner mensaje . . . . . . . . . . . . . . . 173 Visin general . . . . . . . . . . . . . 173

conectar . . 31 . . . . . . 31 . . . . . . 31 . . . . . . 35 . . . . . . 35 . . 37 . . 37 . . 38 . . 41 . . 41

Captulo 6. MQDH - Cabecera de distribucin Visin general . . . . . . . . . . . Campos . . . . . . . . . . . . . Valores iniciales y declaracin RPG . . . . Declaracin RPG . . . . . . . . .

Copyright IBM Corp. 1994, 2000

Tipos de datos
Campos . . . . . . . . . . . Valores iniciales y declaracin de RPG . Declaracin de RPG . . . . . . . . . . . . . . . . 173 . 175 . 175

Captulo 16. MQRMH - Cabecera de mensaje de referencia . . . . . . . . . . . . . . Visin general . . . . . . . . . . . . . Campos . . . . . . . . . . . . . . . Valores iniciales y declaracin de RPG . . . . . Declaracin de RPG . . . . . . . . . .

177 177 178 184 185

Captulo 17. MQRR - Registro de respuesta . . 187 Visin general . . . . . . . . . . . . . 187 Campos . . . . . . . . . . . . . . . 187 Valores iniciales y declaracin de RPG . . . . . 188 Declaracin de RPG . . . . . . . . . . 188 Captulo 18. MQTM - Mensaje desencadenante Visin general . . . . . . . . . . . . Campos . . . . . . . . . . . . . . Valores iniciales y declaracin de RPG . . . . Declaracin de RPG . . . . . . . . . 189 189 190 193 193

. . . .

Captulo 19. MQTMC2 - Mensaje desencadenante (formato de caracteres) . . . 195 Visin general . . . . . . . . . . . . . 195 Campos . . . . . . . . . . . . . . . 196 Valores iniciales y declaracin de RPG . . . . . 197 Declaracin de RPG . . . . . . . . . . 197 Captulo 20. MQWIH - Cabecera de informacin de trabajo . . . . . . . . . . . . . . Visin general . . . . . . . . . . . . . Campos . . . . . . . . . . . . . . . Valores iniciales y declaracin de RPG . . . . . Declaracin de RPG . . . . . . . . . .

199 199 199 201 201

Captulo 21. MQXQH - Cabecera de cola de transmisin . . . . . . . . . . . . . 203 Visin general . . . . . . . . . . . . . 203 Campos . . . . . . . . . . . . . . . 206 Valores iniciales y declaracin de RPG . . . . . 207 Declaracin de RPG . . . . . . . . . . 207

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 1. Tipos de datos elementales


En este captulo se describen los tipos de datos elementales utilizados por la MQI. Los tipos de datos elementales son los siguientes: v MQBYTE Byte v MQBYTEn Serie de n bytes v MQCHAR Carcter de un nico byte v MQCHARn Serie de n caracteres de un nico byte v MQHCONN Asa de conexin v MQHOBJ Asa de objeto v MQLONG Entero largo

Convenios utilizados en las descripciones de los tipos de datos


Para cada tipo de datos elemental, este captulo proporciona una descripcin de su utilizacin, en un formato independiente del lenguaje de programacin. A esto le sigue una declaracin tpica en la versin ILE del lenguaje de programacin RPG. Las definiciones de los tipos de datos elementales se incluyen aqu para proporcionar coherencia. RPG utiliza especificaciones D all donde se pueden declarar campos de trabajo utilizando cualesquiera atributos que sean necesarios. No obstante, esto se puede hacer en las especificaciones de clculo donde se utiliza el campo. Para utilizar los tipos de datos elementales, debe crear: v Un miembro /COPY que contenga todos los tipos de datos, o v Una estructura de datos externa (PF) que contenga todos los tipos de datos. Entonces deben especificarse los campos de trabajo con atributos LIKE para el campo de tipo de datos adecuado. La ventaja de la segunda opcin es que las definiciones se pueden utilizar como un ARCHIVO DE REFERENCIA DE CAMPOS para otros objetos de AS/400. Si cambia una definicin de tipo de datos MQ, es relativamente sencillo volver a crear estos objetos.

Tipos de datos elementales


Todos los dems tipos de datos que se describen en este captulo equivalen directamente a los tipos de datos elementales, o a agregados de los tipos de datos elementales (matrices o estructuras).

MQBYTE - Byte
El tipo de datos MQBYTE representa un solo byte de datos. El byte no tiene ninguna interpretacin determinada; se trata como una serie de bits, y no como un carcter o nmero binario. No se requiere ninguna alineacin especial. A veces se utiliza una matriz de MQBYTE para representar un rea de almacenamiento principal cuya naturaleza desconoce el gestor de colas. Por ejemplo, el rea puede contener datos de mensajes de aplicacin o una estructura. La alineacin del lmite de este rea debe ser compatible con la naturaleza de los datos que contiene.
Copyright IBM Corp. 1994, 2000

Tipos de datos elementales

MQBYTEn Serie de n bytes


Cada tipo de datos MQBYTEn representa una serie de n bytes, siendo n uno de los siguientes valores: 16, 24, 32 64 Cada byte se describe mediante el tipo de datos MQBYTE. No se requiere ninguna alineacin especial. Si los datos de la serie tienen una longitud menor que la longitud definida de la serie, los datos deben rellenarse con nulos para completar la serie. Cuando el gestor de colas devuelve series de bytes a la aplicacin (por ejemplo, en la llamada MQGET), el gestor de colas siempre rellena con nulos hasta llegar a la longitud definida de la serie. Existen constantes que definen las longitudes de los campos de tipo serie de bytes; vea LN* (Longitudes de campos de tipo serie de caracteres y de tipo byte) en la pgina 443.

MQCHAR Carcter
El tipo de datos MQCHAR representa un nico carcter. El identificador de juego de caracteres del carcter es el mismo que el del gestor de colas (vase el atributo CodedCharSetId en la pgina 340). No se requiere ninguna alineacin especial. Nota: Los datos de mensajes de aplicacin especificados en las llamadas MQGET, MQPUT, y MQPUT1 se describen mediante el tipo de datos MQBYTE, no mediante el tipo de datos MQCHAR.

MQCHARn Serie de n caracteres


Cada tipo de datos MQCHARn representa una serie de n caracteres, siendo n uno de los siguientes valores: 4, 8, 12, 16, 20, 28, 32, 48, 64, 128 256 Cada carcter se describe mediante el tipo de datos MQCHAR. No se requiere ninguna alineacin especial. Si los datos de la serie tienen una longitud menor que la longitud definida de la serie, los datos deben rellenarse con espacios en blanco para completar la serie. En algunos casos, se puede utilizar un carcter nulo para finalizar la serie prematuramente, en lugar de rellenar con espacios en blanco; el carcter nulo y los caracteres que le siguen se tratan como espacios en blanco, hasta llegar a la longitud definida de la serie. Los lugares en los que se pueden utilizar nulos se identifican en las descripciones de los tipos de datos y la llamada. Cuando el gestor de colas devuelve series de caracteres a la aplicacin (por ejemplo, en la llamada MQGET), el gestor de colas siempre rellena con espacios en blanco hasta llegar a la longitud definida de la serie; el gestor de colas no utiliza el carcter nulo para delimitar la serie. Existen constantes que definen las longitudes de los campos de tipo serie de caracteres; vea LN* (Longitudes de campos de tipo serie de caracteres y de tipo byte) en la pgina 443.

Consulta de programacin de aplicaciones (ILE RPG)

Tipos de datos elementales

MQHCONN Asa de conexin


El tipo de datos MQHCONN representa un asa de conexin, es decir, la conexin con un gestor de colas determinado. El asa de conexin debe estar alineada en su lmite natural. Nota: Las aplicaciones deben comprobar las variables de este tipo nicamente para la condicin de igualdad.

MQHOBJ Asa de objeto


El tipo de datos MQHOBJ representa un asa de objeto que proporciona acceso a un objeto. El asa de objeto debe estar alineada en su lmite natural. Nota: Las aplicaciones deben comprobar las variables de este tipo nicamente para la condicin de igualdad.

MQLONG Entero largo


El tipo de datos MQLONG es un entero binario con signo de 32 bits que puede tener cualquiera de los valores comprendidos entre 2.147.483.648 y +2.147.483.647 (a menos que el contexto establezca otras restricciones) y debe estar alineado en su lmite natural.

Tipos de datos elementales


Tabla 1. Tipos de datos elementales
Tipo de datos MQBYTE MQBYTE16 MQBYTE24 MQBYTE32 MQBYTE64 MQCHAR MQCHAR4 MQCHAR8 MQCHAR12 MQCHAR16 MQCHAR20 MQCHAR28 MQCHAR32 MQCHAR48 MQCHAR64 MQCHAR128 MQCHAR256 MQHCONN MQHOBJ MQLONG PMQLONG Representacin Un campo alfanumrico de 1 byte. Un campo alfanumrico de 16 bytes. Un campo alfanumrico de 24 bytes. Un campo alfanumrico de 32 bytes. Un campo alfanumrico de 64 bytes. Un campo alfanumrico de 1 byte. Un campo alfanumrico de 4 bytes. Un campo alfanumrico de 8 bytes. Un campo alfanumrico de 12 bytes. Un campo alfanumrico de 16 bytes. Un campo alfanumrico de 20 bytes. Un campo alfanumrico de 28 bytes. Un campo alfanumrico de 32 bytes. Un campo alfanumrico de 48 bytes. Un campo alfanumrico de 64 bytes. Un campo alfanumrico de 128 bytes. Un campo alfanumrico de 256 bytes. Un entero con signo de 10 dgitos. Un entero con signo de 10 dgitos. Un entero con signo de 10 dgitos. Un entero con signo de 10 dgitos.

Captulo 1. Tipos de datos elementales

Tipos de datos elementales

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 2. Tipos de datos de estructura Consideraciones sobre programacin


En este captulo se describen los tipos de datos de estructura utilizados por la MQI, que son los siguientes: v MQGMO Opciones de obtener mensaje v MQMD Descriptor de mensaje v MQMDE Extensin de descriptor de mensaje v MQOD Descriptor de objeto v MQOR Registro de objeto v MQPMO Opciones de poner mensaje v MQPMR Registro de poner mensaje v MQRMH Cabecera de referencia de mensaje v MQRR Registro de respuesta La MQI tambin utiliza los siguientes tipos de datos de estructura, que se incluyen en este captulo para que la informacin sea completa, pero que no forman parte de la interfaz de programacin de aplicaciones. v MQCIH Cabecera de puente CICS v MQDH Cabecera de distribucin v MQDLH Cabecera de mensaje no entregado v MQIIH Cabecera de puente IMS v MQTM Mensaje desencadenante v MQTMC2 Mensaje desencadenante (formato de caracteres 2) v MQWIH Cabecera de informacin de trabajo v MQXQH Cabecera de cola de transmisin Nota: La estructura del parmetro de rutina de salida de conversin de datos MQDXP figura en el Apndice F. Conversin de datos en la pgina 485, junto con las llamadas de conversin de datos asociadas.

Convenios utilizados en las descripciones de los tipos de datos


La descripcin de cada tipo de datos de estructura contiene las siguientes secciones: Nombre de estructura El nombre de la estructura, seguido de una breve descripcin de para qu sirve la estructura. Campos En cada campo, el nombre va seguido de su tipo de datos elemental entre parntesis ( ); por ejemplo: Versin (entero con signo de 10 dgitos) Tambin encontrar una descripcin de para qu sirve el campo, junto con una lista de los valores que este puede adoptar. Los nombres de las constantes se muestran en maysculas; por ejemplo, GMSIDV. Los conjuntos de constantes que tienen el mismo prefijo se representan con el carcter *, por ejemplo: IA*. En las descripciones de los campos, se utilizan los siguientes trminos:
Copyright IBM Corp. 1994, 2000

Tipos de datos de estructura


entrada El usuario proporciona informacin en el campo al efectuar una llamada. salida El gestor de colas devuelve informacin en el campo cuando la llamada se completa o falla. entrada/salida El usuario proporciona informacin en el campo al efectuar una llamada y el gestor de colas cambia la informacin cuando la llamada se completa o falla. Valores iniciales Una tabla que muestra los valores iniciales para cada campo de los archivos de definicin de datos suministrados con la MQI. Declaracin ILE Declaracin tpica de la estructura en ILE.

Consideraciones sobre el lenguaje


Esta seccin contiene informacin que le ayudar a utilizar la MQI del lenguaje de programacin RPG.

Archivos COPY
Se proporcionan varios archivos COPY como parte de la definicin de la interfaz de cola de mensajes (MQI), que sirven de ayuda para escribir programas de aplicacin RPG que utilizan la gestin de colas de mensajes. Existen dos conjuntos de archivos COPY: v Los archivos COPY cuyos nombres terminan por la letra G se utilizan con programas que emplean el enlace esttico. v Los archivos COPY cuyos nombres terminan por la letra R se utilizan con programas que emplean el enlace dinmico. Los archivos COPY residen en QRPGLESRC en la biblioteca QMQM. Para cada conjunto de archivos COPY, existen dos archivos que contienen constantes con nombre, y un archivo para cada una de las estructuras. Los archivos COPY se resumen en la Tabla 2.
Tabla 2. Archivos COPY de RPG
Nombre archivo Nombre archivo Contenido (enlace esttico) (enlace dinmico) CMQBOG CMQCIHG CMQCNOG CMQDHG CMQDLHG CMQDXPG CMQGMOG CMQIIHG CMQMDG CMQCIHR CMQDHR CMQDLHR CMQDXPR CMQGMOR CMQIIHR CMQMDR Estructura de opciones de empezar Estructura de cabecera de informacin de CICS Estructura de opciones de conectar Estructura de cabecera de distribucin Estructura de cabecera de mensajes no entregados (mensajes en espera) Estructura de parmetro de rutina de salida de conversin de datos Estructura de opciones de obtener mensaje Estructura de cabecera de informacin de IMS Estructura de descriptor de mensaje

Consulta de programacin de aplicaciones (ILE RPG)

Consideraciones sobre el lenguaje


Tabla 2. Archivos COPY de RPG (continuacin)
Nombre archivo Nombre archivo Contenido (enlace esttico) (enlace dinmico) CMQMDEG CMQMD1G CMQODG CMQORG CMQPMOG CMQRRG CMQTMG CMQTMCG CMQTMC2G CMQWIHG CMQXQHG CMQG CMQXG CMQMDER CMQMD1R CMQODR CMQORR CMQPMOR CMQRRR CMQTMR CMQTMCR CMQTMC2R CMQWIHR CMQXQHR CMQR CMQXR Estructura de extensin de descriptor de mensaje Versin 1 de estructura de descriptor de mensaje Estructura de descriptor de objeto Estructura de registro de objeto Estructura de opciones de poner mensaje Estructura de registro de respuesta Estructura de mensaje desencadenante Estructura de mensaje desencadenante (formato de caracteres) Versin 2 de estructura de mensaje desencadenante (formato de caracteres) Estructura de cabecera de informacin de trabajo Estructura de cabecera de cola de transmisin Constantes con nombre para la MQI principal Constantes con nombre para rutina de salida de conversin de datos

Llamadas
En el Captulo 22. Descripciones de las llamadas en la pgina 211, las llamadas se describen utilizando sus nombres individuales. En RPG que utiliza el enlace dinmico, todas las llamadas se realizan al nombre nico QMQM, y la funcin concreta que es necesaria se especifica codificando un parmetro adicional que precede a los parmetros normales de la llamada. Las siguientes constantes con nombre se pueden utilizar para este parmetro adicional, a fin de identificar la funcin necesaria: Constante con nombre Funcin necesaria MQCLOS Cerrar objeto. MQCONN Conectar gestor de colas. MQDISC Desconectar gestor de colas. MQGET Obtener mensaje. MQINQ Consultar los atributos de objeto. MQOPEN Abrir objeto. MQPUT Poner mensaje. MQPUT1 Poner un solo mensaje. MQSET Establecer atributos de objeto.

Captulo 2. Tipos de datos de estructura Consideraciones sobre programacin

Consideraciones sobre el lenguaje


Estas constantes tienen nombres que son iguales que las llamadas que identifican, a excepcin de la constante para la llamada MQCLOSE, cuya abreviatura es MQCLOS. Nota: Las llamadas MQBACK, MQCMIT y MQCONNX no estn disponibles para las aplicaciones que se ejecutan en modalidad de compatibilidad.

Estructuras
A excepcin de la estructura MQTMC, todas las estructuras MQ se definen con valores iniciales para los campos. Estos valores iniciales se definen en la tabla que corresponde a cada estructura. Las declaraciones de estructuras no contienen sentencias DS. Esto permite a la aplicacin declarar una nica estructura de datos o una estructura de datos que aparezca varias veces, codificando la sentencia DS y, a continuacin, utilizando la sentencia /COPY para copiar en el resto de la declaracin:
D*..1....:....2....:....3....:....4....:....5....:....6....:....7 D* Declarar una estructura de datos MQMD con 5 apariciones DMYMD DS 5 D/COPY CMQMDR

Convenios de notacin
En las siguientes secciones se explica lo siguiente: v Cmo se deben invocar las llamadas v Cmo se deben declarar los parmetros v Cmo se deben declarar los diversos tipos de datos En algunos casos, los parmetros son series de caracteres o matrices cuyo tamao no es fijo. En tales casos se utiliza una letra n minscula para representar una constante numrica. Cuando la declaracin para estos parmetros se codifica, la n debe sustituirse por el valor numrico necesario.

Procedimientos MQI
Cuando se utilizan las llamadas de enlace ILE, es preciso enlazar con los procedimientos MQI al crear el programa. Estos procedimientos se exportan desde los siguientes programas de servicio, segn convenga: QMQM/AMQZSTUB Este programa de servicio proporciona enlaces de compatibilidad para aplicaciones escritas antes de la versin 5.1 que no necesitan acceso a ninguna de las nuevas posibilidades que ofrece la versin 5.1. La signatura de este programa de servicio coincide con la que contiene la versin 4.2.1. QMQM/LIBMQM Este programa de servicio contiene los enlaces monohebra para la versin 5.1. Consulte ms adelante las consideraciones especiales sobre cmo escribir aplicaciones con hebras. QMQM/LIBMQM_R Este programa de servicio contiene los enlaces multihebra para la versin 5.1. Consulte ms adelante las consideraciones especiales sobre cmo escribir aplicaciones con hebras. Utilice el mandato CRTPGM para crear sus programas. Por ejemplo, el siguiente mandato creara un programa monohebra que utiliza las llamadas de enlace ILE:
CRTPGM PGM(MYPROGRAM) BNDSRVPGM(QMQM/LIBMQM)

10

Consulta de programacin de aplicaciones (ILE RPG)

Consideraciones sobre el lenguaje

Consideraciones sobre las hebras


En general, los programas RPG no deben utilizar los programas de servicio multihebra. Son excepciones los programas RPG creados con la versin 4.4 del compilador ILE RPG y que contienen la palabra clave THREAD(*SERIALIZE) en la especificacin de control. Sin embargo, aunque estos programas son seguros en la ejecucin multihebra, hay que prestar mucha atencin al diseo global de la aplicacin, pues THREAD(*SERIALIZE) fuerza la serializacin de los procedimientos RPG a nivel de mdulo y esto puede tener efectos negativos sobre el rendimiento global. Cuando los programas RPG se utilizan como rutinas de salida de conversin de datos, es preciso hacer que sean seguros en la ejecucin multihebra, y tambin hay que recompilarlos utilizando la versin 4.4 del compilador ILE RPG con la palabra clave THREAD(*SERIALIZE) especificada en la especificacin de control. Para obtener ms informacin acerca de las hebras, vea las publicaciones AS/400 ILE RPG/400 Consulta y AS/400 ILE RPG/400 Gua del programador.

Parmetros de llamada MQI


Muchos parmetros pasados a la MQI pueden tener ms de una funcin concurrente. Esto se debe a que el valor entero pasado suele comprobarse segn el valor de los bits individuales que hay dentro del campo, y no segn su valor total. Esto le permite aadir varias funciones conjuntamente y pasarlas como un nico parmetro.

Constantes con nombre


Hay un gran nmero de valores distintos de tipo carcter y entero que proporcionan intercambio de datos entre el programa de aplicacin y la MQI. Con el fin de facilitar un mtodo ms legible y coherente de utilizar esos valores, a todos se les han asignado constantes con nombre. Se recomienda utilizar las constantes con nombre y no los valores que representan, pues con ello mejora la legibilidad del cdigo fuente del programa. Asimismo, si el valor de alguna de esas constantes cambia, solo ser necesario volver a compilar el programa para incorporar los cambios. Todas las constantes con nombre estn disponibles haciendo referencia a los miembros de COPY.

Control de compromiso
Las funciones de punto de sincronizacin MQCMIT y MQBACK de MQI estn disponibles para los programas ILE RPG que se ejecutan en la modalidad normal; estas llamadas permiten al programa comprometer y restituir los cambios realizados en los recursos de MQ. Las llamadas MQCMIT y MQBACK no estn disponibles para los programas ILE RPG que se ejecutan en la modalidad de compatibilidad. En esos programas se deben utilizar los cdigos de operacin COMMIT y ROLBK.

Captulo 2. Tipos de datos de estructura Consideraciones sobre programacin

11

Consideraciones sobre el lenguaje

Codificacin de las llamadas de enlace


Los procedimientos ILE de MQI se enumeran en la Tabla 3.
Tabla 3. Llamadas de servicio ILE RPG soportadas por cada programa de servicio
Nombre de llamada MQBACK MQBEGIN MQCMIT MQCLOSE MQCONN MQCONNX MQDISC MQGET MQINQ MQOPEN MQPUT MQPUT1 MQSET MQXCNVC LIBMQM y LIBMQM_R U U U U U U U U U U U U U U U U U U U U U U U U AMQZSTUB AMQVSTUB

Para utilizar estos procedimientos es necesario hacer lo siguiente: 1. Definir los procedimientos externos en las especificaciones D. Estn todos disponibles dentro del miembro de archivo COPY CMQG que contiene las constantes con nombre. 2. Utilizar el cdigo de operacin CALLP para llamar al procedimiento junto con sus parmetros. Por ejemplo, la llamada MQOPEN requiere la inclusin del siguiente cdigo:
D****************************************************************** D** Llamada MQOPEN -- Abrir objeto (Desde archivo COPY CMQG) ** D****************************************************************** D* D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQOPEN PR EXTPROC('MQOPEN') D* Asa de conexin D HCONN 10I 0 VALUE D* Descriptor de objeto D OBJDSC 224A D* Opciones que controlan la accin de MQOPEN D OPTS 10I 0 VALUE D* Asa de objeto D HOBJ 10I 0 D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0 D*

Para llamar al procedimiento, despus de inicializar los distintos parmetros es necesario el siguiente cdigo:
...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+....8 C CALLP MQOPEN(HCONN : MQOD : OPTS : HOBJ : C CMPCOD : REASON)

12

Consulta de programacin de aplicaciones (ILE RPG)

Consideraciones sobre el lenguaje


Aqu, la estructura MQOD se define utilizando el miembro de COPY CMQODG, que la desglosa en sus componentes.

Codificacin de las llamadas dinmicas


Para utilizar la MQI mediante llamadas dinmicas a QMQM se necesita el siguiente cdigo. El ejemplo vuelve a ser MQOPEN:
...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... C Z-ADD MQOPEN C CALL 'QMQM' C PARM C PARM C PARM C PARM C PARM C PARM C PARM * 5 ...+... 6 ...+... 7 ...+....8 CID CID HCONN MQOD OPTS HOBJ CMPCOD REASON 9 0 9 0 9 9 9 9 0 0 0 0

Aqu, la estructura MQOD se define utilizando el miembro de COPY CMQODR, que la divide en sus componentes. Nota: Las llamadas que utilizan el enlace dinmico no pueden acceder a las nuevas funciones de la versin 5 release 1. Por ejemplo, las llamadas MQBACK, MQBEGIN, MQCMIT y MQCONNX se pueden utilizar solamente con el enlace esttico.

Captulo 2. Tipos de datos de estructura Consideraciones sobre programacin

13

Consideraciones sobre el lenguaje

14

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 3. MQBO - Opciones de empezar


En la siguiente tabla se resumen los campos de la estructura.
Tabla 4. Campos de MQBO
Campo BOSID BOVER BOOPT Descripcin Identificador de estructura Nmero de versin de estructura Opciones que controlan la accin de MQBEGIN Pgina 15 15 15

Visin general
La estructura MQBO es un parmetro de entrada/salida para la llamada MQBEGIN. Esta estructura est soportada en los siguientes entornos: AIX, HP-UX, OS/2, OS/400, Sun Solaris, Windows NT.

Campos
BOSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: BOSIDV Identificador de la estructura de opciones de empezar. Siempre es un campo de entrada. El valor inicial de este campo es BOSIDV. BOVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser: BOVER1 Nmero de versin de la estructura de opciones de empezar. La siguiente constante especifica el nmero de la versin actual: BOVERC Versin actual de la estructura de opciones de empezar. Siempre es un campo de entrada. El valor inicial de este campo es BOVER1. BOOPT (entero con signo de 10 dgitos) Opciones que controlan la accin de MQBEGIN. El valor debe ser: BONONE No se especifican opciones. Siempre es un campo de entrada. El valor inicial de este campo es BONONE.
Copyright IBM Corp. 1994, 2000

15

MQBO - Opciones de empezar

Valores iniciales y declaracin RPG


Tabla 5. Valores iniciales de campos de MQBO
Nombre de campo BOSID BOVER BOOPT Notas: 1. El smbolo b representa un carcter en blanco. Nombre de constante BOSIDV BOVER1 BONONE Valor de constante 'BObb' (Ver nota 1) 1 0

Declaracin RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQBO D* D* Identificador de estructura D BOSID 1 4 D* Nmero de versin de la estructura D BOVER 5 8I 0 D* Opciones que controlan la accin de MQBEGIN D BOOPT 9 12I 0

16

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 4. MQCIH - Cabecera de puente CICS


En la siguiente tabla se resumen los campos de la estructura.
Tabla 6. Campos de MQCIH
Campo CISID CIVER CILEN CIENC CICSI CIFMT CIFLG CIRET CICC CIREA CIUOW CIGWI CILT CIODL CIFKT CIADS CICT CITES CIFAC CIFNC CIAC CIAUT CIRFM CIRSI CIRTI CITI CIFL CIAI CISC CICNC CINTI CICP
Copyright IBM Corp. 1994, 2000

Descripcin Identificador de estructura Nmero de versin de estructura Longitud de estructura MQCIH Reservado Reservado Nombre del formato MQ siguen a MQCIH Distintivos Cdigo de retorno del puente Cdigo de terminacin de MQ o CICS EIBRESP Cdigo de razn o de informacin de retorno de MQ, o CICS EIBRESP2 Control de unidad de trabajo

Pgina 19 19 19 20 20 de los datos que 20 20 20 21 21 21

Intervalo de espera para llamada MQGET emitida 22 por tarea de puente Tipo de enlace Longitud de datos de COMMAREA de salida Tiempo de liberacin de recurso de puente Descriptor ADS de envo/recepcin Indica si la tarea puede ser conversacional Estado al final de la tarea Valor de smbolo BVT Nombre de llamada MQ o funcin CICS EIBFN Cdigo abend (finalizacin anmala) Contrasea o certificado de acceso 22 22 23 23 23 24 24 24 25 25

Nombre del formato MQ del mensaje de respuesta 25 ID de sistema remoto que se ha de utilizar ID de transaccin remota que se ha de conectar Transaccin que se ha de conectar Atributos emulados de terminal Clave AID Cdigo de inicio de transaccin Cdigo abend de transaccin Siguiente transaccin que se ha de conectar 26 26 26 26 26 26 27 27

Nota: Los campos restantes no estn presentes si CIVER es menor que CIVER2. Posicin del cursor 28

17

MQCIH - Cabecera de puente CICS


Tabla 6. Campos de MQCIH (continuacin)
Campo CIEO CIII Descripcin Desplazamiento de error en mensaje Nmero de elemento del ltimo mensaje ledo Pgina 28 28

Visin general
La estructura MQCIH describe la informacin que puede estar presente al principio de un mensaje enviado al puente CICS a travs de MQSeries para OS/390. La estructura se puede omitir si los valores que necesita la aplicacin son los mismos que los valores iniciales mostrados en la Tabla 8 en la pgina 28 y el puente se ejecuta con AUTH=LOCAL o IDENTIFY. El nombre del formato de esta estructura es FMCICS. La versin actual de MQCIH es CIVER2. Los campos que existen solamente en la estructura de la versin 2 se identifican como tales en las descripciones que siguen. La declaracin de MQCIH proporcionada en el archivo COPY contiene los nuevos campos, con el valor inicial del campo CIVER establecido en GMVER2. Son aplicables condiciones especiales para el juego de caracteres y la codificacin que se utilizan para la estructura MQCIH y los datos de mensajes de aplicacin: v Las aplicaciones que se conectan al gestor de colas que es propietario de la cola del puente CICS deben proporcionar una estructura MQCIH que tenga el juego de caracteres y la codificacin del gestor de colas. Esto se debe a que la conversin de datos de la estructura MQCIH no se lleva a cabo en este caso. v Las aplicaciones que se conectan a otros gestores de colas pueden proporcionar una estructura MQCIH que tenga cualquiera de los juegos de caracteres y codificaciones soportados; la conversin de los datos de mensajes de aplicacin y de MQCIH la lleva a cabo el gestor de colas, segn convenga. Nota: Existe una excepcin a esta regla. Si el gestor de colas que es propietario de la cola del puente CICS utiliza CICS para la gestin de colas distribuidas, la MQCIH debe tener el juego de caracteres y la codificacin de ese gestor de colas. v Los datos de mensajes de aplicacin que siguen a la estructura MQCIH deben tener el mismo juego de caracteres y la misma codificacin que la estructura MQCIH. Los campos CICSI y CIENC de la estructura MQCIH no se pueden utilizar para especificar el juego de caracteres y la codificacin de los datos de mensajes de aplicacin. La aplicacin debe asegurar que los campos documentados como campos de peticin tienen valores adecuados en el mensaje que la aplicacin enva al puente CICS; estos campos se entran en el puente. Los campos documentados como campos de respuesta los establece el puente CICS en el mensaje de respuesta que enva a la aplicacin. La informacin de error se devuelve en los campos CIRET, CIFNC, CICC, CIREA y CIAC. El que se establezca uno u otro depende del valor del campo CIRET; consulte la Tabla 7.
Tabla 7. Contenido de los campos de informacin de error de la estructura MQCIH
CIRET CRC000 CIFNC CICC CIREA CIAC

18

Consulta de programacin de aplicaciones (ILE RPG)

MQCIH - Cabecera de puente CICS


Tabla 7. Contenido de los campos de informacin de error de la estructura MQCIH (continuacin)
CIRET CRC003 CRC002 CRC008 CRC001 CRC006 CRC007 CRC009 CRC004 CRC005 CIFNC Nombre llamada MQ CICS EIBFN CICC MQ CMPCOD CICS EIBRESP CIREA FBC* MQ REASON CICS EIBRESP2 CIAC CICS ABCODE

Campos
CISID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: CISIDV Identificador de la estructura de cabecera de informacin de CICS. Es un campo de peticin. El valor inicial de este campo es CISIDV. CIVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser uno de los siguientes: CIVER1 Estructura de cabecera de informacin de CICS de la versin 1. CIVER2 Estructura de cabecera de informacin de CICS de la versin 2. Los campos que existen solamente en la estructura de la versin 2 se identifican como tales en las descripciones que siguen. La siguiente constante especifica el nmero de la versin actual: CIVERC Estructura de cabecera de informacin de CICS de la versin actual. Es un campo de peticin. El valor inicial de este campo es CIVER2. CILEN (entero con signo de 10 dgitos) Longitud de la estructura MQCIH. El valor debe ser uno de los siguientes: CILEN1 Longitud de la estructura de cabecera de informacin de CICS de la versin 1. CILEN2 Longitud de la estructura de cabecera de informacin de CICS de la versin 2. La siguiente constante especifica la longitud de la versin actual: CILENC Longitud de la estructura de cabecera de informacin de CICS de la versin actual.
Captulo 4. MQCIH - Cabecera de puente CICS

19

MQCIH - Cabecera de puente CICS


Es un campo de peticin. El valor inicial de este campo es CILEN2. CIENC (entero con signo de 10 dgitos) Reservado. Es un campo reservado; su valor no es significativo. El valor inicial de este campo es 0. CICSI (entero con signo de 10 dgitos) Reservado. Es un campo reservado; su valor no es significativo. El valor inicial de este campo es 0. CIFMT (serie de caracteres de 8 bytes) Nombre del formato MQ de los datos que siguen a MQCIH. Es el nombre del formato MQ de los datos que siguen a la estructura MQCIH. Las reglas para codificarlo son las mismas que las del campo MDFMT de MQMD. Este nombre de formato tambin se utiliza para el mensaje de respuesta, si el campo CIRFM tiene el valor FMNONE. Si el mensaje de peticin tiene como resultado la generacin de un mensaje de respuesta de error, este tiene el nombre de formato FMSTR. Es un campo de peticin. La longitud de este campo la proporciona LNFMT. El valor inicial de este campo es FMNONE. CIFLG (entero con signo de 10 dgitos) Distintivos. El valor debe ser: CIFNON Sin distintivos. Es un campo de peticin. El valor inicial de este campo es CIFNON. CIRET (entero con signo de 10 dgitos) Cdigo de retorno del puente. Es el cdigo de retorno del puente CICS que describe el resultado del proceso llevado a cabo por el puente. Los campos CIFNC, CICC, CIREA y CIAC pueden contener informacin adicional (consulte la Tabla 7 en la pgina 18). El valor es uno de los siguientes valores: CRC000 (0, X'000') No hay ningn error. CRC001 (1, X'001') La sentencia EXEC de CICS detect un error. CRC002 (2, X'002') La llamada MQ detect un error. CRC003 (3, X'003') El puente CICS detect un error. CRC004 (4, X'004') El puente CICS finaliz de forma no satisfactoria.

20

Consulta de programacin de aplicaciones (ILE RPG)

MQCIH - Cabecera de puente CICS


CRC005 (5, X'005') La aplicacin finaliz de forma no satisfactoria. CRC006 (6, X'006') Se produjo un error de seguridad. CRC007 (7, X'007') Programa no disponible. CRC008 (8, X'008') El segundo o ltimo mensaje de la unidad de trabajo actual no se recibi en el tiempo especificado. CRC009 (9, X'009') Transaccin no disponible. Es un campo de respuesta. El valor inicial de este campo es CRC000. CICC (entero con signo de 10 dgitos) Cdigo de terminacin MQ o CICS EIBRESP. El valor devuelto en este campo depende de CIRET; consulte la Tabla 7 en la pgina 18. Es un campo de respuesta. El valor inicial de este campo es CCOK CIREA (entero con signo de 10 dgitos) Cdigo de razn o de informacin de retorno MQ, o CICS EIBRESP2. El valor devuelto en este campo depende de CIRET; consulte la Tabla 7 en la pgina 18. Es un campo de respuesta. El valor inicial de este campo es RCNONE. CIUOW (entero con signo de 10 dgitos) Control de unidad de trabajo. Controla el proceso de la unidad de trabajo llevado a cabo por el puente CICS. Se puede solicitar que el puente ejecute una nica transaccin, o uno o ms programas dentro de una unidad de trabajo. El campo indica si el puente CICS debe iniciar una unidad de trabajo, realizar la funcin solicitada dentro de la unidad de trabajo actual, o finalizar la unidad de trabajo comprometindola o restituyndola. Hay varias combinaciones aceptadas, a fin de optimizar los flujos de transmisin de datos. El valor debe ser uno de los siguientes: CUONLY Iniciar unidad de trabajo, realizar funcin y, a continuacin, comprometer la unidad de trabajo (DPL y 3270). CUCONT Datos adicionales para la unidad de trabajo actual (3270 solamente). CUFRST Iniciar unidad de trabajo y realizar funcin (DPL solamente). CUMIDL Realizar funcin dentro de la unidad de trabajo actual (DPL solamente).

Captulo 4. MQCIH - Cabecera de puente CICS

21

MQCIH - Cabecera de puente CICS


CULAST Realizar funcin y, a continuacin, comprometer la unidad de trabajo (DPL solamente). CUCMIT Comprometer la unidad de trabajo (DPL solamente). CUBACK Restituir la unidad de trabajo (DPL solamente). Es un campo de peticin. El valor inicial de este campo es CUONLY. CIGWI (entero con signo de 10 dgitos) Intervalo de espera para llamada MQGET emitida por tarea de puente. Este campo solo es aplicable cuando CIUOW tiene el valor CUFRST. Permite que la aplicacin emisora especifique el tiempo aproximado, en milisegundos, que las llamadas MQGET emitidas por el puente deben esperar a los mensajes de peticin segundo y posteriores para la unidad de trabajo iniciada por este mensaje. Esto prevalece sobre el intervalo de espera por omisin utilizado por el puente. Se pueden utilizar los siguientes valores especiales: WIDFLT Intervalo de espera por omisin. Hace que el puente CICS espere durante el tiempo que se especific al iniciar el puente. WIULIM Intervalo de espera ilimitado. Es un campo de peticin. El valor inicial de este campo es WIDFLT. CILT (entero con signo de 10 dgitos) Tipo de enlace. Indica el tipo de objeto que el puente debe intentar enlazar. El valor debe ser uno de los siguientes: LTPROG Programa DPL. LTTRAN Transaccin 3270. Es un campo de peticin. El valor inicial de este campo es LTPROG. CIODL (entero con signo de 10 dgitos) Longitud de datos de la COMMAREA de salida. Es la longitud de los datos de usuario que se han de devolver al cliente en un mensaje de respuesta. Esta longitud incluye el nombre de programa de 8 bytes. La longitud de la COMMAREA pasada al programa enlazado es la mxima entre la longitud de este campo y la longitud de los datos de usuario del mensaje de peticin, menos 8. Nota: La longitud de los datos de usuario de un mensaje es la longitud del mensaje excluida la estructura MQCIH.

22

Consulta de programacin de aplicaciones (ILE RPG)

MQCIH - Cabecera de puente CICS


Si la longitud de los datos de usuario del mensaje de peticin es menor que CIODL, se utiliza la opcin DATALENGTH del mandato LINK; esto permite que el LINK sea enviado eficazmente por la funcin a otra regin CICS. Se puede utilizar el siguiente valor especial: OLINPT La longitud de salida es la misma que la de entrada. Este valor puede ser necesario incluso en el caso de que no se solicite respuesta, con el fin de asegurar que la COMMAREA pasada al programa enlazado tenga el tamao suficiente. Es un campo de peticin que solo se utiliza para programas DPL. El valor inicial de este campo es OLINPT. CIFKT (entero con signo de 10 dgitos) Tiempo de liberacin de recurso de puente. Es la cantidad de tiempo, en segundos, que el recurso de puente se mantendr despus de que finalice la transaccin de usuario. Es un campo de peticin que solo se utiliza para transacciones 3270. El valor inicial de este campo es 0. CIADS (entero con signo de 10 dgitos) Descriptor ADS de envo/recepcin. Es un indicador que especifica si deben enviarse descriptores ADS en las peticiones SEND y RECEIVE de BMS. El valor debe ser uno de los siguientes: ADNONE Sin descriptor ADS. ADSEND Descriptor ADS de envo. ADRECV Descriptor ADS de recepcin. ADMSGF Descriptor ADS de recepcin. Es un campo de peticin que solo se utiliza para transacciones 3270. El valor inicial de este campo es ADNONE. CICT (entero con signo de 10 dgitos) Indica si la tarea puede ser conversacional. Es un indicador que especifica si se debe permitir que la tarea emita peticiones de informacin adicional, o si debe finalizar de forma anmala. El valor debe ser uno de los siguientes: CTYES La tarea es conversacional. CTNO La tarea no es conversacional. Es un campo de peticin que solo se utiliza para transacciones 3270. El valor inicial de este campo es CTNO.
Captulo 4. MQCIH - Cabecera de puente CICS

23

MQCIH - Cabecera de puente CICS


CITES (entero con signo de 10 dgitos) Estado al final de la tarea. Este campo muestra el estado de la transaccin de usuario al final de la tarea. Se devuelve uno de los siguientes valores: TENOSY No sincronizada. La transaccin de usuario todava no se ha completado y no se ha sincronizado. TECMIT Comprometer la unidad de trabajo. La transaccin de usuario todava no se ha completado, pero ha sincronizado la primera unidad de trabajo. TEBACK Restituir la unidad de trabajo. La transaccin de usuario todava no se ha completado. La unidad de trabajo actual se restituir. TEENDT Finalizar tarea. La transaccin de usuario ha finalizado (o ha finalizado de forma anmala). Es un campo de respuesta que solo se utiliza para transacciones 3270. El valor inicial de este campo es TENOSY. CIFAC (serie de bits de 8 bytes) Valor de smbolo BVT. Es un smbolo de recurso de puente de 8 bytes. El propsito de un smbolo de recurso de puente es permitir que varias transacciones de una seudoconversacin utilicen el mismo recurso de puente (terminal 3270 virtual). En el primer o nico mensaje de una seudoconversacin, hay que establecer un valor FCNONE; esto indica a CICS que asigne un nuevo recurso de puente para este mensaje. Se devuelve un smbolo de recurso de puente en mensajes de respuesta cuando se especifica un CIFKT distinto de cero en el mensaje de entrada. Los mensajes de entrada posteriores pueden utilizar entonces el mismo smbolo de recurso de puente. Se define el siguiente valor especial: FCNONE No se ha especificado ningn smbolo BVT. Es un campo de peticin y de respuesta que solo se utiliza para transacciones 3270. La longitud de este campo la proporciona LNFAC. El valor inicial de este campo es FCNONE. CIFNC (serie de caracteres de 4 bytes) Nombre de llamada MQ o funcin CICS EIBFN. El valor devuelto en este campo depende de CIRET; consulte la Tabla 7 en la pgina 18. Los siguientes valores son posibles cuando CIFNC contiene un nombre de llamada MQ:

24

Consulta de programacin de aplicaciones (ILE RPG)

MQCIH - Cabecera de puente CICS


CFCONN Llamada MQCONN. CFGET Llamada MQGET. CFINQ Llamada MQINQ. CFOPEN Llamada MQOPEN. CFPUT Llamada MQPUT. CFPUT1 Llamada MQPUT1. CFNONE Sin llamada. Es un campo de respuesta. La longitud de este campo la proporciona LNFUNC. El valor inicial de este campo es CFNONE. CIAC (serie de caracteres de 4 bytes) Cdigo abend (finalizacin anmala). El valor devuelto en este campo depende de CIRET; consulte la Tabla 7 en la pgina 18. Es un campo de respuesta. La longitud de este campo la proporciona LNABNC. El valor inicial del campo son 4 caracteres en blanco. CIAUT (serie de caracteres de 8 bytes) Contrasea o certificado de acceso. Es una contrasea o un certificado de acceso. Si la autentificacin de identificador de usuario est activa para el puente CICS, se utiliza CIAUT con el identificador de usuario del contexto de identidad MQMD para autentificar al emisor del mensaje. Es un campo de peticin. La longitud de este campo la proporciona LNAUTH. El valor inicial de este campo son 8 espacios en blanco. CIRS1 (serie de caracteres de 8 bytes) Reservado. Es un campo reservado. El valor debe ser 8 espacios en blanco. CIRFM (serie de caracteres de 8 bytes) Nombre del formato MQ del mensaje de respuesta. Es el nombre del formato MQ del mensaje de respuesta que se enviar en respuesta al mensaje actual. Las reglas para codificarlo son las mismas que las del campo MDFMT de MQMD. Es un campo de peticin que solo se utiliza para programas DPL. La longitud de este campo la proporciona LNFMT. El valor inicial de este campo es FMNONE.

Captulo 4. MQCIH - Cabecera de puente CICS

25

MQCIH - Cabecera de puente CICS


CIRSI (serie de caracteres de 4 bytes) ID de sistema remoto que se ha de utilizar. Es un campo reservado. El valor debe ser 4 espacios en blanco. La longitud de este campo la proporciona LNRSID. CIRTI (serie de caracteres de 4 bytes) ID de transaccin remota que se ha de conectar. Es un campo reservado. El valor debe ser 4 espacios en blanco. La longitud del campo la proporciona LNTRID. CITI (serie de caracteres de 4 bytes) Transaccin que se ha de conectar. Si CILT tiene el valor LTTRAN, CITI es el identificador de la transaccin de usuario que se ha de ejecutar; en este caso hay que especificar un valor distinto del blanco. Si CILT tiene el valor LTPROG, CITI es el cdigo de transaccin bajo el que se han de ejecutar todos los programas de la unidad de trabajo. Si el valor especificado es el espacio en blanco, se utiliza el cdigo de transaccin por omisin del puente DPL de CICS (CKBP). Si el valor no es el espacio en blanco, debe haberse definido en CICS como transaccin local cuyo programa inicial es CSQCBP00. Este campo solo es aplicable cuando CIUOW tiene el valor CUFRST o CUONLY. Es un campo de peticin. La longitud del campo la proporciona LNTRID. El valor inicial del campo es 4 espacios en blanco. CIFL (serie de caracteres de 4 bytes) Atributos emulados de terminal. Es el nombre de un terminal instalado que se ha de utilizar como modelo para el recurso de puente. Un valor de espacios en blanco significa que CIFL se toma de la definicin de perfil de transaccin de puente, o se utiliza un valor por omisin. Es un campo de peticin que solo se utiliza para transacciones 3270. La longitud de este campo la proporciona LNFACL. El valor inicial del campo es 4 espacios en blanco. CIAI (serie de caracteres de 4 bytes) Clave AID. Es el valor inicial de la clave AID cuando se inicia la transaccin. Es un valor de 1 byte, justificado por la izquierda. Es un campo de peticin que solo se utiliza para transacciones 3270. La longitud de este campo la proporciona LNATID. El valor inicial del campo es 4 espacios en blanco. CISC (serie de caracteres de 4 bytes) Cdigo de inicio de transaccin. Es un indicador que especifica si el puente emula una transaccin de terminal o una transaccin iniciada. El valor debe ser uno de los siguientes:

26

Consulta de programacin de aplicaciones (ILE RPG)

MQCIH - Cabecera de puente CICS


SCSTRT Inicio. SCDATA Datos de inicio. SCTERM Terminar entrada. SCNONE Ninguno. En la respuesta del puente, este campo se establece en el cdigo de inicio adecuado para el siguiente ID de transaccin que contiene el campo CINTI. La respuesta admite los siguientes cdigos de inicio: SCSTRT SCDATA SCTERM Para el servidor de transacciones CICS Versin 1.2, este campo es un campo de solo peticin; su valor en la respuesta no est definido. Para el servidor de transacciones CICS Versin 1.3 y releases posteriores, es un campo de peticin y de respuesta. Este campo solo se utiliza para transacciones 3270. La longitud de este campo la proporciona LNSTCO. El valor inicial del campo es SCNONE. CICNC (serie de caracteres de 4 bytes) Cdigo abend de transaccin. Es el cdigo abend que se ha de utilizar para finalizar la transaccin (normalmente una transaccin conversacional que solicita ms datos). De no ser as, el campo se establece en espacios en blanco. Es un campo de peticin que solo se utiliza para transacciones 3270. La longitud de este campo la proporciona LNCNCL. El valor inicial del campo es 4 espacios en blanco. CINTI (serie de caracteres de 4 bytes) Siguiente transaccin que se ha de conectar. Es el nombre de la siguiente transaccin devuelta por la transaccin del usuario (en general mediante EXEC CICS RETURN TRANSID). Si no hay ms transacciones, el campo se establece en espacios en blanco. Es un campo de respuesta que solo se utiliza para transacciones 3270. La longitud del campo la proporciona LNTRID. El valor inicial del campo es 4 espacios en blanco. CIRS2 (serie de caracteres de 8 bytes) Reservado. Es un campo reservado. El valor debe ser 8 espacios en blanco. CIRS3 (serie de caracteres de 8 bytes) Reservado. Es un campo reservado. El valor debe ser 8 espacios en blanco.
Captulo 4. MQCIH - Cabecera de puente CICS

27

MQCIH - Cabecera de puente CICS


Los campos restantes no estn presentes si CIVER es menor que CIVER2. CICP (entero con signo de 10 dgitos) Posicin del cursor. Es la posicin inicial del cursor cuando se inicia la transaccin. Posteriormente, y en las transacciones conversacionales, la posicin del cursor est en el vector RECEIVE. Es un campo de peticin que solo se utiliza para transacciones 3270. El valor inicial del campo es 0. Este campo no est presente si CIVER es menor que CIVER2. CIEO (entero con signo de 10 dgitos) Desplazamiento de error en mensaje. Es la posicin de los datos no vlidos detectados por la rutina de salida del puente. Este campo proporciona el desplazamiento desde el principio del mensaje hasta la ubicacin de los datos no vlidos. Es un campo de respuesta que solo se utiliza para transacciones 3270. El valor inicial del campo es 0. Este campo no est presente si CIVER es menor que CIVER2. CIII (entero con signo de 10 dgitos) Nmero de elemento del ltimo mensaje ledo. Es un campo reservado. El valor debe ser 0. Este campo no est presente si CIVER es menor que CIVER2. CIRS4 (entero con signo de 10 dgitos) Reservado. Es un campo reservado. El valor debe ser 0. Este campo no est presente si CIVER es menor que CIVER2.

Valores iniciales y declaracin RPG


Tabla 8. Valores iniciales de los campos de MQCIH
Nombre de campo CISID CIVER CILEN CIENC CICSI CIFMT CIFLG CIRET CICC CIREA CIUOW CIGWI CILT Nombre de constante CISIDV CIVER2 CILEN2 Ninguno Ninguno FMNONE CIFNON CRC000 CCOK RCNONE CUONLY WIDFLT LTPROG Valor de constante 'CIHb' (Ver nota 1) 2 180 0 0 'bbbbbbbb' 0 0 0 0 273 -2 1

| |

28

Consulta de programacin de aplicaciones (ILE RPG)

declaracin RPG
Tabla 8. Valores iniciales de los campos de MQCIH (continuacin)
Nombre de campo CIODL CIFKT CIADS CICT CITES CIFAC CIFNC CIAC CIAUT CIRS1 CIRFM CIRSI CIRTI CITI CIFL CIAI CISC CICNC CINTI CIRS2 CIRS3 CICP CIEO CIII CIRS4 Notas: 1. El smbolo b representa un carcter en blanco. Nombre de constante OLINPT Ninguno ADNONE CTNO TENOSY FCNONE CFNONE Ninguno Ninguno Ninguno FMNONE Ninguno Ninguno Ninguno Ninguno Ninguno SCNONE Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Valor de constante -1 0 0 0 0 Nulos 'bbbb' 'bbbb' 'bbbbbbbb' 'bbbbbbbb' 'bbbbbbbb' 'bbbb' 'bbbb' 'bbbb' 'bbbb' 'bbbb' 'bbbb' 'bbbb' 'bbbb' 'bbbbbbbb' 'bbbbbbbb' 0 0 0 0

| | | |

Declaracin RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQCIH D* D* Identificador de estructura D CISID 1 4 D* Nmero de versin de estructura D CIVER 5 8I 0 D* Longitud de estructura MQCIH D CILEN 9 12I 0 D* Reservado D CIENC 13 16I 0 D* Reservado D CICSI 17 20I 0 D* Nombre del formato MQ de los datos que siguen a MQCIH D CIFMT 21 28 D* Distintivos D CIFLG 29 32I 0
Captulo 4. MQCIH - Cabecera de puente CICS

29

declaracin RPG
D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D Cdigo de retorno del puente CIRET 33 36I 0 Cdigo de terminacin MQ o CICS EIBRESP CICC 37 40I 0 Cdigo de razn o de informacin de retorno MQ, o CICS EIBRESP2 CIREA 41 44I 0 Control de unidad de trabajo CIUOW 45 48I 0 Intervalo de espera para llamada MQGET emitida por tarea de puente CIGWI 49 52I 0 Tipo de enlace CILT 53 56I 0 Longitud de datos de la COMMAREA de salida CIODL 57 60I 0 Tiempo de liberacin de recurso de puente CIFKT 61 64I 0 Descriptor ADS de envo/recepcin CIADS 65 68I 0 Indica si la tarea puede ser conversacional CICT 69 72I 0 Estado al final de la tarea CITES 73 76I 0 Valor de smbolo BVT CIFAC 77 84 Nombre de llamada MQ o funcin CICS EIBFN CIFNC 85 88 Cdigo abend (finalizacin anmala) CIAC 89 92 Contrasea o certificado de acceso CIAUT 93 100 Reservado CIRS1 101 108 Nombre del formato MQ del mensaje de respuesta CIRFM 109 116 ID de sistema remoto que se ha de utilizar CIRSI 117 120 ID de transaccin remota que se ha de conectar CIRTI 121 124 Transaccin que se ha de conectar CITI 125 128 Atributos emulados de terminal CIFL 129 132 Clave AID CIAI 133 136 Cdigo de inicio de transaccin CISC 137 140 Cdigo abend de transaccin CICNC 141 144 Siguiente transaccin que se ha de conectar CINTI 145 148 Reservado CIRS2 149 156 Reservado CIRS3 157 164 Posicin del cursor CICP 165 168I 0 Desplazamiento de error en mensaje CIEO 169 172I 0 Nmero de elemento del ltimo mensaje ledo CIII 173 176I 0 Reservado CIRS4 177 180I 0

30

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 5. MQCNO - Opciones de conectar


En la siguiente tabla se resumen los campos de la estructura.
Tabla 9. Campos de MQCNO
Campo CNSID CNVER CNOPT CNCCO CNCCP Descripcin Identificador de estructura Nmero de versin de estructura Opciones que controlan la accin de MQCONNX Pgina 31 31 32

Nota: Los campos restantes no estn presentes si CNVER es menor que CNVER2. Desplazamiento de estructura MQCD para conexin de cliente Direccin de estructura MQCD para conexin de cliente 33 33

Visin general
La estructura MQCNO es un parmetro de entrada/salida de la llamada MQCONNX.

Campos
CNSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: CNSIDV Identificador de la estructura de opciones de conectar. Siempre es un campo de entrada. El valor inicial del campo es CNSIDV. CNVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser uno de los siguientes: CNVER1 Estructura de opciones de conectar de la versin 1. CNVER2 Estructura de opciones de conectar de la versin 2. Los campos que existen solamente en la estructura de la versin 2 se identifican como tales en las descripciones que siguen. La siguiente constante especifica el nmero de la versin actual: CNVERC Versin actual de la estructura de opciones de conectar. Siempre es un campo de entrada. El valor inicial del campo es CNVER1.

Copyright IBM Corp. 1994, 2000

31

MQCNO - Opciones de conectar


CNOPT (entero con signo de 10 dgitos) Opciones que controlan la accin de MQCONNX. Opciones de enlazar: Las siguientes opciones controlan el tipo de enlace MQ que se utilizar; solo se puede especificar una de estas opciones: CNSBND Enlace estndar. Esta opcin hace que la aplicacin y el agente del gestor de colas local (el componente que gestiona las operaciones de gestin de colas) se ejecuten en unidades de ejecucin aparte (generalmente, en procesos aparte). De esta manera se mantiene la integridad del gestor de colas, es decir, se protege al gestor de colas contra los programas errantes. CNSBND debe utilizarse en situaciones en las que la aplicacin no se haya probado totlamente, o en las que no pueda confiarse plenamente en ella. CNSBND es el valor por omisin. CNSBND se ha definido como ayuda para la documentacin del programa. No se pretende que esta opcin se utilice con ninguna otra opcin que controla el tipo de enlace utilizado, pero como su valor es cero, no es posible detectar tal uso. CNFBND Enlace de va rpida. Esta opcin hace que la aplicacin y el agente del gestor de colas local formen parte de la misma unidad de ejecucin. Es lo contrario del mtodo normal de enlace, en el que la aplicacin y el gestor de colas local se ejecutan en unidades de ejecucin aparte. CNFBND se pasa por alto si lo especifica una aplicacin de cliente MQ; el proceso contina como si la opcin no se hubiese especificado. CNFBND puede aportar ventajas en situaciones en las que el uso de varios procesos supone una actividad general de rendimiento significativa, en comparacin con el recurso global utilizado por la aplicacin. Las aplicaciones que utilizan el enlace de va rpida se conocen como aplicaciones de confianza. Hay que tener en cuenta los siguientes puntos importantes al decidir si debe utilizarse el enlace de va rpida: v La utilizacin de la opcin CNFBND compromete la integridad del gestor de colas, porque permite a una aplicacin conflictiva alterar o daar los mensajes y otras reas de datos que pertenecen al gestor de colas. Por consiguiente, hay que considerar su utilizacin nicamente en las situaciones en las que estas cuestiones se han evaluado al completo. v La aplicacin no debe utilizar seales asncronas ni interrupciones de temporizador (por ejemplo, sigkill) con CNFBND. Tambin existen restricciones para la utilizacin de segmentos de memoria compartida. Consulte la publicacin MQSeries Application Programming Guide para obtener ms informacin. v La aplicacin no debe tener ms de una hebra conectada al gestor de colas al mismo tiempo. v La aplicacin debe utilizar la llamada MQDISC para desconectarse del gestor de colas.

32

Consulta de programacin de aplicaciones (ILE RPG)

MQCNO - Opciones de conectar


v La aplicacin debe finalizar antes de finalizar el gestor de colas con el mandato endmqm. Los siguientes puntos son aplicables a la utilizacin de CNFBND en los entornos indicados: v En OS/400, el trabajo debe ejecutarse bajo un perfil de usuario que pertenezca al grupo QMQMADM. Adems, el programa no debe terminar de forma anmala, pues de lo contrario el resultado puede ser imprevisible. Para obtener ms informacin acerca de las repercusiones que tiene la utilizacin de aplicaciones de confianza, consulte la publicacin MQSeries Application Programming Guide. Opcin por omisin: Si ninguna de las opciones que acabamos de describir es necesaria, se puede utilizar la siguiente opcin: CNNONE No se especifican opciones. CNNONE se ha definido como ayuda para la documentacin del programa. No se pretende que esta opcin se utilice con ninguna otra opcin, pero como su valor es cero no es posible detectar tal uso. Siempre es un campo de entrada. El valor inicial de este campo es CNNONE. Los campos restantes no estn presentes si CNVER es menor que CNVER2. CNCCO (entero con signo de 10 dgitos) Desplazamiento de la estructura MQCD para conexin de cliente. Es el desplazamiento en bytes de una estructura de definicin de canal MQCD desde el principio de la estructura MQCNO. El desplazamiento puede ser positivo o negativo. CNCCO solo se utiliza cuando la aplicacin que emite la llamada MQCONNX se ejecuta como cliente MQ. Para obtener informacin acerca de cmo utilizar este campo, consulte la descripcin del campo CNCCP. Es un campo de entrada. El valor inicial del campo es 0. Este campo no est presente si CNVER es menor que CNVER2. CNCCP (puntero) Direccin de la estructura MQCD para conexin de cliente. CNCCO y CNCCP solo se utilizan cuando la aplicacin que emite la llamada MQCONNX se ejecuta como cliente MQ. Al especificar uno u otro de estos campos, la aplicacin puede controlar la definicin del canal de conexin de cliente proporcionando una estructura de definicin de canal MQCD que contiene los valores necesarios. Si la aplicacin se ejecuta como cliente MQ, pero no proporciona una estructura MQCD, se utiliza la variable de entorno MQSERVER para seleccionar la definicin de canal. Si MQSERVER no est establecida, se utiliza la tabla de canales de cliente. Si la aplicacin no se ejecuta como cliente MQ, CNCCO y CNCCP se pasan por alto.

Captulo 5. MQCNO - Opciones de conectar

33

MQCNO - Opciones de conectar


Si la aplicacin proporciona una estructura MQCD, los campos enumerados a continuacin deben establecerse en los valores necesarios; los dems campos de MQCD se pasan por alto. Las series de caracteres pueden rellenarse con espacios en blanco hasta completar la longitud del campo, o pueden terminar con un carcter nulo. Consulte la publicacin MQSeries Intercommunication para obtener ms informacin acerca de los campos de la estructura MQCD.
Campo de MQCD CDCHN CDVER CDTRT CDMOD CDTP CDSCX CDSNX CDRCX CDMML CDSCD CDSND CDRCD CDUID CDPW CDCON CDHBI CDLEN CDXNL Valor Nombre de canal. Nmero de versin de la estructura. No debe ser menor que CDVER6. Cualquier tipo de transporte soportado. Nombre de modalidad LU 6.2. Nombre de programa de transaccin LU 6.2. Nombre de rutina de salida de seguridad de canal. Nombre de rutina de salida de emisin de canal. Nombre de rutina de salida de recepcin de canal. Longitud mxima, en bytes, de los mensajes que se pueden enviar por el canal de conexin de cliente. Datos de usuario para rutina de salida de seguridad. Datos de usuario para rutina de salida de emisin. Datos de usuario para rutina de salida de recepcin. Identificador de usuario que se ha de utilizar para establecer una sesin LU 6.2. Contrasea que se ha de utilizar para establecer una sesin LU 6.2. Nombre de conexin. Tiempo, en segundos, entre flujos de pulsaciones. Longitud de la estructura MQCD. Longitud de los nombres de rutina de salida direccionados por CDSXP y CDRXP. Debe ser mayor que cero si CDSXP o CDRXP se establecen en un valor que no es el puntero nulo. Longitud de los datos de la rutina de salida direccionados por CDSUP y CDRUP. Debe ser mayor que cero si CDSUP o CDRUP se establecen en un valor que no es el puntero nulo. Nmero de rutinas de salida de emisin direccionadas por CDSXP. Si es cero, CDSNX y CDSND proporcionan los datos y el nombre de la rutina de salida. Si es mayor que cero, CDSXP y CDSUP proporcionan los datos y nombres de las rutinas de salida, y CDSNX y CDSND deben ser espacios en blanco. Nmero de rutinas de salida de recepcin direccionadas por CDRXP. Si es cero, CDRCX y CDRCD proporcionan los datos y el nombre de la rutina de salida. Si es mayor que cero, CDRXP y CDRUP proporcionan los datos y nombres de las rutinas de salida, y CDRCX y CDRCD deben ser espacios en blanco. Direccin del nombre de la primera rutina de salida de emisin. Direccin de los datos para la primera rutina de salida de emisin. Direccin del nombre de la primera rutina de salida de recepcin. Direccin de los datos para la primera rutina de salida de recepcin. Longitud del identificador largo de usuario remoto. Direccin del identificador largo de usuario remoto. Identificador de seguridad remoto.

CDXDL

CDSXD

CDRXD

CDSXP CDSUP CDRXP CDRUP CDLRL CDLRP CDRSI

La estructura de definicin de canal se puede proporcionar de una de las dos formas siguientes: v Utilizando el campo de desplazamiento CNCCO En este caso, la aplicacin debe declarar su propia estructura que contiene una MQCNO seguida de la estructura de definicin de canal MQCD, y debe

34

Consulta de programacin de aplicaciones (ILE RPG)

MQCNO - Opciones de conectar


establecer CNCCO como el desplazamiento de la estructura de definicin de canal desde el principio de MQCNO. Hay que tener cuidado y asegurarse de que este desplazamiento es correcto. CNCCP debe establecerse en el puntero nulo o en bytes nulos. v Utilizando el campo de puntero CNCCP En este caso, la aplicacin puede declarar la estructura de definicin de canal independientemente de la estructura MQCNO, y puede establecer CNCCP como la direccin de la estructura de definicin de canal. CNCCO debe establecerse en cero. Sea cual sea la tcnica elegida, solo se puede utilizar CNCCO o CNCCP; si ambos son distintos de cero, la llamada falla con el cdigo de razn RC2278. Cuando se ha completado la llamada MQCONNX, no se vuelve a hacer referencia a la estructura MQCD. Es un campo de entrada. El valor inicial del campo es el puntero nulo. Este campo no est presente si CNVER es menor que CNVER2.

Valores iniciales y declaracin RPG


Tabla 10. Valores iniciales de campos de MQCNO
Nombre de campo CNSID CNVER CNOPT CNCCO CNCCP Notas: 1. El smbolo b representa un carcter en blanco. Nombre de constante CNSIDV CNVER1 CNNONE Ninguno Ninguno Valor de constante 'CNOb' (Ver nota 1) 1 0 0 Puntero nulo o bytes nulos

| | |

Declaracin RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQCNO D* D* Identificador de estructura D CNSID 1 4 D* Nmero de versin de estructura D CNVER 5 8I 0 D* Opciones que controlan la accin de MQCONNX D CNOPT 9 12I 0 D* Desplazamiento de estructura MQCD para conexin de cliente D CNCCO 13 16I 0 D* Direccin de estructura MQCD para conexin de cliente D CNCCP 17 32*

Captulo 5. MQCNO - Opciones de conectar

35

MQCNO - Opciones de conectar

36

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 6. MQDH - Cabecera de distribucin


En la siguiente tabla se resumen los campos de la estructura.
Tabla 11. Campos de MQDH
Campo DHSID DHVER DHLEN DHENC DHCSI DHFMT DHFLG DHPRF DHCNT DHORO DHPRO Descripcin Identificador de estructura Nmero de versin de estructura Longitud de estructura MQDH ms los registros siguientes Codificacin numrica de los datos que siguen a la matriz de registros MQPMR Identificador del juego de caracteres de los datos que siguen a la matriz de registros MQPMR Nombre del formato de los datos que siguen a la matriz de registros MQPMR Distintivos generales Distintivos que indican qu campos de MQPMR estn presentes Nmero de registros de objeto presentes Desplazamiento del primer registro de objeto desde el principio de MQDH Desplazamiento del primer registro de poner mensaje desde el principio de MQDH Pgina 38 38 38 39 39 39 39 40 40 40 41

Visin general
La estructura MQDH describe los datos que estn presentes en un mensaje de una cola de transmisin cuando se trata de un mensaje de lista de distribucin (es decir, el mensaje se enva a varias colas destino). Esta estructura la utilizan las aplicaciones especializadas que transfieren mensajes directamente a colas de transmisin, o que eliminan mensajes de colas de transmisin (por ejemplo: agentes del canal de mensajes). Esta estructura no deben utilizarla las aplicaciones normales que simplemente desean transferir mensajes a listas de distribucin. Esas aplicaciones deben utilizar la estructura MQOD para definir los destinos de la lista de distribucin, y la estructura MQPMO para especificar las propiedades de los mensajes o recibir informacin acerca de los mensajes enviados a cada destino en particular. Esta estructura est soportada en los siguientes entornos: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Cuando una aplicacin transfiere un mensaje a una lista de distribucin, y algunos o todos los destinos son remotos, el gestor de colas pone como prefijo de los datos del mensaje de aplicacin las estructuras MQXQH y MQDH, y transfiere el mensaje a la cola de transmisin pertinente. Por consiguiente, los datos aparecen en la siguiente secuencia cuando el mensaje est en una cola de transmisin: v Estructura MQXQH
Copyright IBM Corp. 1994, 2000

37

MQDH - Cabecera de distribucin


v Estructura MQDH v Datos del mensaje de aplicacin En funcin de los destinos, es posible que el gestor de colas genere ms de uno de estos mensajes y los transfiera a colas de transmisin diferentes. En tal caso, las estructuras MQDH de dichos mensajes identifican distintos subconjuntos de los destinos definidos en la lista de distribucin abierta por la aplicacin. Las aplicaciones que ponen mensajes de lista de distribucin directamente en una cola de transmisin deben respetar la secuencia que se ha descrito, y deben garantizar que la estructura MQDH es correcta. Si la estructura MQDH no es vlida, el gestor de colas puede optar por que falle la llamada MQPUT o la llamada MQPUT1, con el cdigo de razn RC2135. Los mensajes se pueden guardar en una cola en forma de lista de distribucin nicamente si la cola se ha definido de tal manera que pueda aceptar mensajes de lista de distribucin (vase el atributo de cola DistLists que se describe en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311). Si una aplicacin transfiere un mensaje de lista de distribucin directamente a una cola que no acepta listas de distribucin, el gestor de colas divide el mensaje de lista de distribucin en mensajes individuales, y transfiere estos mensajes a la cola.

Campos
DHSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: DHSIDV Identificador de la estructura de cabecera de distribucin. El valor inicial de este campo es DHSIDV. DHVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser: DHVER1 Nmero de versin de la estructura de cabecera de distribucin. La siguiente constante especifica el nmero de la versin actual: DHVERC Versin actual de la estructura de cabecera de distribucin. El valor inicial de este campo es DHVER1. DHLEN (entero con signo de 10 dgitos) Longitud de la estructura MQDH ms los registros siguientes. Es el nmero de bytes desde el principio de la estructura MQDH hasta el principio de los datos de mensaje que siguen a las matrices de los registros MQOR y MQPMR. Los datos aparecen en la siguiente secuencia: v Estructura MQDH v Matriz de registros MQOR v Matriz de registros MQPMR

38

Consulta de programacin de aplicaciones (ILE RPG)

MQDH - Cabecera de distribucin


v Datos de mensaje Las matrices de los registros MQOR y MQPMR se direccionan mediante desplazamientos que estn incluidos en la estructura MQDH. Si estos desplazamientos tienen como resultado bytes inutilizados en uno o ms de los siguientes elementos: la estructura MQDH, las matrices de los registros y los datos de mensaje, los bytes inutilizados debern incluirse en el valor de DHLEN, pero el gestor de colas no preservar el contenido de dichos bytes. Es vlido que la matriz de registros MQPMR preceda a la matriz de registros MQOR. El valor inicial de este campo es 0. DHENC (entero con signo de 10 dgitos) Codificacin numrica de los datos que siguen a la matriz de registros MQPMR. El valor inicial de este campo es 0. DHCSI (entero con signo de 10 dgitos) Identificador del juego de caracteres de los datos que siguen a la matriz de registros MQPMR. El valor inicial de este campo es 0. DHFMT (serie de caracteres de 8 bytes) Nombre del formato de los datos que siguen a la matriz de registros MQPMR. El valor inicial de este campo es FMNONE. DHFLG (entero con signo de 10 dgitos) Distintivos generales. Se puede especificar el siguiente distintivo: DHFNEW Generar nuevos identificadores de mensaje. Este distintivo indica que se ha de generar un nuevo identificador de mensaje para cada destino de la lista de distribucin. Solo se puede establecer cuando no hay registros de poner mensaje presentes, o cuando los registros estn presentes pero no contienen el campo PRMID. Al utilizar este distintivo, la generacin de los identificadores de mensaje se difiere hasta el ltimo momento posible, a saber, el momento en que el mensaje de lista de distribucin se divide finalmente en mensajes individuales. Esto reduce al mnimo la cantidad de informacin de control que debe ir con el mensaje de lista de distribucin. Cuando una aplicacin transfiere un mensaje a una lista de distribucin, el gestor de colas establece DHFNEW en la MQDH que genera si se cumplen las dos condiciones siguientes: v No hay registros de poner mensaje proporcionados por la aplicacin, o los registros proporcionados no contienen el campo PRMID. v El campo MDMID de MQMD es MINONE, o el campo PMOPT en MQPMO incluye PMNMID Si no se necesitan distintivos, se puede especificar lo siguiente:

Captulo 6. MQDH - Cabecera de distribucin

39

MQDH - Cabecera de distribucin


DHFNON Sin distintivos. Esta constante indica que no se han especificado distintivos. DHFNON se ha definido como ayuda para la documentacin del programa. No se pretende que esta constante se utilice con ninguna otra, pero como su valor es cero no es posible detectar tal uso. El valor inicial de este campo es DHFNON. DHPRF (entero con signo de 10 dgitos) Distintivos que indican qu campos de MQPMR estn presentes. Se pueden especificar cero o ms de los siguientes distintivos: PFMID El campo de identificador de mensaje est presente. PFCID El campo de identificador de correlacin est presente. PFGID El campo de identificador de grupo est presente. PFFB PFACC El campo de smbolo de contabilidad est presente. Si no hay campos de MQPMR presentes, se puede especificar lo siguiente: PFNONE No hay campos de registro de poner mensaje presentes. PFNONE se ha definido como ayuda para la documentacin del programa. No se pretende que esta constante se utilice con ninguna otra, pero como su valor es cero no es posible detectar tal uso. El valor inicial de este campo es PFNONE. DHCNT (entero con signo de 10 dgitos) Nmero de registros de objeto presentes. Define el nmero de destinos. Una lista de distribucin siempre tiene que contener, como mnimo, un destino, por lo que DHCNT siempre debe ser mayor que cero. El valor inicial de este campo es 0. DHORO (entero con signo de 10 dgitos) Desplazamiento del primer registro de objeto desde el principio de MQDH. Este campo proporciona el desplazamiento, en bytes, del primer registro de la matriz de registros de objeto MQOR que contiene los nombres de las colas destino. En esta matriz hay registros DHCNT. Estos registros (ms los bytes que se saltan entre el primer registro de objeto y el campo anterior) se incluyen en la longitud que proporciona el campo DHLEN. Una lista de distribucin siempre debe contener, como mnimo, un destino, por lo que DHORO siempre debe ser mayor que cero. El campo de informacin de retorno est presente.

40

Consulta de programacin de aplicaciones (ILE RPG)

MQDH - Cabecera de distribucin


El valor inicial de este campo es 0. DHPRO (entero con signo de 10 dgitos) Desplazamiento del primer registro de poner mensaje desde el principio de MQDH. Este campo proporciona el desplazamiento, en bytes, del primer registro de la matriz de registros de poner mensaje MQPMR que contiene las propiedades del mensaje. En caso de estar presente, en esta matriz hay registros DHCNT. Estos registros (ms los bytes que se saltan entre el primer registro de poner mensaje y el campo anterior) se incluyen en la longitud que proporciona el campo DHLEN. Los registros de poner mensaje son opcionales; si no se proporcionan registros, DHPRO es cero, y DHPRF tiene el valor PFNONE. El valor inicial de este campo es 0.

Valores iniciales y declaracin RPG


Tabla 12. Valores iniciales de los campos de MQDH
Nombre de campo DHSID DHVER DHLEN DHENC DHCSI DHFMT DHFLG DHPRF DHCNT DHORO DHPRO Notas: 1. El smbolo b representa un carcter en blanco. Nombre de constante DHSIDV DHVER1 Ninguno Ninguno Ninguno FMNONE DHFNON PFNONE Ninguno Ninguno Ninguno Valor de constante 'DHbb' (Ver nota 1) 1 0 0 0 'bbbbbbbb' 0 0 0 0 0

Declaracin RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQDH D* D* Identificador de estructura D DHSID 1 4 D* Nmero de versin de estructura D DHVER 5 8I 0 D* Longitud de la estructura MQDH ms los registros siguientes D DHLEN 9 12I 0 D* Codificacin numrica de los datos que siguen a la matriz de D* registros MQPMR D DHENC 13 16I 0 D* Identificador de juego de caracteres de los datos que siguen D* a la matriz de registros MQPMR D DHCSI 17 20I 0 D* Nombre del formato de los datos que siguen a la matriz de
Captulo 6. MQDH - Cabecera de distribucin

41

MQDH - Cabecera de distribucin


D* D D* D D* D D* D D* D* D D* D* D registros MQPMR DHFMT 21 28 Distintivos generales DHFLG 29 32I 0 Distintivos que indican qu campos de MQPMR estn presentes DHPRF 33 36I 0 Nmero de registros de objeto presentes DHCNT 37 40I 0 Desplazamiento del primer registro de objeto desde el principio de MQDH DHORO 41 44I 0 Desplazamiento del primer registro de poner mensaje desde el principio de MQDH DHPRO 45 48I 0

42

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 7. MQDLH - Cabecera de mensaje no entregado


En la siguiente tabla se resumen los campos de la estructura.
Tabla 13. Campos de MQDLH
Campo DLSID DLVER DLREA DLDQ DLDM DLENC DLCSI DLFMT DLPAT DLPAN DLPD DLPT Descripcin Identificador de estructura Nmero de versin de estructura Mensaje de razn ha llegado a cola de mensajes no entregados Nombre de la cola destino original Nombre del gestor de colas destino original Codificacin numrica de los datos que siguen a MQDLH Identificador del juego de caracteres de los datos que siguen a MQDLH Nombre del formato de los datos que siguen a MQDLH Tipo de aplicacin que transfiere el mensaje a la cola de mensajes no entregados Nombre de la aplicacin que transfiere el mensaje a la cola de mensajes no entregados Fecha en que el mensaje se transfiri a la cola de mensajes no entregados Hora en que el mensaje se transfiri a la cola de mensajes no entregados Pgina 45 45 45 46 47 47 47 47 48 48 48 49

Visin general
La estructura MQDLH describe la informacin que se pone como prefijo en los datos de mensaje de aplicacin de los mensajes de la cola de mensajes no entregados (mensajes en espera). Un mensaje puede llegar a la cola de mensajes no entregados porque el gestor de colas o el agente de canal de mensajes lo ha redirigido a la cola o porque una aplicacin lo ha transferido directamente a la misma. Se lleva a cabo un proceso especial cuando un mensaje que es un segmento se transfiere con una estructura MQDLH al principio; consulte la descripcin de la estructura MQMDE para obtener informacin ms detallada. Esta estructura no est soportada en los siguientes entornos: Windows de 16 bits, Windows de 32 bits. Las aplicaciones que transfieren mensajes directamente a la cola de mensajes no entregados deben poner como prefijo de los datos de mensaje una estructura MQDLH, y deben inicializar los campos con valores adecuados. Sin embargo, el gestor de colas no comprueba si la estructura MQDLH est presente, ni tampoco si se han especificado valores vlidos para los campos.
Copyright IBM Corp. 1994, 2000

43

MQDLH - Cabecera de mensaje no entregado


Si un mensaje es demasiado largo para transferirlo a la cola de mensajes no entregados, la aplicacin debera considerar una de las siguientes acciones: v Truncar los datos del mensaje para que quepan en la cola de mensajes no entregados. v Registrar el mensaje en almacenamiento auxiliar y colocar en la cola de mensajes no entregados un mensaje de registro de excepcin indicndolo. v Eliminar el mensaje y devolver un error a su originador. Si se trata de un mensaje crtico (o puede serlo), solo deber realizarse esta operacin en el caso de que se sepa a ciencia cierta que el originador todava dispone de una copia del mensaje; por ejemplo, un mensaje que haya recibido un agente de canal de mensajes procedente de un canal de comunicacin. La accin adecuada (si la hay) depender del diseo de la aplicacin. Cuando se transfiere un mensaje a la cola de mensajes no entregados, todos los campos del descriptor de mensaje MQMD deben copiarse a partir de los del descriptor de mensaje original (si lo hay), a excepcin de los siguientes: v Los campos MDCSI y MDENC deben establecerse en el juego de caracteres y la codificacin que se est utilizando para los campos de la estructura MQDLH. v El campo MDFMT debe establecerse en FMDLH para indicar que los datos empiezan por una estructura MQDLH. v Los campos de contexto: MDUID MDACC MDAID MDPAT MDPAN MDPD MDPT MDAOD deben establecerse utilizando la opcin de contexto adecuada a la naturaleza del programa: Un programa que ponga en la cola de mensajes no entregados un mensaje que no est relacionado con ningn mensaje anterior debe utilizar la opcin PMDEFC; esto har que el gestor de colas establezca todos los campos de contexto del descriptor de mensaje en sus valores por omisin. Un programa que ponga en la cola de mensajes no entregados un mensaje que acaba de recibir debe utilizar la opcin PMPASA para poder conservar la informacin de contexto original. Un programa que ponga en la cola de mensajes no entregados una respuesta a un mensaje que acaba de recibir debe utilizar la opcin PMPASI; de esta forma conserva la informacin de identidad pero hace que la informacin original sea la del servidor. Un agente de canal de mensajes que ponga en la cola de mensajes no entregados un mensaje que haya recibido de su canal de comunicacin debe utilizar la opcin PMSETA, con el fin de conservar la informacin de contexto original. En la estructura MQDLH propiamente dicha, los campos deben establecerse del modo siguiente: v Los campos DLCSI, DLENC y DLFMT deben establecerse en los valores que describen los datos de mensaje de aplicacin que siguen a la estructura MQDLH; por lo general, se trata de los valores del descriptor de mensaje original.

44

Consulta de programacin de aplicaciones (ILE RPG)

MQDLH - Cabecera de mensaje no entregado


v Los campos de contexto DLPAT, DLPAN, DLPD y DLPT deben establecerse en los valores adecuados para la aplicacin que pone el mensaje en la cola de mensajes no entregados; estos valores no estn relacionados con el mensaje original. v Los dems campos se han de establecer segn corresponda. Los datos de tipo carcter de la estructura MQDLH deben tener el juego de caracteres definido por el campo MDCSI del descriptor de mensaje. Los datos numricos de la estructura MQDLH deben tener la codificacin de datos definida por el campo MDENC del descriptor de mensaje. La aplicacin debe asegurarse de que todos los campos contienen valores vlidos y de que los campos de caracteres se rellenan con espacios en blanco hasta alcanzar la longitud definida del campo; los datos de tipo carcter no deben terminar prematuramente mediante un carcter nulo, ya que el gestor de colas no convierte en espacios en blanco los caracteres nulos, ni los caracteres subsiguientes, de la estructura MQDLH. Las aplicaciones que obtienen mensajes de la cola de mensajes no entregados deben comprobar que dichos mensajes empiezan por una estructura MQDLH. La aplicacin puede determinar si hay una estructura MQDLH presente examinando el campo MDFMT del descriptor de mensaje MQMD; si el campo tiene el valor FMDLH, los datos del mensaje empiezan por una estructura MQDLH. Las aplicaciones que obtienen mensajes de la cola de mensajes no entregados tambin deben saber que dichos mensajes pueden haberse truncado si originalmente eran demasiado largos para la cola.

Campos
DLSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: DLSIDV Identificador de la estructura de cabecera de mensaje no entregado. El valor inicial de este campo es DLSIDV. DLVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser: DLVER1 Nmero de versin de la estructura de cabecera de mensaje no entregado. La siguiente constante especifica el nmero de la versin actual: DLVERC Versin actual de la estructura de cabecera de mensaje no entregado. El valor inicial de este campo es DLVER1. DLREA (entero con signo de 10 dgitos) Mensaje de razn llegado a la cola de mensajes no entregados. Indica la razn por la que el mensaje se coloc en la cola mensajes no entregados en vez de en la cola destino original. Debe ser uno de los valores FB* o RC* (por ejemplo, RC2053). Consulte la descripcin del campo MDFB en el
Captulo 7. MQDLH - Cabecera de mensaje no entregado

45

MQDLH - Cabecera de mensaje no entregado


Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para obtener informacin detallada acerca de los valores FB* que pueden aparecer con ms frecuencia. Si el valor est en el rango de FBIFST a FBILST, el cdigo de error IMS real se puede determinar restando FBIERR del valor del campo DLREA. Algunos valores FB* solo aparecen en este campo. Estn relacionados con mensajes de depsito, mensajes desencadenantes o mensajes de cola de transmisin que se han transferido a la cola de mensajes no entregados. Son los siguientes: FBABEG La aplicacin no puede iniciarse. Una aplicacin que procesa un mensaje desencadenante no ha podido arrancar la aplicacin indicada en el campo TMAI del mensaje desencadenante (consulte el Captulo 18. MQTM - Mensaje desencadenante en la pgina 189). FBATYP Error de tipo de aplicacin. Una aplicacin que procesa un mensaje desencadenante no ha podido arrancar la aplicacin porque el campo TMAT del mensaje desencadenante no es vlido (consulte el Captulo 18. MQTM Mensaje desencadenante en la pgina 189). | | | | | | | FBNARM El mensaje no es un mensaje de depsito. FBSBCX Mensaje detenido por rutina de salida de definicin automtica de canal. FBSBMX Mensaje detenido por rutina de salida de mensaje de canal. FBTM La estructura MQTM no es vlida o no est presente. El campo MDFMT de MQMD especifica FMTM, pero el mensaje no empieza por una estructura MQTM vlida. Por ejemplo, puede que el mnemotcnico de atencin TMSID no sea vlido, que TMVER no se reconozca o que la longitud del mensaje desencadenante sea insuficiente para contener la estructura MQTM. FBXQME El mensaje de la cola de transmisin no tiene el formato correcto. Un agente de canal de mensajes ha comprobado que un mensaje de la cola de transmisin no tiene el formato correcto. El agente de canal de mensajes pone el mensaje en la cola de mensajes no entregados utilizando este cdigo de informacin de retorno. El valor inicial de este campo es RCNONE. DLDQ (serie de caracteres de 48 bytes) Nombre de la cola destino original. Es el nombre de la cola de mensajes que constitua el destino original del mensaje.

46

Consulta de programacin de aplicaciones (ILE RPG)

MQDLH - Cabecera de mensaje no entregado


La longitud de este campo la proporciona LNQN. El valor inicial del campo son 48 caracteres en blanco. DLDM (serie de caracteres de 48 bytes) Nombre del gestor de colas destino original. Es el nombre del gestor de colas que constitua el destino original del mensaje. La longitud de este campo la proporciona LNQMN. El valor inicial del campo son 48 caracteres en blanco. DLENC (entero con signo de 10 dgitos) Codificacin numrica de los datos que siguen a MQDLH. Indica la codificacin de datos utilizada para datos numricos en el mensaje original. Se aplica a los datos del mensaje que siguen a la estructura MQDLH; no se aplican a los datos numricos de la estructura MQDLH propiamente dicha. Cuando a una estructura MQDLH se le pone prefijo para los datos del mensaje, la codificacin original de los datos debe conservarse copindola del campo MDENC del descriptor de mensaje MQMD al campo DLENC de la estructura MQDLH. Deber darse entonces al campo MDENC del descriptor de mensaje el valor adecuado para los datos numricos de la estructura MQDLH. El valor ENNAT se puede utilizar para el campo DLENC en las estructuras MQDLH y MQMD. El valor inicial de este campo es 0. DLCSI (entero con signo de 10 dgitos) Identificador del juego de caracteres de los datos que siguen a MQDLH. Especifica el identificador del juego de caracteres de los datos de tipo carcter del mensaje original. Se aplica a los datos del mensaje que siguen a la estructura MQDLH; no se aplica a datos de tipo carcter de la estructura MQDLH propiamente dicha. Cuando a una estructura MQDLH se le pone prefijo para los datos del mensaje, el identificador de juego de caracteres original de los datos debe conservarse copindolo del campo MDCSI del descriptor de mensaje MQMD al campo DLCSI de la estructura MQDLH. Deber darse entonces al campo MDCSI del descriptor de mensaje el valor adecuado para los datos de tipo carcter de la estructura MQDLH. El valor CSQM puede utilizarse para el campo MDCSI de la estructura MQMD, pero no debe utilizarse para el campo DLCSI de la estructura MQDLH, ya que el gestor de colas no sustituye el valor CSQM del ltimo campo por el valor que se aplica al gestor de colas. El valor inicial de este campo es 0. DLFMT (serie de caracteres de 8 bytes) Nombre del formato de los datos que siguen a MQDLH. Es el nombre del formato de los datos de la aplicacin en el mensaje original. Se aplica a los datos del mensaje que siguen a la estructura MQDLH; no se aplica a la estructura MQDLH propiamente dicha.
Captulo 7. MQDLH - Cabecera de mensaje no entregado

47

MQDLH - Cabecera de mensaje no entregado


Cuando a una estructura MQDLH se le pone prefijo para los datos del mensaje, el nombre de formato original debe conservarse copindolo del campo MDFMT del descriptor de mensaje MQMD al campo DLFMT de la estructura MQDLH. Entonces deber darse el valor FMDLH al campo MDFMT del descriptor de mensaje. La longitud de este campo la proporciona LNFMT. El valor inicial de este campo es FMNONE. DLPAT (entero con signo de 10 dgitos) Tipo de aplicacin que pone el mensaje en la cola de mensajes no entregados (mensajes en espera). Este campo tiene el mismo significado que el campo MDPAT del descriptor de mensaje MQMD (consulte el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para obtener informacin detallada). Si es el gestor de colas el que redirige el mensaje a la cola de mensajes no entregados, DLPAT tiene el valor ATQM. El valor inicial de este campo es 0. DLPAN (serie de caracteres de 28 bytes) Nombre de la aplicacin que transfiere el mensaje a la cola de mensajes no entregados. El formato del nombre depende del campo DLPAT. Vea tambin la descripcin del campo MDPAN en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 . Si es el gestor de colas el que redirige el mensaje a la cola de mensajes no entregados, DLPAN contiene los 28 primeros caracteres del nombre del gestor de colas, rellenados con blancos si es necesario. La longitud de este campo la proporciona LNPAN. El valor inicial del campo son 28 caracteres en blanco. DLPD (serie de caracteres de 8 bytes) Fecha en la que se transfiri el mensaje a la cola de mensajes no entregados. El formato utilizado para la fecha cuando este campo lo genera el gestor de colas es el siguiente: AAAAMMDD donde los caracteres representan lo siguiente: AAAA ao (cuatro nmeros) MM mes del ao (de 01 a 12) DD da del mes (de 01 a 31) En los campos DLPD y DLPT se utiliza la Hora del Meridiano de Greenwich (GMT), suponiendo que el reloj del sistema se haya ajustado correctamente segn la GMT. La longitud de este campo la proporciona LNPDAT. El valor inicial del campo son 8 caracteres en blanco.

48

Consulta de programacin de aplicaciones (ILE RPG)

MQDLH - Cabecera de mensaje no entregado


DLPT (serie de caracteres de 8 bytes) Hora en que el mensaje se transfiri a la cola de mensajes no entregados. El formato utilizado para la hora cuando el gestor de colas genera este campo es el siguiente: HHMMSSTH donde HH MM SS T H los caracteres representan (por orden), lo siguiente: horas (de 00 a 23) minutos (de 00 a 59) segundos (de 00 a 59; vase la siguiente nota) dcimas de segundo (de 0 a 9) centsimas de segundo (de 0 a 9)

Nota: Si el reloj del sistema est sincronizado para una hora estndar muy exacta, es posible que en algunas ocasiones, poco frecuentes, se devuelva 60 61 para los segundos en DLPT. Esto sucede cuando se insertan segundos de ao bisiesto en la hora global estndar. En los campos DLPD y DLPT se utiliza la Hora del Meridiano de Greenwich (GMT), suponiendo que el reloj del sistema se haya ajustado correctamente segn la GMT. La longitud de este campo la proporciona LNPTIM. El valor inicial del campo son 8 caracteres en blanco.

Valores iniciales y declaracin RPG


Tabla 14. Valores iniciales de campos de MQDLH
Nombre de campo DLSID DLVER DLREA DLDQ DLDM DLENC DLCSI DLFMT DLPAT DLPAN DLPD DLPT Notas: 1. El smbolo b representa un carcter en blanco. Nombre de constante DLSIDV DLVER1 RCNONE Ninguno Ninguno Ninguno Ninguno FMNONE Ninguno Ninguno Ninguno Ninguno Valor de constante 'DLHb' (Ver nota 1) 1 0 Blancos Blancos 0 0 'bbbbbbbb' 0 Blancos Blancos Blancos

Declaracin RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQDLH D* D* Identificador de estructura D DLSID 1 4 D* Nmero de versin de estructura
Captulo 7. MQDLH - Cabecera de mensaje no entregado

49

MQDLH - Cabecera de mensaje no entregado


D D* D* D D* D D* D D* D D* D D* D D* D* D D* D* D D* D* D D* D* D DLVER 5 8I 0 Mensaje de razn ha llegado a la cola de mensajes no entregados (mensajes en espera) DLREA 9 12I 0 Nombre de la cola destino original DLDQ 13 60 Nombre del gestor de colas destino original DLDM 61 108 Codificacin numrica de los datos que siguen a MQDLH DLENC 109 112I 0 Identificador juego caracteres de datos que siguen a MQDLH DLCSI 113 116I 0 Nombre del formato de los datos que siguen a MQDLH DLFMT 117 124 Tipo de aplicacin que pone el mensaje en la cola de mensajes no entregados (mensajes en espera) DLPAT 125 128I 0 Nombre de la aplicacin que pone el mensaje en la cola de mensajes no entregados (mensajes en espera) DLPAN 129 156 Fecha en que el mensaje se puso en la cola de mensajes no entregados (mensajes en espera) DLPD 157 164 Hora en que el mensaje se puso en la cola de mensajes no entregados (mensajes en espera) DLPT 165 172

50

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 8. MQGMO - Opciones de obtener mensaje


En la siguiente tabla se resumen los campos de la estructura.
Tabla 15. Campos de MQGMO
Campo GMSID GMVER GMOPT GMWI GMSG1 GMSG2 GMRQN GMMO GMGST GMSST GMSEG Descripcin Identificador de estructura Nmero de versin de estructura Opciones que controlan la accin de MQGET Intervalo de espera Seal Identificador de seal Nombre resuelto de la cola destino Pgina 52 52 52 71 71 71 72

Nota: Los campos restantes no estn presentes si GMVER es menor que GMVER2. Opciones que controlan los criterios de seleccin utilizados para MQGET Distintivo que indica si el mensaje recuperado est en un grupo Distintivo que indica si el mensaje recuperado es un segmento de un mensaje lgico Distintivo que indica si se permite ms segmentacin para el mensaje recuperado 72 74 75 75

| | | |

Nota: Los campos restantes no estn presentes si GMVER es menor que GMVER3. GMTOK GMRL Smbolo del mensaje Longitud de los datos de mensaje devueltos (bytes) 75 75

Visin general
La versin actual de MQGMO la proporciona GMVERC. Los campos que existen solamente en las versiones ms recientes de la estructura se identifican como tales en las descripciones que siguen. La declaracin de MQGMO proporcionada en el archivo COPY contiene los campos adicionales, pero el valor inicial proporcionado para el campo GMVER es GMVER1. Para utilizar los campos adicionales, la aplicacin debe establecer el nmero de versin en GMVERC. Las aplicaciones que se pretende que sean transportables entre varios entornos deben utilizar una versin ms reciente de MQGMO solamente si todos esos entornos aceptan dicha versin. La estructura MQGMO es un parmetro de entrada/salida para la llamada MQGET.

Copyright IBM Corp. 1994, 2000

51

MQGMO - Opciones de obtener mensaje

Campos
GMSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: GMSIDV Identificador de la estructura de opciones de obtener mensaje. Siempre es un campo de entrada. El valor inicial de este campo es GMSIDV. GMVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser uno de los siguientes: GMVER1 Estructura de opciones de obtener mensaje de la versin 1. GMVER2 Estructura de opciones de obtener mensaje de la versin 2. Los campos que existen solamente en la estructura de la versin 2 se identifican como tales en las descripciones que siguen. | | | | GMVER3 Estructura de opciones de obtener mensaje de la versin 3. Los campos que existen solamente en la estructura de la versin 3 se identifican como tales en las descripciones que siguen. La siguiente constante especifica el nmero de la versin actual: GMVERC Estructura de opciones de obtener mensaje de la versin actual. Siempre es un campo de entrada. El valor inicial de este campo es GMVER1. GMOPT (entero con signo de 10 dgitos) Opciones que controlan la accin de MQGET. Se pueden especificar cero o ms de las opciones descritas a continuacin. Si es necesario ms de uno, los valores se aaden juntos (no aada la misma constante ms de una vez). Se indican las combinaciones de opciones que no son vlidas; todas las dems combinaciones son vlidas. GMWT Esperar a que llegue el mensaje. La aplicacin debe esperar a que llegue un mensaje apropiado. El tiempo mximo de espera de la aplicacin se especifica en GMWI. Si las peticiones MQGET estn inhabilitadas, o las peticiones MQGET pasan a estarlo mientras esperan, la espera se cancela y la llamada se completa con CCFAIL y el cdigo de razn RC2016, independientemente de si hay o no hay mensajes apropiados en la cola. Esta opcin se puede utilizar con las opciones GMBRWF o GMBRWN.

52

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


Si varias aplicaciones esperan en la misma cola compartida, la aplicacin o aplicaciones que se activan cuando llega un mensaje apropiado son las descritas a continuacin. Nota: En la descripcin siguiente, una llamada de examinar MQGET es aquella que especifica una de las opciones de examinar, pero no GMLK; una llamada MQGET que especifica la opcin GMLK se trata como una llamada de no examinar. v Si una o ms llamadas MQGET de no examinar estn a la espera, se activa una de ellas. v Si una o ms llamadas MQGET de examinar estn a la espera, pero no hay llamadas MQGET de no examinar a la espera, se activan todas. v Si una o ms llamadas MQGET de no examinar, y una o ms llamadas MQGET de examinar estn a la espera, se activa una llamada MQGET de no examinar, y ninguna, algunas o todas las llamadas MQGET de examinar. (El nmero de llamadas MQGET de examinar activadas es imprevisible, porque depende de las consideraciones de planificacin del sistema operativo, adems de otros factores.) Si hay ms de una llamada MQGET de no examinar a la espera en la misma cola compartida, nicamente se activa una; en esa situacin el gestor de colas intenta dar prioridad a las llamadas que no son de examinar y que estn a la espera en el siguiente orden: 1. Peticiones de obtener-espera que solo puedan satisfacer determinados mensajes, por ejemplo, los que tengan un MDMID o MDCID especfico (o ambos). 2. Peticiones generales de obtener-espera que pueda satisfacer cualquier mensaje. Deben tenerse en cuenta los siguientes puntos: v Dentro de la primera categora, no se da ninguna prioridad adicional a las peticiones de obtener-espera ms especficas, por ejemplo, aquellas que especifican MDMID y MDCID. v Dentro de cada categora no puede predecirse la aplicacin que va a seleccionarse. Por ejemplo, la aplicacin que espera desde hace ms tiempo no es necesariamente la seleccionada. v La longitud de la va de acceso y las consideraciones de planificacin de prioridades del sistema operativo pueden significar que una aplicacin a la espera con una prioridad de sistema operativo ms baja de lo esperado recupere el mensaje. v Tambin puede suceder que recupere el mensaje una aplicacin que no est a la espera en vez de otra que s lo est. GMWT se pasa por alto si se especifica con GMBRWC o GMMUC; no aparece ningn error. GMNWT Retorno inmediato si no hay ningn mensaje apropiado. La aplicacin no debe esperar si no hay ningn mensaje apropiado. Es lo contrario de la opcin GMWT, y se ha definido como ayuda para la documentacin del programa. Es el valor por omisin si no se especifica ninguno.
Captulo 8. MQGMO - Opciones de obtener mensaje

53

MQGMO - Opciones de obtener mensaje


GMSYP Obtener mensaje con control de punto de sincronizacin. La peticin debe operar con los protocolos normales de la unidad de trabajo. El mensaje se marca como no disponible para otras aplicaciones, pero solo se suprime de la cola cuando la unidad de trabajo est comprometida. El mensaje vuelve a estar disponible si la unidad de trabajo se restituye. Si no se especifica esta opcin ni GMNSYP, la peticin de obtener no est en una unidad de trabajo. Esta opcin no es vlida con ninguna de las siguientes opciones: GMBRWF GMBRWC GMBRWN GMLK GMNSYP GMPSYP GMUNLK GMPSYP Obtener mensaje con control de punto de sincronizacin si el mensaje es permanente. La peticin debe operar dentro de los protocolos normales de la unidad de trabajo, pero solo si el mensaje recuperado es permanente. Un mensaje permanente tiene el valor PEPER en el campo MDPER de MQMD. v Si el mensaje es permanente, el gestor de colas procesa la llamada como si la aplicacin hubiese especificado GMSYP (consulte la informacin detallada ms arriba). v Si el mensaje no es permanente, el gestor de colas procesa la llamada como si la aplicacin hubiese especificado GMNSYP (consulte la informacin detallada ms abajo). Esta opcin no es vlida con ninguna de las siguientes opciones: GMBRWF GMBRWC GMBRWN GMCMPM GMNSYP GMSYP GMUNLK GMNSYP Obtener mensaje sin control de punto de sincronizacin. La peticin debe operar sin los protocolos normales de la unidad de trabajo. El mensaje se suprime de la cola inmediatamente (a menos que se trate de una peticin de examinar). El mensaje no puede volver a estar disponible restituyendo la unidad de trabajo. Se presupone esta opcin si se especifican GMBRWF o GMBRWN. Si no se especifica ni esta opcin ni GMSYP, la peticin de obtener no est en una unidad de trabajo. Esta opcin no es vlida con ninguna de las siguientes opciones: GMSYP

54

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


GMPSYP GMBRWF Examinar desde el principio de la cola. Cuando se abre una cola con la opcin OOBRW, se establece un cursor para examinar, colocado lgicamente antes del primer mensaje de la cola. Las llamadas posteriores MQGET que especifican la opcin GMBRWF, GMBRWN o GMBRWC se pueden utilizar para recuperar mensajes de la cola de forma no destructiva. Dentro de los mensajes de la cola, el cursor para examinar marca la posicin desde la cual la siguiente llamada MQGET con GMBRWN buscar un mensaje adecuado. Una llamada MQGET con GMBRWF hace que la posicin anterior del cursor de examinar se pase por alto. Se recuperar el primer mensaje de la cola que satisfaga las condiciones especificadas en el descriptor de mensaje. El mensaje permanece en la cola y el cursor para examinar se coloca en dicho mensaje. Despus de esta llamada, el cursor para examinar se coloca en el mensaje que se ha devuelto. Si el mensaje se elimina de la cola antes de emitir la siguiente llamada MQGET con GMBRWN, el cursor para examinar permanece en la posicin que ocupaba el mensaje en la cola, incluso si la posicin est ahora vaca. La opcin GMMUC se puede utilizar posteriormente con una llamada MQGET de no examinar, si es necesario, para eliminar el mensaje de la cola. Observe que el cursor para examinar no se mueve mediante una llamada MQGET de no examinar que utilice la misma asa HOBJ. Tampoco se mueve mediante una llamada MQGET de examinar que devuelva el cdigo de terminacin CCFAIL o el cdigo de razn RC2080. La opcin GMLK se puede especificar junto con esta opcin para hacer que se bloquee el mensaje que se examina. GMBRWF se puede especificar con cualquier combinacin vlida de las opciones GM* y MO* que controlan el proceso de los mensajes de grupos y de segmentos de mensajes lgicos. Si se especifica GMLOGO, los mensajes se examinan por orden lgico. Si se omite esa opcin, los mensajes se examinan por orden fsico. Cuando se especifica GMBRWF, es posible conmutar entre el orden lgico y el orden fsico, pero las llamadas MQGET posteriores que utilicen GMBRWN deben examinar la cola en el mismo orden que la llamada ms reciente que ha especificado GMBRWF para el asa de cola. La informacin de grupo y de segmento que el gestor de colas retiene para las llamadas MQGET que examinan mensajes de la cola es independiente de la informacin de grupo y de segmento que el gestor de colas retiene para las llamadas MQGET que eliminan mensajes de la cola. Cuando se especifica GMBRWF, el gestor de colas ignora la informacin de grupo y de segmento para examinar, y explora la cola como si no hubiese ningn mensaje lgico actual ni ningn grupo actual. Si la llamada MQGET es satisfactoria, (cdigo de terminacin CCOK o CCWARN), la informacin de grupo y de segmento para

Captulo 8. MQGMO - Opciones de obtener mensaje

55

MQGMO - Opciones de obtener mensaje


examinar se establece en la del mensaje devuelto; si la llamada no es satisfactoria, la informacin de grupo y de segmento sigue igual que como estaba antes de la llamada. Esta opcin no es vlida con ninguna de las siguientes opciones: GMBRWC GMBRWN GMMUC GMSYP GMPSYP GMUNLK Tambin dara un error si la cola no se hubiese abierto para examinar. GMBRWN Examinar desde la posicin actual en la cola. El cursor para examinar avanza hasta el siguiente mensaje de la cola que satisface los criterios de seleccin especificados en la llamada MQGET. El mensaje se devuelve a la aplicacin, pero permanece en la cola. Despus de haber abierto una cola para examinar, la primera llamada de examinar que utiliza el asa tiene el mismo efecto que si especifica la opcin GMBRWF o la opcin GMBRWN. Si el mensaje se elimina de la cola antes de que se emita la siguiente llamada MQGET con GMBRWN, el cursor para examinar permanece de forma lgica en la posicin de la cola que ocupaba el mensaje, incluso si esa posicin est vaca en ese momento. Los mensajes se almacenan en la cola de una de las dos siguientes maneras: v FIFO dentro de la prioridad (MSPRIO), o v FIFO independientemente de la prioridad (MSFIFO) El atributo de cola MsgDeliverySequence indica qu mtodo es aplicable (consulte el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311 para obtener informacin detallada). Si la cola tiene una MsgDeliverySequence de MSPRIO y llega un mensaje a la cola cuya prioridad es superior a la del mensaje al que seala en ese momento el cursor para examinar, dicho mensaje no se encontrar durante el barrido actual de la cola mediante GMBRWN. Solo podr encontrarse despus de haber restaurado el cursor para examinar con GMBRWF (o volviendo a abrir la cola). La opcin GMMUC se puede utilizar posteriormente con una llamada MQGET de no examinar, si es necesario, para eliminar el mensaje de la cola. Observe que el cursor para examinar no se mueve mediante las llamadas MQGET de no examinar que utilizan la misma asa HOBJ. La opcin GMLK se puede especificar junto con esta opcin para hacer que se bloquee el mensaje que se examina. GMBRWN se puede especificar con cualquier combinacin vlida de las opciones GM* y MO* que controlan el proceso de los mensajes de grupos y de segmentos de mensajes lgicos.

56

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


Si se especifica GMLOGO, los mensajes se examinan por orden lgico. Si se omite esa opcin, los mensajes se examinan por orden fsico. Cuando se especifica GMBRWF, es posible conmutar entre el orden lgico y el orden fsico, pero las llamadas MQGET posteriores que utilicen GMBRWN deben examinar la cola en el mismo orden que la llamada ms reciente que ha especificado GMBRWF para el asa de cola. La llamada falla con el cdigo de razn RC2259 si no se satisface esta condicin. Nota: Hay que prestar especial atencin si una llamada MQGET se utiliza para examinar ms all del final de un grupo de mensajes (o un mensaje lgico que no est en un grupo) cuando no se ha especificado GMLOGO. Por ejemplo, si el ltimo mensaje del grupo precede al primer mensaje del grupo en la cola, utilizar GMBRWN para examinar ms all del final del grupo, especificando MOSEQN con MDSEQ establecido en 1 (para encontrar el primer mensaje del siguiente grupo) devolvera de nuevo el primer mensaje del grupo ya examinado. Esto puede suceder de inmediato, o despus de un nmero de llamadas MQGET posteriores (si hay grupos que intervienen). La posibilidad de un bucle infinito se puede evitar abriendo la cola dos veces para examinar: v Utilice la primera asa para examinar solamente el primer mensaje de cada grupo. v Utilice la segunda asa para examinar solamente los mensajes de un grupo especfico. v Utilice las opciones MO* para mover el segundo cursor para examinar hasta la posicin del primer cursor para examinar, antes de examinar los mensajes del grupo. v No utilice GMBRWN para examinar ms all del final de un grupo. La informacin de grupo y de segmento que el gestor de colas retiene para las llamadas MQGET que examinan mensajes de la cola es independiente de la informacin de grupo y de segmento que el gestor de colas retiene para las llamadas MQGET que eliminan mensajes de la cola. Esta opcin no es vlida con ninguna de las siguientes opciones: GMBRWF GMBRWC GMMUC GMSYP GMPSYP GMUNLK Tambin dara un error si la cola no se hubiese abierto para examinar. GMBRWC Examinar mensaje bajo el cursor para examinar. Esta opcin hace que el mensaje al que seala el cursor para examinar se recupere de forma no destructiva, independientemente de las opciones MO* especificadas en el campo GMMO de MQGMO.

Captulo 8. MQGMO - Opciones de obtener mensaje

57

MQGMO - Opciones de obtener mensaje


El mensaje al que seala el cursor para examinar es el ltimo que se ha recuperado utilizando las opciones GMBRWF o GMBRWN. La llamada no es satisfactoria si no se ha emitido ninguna de estas llamadas para la cola desde el momento en que se ha abierto, o si el mensaje sealado por el cursor para examinar se ha recuperado desde entonces de forma destructiva. Esta llamada no afecta a la posicin del cursor para examinar. La opcin GMMUC se puede utilizar posteriormente con una llamada MQGET de no examinar, si es necesario, para eliminar el mensaje de la cola. Observe que el cursor para examinar no se mueve mediante una llamada MQGET de no examinar que utilice la misma asa HOBJ. Tampoco se mueve mediante una llamada MQGET de examinar que devuelva el cdigo de terminacin CCFAIL o el cdigo de razn RC2080. Cuando se especifica GMBRWC con GMLK: v Si ya hay un mensaje bloqueado, debe coincidir con el que seala el cursor para que se devuelva sin desbloquearlo y volvindolo a bloquear. El mensaje permanecer bloqueado. v Si no hay ningn mensaje bloqueado, el mensaje al que seala el cursor para examinar (si lo hay) se bloquea y se devuelve a la aplicacin. Si el cursor para examinar no seala ningn mensaje, la llamada da error. Cuando GMBRWC se especifica sin GMLK: v Si ya hay un mensaje bloqueado, debe coincidir con el del cursor. Dicho mensaje se devuelve a la aplicacin y despus se desbloquea. Dado que el mensaje ahora est desbloqueado, no existe garanta alguna de que pueda volverse a examinar o de que pueda recuperarse de forma destructiva (puede recuperarlo de forma destructiva otra aplicacin que obtenga mensajes de la cola). v Si no hay ningn mensaje bloqueado, el mensaje al que seala el cursor para examinar (si lo hay) se devuelve a la aplicacin. Si el cursor para examinar no seala ningn mensaje, la llamada falla. Cuando GMCMPM se especifica con GMBRWC, el cursor para examinar debe identificar un mensaje cuyo campo MDOFF de MQMD sea cero. La llamada falla con el cdigo de razn RC2246 si no se satisface esta condicin. La informacin de grupo y de segmento que el gestor de colas retiene para las llamadas MQGET que examinan mensajes de la cola es independiente de la informacin de grupo y de segmento que el gestor de colas retiene para las llamadas MQGET que eliminan mensajes de la cola. Esta opcin no es vlida con ninguna de las siguientes opciones: GMBRWF GMBRWN GMMUC GMSYP GMPSYP GMUNLK

58

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


Tambin dara un error si la cola no se hubiese abierto para examinar. GMMUC Obtener mensaje bajo el cursor para examinar. Esta opcin hace que el mensaje al que seala el cursor para examinar se recupere, independientemente de las opciones MO* especificadas en el campo GMMO de MQGMO. El mensaje se elimina de la cola. El mensaje al que seala el cursor para examinar es el ltimo que se ha recuperado utilizando las opciones GMBRWF o GMBRWN. Cuando GMCMPM se especifica con GMMUC, el cursor para examinar debe identificar un mensaje cuyo campo MDOFF de MQMD sea cero. La llamada falla con el cdigo de razn RC2246 si no se satisface esta condicin. Esta opcin no es vlida con ninguna de las siguientes opciones: GMBRWF GMBRWC GMBRWN GMUNLK Tambin dara un error si la cola no se hubiese abierto para examinar y para entrada. Si el cursor para examinar no est sealando actualmente a un mensaje recuperable, la llamada MQGET devolver un error. GMLK Bloquear mensaje. Esta opcin bloquea el mensaje que se est examinando, volvindolo invisible para cualquier otra asa abierta para la cola. La opcin solo se puede especificar si tambin se ha especificado una de las siguientes opciones: GMBRWF GMBRWN GMBRWC Solo se puede bloquear un mensaje por asa, pero puede ser un mensaje lgico o un mensaje fsico: v Si se especifica GMCMPM, todos los segmentos de mensaje de que consta el mensaje lgico se bloquean para el asa de cola (siempre que todos estn presentes en la cola y disponibles para recuperacin). v Si GMCMPM no se especifica, solo se bloquea un nico mensaje fsico para el asa de cola. Si este mensaje es un segmento de un mensaje lgico, el segmento bloqueado impide que otras aplicaciones utilicen GMCMPM para recuperar o examinar el mensaje lgico. El mensaje bloqueado siempre es el que est bajo el cursor para examinar, y se puede eliminar de la cola mediante una llamada MQGET posterior que especifique la opcin GMMUC. Otras llamadas MQGET para esa asa de cola tambin pueden eliminar el mensaje, (por ejemplo, una llamada que especifique el identificador del mensaje bloqueado). Si se devuelve CCFAIL (o CCWARN con RC2080), no se bloquea ningn mensaje.

Captulo 8. MQGMO - Opciones de obtener mensaje

59

MQGMO - Opciones de obtener mensaje


Si la aplicacin decide no eliminar el mensaje de la cola, el bloqueo se libera de las siguientes maneras: v Emitiendo otra llamada MQGET para esta asa, con GMBRWF o GMBRWN especificado (con o sin GMLK); el mensaje se desbloquea si la llamada se completa con CCOK o CCWARN, pero permanece bloqueado si la llamada se completa con CCFAIL. No obstante, se dan las excepciones siguientes: El mensaje no se desbloquea si CCWARN se devuelve con RC2080. El mensaje se desbloquea si CCFAIL se devuelve con RC2033. Si GMLK tambin se especifica, el nuevo mensaje se bloquea. Si no se especifica GMLK, no hay mensaje bloqueado despus de la llamada. Si se especifica GMWT, y no existe ningn mensaje disponible inmediatamente, el desbloqueo del mensaje original tiene lugar antes del inicio de la espera (siempre que la llamada no contenga error alguno). v Emitiendo otra llamada MQGET para esta asa, con GMBRWC (sin GMLK); el mensaje se desbloquea si la llamada se completa con CCOK o CCWARN, pero permanece bloqueado si la llamada se completa con CCFAIL. No obstante, se da la excepcin siguiente: El mensaje no se desbloquea si CCWARN se devuelve con RC2080. v Emitiendo otra llamada MQGET para esta asa con GMUNLK. v Emitiendo una llamada MQCLOSE para esta asa (ya sea explcita o implcitamente, mediante la finalizacin de la aplicacin). No se precisa ninguna opcin de abrir especial para especificar esta opcin salvo OOBRW, que es necesaria para especificar la opcin de examinar correspondiente. Esta opcin no es vlida con ninguna de las siguientes opciones: GMSYP GMPSYP GMUNLK GMUNLK Desbloquear mensaje. El mensaje que se ha de desbloquear debe haberse bloqueado anteriormente mediante una llamada MQGET con la opcin GMLK. Si no hay ningn mensaje bloqueado para esta asa, la llamada se completa con CCWARN y RC2209. Los parmetros MSGDSC, BUFLEN, BUFFER y DATLEN no se comprueban ni alteran si se especifica GMUNLK. No se devuelve mensaje alguno en BUFFER. No se precisa ninguna opcin de abrir especial para especificar esta opcin (aunque se necesita OOBRW para emitir la peticin de bloqueo en primer lugar). Esta opcin no es vlida con ninguna otra opcin salvo las siguientes: GMNWT GMNSYP

60

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


Se presuponen ambas opciones tanto si se especifican como si no. GMATM Permitir que se trunquen los datos del mensaje. Si el almacenamiento intermedio de mensajes es demasiado reducido para contener el mensaje completo, esta opcin permite que la llamada MQGET llene el almacenamiento intermedio con todo el mensaje que quepa en l, emita un cdigo de terminacin de aviso y se complete el proceso. Esto significa que: v Al examinar mensajes, el cursor para examinar avanzar al mensaje devuelto. v Al eliminar mensajes, el mensaje devuelto se eliminar de la cola. v Se devuelve el cdigo de razn RC2079 si no se produce ningn otro error. Sin esta opcin, el almacenamiento seguir conteniendo toda la parte del mensaje que pueda contener, se emitir un cdigo de terminacin de aviso y el proceso no se completar. Esto significa que: v Al examinar mensajes, el cursor para examinar no avanzar. v Al eliminar mensajes, el mensaje no se eliminar de la cola. v Se devuelve el cdigo de razn RC2080 si no se produce ningn otro error. GMFIQ Falla si el gestor de colas est en reposo. Esta opcin fuerza a la llamada MQGET a fallar si el estado del gestor de colas es en reposo. Si esta opcin se especifica junto con GMWT y la espera est pendiente en el momento en que el gestor de colas entra en el estado de reposo: v La espera se cancela y la llamada devuelve el cdigo de terminacin CCFAIL con el cdigo de razn RC2161. Si no se especifica GMFIQ y el gestor de colas entra en estado de reposo, la espera no se cancela. GMCONV Convertir datos del mensaje. Esta opcin solicita que los datos de aplicacin del mensaje se conviertan, para ajustarse a los valores MDCSI y MDENC especificados en el parmetro MSGDSC de la llamada MQGET, antes de que se copien los datos en el parmetro BUFFER. El proceso de conversin presupone que el campo MDFMT especificado al poner el mensaje identifica la naturaleza de los datos que hay en el mensaje. El gestor de colas realiza la conversin de los datos del mensaje para los formatos incorporados, mientras que una rutina de salida escrita por usuario se encarga de los dems formatos. Consulte el Apndice F. Conversin de datos en la pgina 485 para obtener informacin detallada acerca de la rutina de salida de conversin de datos. v Si la conversin se lleva a cabo satisfactoriamente, los campos MDCSI y MDENC especificados en el parmetro MSGDSC no cambian al regreso de la llamada MQGET. v Si la conversin no se puede efectuar satisfactoriamente (pero la llamada MQGET se completa sin errores), los datos del mensaje se
Captulo 8. MQGMO - Opciones de obtener mensaje

61

MQGMO - Opciones de obtener mensaje


devuelven sin convertir y los campos MDCSI y MDENC de MSGDSC se establecen en los valores del mensaje no convertido. En este caso, el cdigo de terminacin es CCWARN. En cualquier caso, por consiguiente, estos campos describen el identificador del juego de caracteres y la codificacin de los datos del mensaje que se devuelven en el parmetro BUFFER. Vea el campo MDFMT descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para obtener una lista de nombres de formato cuya conversin realiza el gestor de colas. Opciones de grupo y segmento: Las opciones descritas a continuacin controlan la manera en que la llamada MQGET devuelve los mensajes de grupos y los segmentos de mensajes lgicos. Las siguientes definiciones pueden ayudarle a comprender dichas opciones: Mensaje fsico Es la unidad de informacin ms pequea que se puede poner en una cola o eliminar de ella; suele corresponder a la informacin especificada o recuperada en una nica llamada MQPUT, MQPUT1 o MQGET. Cada mensaje fsico tiene su propio descriptor de mensaje (MQMD). Generalmente, los mensajes fsicos se distinguen por los diferentes valores del identificador de mensaje (campo MDMID de MQMD), aunque el gestor de colas no fuerce esta diferenciacin. Mensaje lgico Es una nica unidad de informacin de la aplicacin. En ausencia de restricciones del sistema, un mensaje lgico sera igual que un mensaje fsico. Pero cuando los mensajes lgicos son demasiado grandes, las restricciones del sistema pueden hacer aconsejable o necesario dividir un mensaje lgico en dos o ms mensajes fsicos, llamados segmentos. Un mensaje lgico que se ha segmentado consta de dos o ms mensajes fsicos que tienen el mismo identificador de grupo no nulo (campo MDGID de MQMD) y el mismo nmero de secuencia de mensaje (campo MDSEQ de MQMD). Los segmentos se distinguen mediante valores diferenciados para el desplazamiento de segmento (campo MDOFF de MQMD), que proporciona el desplazamiento de los datos del mensaje fsico desde el principio de los datos del mensaje lgico. Como cada segmento es un mensaje fsico, los segmentos de un mensaje lgico suelen tener identificadores de mensaje diferenciados. Un mensaje lgico que no se ha segmentado, pero para el que la aplicacin emisora ha permitido la segmentacin, tambin tiene un identificador de grupo no nulo, aunque en este caso solo hay un mensaje fsico con ese identificador de grupo si el mensaje lgico no pertenece a un grupo de mensajes. Los mensajes lgicos para los que la aplicacin emisora ha inhibido la segmentacin tienen un identificador de grupo nulo (GINONE), a menos que el mensaje lgico pertenezca a un grupo de mensajes. Grupo de mensajes Es un conjunto de uno o ms mensajes lgicos que tienen el mismo identificador de grupo no nulo. Los mensajes lgicos del grupo se distinguen mediante los distintos valores del nmero de secuencia de mensaje, que es un entero comprendido entre 1 y n, siendo n el nmero de mensajes lgicos del grupo. Si se segmenta uno o ms de los mensajes lgicos, habr ms de n mensajes fsicos en el grupo.

62

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


GMLOGO Los mensajes de grupos y los segmentos de mensajes lgicos se devuelven en orden lgico. Esta opcin controla el orden de devolucin de los mensajes mediante las sucesivas llamadas MQGET para el asa de cola. La opcin se debe especificar en cada una de esas llamadas para que surta efecto. Si se especifica GMLOGO para las sucesivas llamadas MQGET para el asa de cola, los mensajes de los grupos se devuelven en el orden que indican sus nmeros de secuencia de mensaje, y los segmentos de los mensajes lgicos se devuelven en el orden indicado por sus desplazamientos de segmento. Este orden puede ser diferente del orden en que aparecen en la cola los mensajes y los segmentos. Nota: Especificar GMLOGO no tiene consecuencias adversas en los mensajes que no pertenecen a grupos y que no son segmentos. En efecto, tales mensajes se tratan como si cada uno de ellos perteneciera a un grupo de mensajes que consta de un nico mensaje. Por tanto, es totalmente seguro especificar GMLOGO cuando se recuperan mensajes de colas que pueden contener una combinacin de mensajes de grupos, segmentos de mensajes, y mensajes no segmentados que no estn en grupos. Para devolver los mensajes en el orden necesario, el gestor de colas retiene la informacin de grupo y de segmento entre las llamadas MQGET sucesivas. Esta informacin identifica el grupo de mensajes actual y el mensaje lgico actual para el asa de cola, la posicin actual dentro del grupo y el mensaje lgico, y si los mensajes se recuperan dentro de una unidad de trabajo. Como el gestor de colas retiene esta informacin, la aplicacin no necesita establecer la informacin de grupo y de segmento antes de cada llamada MQGET. De forma especfica, significa que la aplicacin no necesita establecer los campos MDGID, MDSEQ y MDOFF de MQMD. Sin embargo, la aplicacin tiene que establecer la opcin GMSYP o GMNSYP correctamente en cada llamada. Cuando la cola se abre, no hay ningn grupo de mensajes actual ni ningn mensaje lgico actual. Un grupo de mensajes pasa a ser el grupo de mensajes actual cuando la llamada MQGET devuelve un mensaje que tiene el distintivo MFMIG. Con GMLOGO especificado en las llamadas sucesivas, ese grupo sigue siendo el grupo actual hasta que se devuelve un mensaje que tiene lo siguiente: v MFLMIG sin MFSEG (es decir, el ltimo mensaje lgico del grupo no est segmentado), o v MFLMIG con MFLSEG (es decir, el mensaje devuelto es el ltimo segmento del ltimo mensaje lgico del grupo). Cuando se devuelve uno de estos mensajes, el grupo de mensajes finaliza, y cuando la llamada MQGET finaliza satisfactoriamente ya no hay un grupo actual. De forma similar, un mensaje lgico pasa a ser el mensaje lgico actual cuando la llamada MQGET devuelve un mensaje que tiene el distintivo MFSEG, y ese mensaje lgico termina cuando se devuelve el mensaje que tiene el distintivo MFLSEG. Si no se especifican criterios de seleccin, las llamadas MQGET sucesivas devuelven (en el orden correcto) los mensajes para el primer
Captulo 8. MQGMO - Opciones de obtener mensaje

63

MQGMO - Opciones de obtener mensaje


grupo de mensajes de la cola, luego los mensajes para el segundo grupo de mensajes, y as sucesivamente hasta que ya no hay ms mensajes disponibles. Es posible seleccionar los grupos de mensajes concretos que se devuelven especificando una o ms de las siguientes opciones en el campo GMMO: MOMSGI MOCORI MOGRPI Sin embargo, estas opciones solo son efectivas cuando no hay grupo de mensajes actual ni mensaje lgico actual; vea el campo GMMO que se describe en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51 para obtener informacin detallada. La Tabla 16 muestra los valores de los campos MDMID, MDCID, MDGID, MDSEQ y MDOFF que el gestor de colas busca cuando intenta encontrar un mensaje para devolverlo en la llamada MQGET. Esto es aplicable a la eliminacin de mensajes de la cola y al examen de mensajes de la cola. Las columnas de la tabla tienen los siguientes significados: ORD LOG U significa que la fila solo es aplicable cuando se especifica la opcin GMLOGO. Grupo actual U significa que la fila solo es aplicable cuando existe un grupo de mensajes actual antes de la llamada. (U) significa que la fila es aplicable tanto si existe un grupo de mensajes actual antes de la llamada como si no. Mensaje lgico actual U significa que la fila solo es aplicable cuando existe un mensaje lgico actual antes de la llamada. (U) significa que la fila es aplicable tanto si existe un mensaje lgico actual antes de la llamada como si no. Otras columnas Estas columnas muestran los valores que busca el gestor de colas. Anterior indica el valor devuelto para el campo del mensaje anterior para el asa de cola.
Tabla 16. Opciones MQGET relacionadas con los mensajes de grupos y de segmentos de mensajes lgicos
Opciones Estado de mensaje de especificadas grupo y de mensaje lgico antes de llamada ORD LOG U U U Grupo actual Mensaje lgico actual MDMID Valores que busca el gestor de colas

MDCID

MDGID

MDSEQ

MDOFF

Controlado por GMMO Cualquier identificador de mensaje

Controlado por GMMO Cualquier identificador de correlacin

Controlado por GMMO Identificador de grupo anterior

1 1

0 Desplazamiento anterior + longitud de segmento anterior 0

Cualquier identificador de mensaje

Cualquier identificador de correlacin

Identificador de grupo anterior

Nmero de secuencia anterior + 1

64

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


Tabla 16. Opciones MQGET relacionadas con los mensajes de grupos y de segmentos de mensajes lgicos (continuacin)
Opciones Estado de mensaje de especificadas grupo y de mensaje lgico antes de llamada U U U Cualquier identificador de mensaje Valores que busca el gestor de colas

Cualquier identificador de correlacin

Identificador de grupo anterior

Nmero de secuencia anterior

Desplazamiento anterior + longitud de segmento anterior Controlado por GMMO

(U)

(U)

Controlado por GMMO

Controlado por GMMO

Controlado por GMMO

Controlado por GMMO

Cuando hay varios grupos de mensajes presentes en la cola que son elegibles para la devolucin, los grupos se devuelven en el orden que determina la posicin en la cola del primer segmento del primer mensaje lgico de cada grupo (es decir, los mensajes fsicos que tienen nmeros de secuencia de mensaje 1 y desplazamientos 0 determinan el orden en que se devuelven los grupos elegibles). La opcin GMLOGO afecta a las unidades de trabajo de la siguiente manera: v Si el primer mensaje lgico o segmento de un grupo se recupera dentro de una unidad de trabajo, todos los dems mensajes lgicos y segmentos del grupo deben recuperarse dentro de una unidad de trabajo, en caso de que se utilice la misma asa de cola. Sin embargo, no es necesario recuperarlos dentro de la misma unidad de trabajo. Esto permite que un grupo que consta de muchos mensajes fsicos se divida entre dos o ms unidades de trabajo consecutivas para el asa de cola. v Si el primer mensaje lgico o segmento de un grupo no se recupera dentro de una unidad de trabajo, ninguno de los dems mensajes lgicos y segmentos del grupo se puede recuperar dentro de una unidad de trabajo, en caso de que se utilice la misma asa de cola. Si no se satisfacen estas condiciones, la llamada MQGET falla con el cdigo de razn RC2245. Cuando se especifica GMLOGO, la MQGMO suministrada en la llamada MQGET no debe ser menor que GMVER2, y la MQMD no debe ser menor que MDVER2. Si no se satisface esta condicin, la llamada falla con el cdigo de razn RC2256 RC2257, segn corresponda. Si GMLOGO no se especifica para las sucesivas llamadas MQGET para el asa de cola, los mensajes se devuelven si tener en cuenta si pertenecen a grupos de mensajes o si son segmentos de mensajes lgicos. Esto significa que los mensajes o segmentos de un mensaje lgico o grupo determinado se pueden devolver desordenadamente, o pueden entremezclarse con mensajes o segmentos de otros grupos o mensajes lgicos, o con mensajes que no estn en grupos y que no son segmentos. En esta situacin, los mensajes determinados que las llamadas sucesivas MQGET devuelven los controlan las opciones MO* especificadas en esas llamadas (vea el campo GMMO que se describe en el

Captulo 8. MQGMO - Opciones de obtener mensaje

65

MQGMO - Opciones de obtener mensaje


Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51 para obtener informacin detallada acerca de estas opciones). Esta es la tcnica que se puede utilizar para reiniciar un grupo de mensajes o un mensaje lgico en medio, despus de producirse una anomala en el sistema. Cuando se reinicia el sistema, la aplicacin puede establecer los campos MDGID, MDSEQ, MDOFF y GMMO en los valores adecuados, y a continuacin emitir la llamada MQGET con las opciones GMSYP o GMNSYP establecidas tal como se desee, pero sin especificar GMLOGO. Si esta llamada es satisfactoria, el gestor de colas retiene la informacin de grupo y de segmento, y las llamadas MQGET posteriores que utilicen esa asa de cola pueden especificar GMLOGO con normalidad. La informacin de grupo y de segmento que el gestor de colas retiene para las llamadas MQGET es independiente de la informacin de grupo y de segmento que el gestor de colas retiene para la llamada MQPUT. Adems, el gestor de colas retiene informacin aparte para lo siguiente: v Llamadas MQGET que eliminan mensajes de la cola. v Llamadas MQGET que examinan mensajes de la cola. Para un asa de cola determinada, la aplicacin puede mezclar llamadas MQGET que especifican GMLOGO con llamadas MQGET que no lo hacen, pero hay que tener en cuenta lo siguiente: v Cada llamada MQGET satisfactoria que no especifica GMLOGO hace que el gestor de colas establezca la informacin guardada de grupo y segmento en los valores correspondientes al mensaje devuelto; esta informacin sustituye a la informacin de grupo y de segmento existente retenida por el gestor de colas para el asa de cola. Solo se modifica la informacin apropiada para la accin de la llamada (examinar o eliminar). v Si GMLOGO no se especifica, la llamada no falla cuando hay un grupo de mensajes o un mensaje lgico actual, pero el mensaje o segmento recuperado no es el siguiente del grupo o del mensaje lgico. La llamada, no obstante, puede ser satisfactoria con un cdigo de terminacin CCWARN. La Tabla 17 muestra los diferentes casos que pueden presentarse. En estos casos, si el cdigo de terminacin no es CCOK, el cdigo de razn es uno de los siguientes (segn convenga): RC2241 RC2242 RC2245 Nota: El gestor de colas no comprueba la informacin de grupo y segmento cuando examina una cola, ni tampoco cuando cierra una cola que estaba abierta para el examen pero no para la entrada; en tales casos el cdigo de terminacin siempre es CCOK (suponiendo que no se dan otros errores).
Tabla 17. Salida cuando la llamada MQGET o MQCLOSE no es coherente con la informacin de grupo y de segmento
Llamada actual MQGET con GMLOGO MQGET con GMLOGO CCFAIL Llamada anterior MQGET sin GMLOGO CCFAIL

66

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


Tabla 17. Salida cuando la llamada MQGET o MQCLOSE no es coherente con la informacin de grupo y de segmento (continuacin)
Llamada actual MQGET con GMLOGO MQGET sin GMLOGO MQCLOSE con un grupo o mensaje lgico no terminado CCWARN CCWARN Llamada anterior MQGET sin GMLOGO CCOK CCOK

Se recomienda que en las aplicaciones que simplemente desean recuperar mensajes y segmentos en orden lgico se especifique GMLOGO, ya que esta es la opcin ms fcil de utilizar. Esta opcin hace que la aplicacin no tenga que gestionar la informacin de grupo y segmento, porque el gestor de colas lo hace en su lugar. Sin embargo, las aplicaciones especializadas pueden necesitar ms control que el que proporciona la opcin GMLOGO, y esto se puede lograr no especificando dicha opcin. En este caso, la aplicacin debe asegurar que los campos MDMID, MDCID, MDGID, MDSEQ y MDOFF de MQMD, y las opciones MO* de GMMO de MQGMO se establecen correctamente antes de cada llamada MQGET. Por ejemplo, una aplicacin que quiera reenviar los mensajes fsicos que recibe, sin tener en cuenta si esos mensajes estn en grupos o segmentos de mensajes lgicos, no debe especificar GMLOGO. Esto se debe a que, en una red compleja con varias vas de acceso entre los gestores de colas emisor y receptor, los mensajes fsicos pueden llegar desordenadamente. Al no especificar GMLOGO ni el PMLOGO correspondiente de la llamada MQPUT, la aplicacin del reenvo puede recuperar y reenviar cada mensaje fsico tan pronto como llegue, sin tener que esperar a que llegue el siguiente en orden lgico. GMLOGO se puede especificar con cualquiera de las dems opciones GM* y con varias de las opciones MO*, en circunstancias adecuadas (vase la explicacin ms arriba). GMCMPM Solo son recuperables los mensajes lgicos completos. Esta opcin especifica que la llamada MQGET solo puede devolver un mensaje lgico completo. Si el mensaje lgico est segmentado, el gestor de colas reensambla los segmentos y devuelve el mensaje lgico completo a la aplicacin; el hecho de que el mensaje lgico estuviera segmentado no es evidente para la aplicacin que lo recupera. Nota: Esta es la nica opcin que hace que el gestor de colas reensamble segmentos de mensajes. Si no se especifica, los segmentos se devuelven individualmente a la aplicacin en caso de estar presentes en la cola (y si satisfacen los otros criterios de seleccin especificados en la llamada MQGET). Por tanto, las aplicaciones que no quieren recibir segmentos individuales siempre deben especificar GMCMPM. Para utilizar esta opcin la aplicacin debe proporcionar un almacenamiento intermedio que sea lo bastante grande para dar cabida al mensaje completo, o especificar la opcin GMATM.

Captulo 8. MQGMO - Opciones de obtener mensaje

67

MQGMO - Opciones de obtener mensaje


Si la cola contiene mensajes segmentados y faltan algunos de los segmentos (tal vez porque se han retrasado en la red y no han llegado todava), especificar GMCMPM impide la recuperacin de los segmentos que pertenecen a mensajes lgicos incompletos. No obstante, esos segmentos de mensaje siguen contribuyendo al valor del atributo de cola CurrentQDepth; esto significa que puede haber mensajes lgicos no recuperables, aunque CurrentQDepth sea mayor que cero. En los mensajes permanentes, el gestor de colas solo puede reensamblar los segmentos dentro de una unidad de trabajo: v Si la llamada MQGET funciona dentro de una unidad de trabajo definida por usuario, esta es la que se utiliza. Si la llamada falla en medio del proceso de reensamblaje, el gestor de colas vuelve a incluir en la cola los segmentos que se eliminaron durante el reensamblaje. No obstante, la anomala no impide que la unidad de trabajo se comprometa de forma satisfactoria. v Si la llamada es operativa fuera de una unidad de trabajo definida por usuario, y no existe ninguna unidad de trabajo definida por usuario, el gestor de colas crea una unidad de trabajo exclusivamente para el tiempo que dura la llamada. Si la llamada es satisfactoria, el gestor de colas compromete la unidad de trabajo automticamente (la aplicacin no tiene que hacerlo). Si la llamada no es satisfactoria, el gestor de colas restituye la unidad de trabajo. v Si la llamada es operativa fuera de una unidad de trabajo definida por usuario, pero s existe una unidad de trabajo definida por usuario, el gestor de colas no puede llevar a cabo el reensamblaje. Si el mensaje no requiere reensamblaje, la llamada puede ser satisfactoria. Pero si el mensaje s requiere reensamblaje, la llamada falla con el cdigo de razn RC2255. En mensajes no permanentes, el gestor de colas no requiere que haya disponible una unidad de trabajo para poder llevar a cabo el reensamblaje. Cada mensaje fsico que es un segmento tiene su propio descriptor de mensaje. Para los segmentos que constituyen un nico mensaje lgico, la mayora de los campos del descriptor de mensaje sern los mismos en todos los segmentos del mensaje lgico; en general, solo los campos MDMID, MDOFF y MDMFL varan en los diferentes segmentos del mensaje lgico. No obstante, si un segmento se coloca en una cola de mensajes no entregados de un gestor de colas intermedio, el manejador DLQ recupera el mensaje especificando la opcin GMCONV, y esto puede tener como resultado que cambie el juego de caracteres o la codificacin del segmento. Si el manejador DLQ enva el segmento satisfactoriamente, este puede tener un juego de caracteres o una codificacin distintos de los dems segmentos del mensaje lgico cuando el segmento llega finalmente al gestor de colas destino. Un mensaje lgico que consta de segmentos en los que los campos MDCSI y/o MDENC son diferentes no puede ser reensamblado por el gestor de colas en un nico mensaje lgico. En cambio, el gestor de colas reensambla y devuelve unos cuantos segmentos consecutivos del principio del mensaje lgico, que tienen los mismos identificadores de juego de caracteres y las mismas codificaciones, y la llamada MQGET

68

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


se completa con el cdigo de terminacin CCWARN y el cdigo de razn RC2243 RC2244, segn convenga. Esto sucede tanto si se especifica GMCONV como si no. Para recuperar los segmentos restantes, la aplicacin debe volver a emitir la llamada MQGET sin la opcin GMCMPM, recuperando los segmentos uno por uno. Se puede utilizar GMLOGO para recuperar los restantes segmentos en orden. Tambin es posible que una aplicacin que transfiere segmentos establezca otros campos del descriptor de mensaje en valores que sean diferentes en cada segmento. No obstante, esto no aporta ninguna ventaja si la aplicacin receptora utiliza GMCMPM para recuperar el mensaje lgico. Cuando el gestor de colas reensambla un mensaje lgico, devuelve en el descriptor de mensaje los valores de este para el primer segmento; la nica excepcin es el campo MDMFL, que el gestor de colas establece para indicar que el mensaje reensamblado es el nico segmento. Si se especifica GMCMPM para un mensaje de informe, el gestor de colas lleva a cabo un proceso especial. El gestor de colas comprueba si estn presentes en la cola todos los mensajes de informe de ese tipo de informe que estn relacionados con los diferentes segmentos del mensaje lgico. Si lo estn, se pueden recuperar como un nico mensaje especificando GMCMPM. Para que esto sea posible, los mensajes de informe debe generarlos un gestor de colas o un MCA que d soporte a la segmentacin, o la aplicacin que los origina debe solicitar, como mnimo, 100 bytes de datos de mensaje (es decir, hay que especificar las opciones RO*D o RO*F adecuadas). Si en un segmento estn presentes menos de la cantidad completa de los datos de la aplicacin, los bytes que faltan se sustituyen por nulos en el mensaje de informe que se devuelve. Si se especifica GMCMPM con GMMUC o GMBRWC, el cursor para examinar debe situarse en un mensaje cuyo campo MDOFF de MQMD tenga el valor 0. La llamada falla con el cdigo de razn RC2246 si no se satisface esta condicin. GMCMPM implica GMASGA; por tanto, no es necesario que GMASGA est especificado. GMCMPM se puede especificar con cualquier de las dems opciones GM* aparte de GMPSYP, y con cualquiera de las opciones MO* aparte de MOOFFS. GMAMSA Todos los mensajes del grupo deben estar disponibles. Esta opcin especifica que los mensajes de un grupo pasan a estar disponibles para la recuperacin solamente cuando todos los mensajes del grupo estn disponibles. Si la cola contiene grupos de mensajes y faltan algunos de los mensajes (tal vez porque se han retrasado en la red y todava no han llegado), especificar GMAMSA impide la recuperacin de mensajes que pertenecen a grupos incompletos. No obstante, esos mensajes siguen contribuyendo al valor del atributo de cola CurrentQDepth; esto significa que puede haber grupos de mensajes no recuperables, aunque CurrentQDepth sea mayor que cero. Si no hay ms mensajes recuperables, se devuelve el cdigo de razn RC2033 una vez concluido el intervalo de espera especificado (si existe).
Captulo 8. MQGMO - Opciones de obtener mensaje

69

MQGMO - Opciones de obtener mensaje


El proceso de GMAMSA depende de si se ha especificado tambin GMLOGO: v Si se han especificado ambas opciones, GMAMSA tiene efecto nicamente cuando no hay grupo o mensaje lgico actual. Si hay un grupo o mensaje lgico actual, GMAMSA se pasa por alto. Esto significa que GMAMSA puede permanecer cuando los mensajes se procesan en orden lgico. v Si se especifica GMAMSA sin GMLOGO, GMAMSA siempre tiene efecto. Esto significa que la opcin debe desactivarse despus de haber eliminado de la cola el primer mensaje del grupo, a fin de poder eliminar los mensajes restantes del grupo. Si no se especifica esta opcin, los mensajes que pertenecen a grupos se pueden recuperar incluso cuando el grupo est incompleto. GMAMSA implica GMASGA; por tanto, no es necesario que GMASGA est especificado. GMAMSA se puede especificar con cualquiera de las dems opciones GM*, y con cualquiera de las opciones MO*. GMASGA Todos los segmentos de un mensaje lgico deben estar disponibles. Esta opcin especifica que los segmentos de un mensaje lgico pasan a estar disponibles para la recuperacin solamente cuando todos los segmentos del mensaje lgico estn disponibles. Si la cola contiene mensajes segmentados y faltan algunos de los segmentos (tal vez porque se han retrasado en la red y no han llegado todava), especificar GMASGA impide la recuperacin de los segmentos que pertenecen a mensajes lgicos incompletos. No obstante, esos segmentos siguen contribuyendo al valor del atributo de cola CurrentQDepth; esto significa que puede haber mensajes lgicos no recuperables, aunque CurrentQDepth sea mayor que cero. Si no hay ms mensajes recuperables, se devuelve el cdigo de razn RC2033 una vez concluido el intervalo de espera especificado (si existe). El proceso de GMASGA depende de si se ha especificado tambin GMLOGO: v Si se han especificado ambas opciones, GMASGA tiene efecto nicamente cuando no hay mensaje lgico actual. Si hay un mensaje lgico actual, GMASGA se pasa por alto. Esto significa que GMASGA puede permanecer cuando los mensajes se procesan en orden lgico. v Si se especifica GMASGA sin GMLOGO, GMASGA siempre tiene efecto. Esto significa que la opcin debe desactivarse despus de haber eliminado de la cola el primer segmento del mensaje lgico, a fin de poder eliminar los segmentos restantes del mensaje lgico. Si no se especifica esta opcin, los segmentos del mensaje se pueden recuperar incluso cuando el mensaje lgico est incompleto. Si bien GMCMPM y GMASGA requieren que todos los segmentos estn disponibles antes de poder recuperar cualquiera de ellos, la primera de estas opciones devuelve el mensaje completo, mientras que la segunda permite que los segmentos se recuperen de uno en uno.

70

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


Si se especifica GMASGA para un mensaje de informe, el gestor de colas lleva a cabo un proceso especial. El gestor de colas comprueba si en la cola hay, como mnimo, un mensaje de informe para cada uno de los segmentos de que consta el mensaje lgico completo. Si hay uno como mnimo, se satisface la condicin GMASGA. No obstante, el gestor de colas no comprueba el tipo de los mensajes de informe presentes, por lo que puede haber una combinacin de tipos de informe en los mensajes de informe relacionados con los segmentos del mensaje lgico. Como resultado, el hecho de que GMASGA sea satisfactoria no implica que GMCMPM tambin lo sea. Si hay una combinacin de tipos de informe presentes para los segmentos de un mensaje lgico determinado, esos mensajes de informe deben recuperarse de uno en uno. GMASGA se puede especificar con cualquiera de las dems opciones GM*, y con cualquiera de las opciones MO*. GMNONE No se especifican opciones. Este valor puede utilizarse para indicar que no se han especificado otras opciones; todas las opciones presuponen sus valores por omisin. GMNONE se ha definido como ayuda para la documentacin del programa; no se pretende que esta opcin se utilice con ninguna otra, pero como su valor es cero, esa utilizacin no se puede detectar. El valor inicial del campo GMOPT es GMNWT. GMWI (entero con signo de 10 dgitos) Intervalo de espera. Es el tiempo aproximado, expresado en milisegundos, que la llamada MQGET espera a que llegue un mensaje apropiado (es decir, un mensaje que satisfaga los criterios de seleccin especificados en el parmetro MSGDSC de la llamada MQGET; consulte el campo MDMID que se describe en el Captulo 10. MQMD Descriptor de mensaje en la pgina 85 para obtener informacin ms detallada). Si, transcurrido este perodo de tiempo, no se ha recibido el mensaje adecuado, la llamada se completa con CCFAIL y el cdigo de razn RC2033. GMWI se utiliza junto con la opcin GMWT. Se ignora si no se especifica esta opcin. Si se especifica, GMWI debe ser mayor o igual que cero, o el siguiente valor especial: WIULIM Intervalo de espera ilimitado. El valor inicial de este campo es 0. GMSG1 (entero con signo de 10 dgitos) Seal. Es un campo reservado; su valor no es significativo. El valor inicial de este campo es 0. GMSG2 (entero con signo de 10 dgitos) Identificador de seal. Es un campo reservado; su valor no es significativo.

Captulo 8. MQGMO - Opciones de obtener mensaje

71

MQGMO - Opciones de obtener mensaje


GMRQN (serie de caracteres de 48 bytes) Nombre resuelto de la cola destino. Es un campo de salida que el gestor de colas establece en el nombre local de la cola de la que se ha recuperado el mensaje, tal como est definido en el gestor de colas local. Ser distinto del nombre utilizado para abrir la cola si: v Se ha abierto una cola alias (en cuyo caso, se devuelve el nombre de la cola local para la que se ha resuelto el alias) o v Se ha abierto una cola modelo (en cuyo caso, se devuelve el nombre de la cola local dinmica). La longitud de este campo la proporciona LNQN. El valor inicial del campo son 48 caracteres en blanco. Los campos restantes no estn presentes si GMVER es menor que GMVER2. GMMO (entero con signo de 10 dgitos) Opciones que controlan los criterios de seleccin utilizados para MQGET. Estas opciones permiten que la aplicacin elija qu campos del parmetro MSGDSC se utilizarn para seleccionar el mensaje devuelto por la llamada MQGET. La aplicacin establece las opciones necesarias de este campo, y luego establece los campos correspondientes del parmetro MSGDSC en los valores necesarios para dichos campos. Solo los mensajes que tienen estos valores en la MQMD del mensaje son candidatos para la recuperacin utilizando ese parmetro MSGDSC en la llamada MQGET. Los campos en los que la correspondiente opcin de emparejar no se ha especificado se pasan por alto cuando se selecciona el mensaje que se ha de devolver. Si no se han de utilizar criterios de seleccin en la llamada MQGET (es decir, cualquier mensaje es aceptable), GMMO debe establecerse en MONONE. Si se especifica GMLOGO, solo determinados mensajes son elegibles para que los devuelva la siguiente llamada MQGET: v Si no hay grupo o mensaje lgico actual, solo los mensajes en los que MDSEQ es igual a 1 y MDOFF es igual a 0 son elegibles para la devolucin. En esta situacin, se puede utilizar una o ms de las siguientes opciones de emparejar para seleccionar cul de los mensajes elegibles es el que se devuelve realmente: MOMSGI MOCORI MOGRPI v Si hay un grupo o mensaje lgico actual, solo es elegible para devolucin el siguiente mensaje del grupo o el siguiente segmento de mensaje lgico, y esto no se puede alterar especificando opciones MO*. En los dos casos anteriores, las opciones de emparejar que no son aplicables se pueden seguir especificando, pero el valor del campo pertinente del parmetro MSGDSC debe coincidir con el valor del campo correspondiente del mensaje que se ha de devolver; la llamada falla con el cdigo de razn RC2247 cuando esta condicin no se satisface. GMMO se pasa por alto si se especifica GMMUC o GMBRWC. Se pueden especificar una o ms de las siguientes opciones de emparejar:

72

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


MOMSGI Recuperar mensaje con identificador de mensaje especificado. Esta opcin especifica que el mensaje que se ha de recuperar debe tener un identificador de mensaje que coincida con el valor del campo MDMID en el parmetro MSGDSC de la llamada MQGET. Esta coincidencia es adicional respecto a cualquier otra coincidencia que pueda aplicarse (por ejemplo, el identificador de correlacin). Si esta opcin no se especifica, el campo MDMID del parmetro MSGDSC se pasa por alto, y todo identificador de mensaje coincidir. Nota: El identificador de mensaje MINONE es un valor especial que coincide con cualquier identificador de mensaje de la MQMD del mensaje. Por tanto, especificar MOMSGI con MINONE es lo mismo que no especificar MOMSGI. MOCORI Recuperar mensaje con identificador de correlacin especificado. Esta opcin especifica que el mensaje que se ha de recuperar debe tener un identificador de correlacin que coincida con el valor del campo MDCID en el parmetro MSGDSC de la llamada MQGET. Esta coincidencia es adicional respecto a cualquier otra coincidencia que pueda aplicarse (por ejemplo, el identificador de mensaje). Si esta opcin no se especifica, el campo MDCID del parmetro MSGDSC se pasa por alto, y todo identificador de correlacin coincidir. Nota: El identificador de correlacin CINONE es un valor especial que coincide con cualquier identificador de correlacin de la MQMD del mensaje. Por tanto, especificar MOCORI con CINONE es lo mismo que no especificar MOCORI. MOGRPI Recuperar mensaje con identificador de grupo especificado. Esta opcin especifica que el mensaje que se ha de recuperar debe tener un identificador de grupo que coincida con el valor del campo MDGID en el parmetro MSGDSC de la llamada MQGET. Esta coincidencia es adicional respecto a cualquier otra coincidencia que pueda aplicarse (por ejemplo, el identificador de correlacin). Si esta opcin no se especifica, el campo MDGID del parmetro MSGDSC se pasa por alto, y todo identificador de grupo coincidir. Nota: El identificador de grupo GINONE es un valor especial que coincide con cualquier identificador de grupo de la MQMD del mensaje. Por tanto, especificar MOGRPI con GINONE es lo mismo que no especificar MOGRPI. MOSEQN Recuperar el mensaje que tiene el nmero de secuencia de mensaje especificado. Esta opcin especifica que el mensaje que se ha de recuperar debe tener un nmero de secuencia de mensaje que coincida con el valor del campo MDSEQ del parmetro MSGDSC de la llamada MQGET. Esta coincidencia es adicional respecto a cualquier otra coincidencia que pueda aplicarse (por ejemplo, el identificador de grupo).

Captulo 8. MQGMO - Opciones de obtener mensaje

73

MQGMO - Opciones de obtener mensaje


Si esta opcin no se especifica, el campo MDSEQ del parmetro MSGDSC se pasa por alto, y todo nmero de secuencia de mensaje coincidir. MOOFFS Recuperar el mensaje que tiene el desplazamiento especificado. Esta opcin especifica que el mensaje que se ha de recuperar debe tener un desplazamiento que coincida con el valor del campo MDOFF del parmetro MSGDSC de la llamada MQGET. Esta coincidencia es adicional respecto a cualquier otra coincidencia que pueda aplicarse (por ejemplo, el nmero de secuencia de mensaje). Si esta opcin no se especifica, el campo MDOFF del parmetro MSGDSC se pasa por alto, y todo desplazamiento coincidir. Si no se especifica ninguna de las opciones descritas, se puede utilizar la siguiente opcin: MONONE Sin coincidencias. Esta opcin especifica que no se van a utilizar coincidencias al seleccionar el mensaje que se devolver; por tanto, todos los mensajes de la cola son elegibles para recuperacin (pero bajo el control de las opciones GMAMSA, GMASGA y GMCMPM). MONONE se define como ayuda para la documentacin del programa. No se pretende que esta opcin se utilice con ninguna otra opcin, pero como su valor es cero no es posible detectar tal uso. Es un campo de entrada. El valor inicial de este campo es MOMSGI con MOCORI. Esta campo no est presente si GMVER es menor que GMVER2. Nota: El valor inicial del campo GMMO se define para la compatibilidad con los gestores de colas de MQSeries anteriores. Sin embargo, cuando se lee una serie de mensajes en una cola sin utilizar criterios de seleccin, este valor inicial requiere que la aplicacin restablezca los campos MDMID y MDCID en MINONE y CINONE antes de cada llamada MQGET. La necesidad de restablecer MDMID y MDCID se puede evitar estableciendo GMVER en GMVER2 y GMMO en MONONE. GMGST (serie de caracteres de 1 byte) Distintivo que indica si el mensaje recuperado est en un grupo. Tiene uno de los siguientes valores: GSNIG El mensaje no est en un grupo. GSMIG El mensaje est en un grupo, pero no es el ltimo del grupo. GSLMIG El mensaje es el ltimo del grupo. Tambin es el valor devuelto si el grupo consta solamente de un mensaje. Es un campo de salida. El valor inicial de este campo es GSNIG. Esta campo no est presente si GMVER es menor que GMVER2.

74

Consulta de programacin de aplicaciones (ILE RPG)

MQGMO - Opciones de obtener mensaje


GMSST (serie de caracteres de 1 byte) Distintivo que indica si el mensaje recuperado es un segmento de un mensaje lgico. Tiene uno de los siguientes valores: SSNSEG El mensaje no es un segmento. SSSEG El mensaje es un segmento, pero no es el ltimo segmento del mensaje lgico. SSLSEG El mensaje es el ltimo segmento del mensaje lgico. Tambin es el valor devuelto si el mensaje lgico consta solamente de un segmento. Es un campo de salida. El valor inicial de este campo es SSNSEG. Esta campo no est presente si GMVER es menor que GMVER2. GMSEG (serie de caracteres de 1 byte) Distintivo que indica si se permite segmentacin adicional para el mensaje recuperado. Tiene uno de los siguientes valores: SEGIHB No se permite segmentacin. SEGALW Se permite segmentacin. Es un campo de salida. El valor inicial de este campo es SEGIHB. Esta campo no est presente si GMVER es menor que GMVER2. GMRE1 (serie de caracteres de 1 byte) Reservado. Se trata de un campo reservado. El valor inicial de este campo es un carcter en blanco. Esta campo no est presente si GMVER es menor que GMVER2. | Los campos restantes no estn presentes si GMVER es menor que GMVER3. GMTOK (serie de bits de 16 bytes) Smbolo de mensaje. Es un campo reservado; su valor no es significativo. Se define el siguiente valor especial: MTKNON No hay smbolo de mensaje. El valor de la longitud del campo es cero binario. La longitud de este campo la proporciona LNMTOK. El valor inicial del campo es MTKNON. Este campo no est presente si GMVER es menor que GMVER3. GMRL (entero con signo de 10 dgitos) Longitud de los datos de mensaje devueltos (bytes).

| | |

Captulo 8. MQGMO - Opciones de obtener mensaje

75

MQGMO - Opciones de obtener mensaje


| | | | | | | Es un campo reservado; su valor no es significativo. Se define el siguiente valor especial: RLUNDF Longitud de los datos devueltos no definida. En OS/390, el valor devuelto para el campo GMRL siempre es RLUNDF. El valor inicial de este campo es RLUNDF. Este campo no est presente si GMVER es menor que GMVER3.

Valores iniciales y declaracin RPG


Tabla 18. Valores iniciales de campos de MQGMO
Nombre de campo GMSID GMVER GMOPT GMWI GMSG1 GMSG2 GMRQN GMMO GMGST GMSST GMSEG GMRE1 GMTOK GMRL Notas: 1. El smbolo b representa un carcter en blanco. Nombre de constante GMSIDV GMVER1 GMNWT Ninguno Ninguno Ninguno Ninguno MOMSGI + MOCORI GSNIG SSNSEG SEGIHB Ninguno MTKNON RLUNDF Valor de constante 'GMOb' (Ver nota 1) 1 0 0 0 0 Blancos 3 'b' 'b' 'b' 'b' Nulos -1

| |

Declaracin RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQGMO D* D* Identificador de estructura D GMSID 1 4 D* Nmero de versin de estructura D GMVER 5 8I 0 D* Opciones que controlan la accin de MQGET D GMOPT 9 12I 0 D* Intervalo de espera D GMWI 13 16I 0 D* Seal D GMSG1 17 20I 0 D* Identificador de seal D GMSG2 21 24I 0 D* Nombre resuelto de la cola destino D GMRQN 25 72 D* Opciones que controlan los criterios de seleccin usados para MQGET D GMMO 73 76I 0

76

Consulta de programacin de aplicaciones (ILE RPG)

declaracin RPG
D* D D* D* D D* D* D D* D D* D D* D Distintivo que indica GMGST Distintivo que indica de un mensaje lgico GMSST Distintivo que indica mensaje recuperado GMSEG Reservado GMRE1 Smbolo de mensaje GMTOK Longitud de los datos GMRL si el mensaje recuperado est en un grupo 77 77 si el mensaje recuperado es un segmento 78 78 si se permite ms segmentacin para el 79 80 79 80

| | | |

81 96 de mensaje devueltos (bytes) 97 100I 0

Captulo 8. MQGMO - Opciones de obtener mensaje

77

declaracin RPG

78

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 9. MQIIH - Cabecera de puente IMS


En la siguiente tabla se resumen los campos de la estructura.
Tabla 19. Campos de MQIIH
Campo IISID IIVER IILEN IIFMT IIFLG IILTO IIMMN IIRFM IIAUT IITID IITST IICMT IISEC Descripcin Identificador de estructura Nmero de versin de estructura Longitud de estructura MQIIH Nombre del formato MQ de los datos que siguen a MQIIH Distintivos Alteracin temporal del terminal lgico Pgina 80 80 80 80 81 81

Nombre de correlacin de servicios de formato de 81 mensajes Nombre del formato MQ del mensaje de respuesta 81 Contrasea o ticket de paso RACF Identificador de instancia de transaccin Estado de transaccin Modalidad de compromiso mbito de la seguridad 81 82 82 82 82

Visin general
La estructura MQIIH describe la informacin que debe estar presente al principio de un mensaje enviado al puente IMS a travs de MQSeries para OS/390. El nombre del formato de esta estructura es FMIMS. Son aplicables condiciones especiales para el juego de caracteres y la codificacin que se utilizan para la estructura MQIIH y los datos de mensajes de aplicacin: v Las aplicaciones que se conectan con el gestor de colas que posee la cola del puente IMS deben proporcionar una estructura MQIIH que tenga el juego de caracteres y la codificacin del gestor de colas. Esto se debe a que la conversin de datos de la estructura MQIIH no se lleva a cabo en este caso. v Las aplicaciones que se conectan a otros gestores de colas pueden proporcionar una estructura MQIIH que tenga cualquiera de los juegos de caracteres y codificaciones que se aceptan; la conversin de los datos de mensajes de aplicacin y la MQIIH la lleva a cabo el gestor de colas, segn convenga. Nota: Existe una excepcin a esta regla. Si el gestor de colas que posee la cola del puente IMS utiliza CICS para la gestin de colas distribuidas, la MQIIH debe tener el juego de caracteres y la codificacin de ese gestor de colas. v Los datos de mensajes de aplicacin que siguen a la estructura MQIIH deben tener el mismo juego de caracteres y la misma codificacin que la estructura

Copyright IBM Corp. 1994, 2000

79

MQIIH - Cabecera de puente IMS


MQIIH. Los campos IICSI e IIENC de la estructura MQIIH no se pueden utilizar para especificar el juego de caracteres y la codificacin de los datos de mensajes de aplicacin.

Campos
IISID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: IISIDV Identificador para la estructura de cabecera de informacin IMS. El valor inicial de este campo es IISIDV. IIVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser: IIVER1 Nmero de versin para la estructura de cabecera de informacin IMS. La siguiente constante especifica el nmero de la versin actual: IIVERC Versin actual de la estructura de cabecera de informacin IMS. El valor inicial de este campo es IIVER1. IILEN (entero con signo de 10 dgitos) Longitud de la estructura MQIIH. El valor debe ser: IILEN1 Longitud de la estructura de cabecera de informacin IMS. El valor inicial de este campo es IILEN1. IIENC (entero con signo de 10 dgitos) Reservado. Es un campo reservado; su valor no es significativo. El valor inicial de este campo es 0. IICSI (entero con signo de 10 dgitos) Reservado. Es un campo reservado; su valor no es significativo. El valor inicial de este campo es 0. IIFMT (serie de caracteres de 8 bytes) Nombre del formato MQ de los datos que siguen a MQIIH. Es el nombre del formato MQ de los datos de mensaje de aplicacin que siguen a la estructura MQIIH. Las reglas para codificarlo son las mismas que las del campo MDFMT de MQMD.

80

Consulta de programacin de aplicaciones (ILE RPG)

MQIIH - Cabecera de puente IMS


La longitud de este campo la proporciona LNFMT. El valor inicial de este campo es FMNONE. IIFLG (entero con signo de 10 dgitos) Distintivos. El valor debe ser: IINONE Sin distintivos. El valor inicial de este campo es IINONE. IILTO (serie de caracteres de 8 bytes) Alteracin temporal del terminal lgico. Se sita en el campo IO PCB. Es opcional; si no se especifica se utiliza el nombre TPIPE. Se pasa por alto si el primer byte es blanco o nulo. La longitud de este campo la proporciona LNLTOV. El valor inicial del campo son 8 caracteres en blanco. IIMMN (serie de caracteres de 8 bytes) Nombre de correlacin de servicios de formato de mensajes. Se sita en el campo IO PCB. Es opcional. Para entrada representa el MID, para salida representa el MOD. Se pasa por alto si el primer byte es blanco o nulo. La longitud de este campo la proporciona LNMFMN. El valor inicial del campo son 8 caracteres en blanco. IIRFM (serie de caracteres de 8 bytes) Nombre del formato MQ del mensaje de respuesta. Se trata del nombre del formato MQ del mensaje de respuesta que se enviar en respuesta al mensaje actual. Las reglas para codificarlo son las mismas que las del campo MDFMT de MQMD. La longitud de este campo la proporciona LNFMT. El valor inicial de este campo es FMNONE. IIAUT (serie de caracteres de 8 bytes) Contrasea o ticket de paso RACF. Es opcional; si se especifica, se utiliza con el ID de usuario en el contexto de seguridad de MQMD para construir un smboloU que se enva a IMS para proporcionar un contexto de seguridad. Si no se especifica, el ID de usuario se utiliza sin verificacin. Esto depende del establecimiento de conmutadores RACF, que puede requerir que haya presente un autentificador. Se pasa por alto si el primer byte es blanco o nulo. Se pueden utilizar los siguientes valores especiales: IAUNON Sin autentificacin. La longitud de este campo la proporciona LNAUTH. El valor inicial de este campo es IAUNON.
Captulo 9. MQIIH - Cabecera de puente IMS

81

MQIIH - Cabecera de puente IMS


IITID (serie de bits de 16 bytes) Identificador de instancia de transaccin. Este campo lo utilizan los mensajes de salida desde IMS, y por tanto se pasa por alto en la primera entrada. Si IITST se establece en ITSIC, debe proporcionarse en la siguiente entrada y en todas las entradas subsiguientes para permitir que IMS correlacione los mensajes con la conversacin correcta. Se pueden utilizar los siguientes valores especiales: ITINON Sin ID de instancia de transaccin. La longitud de este campo la proporciona LNTIID. El valor inicial de este campo es ITINON. IITST (serie de caracteres de 1 byte) Estado de transaccin. Indica el estado de conversacin de IMS. Se pasa por alto en la primera entrada porque no existe conversacin. En entradas subsiguientes indica si una conversacin est o no est activa. Para salida lo establece IMS. El valor debe ser uno de los siguientes: ITSIC En conversacin. ITSNIC No en conversacin. ITSARC Devolver datos de estado de transaccin en formato de arquitectura. Este valor solo se utiliza con el mandato IMS /DISPLAY TRAN. Hace que los datos del estado de la transaccin se devuelvan con el formato de arquitectura IMS en lugar del formato de tipo carcter. Consulte la publicacin MQSeries Application Programming Guide para obtener informacin detallada. El valor inicial de este campo es ITSNIC. IICMT (serie de caracteres de 1 byte) Modalidad de compromiso. Consulte la publicacin OTMA Reference para obtener ms informacin acerca de las modalidades de compromiso IMS. El valor debe ser uno de los siguientes: ICMCTS Comprometer y luego enviar. Esta modalidad implica una puesta en cola doble de salida, pero tiempos de ocupacin de regin ms cortos. Las transacciones de mtodo rpido y conversacionales no se pueden ejecutar con esta modalidad. ICMSTC Enviar y luego comprometer. El valor inicial de este campo es ICMCTS. IISEC (serie de caracteres de 1 byte) mbito de la seguridad.

82

Consulta de programacin de aplicaciones (ILE RPG)

MQIIH - Cabecera de puente IMS


| | Indica el proceso de seguridad de IMS deseado. Se definen los siguientes valores: ISSCHK Comprobar mbito de seguridad. Se construye un ACEE en la regin de control, pero no en la regin dependiente. ISSFUL mbito de seguridad completa. Se construye un ACEE en antememoria en la regin de control y un ACEE no en antememoria en la regin dependiente. Si utiliza ISSFUL, debe asegurarse de que el ID de usuario para el que se construye el ACEE tiene acceso a los recursos utilizados en la regin dependiente. | Si no se especifica ISSCHK ni ISSFUL para este campo, se presupone ISSCHK. El valor inicial de este campo es ISSCHK. IIRSV (serie de caracteres de 1 byte) Reservado. Es un campo reservado; debe estar en blanco.

Valores iniciales y declaracin RPG


Tabla 20. Valores iniciales de los campos de MQIIH
Nombre de campo IISID IIVER IILEN IIENC IICSI IIFMT IIFLG IILTO IIMMN IIRFM IIAUT IITID IITST IICMT IISEC IIRSV Notas: 1. El smbolo b representa un carcter en blanco. Nombre de constante IISIDV IIVER1 IILEN1 Ninguno Ninguno FMNONE IINONE Ninguno Ninguno FMNONE IAUNON ITINON ITSNIC ICMCTS ISSCHK Ninguno Valor de constante 'IIHb' (Ver nota 1) 1 84 0 0 'bbbbbbbb' 0 'bbbbbbbb' 'bbbbbbbb' 'bbbbbbbb' 'bbbbbbbb' Nulos 'b' '0' 'C' 'b'

Captulo 9. MQIIH - Cabecera de puente IMS

83

MQIIH - Cabecera de puente IMS

Declaracin RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQIIH D* D* Identificador de estructura D IISID 1 4 D* Nmero de versin de estructura D IIVER 5 8I 0 D* Longitud de la estructura MQIIH D IILEN 9 12I 0 D* Reservado D IIENC 13 16I 0 D* Reservado D IICSI 17 20I 0 D* Nombre del formato MQ de los datos que siguen a MQIIH D IIFMT 21 28 D* Distintivos D IIFLG 29 32I 0 D* Alteracin temporal de terminal lgico D IILTO 33 40 D* Nombre de correlacin de servicios de formato de mensajes D IIMMN 41 48 D* Nombre del formato MQ del mensaje de respuesta D IIRFM 49 56 D* Contrasea o ticket de paso RACF D IIAUT 57 64 D* Identificador de instancia de transaccin D IITID 65 80 D* Estado de transaccin D IITST 81 81 D* Modalidad de compromiso D IICMT 82 82 D* mbito de seguridad D IISEC 83 83 D* Reservado D IIRSV 84 84

84

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 10. MQMD - Descriptor de mensaje


En la siguiente tabla se resumen los campos de la estructura.
Tabla 21. Campos de MQMD
Campo MDSID MDVER MDREP MDMT MDEXP MDFB MDENC MDCSI MDFMT MDPRI MDPER MDMID MDCID MDBOC MDRQ MDRM MDUID MDACC MDAID MDPAT MDPAN MDPD MDPT MDAOD MDGID MDSEQ MDOFF MDMFL MDOLN Descripcin Identificador de estructura Nmero de versin de estructura Opciones para mensajes de informe. Tipo de mensaje Duracin del mensaje Cdigo de informacin de retorno o de razn Codificacin numrica de datos de mensaje Identificador de juego de caracteres de los datos de mensaje Nombre del formato de los datos de mensaje Prioridad de mensaje Permanencia de mensaje Identificador de mensaje Identificador de correlacin Contador de restitucin Nombre de la cola de respuestas Nombre del gestor de la cola de respuestas Identificador de usuario Smbolo de contabilidad Datos de la aplicacin relacionados con la identidad Tipo de aplicacin que puso el mensaje Nombre de la aplicacin que puso el mensaje Fecha en la que se puso el mensaje Hora a la que se puso el mensaje Datos de aplicacin relacionados con el origen Pgina 87 87 87 98 99 101 105 106 107 111 112 113 115 116 116 117 118 119 120 121 123 123 124 125

Nota: Los campos restantes no estn presentes si MDVER es menor que MDVER2. Identificador de grupo Nmero de secuencia que el mensaje lgico tiene dentro del grupo Desplazamiento de datos del mensaje fsico desde el principio del mensaje lgico Distintivos de mensaje Longitud del mensaje original 126 127 127 128 133

Copyright IBM Corp. 1994, 2000

85

MQMD - Descriptor de mensaje

Visin general
La estructura MQMD contiene la informacin de control que acompaa a los datos de la aplicacin cuando un mensaje viaja entre las aplicaciones emisora y receptora. Los datos de tipo carcter del descriptor de mensaje tienen el juego de caracteres del gestor de colas al que est conectada la aplicacin; esto lo establece el atributo de gestor de colas CodedCharSetId. Los datos numricos del descriptor de mensaje tienen la codificacin nativa de la mquina (indicada por ENNAT). Si los gestores de colas emisor y receptor utilizan distintos juegos de caracteres o codificaciones, los datos del descriptor de mensaje se convierten automticamente (no es necesario que la aplicacin receptora realice esas conversiones). Si los datos del mensaje de la aplicacin necesitan convertirse, esta operacin puede llevarla a cabo una rutina de salida escrita por usuario invocada al recuperar el mensaje mediante la llamada MQGET. Para obtener ms informacin, consulte lo siguiente: v La opcin GMCONV que se describe en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51 v La nota de utilizacin que describe GMCONV en el Captulo 30. MQGET Obtener mensaje en la pgina 241 v La publicacin MQSeries Application Programming Guide Cuando un mensaje se encuentra en una cola de transmisin, algunos de los campos de MQMD se establecen en valores determinados; consulte el Captulo 21. MQXQH - Cabecera de cola de transmisin en la pgina 203 para obtener informacin detallada. La versin actual de MQMD es MDVER2. Los campos que existen solamente en la estructura de la versin 2 se identifican como tales en las descripciones que siguen. La declaracin de MQMD proporcionada en el archivo COPY contiene los campos nuevos, pero el valor inicial proporcionado para el campo MDVER es MDVER1; esto garantiza la compatibilidad con las versiones existentes. Para utilizar los campos nuevos, la aplicacin debe establecer el nmero de versin en MDVER2. Existe una declaracin disponible para la estructura de la versin 1 con el nombre MQMD1. Las aplicaciones que se pretende que sean portables entre varios entornos deben utilizar la versin 2 de MQGM solamente si todos esos entornos soportan dicha versin. Utilizar la versin 2 de MQMD suele ser equivalente a utilizar la versin 1, poniendo como prefijo a los datos del mensaje de la aplicacin una estructura MQMDE. Sin embargo, si todos los campos de la estructura MQMDE tienen sus valores por omisin, la MQMDE se puede pasar por alto. La versin 1 de MQMD junto con MQMDE se utilizan de la siguiente forma: v En las llamadas MQPUT y MQPUT1, si la aplicacin proporciona la versin 1 de la MQMD, tiene la opcin de poner como prefijo a los datos del mensaje una MQMDE, estableciendo el campo MDFMT de MQMD en FMMDE para indicar que hay presente una MQMDE. Si la aplicacin no proporciona una MQMDE, el gestor de colas presupone valores por omisin para los campos de la MQMDE. Nota: Varios de los campos que existen en la versin 2 de MQMD, pero no en la versin 1, son campos de entrada/salida en MQPUT y MQPUT1. Sin embargo, el gestor de colas no devuelve ningn valor en los campos

86

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


equivalentes de la MQMDE en la salida de las llamadas MQPUT y MQPUT1; si la aplicacin requiere esos valores de salida, debe utilizar la versin 2 de MQMD. v En la llamada MQGET, si la aplicacin proporciona la versin 1 de MQMD, el gestor de colas pone como prefijo al mensaje devuelto una MQMDE, pero solamente si uno o ms de los campos de la MQMDE tiene un valor que no es el valor por omisin. El campo MDFMT en MQMD tendr el valor FMMDE para indicar que hay una MQMDE presente. Los valores por omisin que el gestor de colas utiliz para los campos de la MQMDE son los mismos que los valores iniciales de esos campos, mostrados en la Tabla 25 en la pgina 141. Esta estructura es un parmetro de entrada/salida para las llamadas MQGET, MQPUT y MQPUT1.

Campos
MDSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: MDSIDV Identificador de la estructura del descriptor de mensaje. Siempre es un campo de entrada. El valor inicial de este campo es MDSIDV. MDVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser uno de los siguientes: MDVER1 Estructura de descriptor de mensaje de la versin 1. MDVER2 Estructura de descriptor de mensaje de la versin 2. Los campos que existen solamente en la estructura de la versin 2 se identifican como tales en las descripciones que siguen. Nota: Cuando se utiliza la versin 2 de MQMD, el gestor de colas lleva a cabo comprobaciones adicionales en cualquier estructura de cabecera de MQ que pueda haber presente al principio de los datos del mensaje de la aplicacin; para obtener informacin ms detallada consulte la nota de utilizacin 4 en la pgina 285 para la llamada MQPUT. La siguiente constante especifica el nmero de la versin actual: MDVERC Versin actual de la estructura de descriptor de mensaje. Siempre es un campo de entrada. El valor inicial de este campo es MDVER1. MDREP (entero con signo de 10 dgitos) Opciones para mensajes de informe.

Captulo 10. MQMD - Descriptor de mensaje

87

MQMD - Descriptor de mensaje


Un mensaje de informe es un mensaje sobre otro mensaje que se utiliza para informar a una aplicacin sobre los sucesos esperados o inesperados relacionados con el mensaje original. El campo MDREP permite que la aplicacin que enva el mensaje original especifique los mensajes de informe necesarios, si estos deben incluir los datos de mensaje de aplicacin, as como el modo en que deben establecerse los identificadores de correlacin y de mensaje en los mensajes de informe o de respuesta (tanto para los informes como para las respuestas). Pueden solicitarse varios o todos los tipos de informe siguientes (o ninguno): v De excepcin v De caducidad v Confirmacin a la llegada (COA) v Confirmacin a la entrega (COD) v Notificacin de accin positiva (PAN) v Notificacin de accin negativa (NAN) Si se necesita ms de un tipo de mensaje de informe, o se necesitan otras opciones de informe, los valores se pueden aadir juntos (no aada la misma constante ms de una vez). La aplicacin que recibe el mensaje de informe puede determinar la razn por la que se gener el informe examinando el campo MDFB en la MQMD; vea el campo MDFB para obtener informacin ms detallada. Opciones de excepcin: puede especificar una de las opciones enumeradas a continuacin para solicitar un mensaje de informe de excepcin. ROEXC Se requieren informes de excepcin. Un agente de canal de mensajes puede generar este tipo de informe cuando se enva un mensaje a otro gestor de colas y el mensaje no puede entregarse en la cola destino especificada. Por ejemplo, la cola destino o una cola de transmisin intermedia pueden estar llenas, o el mensaje puede ser demasiado grande para la cola. La generacin del mensaje de informe de excepcin depende de la permanencia del mensaje original y de la velocidad del canal de mensajes (normal o rpida) por el que viaja el mensaje original: v Para todos los mensajes permanentes y los mensajes no permanentes que viajan a travs de canales de mensajes normales, el informe de excepcin se genera nicamente si se puede completar de forma satisfactoria la accin especificada por la aplicacin emisora para la condicin de error. La aplicacin emisora puede especificar una de las siguientes acciones para controlar la disposicin del mensaje original cuando surge la condicin de error: RODLQ (hace que el mensaje original se coloque en la cola de mensajes no entregados). RODISC (hace que el mensaje original se descarte). Si la accin especificada por la aplicacin emisora no puede completarse satisfactoriamente, el mensaje original se deja en la cola de transmisin y no se genera ningn informe de excepcin. v Para mensajes no permanentes que viajan a travs de canales de mensajes rpidos, el mensaje original se elimina de la cola de transmisin y el informe de excepcin se genera aunque la accin especificada para la condicin de error no se pueda completar satisfactoriamente. Por ejemplo, si se especifica RODLQ, pero el

88

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


mensaje original no se puede colocar en la cola de mensajes no entregados porque (supongamos) esa cola est llena, el mensaje de informe de excepcin se genera y el mensaje original se descarta. Consulte el manual MQSeries Intercommunication para obtener ms informacin acerca de los canales de mensajes normales y rpidos. No se genera un informe de excepcin si la aplicacin que transfiri el mensaje original puede recibir notificacin acerca del problema de manera sncrona mediante el cdigo de razn devuelto por la llamada MQPUT o MQPUT1. Las aplicaciones tambin pueden enviar informes de excepcin para indicar que un mensaje recibido no puede procesarse (por ejemplo, porque se trata de una transaccin de dbito que hara que la cuenta sobrepasase su lmite de crdito). Los datos del mensaje original no se incluyen en el mensaje de informe. No especifique ms de un valor ROEXC, ROEXCD y ROEXCF. ROEXCD Se requieren informes de excepcin con datos. Es lo mismo que ROEXC, salvo en que los primeros 100 bytes de los datos de mensaje de aplicacin del mensaje original se incluyen en el mensaje de informe. Si la longitud de los datos del mensaje original es inferior a 100 bytes, la longitud de los datos del mensaje del informe ser la misma. No especifique ms de un valor ROEXC, ROEXCD y ROEXCF. ROEXCF Se requieren informes de excepcin con datos completos. Es lo mismo que ROEXC, salvo en que todos los datos de mensaje de aplicacin del mensaje original se incluyen en el mensaje de informe. No especifique ms de un valor ROEXC, ROEXCD y ROEXCF. Opciones de caducidad: puede especificar una de las opciones que se enumeran a continuacin para solicitar un mensaje de informe de caducidad. ROEXP Se requieren informes de caducidad. El gestor de colas genera este tipo de informe si el mensaje se descarta antes de entregarse a una aplicacin porque ya ha transcurrido el tiempo de caducidad (vea el campo MDEXP). Si no se establece esta opcin, no se genera ningn mensaje de informe si se descarta un mensaje por este motivo (aunque se especifique una de las opciones ROEXC*). Los datos del mensaje original no se incluyen en el mensaje de informe. No especifique ms de un valor ROEXP, ROEXPD y ROEXPF. ROEXPD Se requieren informes de caducidad con datos.

Captulo 10. MQMD - Descriptor de mensaje

89

MQMD - Descriptor de mensaje


Es lo mismo que ROEXP, salvo en que los primeros 100 bytes de los datos de mensaje de aplicacin del mensaje original se incluyen en el mensaje de informe. Si la longitud de los datos del mensaje original es inferior a 100 bytes, la longitud de los datos del mensaje del informe ser la misma. No especifique ms de un valor ROEXP, ROEXPD y ROEXPF. ROEXPF Se requieren informes de caducidad con datos completos. Es lo mismo que ROEXP, salvo en que todos los datos de mensaje de aplicacin del mensaje original se incluyen en el mensaje de informe. No especifique ms de un valor ROEXP, ROEXPD y ROEXPF. Opciones de confirmar al llegar: puede especificar una de las opciones que se enumeran a continuacin para solicitar un mensaje de informe de confirmar al llegar. ROCOA Se requieren informes de confirmar al llegar. El gestor de colas que es propietario de la cola destino genera este tipo de informe cuando el mensaje se coloca en la cola destino. Los datos del mensaje original no se incluyen en el mensaje de informe. Si el mensaje se transfiere como parte de una unidad de trabajo y la cola destino es una cola local, el mensaje de informe COA generado por el gestor de colas pasar a estar disponible para recuperacin nicamente si se compromete la unidad de trabajo, y en el momento en que tiene lugar este compromiso. No se genera un informe COA si el campo MDFMT del descriptor de mensaje es FMXQH o FMDLH. Esto evita que se genere un informe COA si el mensaje se pone en una cola de transmisin, o si no puede entregarse y se pone en una cola de mensajes no entregados. No especifique ms de un valor ROCOA, ROCOAD y ROCOAF. ROCOAD Se requieren informes de confirmar al llegar con datos. Es lo mismo que ROCOA, salvo en que los primeros 100 bytes de los datos de mensaje de aplicacin del mensaje original se incluyen en el mensaje de informe. Si la longitud de los datos del mensaje original es inferior a 100 bytes, la longitud de los datos del mensaje del informe ser la misma. No especifique ms de un valor ROCOA, ROCOAD y ROCOAF. ROCOAF Se requieren informes de confirmar al llegar con datos completos. Es lo mismo que ROCOA, salvo en que todos los datos de mensaje de aplicacin del mensaje original se incluyen en el mensaje de informe. No especifique ms de un valor ROCOA, ROCOAD y ROCOAF. Opciones de confirmar al entregar: puede especificar una de las opciones que se enumeran a continuacin para solicitar un mensaje de informe de confirmar al entregar.

90

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


ROCOD Se requieren informes de confirmar al entregar. El gestor de colas genera este tipo de informe cuando una aplicacin recupera el mensaje de la cola destino de tal forma que hace que este se suprima de la cola. Los datos del mensaje original no se incluyen en el mensaje de informe. Si el mensaje se recupera como parte de una unidad de trabajo, el mensaje de informe se genera en la propia unidad de trabajo, por lo que no est disponible hasta que esta se comprometa. Si la unidad de trabajo se restituye, el informe no se enva. No se genera un informe COD si el campo MDFMT del descriptor de mensaje es FMDLH. Esto evita que se genere un informe COD si el mensaje no puede entregarse y se pone en una cola de mensajes no entregados. ROCOD no es vlido si la cola destino es una cola XCF. No especifique ms de un valor ROCOD, ROCODD y ROCODF. ROCODD Se requieren informes de confirmar al entregar con datos. Es lo mismo que ROCOD, salvo en que los primeros 100 bytes de los datos de mensaje de aplicacin del mensaje original se incluyen en el mensaje de informe. Si la longitud de los datos del mensaje original es inferior a 100 bytes, la longitud de los datos del mensaje del informe ser la misma. | | | | | | | | | | | | Si se especifica GMATM en la llamada MQGET para el mensaje original, y el mensaje devuelto se trunca, la cantidad de datos de mensaje colocados en el mensaje de informe depende del entorno: v En OS/390, es la mnima de las siguientes cantidades: La longitud del mensaje original La longitud del almacenamiento intermedio utilizado para recuperar el mensaje 100 bytes. v En otros entornos, es la mnima de las siguientes cantidades: La longitud del mensaje original 100 bytes. ROCODD no es vlido si la cola destino es una cola XCF. No especifique ms de un valor ROCOD, ROCODD y ROCODF. ROCODF Se requieren informes de confirmar al entregar con datos completos. Es lo mismo que ROCOD, salvo en que todos los datos de mensaje de aplicacin del mensaje original se incluyen en el mensaje de informe. ROCODF no es vlido si la cola destino es una cola XCF. No especifique ms de un valor ROCOD, ROCODD y ROCODF. Opciones de notificacin de accin: puede especificar una o ambas de las opciones enumeradas a continuacin para solicitar que la aplicacin receptora enve un mensaje de informe de accin positiva o negativa.

Captulo 10. MQMD - Descriptor de mensaje

91

MQMD - Descriptor de mensaje


ROPAN Se requieren informes de notificacin de accin positiva. Este tipo de informe lo genera la aplicacin que recupera el mensaje y acta sobre l. Indica que la accin solicitada en el mensaje se ha llevado a cabo satisfactoriamente. La aplicacin que genera el informe determina si se han de incluir o no datos con el informe. Aparte de transmitir esta peticin a la aplicacin que recupera el mensaje, el gestor de colas no realiza ninguna accin en funcin de esta opcin. Es responsabilidad de la aplicacin que recupera generar el informe, si ello es conveniente. RONAN Se requieren informes de notificacin de accin negativa. Este tipo de informe lo genera la aplicacin que recupera el mensaje y acta sobre l. Indica que la accin solicitada en el mensaje no se ha llevado a cabo satisfactoriamente. La aplicacin que genera el informe determina si se han de incluir o no datos con el informe. Por ejemplo, puede ser conveniente incluir algunos datos que indiquen por qu la peticin no pudo llevarse a cabo. Aparte de transmitir esta peticin a la aplicacin que recupera el mensaje, el gestor de colas no realiza ninguna accin en funcin de esta opcin. Es responsabilidad de la aplicacin que recupera generar el informe, si ello es conveniente. La aplicacin es responsable de determinar qu condiciones se corresponden con una accin positiva y qu otras condiciones se corresponden con una accin negativa. Sin embargo, si la peticin solo se ha llevado a cabo parcialmente, es aconsejable que se genere un informe NAN en lugar de un informe PAN, si se solicita. Tambin es aconsejable que cada condicin posible se corresponda con una accin positiva o con una accin negativa, pero no con ambas. Opciones de identificador de mensaje: puede especificar una de las opciones que se enumeran a continuacin para controlar cmo se va a establecer el MDMID del mensaje de informe (o del mensaje de respuesta). RONMI Nuevo identificador de mensaje. Esta es la accin por omisin e indica que si se genera un informe o respuesta como resultado del mensaje, deber generarse un nuevo MDMID para el mensaje de informe o de respuesta. ROPMI Pasar identificador de mensaje. Si se genera un informe o una respuesta a consecuencia de este mensaje, el MDMID del mensaje deber copiarse en el MDMID del mensaje de informe o de respuesta. Si no se especifica esta opcin, se presupone RONMI. Opciones de identificador de correlacin: puede especificar una de las opciones que se enumeran a continuacin para controlar cmo se va a establecer el MDCID del mensaje de informe (o del mensaje de respuesta).

92

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


ROCMTC Copiar el identificador del mensaje en el identificador de correlacin. Esta es la accin por omisin e indica que si se genera un informe o respuesta como resultado del mensaje, el MDMID del mensaje deber copiarse en el MDCID del mensaje de informe o de respuesta. ROPCI Pasar identificador de correlacin. Si se genera un informe o una respuesta a consecuencia de este mensaje, el MDCID del mensaje deber copiarse en el MDCID del mensaje de informe o de respuesta. Si no se especifica esta opcin, se presupone ROCMTC. Es aconsejable utilizar servidores que respondan a peticiones o generen mensajes de informe para comprobar si las opciones ROPMI o ROPCI estaban establecidas en el mensaje original. Si lo estaban, los servidores debern realizar la accin descrita para dichas opciones. Si no estn establecidas, los servidores debern realizar la accin por omisin correspondiente. Opciones de disposicin: puede especificar una de las opciones que se enumeran a continuacin para controlar la disposicin del mensaje original cuando no puede entregarse en la cola destino. Estas opciones solo son aplicables en situaciones en las que el resultado sera la generacin de un mensaje de informe de excepcin si la aplicacin emisorad hubiese solicitado uno. La aplicacin puede establecer las opciones de disposicin independientemente de los informes de excepcin solicitantes. RODLQ Colocar el mensaje en la cola de mensajes no entregados. Es la accin por omisin e indica que el mensaje debe colocarse en la cola de mensajes no entregados si este no puede entregarse en la cola destino. Se generar un mensaje de informe de excepcin si el emisor lo ha solicitado. RODISC Descartar mensaje. Indica que debe descartarse el mensaje si no puede entregarse en la cola destino. Se generar un mensaje de informe de excepcin si el emisor lo ha solicitado. Si se desea devolver el mensaje original al emisor, sin que el mensaje original se coloque en la cola de mensajes no entregados, el emisor debe especificar RODISC con ROEXCF. Opcin por omisin: puede especificar lo siguiente si no se requieren opciones de informe: RONONE No se requiere ningn informe. Este valor puede utilizarse para indicar que no se han especificado otras opciones. RONONE se ha definido como ayuda para la documentacin del programa. No se pretende que esta opcin se utilice con ninguna otra opcin, pero como su valor es cero no es posible detectar tal uso.

Captulo 10. MQMD - Descriptor de mensaje

93

MQMD - Descriptor de mensaje


Informacin general: la aplicacin que enva el mensaje original debe solicitar de manera especfica todos los tipos de informe necesarios. Por ejemplo, si se solicita un informe COA pero no se solicita un informe de excepcin, se genera un informe COA cuando el mensaje se coloca en la cola destino, pero no se genera un informe de excepcin si la cola destino est llena cuando llega el mensaje. Si no se establece ninguna opcin MDREP, ni el gestor de colas ni el agente de canal de mensajes (MCA) generan mensajes de informe. Algunas opciones de informe se pueden especificar incluso aunque el gestor de colas local no las reconozca. Esto resulta til cuando la opcin la va a procesar el gestor de colas destino. Consulte el Apndice E. Opciones de informe en la pgina 481 para obtener informacin ms detallada. Si se solicita un mensaje de informe, el nombre de la cola a la que debe enviarse el informe debe especificarse en el campo MDRQ. Cuando se recibe un mensaje de informe, la naturaleza del informe podr determinarse examinando el campo MDFB del descriptor de mensaje. Si el gestor de colas o el MCA que genera un mensaje de informe no puede ponerlo en la cola de respuestas (por ejemplo, porque la cola de respuestas o de transmisin est llena), el mensaje de informe se coloca en la cola de mensajes no entregados. Si esto tampoco funciona, o si no hay una cola de mensajes no entregados, la accin que debe efectuarse depende del tipo de mensaje de informe: v Si se trata de un informe de excepcin, el mensaje que ha dado lugar a la generacin de este informe permanece en su cola de transmisin, lo cual garantiza que no se perder. v Para todos los dems tipos de informe, el mensaje de informe se descarta y el proceso contina con normalidad. Si ocurre esto, significa que el mensaje original ya se ha entregado con plenas garantas (en mensajes de informe COA o COD) o que ya no es preciso conservarlo (en mensajes de informe de caducidad). Una vez que el mensaje de informe se ha colocado con xito en una cola (ya sea la cola destino o una cola de transmisin intermedia), el mensaje deja de estar sujeto a un proceso especial (pasa a tratarse como cualquier otro mensaje). | | | | | | | | | | | | | Cuando se genera el informe, la cola MDRQ se abre y el mensaje de respuesta se transfiere utilizando la autorizacin de MDUID en la MQMD del mensaje que causa el informe, salvo en los casos siguientes: v Los informes de excepcin generados por un MCA receptor se transfieren con la autorizacin que el MCA ha utilizado al intentar transferir el mensaje causante del informe. El atributo de canal CDPA determina el identificador de usuario que se utiliza. v Los informes COA generados por el gestor de colas se transfieren con la autorizacin que se utiliz cuando el mensaje que es causa del informe se transfiri al gestor de colas que genera el informe. Por ejemplo, si el mensaje lo transfiri un MCA receptor utilizando el identificador de usuario del MCA, el gestor de colas transfiere el informe COA utilizando el identificador de usuario del MCA. Las aplicaciones que generan informes deben utilizar, por lo general, la misma autorizacin que habran utilizado para generar una respuesta, y que suele coincidir con la autorizacin del identificador de usuario del mensaje original.

94

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


Si el informe debe ir a un destino remoto, los emisores y los receptores pueden decidir si lo aceptan o no, exactamente igual que para los dems mensajes. Si se solicita un mensaje de informe con datos: v El mensaje de informe siempre se genera con el volumen de datos solicitado por el emisor del mensaje original. Si el mensaje de informe resulta demasiado grande para la cola de respuestas, tendr lugar el proceso descrito anteriormente; el mensaje de informe nunca se trunca para ajustarse a la cola de respuestas. v Si el MDFMT del mensaje original es FMXQH, los datos incluidos en el informe no incluyen el MQXQH. Los datos del informe empiezan por el primer byte de los datos ms all de MQXQH en el mensaje original. Esta situacin se da tanto si la cola es una cola de transmisin como si no lo es. Si se recibe un mensaje de informe de caducidad, COA o COD en la cola de respuestas, esto garantiza que el mensaje original ha llegado, se ha entregado o ha caducado, segn sea el caso. No obstante, si se ha solicitado uno de estos mensajes de informe, o varios, y no se han recibido, no puede deducirse de esta circunstancia lo contrario, ya que puede haberse producido una de las siguientes situaciones: 1. El mensaje de informe est retenido porque hay algn problema en el enlace. 2. El mensaje de informe est retenido porque existe una condicin de bloqueo en una cola de transmisin intermedia o en la cola de respuestas (por ejemplo, la cola est llena o no permite transferencias). 3. El mensaje de informe est en una cola de mensajes no entregados. 4. Cuando el gestor de colas intentaba generar el mensaje de informe no ha podido ponerlo en la cola apropiada ni tampoco lo ha podido poner en la cola de mensajes no entregados, por lo que finalmente no lo ha podido generar. 5. Se ha producido un error en el gestor de colas entre la accin de la que se est informando (llegada, entrega o caducidad) y la generacin del mensaje de informe correspondiente. (Esto no ocurre con los mensajes de informe COD si la aplicacin recupera el mensaje original dentro de la unidad de trabajo, ya que el mensaje de informe COD se genera en la misma unidad de trabajo.) Los mensajes de informe de excepcin tambin pueden retenerse por las mismas causas descritas en los puntos 1, 2 y 3. No obstante, cuando un MCA no puede generar un mensaje de informe de excepcin (este mensaje no se puede poner en la cola de respuestas ni en la cola de mensajes no entregados), el mensaje original permanece en la cola de transmisin situada en el emisor y el canal se cierra. Esta operacin tiene lugar independientemente de que el mensaje de informe se haya generado en el extremo receptor o emisor del canal. Si el mensaje original est bloqueado temporalmente (dando como resultado la generacin de un mensaje de informe de excepcin y la transferencia del mensaje original a una cola de mensajes no entregados), pero el bloqueo desaparece y una aplicacin lee el mensaje original de la cola de mensajes no entregados y lo vuelve a transferir a su destino, puede suceder lo siguiente: v A pesar de haberse generado un mensaje de informe de excepcin, el mensaje original acaba llegando de forma satisfactoria a su destino.

Captulo 10. MQMD - Descriptor de mensaje

95

MQMD - Descriptor de mensaje


v Se genera ms de un mensaje de informe de excepcin para un solo mensaje original, puesto que el mensaje original puede encontrar otro bloqueo posteriormente. Mensajes de informe para segmentos de mensaje: se pueden solicitar mensajes de informe para mensajes en los que se permite la segmentacin (vea la descripcin del distintivo MFSEGA). Si el gestor de colas considera necesario segmentar el mensaje, se puede generar un mensaje de informe para cada uno de los segmentos que encuentre posteriormente la condicin pertinente. Por consiguiente, las aplicaciones deben estar preparadas para recibir varios mensajes de informe para cada tipo de mensaje de informe solicitado. El campo MDGID del mensaje de informe se puede utilizar para correlacionar los diferentes informes con el identificador de grupo del mensaje original, y el campo MDFB utilizado para identificar el tipo al que corresponde cada mensaje de informe. Si se utiliza GMLOGO para recuperar mensajes de informe para segmentos, tenga en cuenta que las llamadas MQGET sucesivas puede devolver informes de diferentes tipos. Por ejemplo, si se solicitan informes COA y COD para un mensaje que el gestor de colas ha segmentado, las llamadas MQGET para los mensajes de informe pueden devolver los mensajes de informe COA y COD intercalados de manera imprevisible. Esto se puede evitar utilizando la opcin GMCMPM (opcionalmente con GMATM). GMCMPM hace que el gestor de colas reensamble los mensajes de informe que tienen el mismo tipo de informe. Por ejemplo, la primera llamada MQGET podra reensamblar todos los mensajes COA relacionados con el mensaje original, y la segunda llamada MQGET podra reensamblar todos los mensajes COD. El que se reensamblen primero unos u otros depender del tipo de mensaje de informe que aparezca primero en la cola. Las aplicaciones que transfieren segmentos pueden especificar distintas opciones de informe para cada segmento. Sin embargo, hay que tener en cuenta los siguientes puntos: v Si los segmentos se recuperan utilizando la opcin GMCMPM, el gestor de colas solamente satisface las opciones de informe del primer segmento. v Si los segmentos se recuperan de uno en uno, y la mayor parte de ellos tienen una de las opciones ROCOD*, pero como mnimo uno de los segmentos no las tiene, no ser posible utilizar la opcin GMCMPM para recuperar los mensajes de informe con una nica llamada MQGET, ni utilizar la opcin GMASGA para detectar cundo han llegado todos los mensajes de informe. En una red MQ, es posible que los gestores de colas tengan posibilidades diferenciadas. Si un mensaje de informe para un segmento lo genera un gestor de colas o MCA que no acepta la segmentacin, el gestor de colas o MCA no incluir por omisin en el mensaje de informe la informacin de segmento necesaria, y esto puede hacer que sea difcil identificar el mensaje original que provoc la generacin del informe. Esta dificultad se puede evitar solicitando datos con el mensaje de informe, es decir, especificando las opciones RO*D o RO*F adecuadas. Sin embargo, tenga en cuenta que si se especifica RO*D, pueden devolverse menos de 100 bytes de datos de mensaje de aplicacin a la aplicacin que recupera el mensaje de informe, si este lo genera un gestor de colas o un MCA que no da soporte a la segmentacin.

96

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


Contenido del descriptor de mensaje para un mensaje de informe: cuando el gestor de colas o el agente de canal de mensajes (MCA) genera un mensaje de informe, establece los campos del descriptor de mensaje en los valores siguientes y despus transfiere el mensaje siguiendo el procedimiento habitual: Campo de MQMD Valor utilizado MDSID MDSIDV MDVER MDVER2 MDREP RONONE MDMT MTRPRT MDEXP EIULIM MDFB El adecuado en funcin de la naturaleza del informe (FBCOA, FBCOD, FBEXP o un valor RC*) MDENC Se copia del descriptor de mensaje original MDCSI Se copia del descriptor de mensaje original MDFMT Se copia del descriptor de mensaje original MDPRI Se copia del descriptor de mensaje original MDPER Se copia del descriptor de mensaje original MDMID El especificado por las opciones de informe del descriptor de mensaje original MDCID El especificado por las opciones de informe del descriptor de mensaje original MDBOC 0 MDRQ Blancos MDRM Nombre del gestor de colas MDUID El establecido por la opcin PMPASI MDACC El establecido por la opcin PMPASI MDAID El establecido por la opcin PMPASI MDPAT ATQM, o el adecuado para el agente de canal de mensajes MDPAN Los primeros 28 bytes del nombre del gestor de colas o del nombre del agente de canal de mensajes. Para los mensajes de informe generados por el puente IMS, este campo contiene el nombre de grupo XCF y el nombre de miembro XCF del sistema IMS con el que estn relacionados los mensajes. MDPD Fecha en la que se enva el mensaje de informe MDPT Hora a la que se enva el mensaje de informe MDAOD Blancos MDGID Se copia del descriptor de mensaje original MDSEQ Se copia del descriptor de mensaje original MDOFF Se copia del descriptor de mensaje original MDMFL Se copia del descriptor de mensaje original MDOLN Se copia del descriptor de mensaje original si no es OLUNDF, y se establece en la longitud de los datos del mensaje original en cualquier otro caso Se aconseja una aplicacin que genere un informe para establecer valores similares, salvo en los casos siguientes: v El campo MDRM puede establecerse en blancos (el gestor de colas los sustituir por el nombre del gestor de colas local cuando se transfiera el mensaje). v Los campos de contexto deben establecerse utilizando la opcin que se habra utilizado para una respuesta, generalmente PMPASI. Anlisis del campo de informe: el campo MDREP contiene subcampos; esta es la razn por la que las aplicaciones que necesitan comprobar si el emisor de un

Captulo 10. MQMD - Descriptor de mensaje

97

MQMD - Descriptor de mensaje


mensaje ha solicitado un determinado informe deben utilizar una de las tcnicas descritas en Anlisis del campo de informe en la pgina 482. Es un campo de salida para la llamada MQGET, y un campo de entrada para las llamadas MQPUT y MQPUT1. El valor inicial de este campo es RONONE. MDMT (entero con signo de 10 dgitos) Tipo de mensaje. Indica el tipo del mensaje. Los tipos de mensaje se agrupan de la siguiente forma: MTSFST Valor inferior para tipos de mensajes definidos por el sistema. MTSLST Valor superior para tipos de mensajes definidos por el sistema. Actualmente, dentro del rango del sistema estn definidos los siguientes valores: MTDGRM Mensaje que no requiere respuesta. El mensaje no requiere una respuesta. MTRQST Mensaje que requiere respuesta. El mensaje requiere una respuesta. Debe especificarse el nombre de la cola a la que debe enviarse la respuesta en el campo MDRQ. El campo MDREP indica cmo deben establecerse el MDMID y el MDCID de la respuesta. MTRPLY Responder a un mensaje de peticin anterior. El mensaje es la respuesta a un mensaje de peticin anterior (MTRQST). El mensaje debe enviarse a la cola indicada por el campo MDRQ del mensaje de peticin. El campo MDREP de la peticin debe utilizarse para controlar la forma en que se establecen el MDMID y el MDCID de la respuesta. Nota: El gestor de colas no fuerza la relacin entre la peticin y la respuesta; es responsabilidad de la aplicacin. MTRPRT Mensaje de informe. El mensaje informa de alguna aparicin esperada o inesperada, por lo general relacionada con algn otro mensaje (por ejemplo, se ha recibido un mensaje que contiene datos no vlidos). El mensaje debe enviarse a la cola indicada en el campo MDRQ del descriptor de mensaje original. El campo MDFB debe establecerse para que indique la naturaleza del informe. El campo MDREP del mensaje original debe utilizarse para controlar la forma en que se establecen el MDMID y el MDCID del mensaje de informe. Los mensajes de informe generados por el gestor de colas o por el agente de canal de mensajes se envan siempre a la cola MDRQ con los campos MDFB y MDCID establecidos tal como se indicaba anteriormente.

98

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


Puede que, en prximas versiones de MQI, se definan otros valores dentro del rango del sistema, aceptados por las llamadas MQPUT y MQPUT1 sin errores. Tambin pueden utilizarse valores definidos por la aplicacin. Deben estar dentro del siguiente rango: MTAFST Valor inferior de tipos de mensajes definidos por la aplicacin. MTALST Valor superior para tipos de mensajes definidos por la aplicacin. Para las llamadas MQPUT y MQPUT1, el valor MDMT debe estar dentro del rango definido por el sistema o el rango definido por la aplicacin; si no lo est, la llamada falla con el cdigo de razn RC2029. Es un campo de salida para la llamada MQGET, y un campo de entrada para las llamadas MQPUT y MQPUT1. El valor inicial de este campo es MTDGRM. MDEXP (entero con signo de 10 dgitos) Duracin del mensaje. Es un perodo de tiempo expresado en dcimas de segundo y establecido por la aplicacin que pone el mensaje. El mensaje pasa a ser elegible para descartar si no se ha eliminado de la cola destino una vez transcurrido este tiempo. El valor va disminuyendo para reflejar el tiempo durante el cual el mensaje permanece en la cola destino, as como en las colas de transmisin intermedias si la transferencia se ha realizado a una cola remota. Tambin puede disminuirlo los agentes de canal de mensajes para reflejar los tiempos de transmisin, si son significativos. Del mismo modo, una aplicacin que enve este mensaje a otra cola puede disminuir el valor si as lo precisa, en el caso de que haya retenido el mensaje durante un tiempo significativo. No obstante, el tiempo de caducidad siempre es aproximado y no es preciso disminuir el valor para reflejar pequeas variaciones en intervalos de tiempo. Cuando el mensaje lo recupera una aplicacin que utiliza la llamada MQGET, el campo MDEXP representa la cantidad de tiempo que todava queda respecto al tiempo de caducidad original. | | | | | | | | | | | Una vez transcurrido el tiempo de caducidad del mensaje, este se vuelve elegible para que el gestor de colas lo descarte. En las implementaciones actuales, el mensaje se descarta cuando se produce una llamada MQGET de examinar o de no examinar que habra devuelto el mensaje en caso de que este no hubiese ya caducado. Por ejemplo, una llamada MQGET de no examinar con el campo GMMO de MQGMO establecido en MONONE que estuviese leyendo en una cola con orden FIFO, hara que todos los mensajes caducados se descartaran hasta el primer mensaje no caducado. Con una cola ordenada por prioridad, la misma llamada descartar los mensajes caducados de prioridad superior y los mensajes de igual prioridad que hayan llegado a la cola antes del primer mensaje no caducado. Un mensaje caducado jams se devuelve a una aplicacin (ya sea a travs de una llamada MQGET de examinar o de no examinar), por lo que el valor del campo MDEXP del descriptor de mensaje despus de una llamada MQGET satisfactoria es mayor que cero, o es el valor especial EIULIM.

Captulo 10. MQMD - Descriptor de mensaje

99

MQMD - Descriptor de mensaje


Si el mensaje se pone en una cola remota, este puede caducar (y ser descartado) mientras permanece en una cola de transmisin intermedia, antes de que llegue a la cola destino. Cuando se descarta un mensaje caducado, se genera un informe, si el mensaje tena especificada una de las opciones de informe ROEXP*. Si no se ha especificado ninguna de estas opciones, no se generar este informe y se considerar que el mensaje ha dejado de ser relevante despus de este perodo (puede que algn mensaje posterior lo haya reemplazado). Cualquier otro programa que descarte mensajes basndose en el tiempo de caducidad tambin debe enviar un mensaje de informe apropiado si se solicita alguno. Notas: 1. Si se pone un mensaje con un tiempo MDEXP igual a cero, la llamada MQPUT o MQPUT1 falla con el cdigo de razn RC2013; en este caso no se genera ningn mensaje de informe. 2. Dado que los mensajes cuyo tiempo de caducidad ha transcurrido pueden no descartarse realmente hasta ms adelante, quiz haya mensajes caducados en la cola que, por consiguiente, no sean elegibles para recuperacin. Sin embargo, dichos mensajes cuentan como mensajes de la cola a todos los efectos, incluido el desencadenamiento de profundidad. 3. De solicitarse, se genera un informe de caducidad cuando se descarta realmente el mensaje, no cuando el mensaje se hace elegible para descartar. 4. Las acciones de descartar un mensaje caducado y de generar un informe de caducidad, si se solicitan, nunca forman parte de la unidad de trabajo de la aplicacin, aunque se haya planificado descartar el mensaje como resultado de una llamada MQGET que opera dentro de una unidad de trabajo. 5. Si una llamada MQGET dentro de una unidad de trabajo recupera un mensaje casi caducado, y la unidad de trabajo se restituye con posterioridad, el mensaje puede pasar a ser elegible para descartar antes de poder volver a recuperarlo. 6. Si una llamada MQGET con GMLK bloquea un mensaje casi caducado, el mensaje puede pasar a ser elegible para descartar antes de que una llamada MQGET con GMMUC pueda recuperarlo; en tal caso, se devuelve el cdigo de razn RC2034 en esta llamada MQGET posterior. 7. Cuando se recupera un mensaje de peticin cuyo tiempo de caducidad es mayor que cero, la aplicacin puede realizar una de las siguientes acciones al enviar el mensaje de respuesta: v Copiar en el mensaje de respuesta el tiempo de caducidad que queda del mensaje de peticin. v Establecer el tiempo de caducidad del mensaje de respuesta en un valor explcito mayor que cero. v Establecer el tiempo de caducidad del mensaje de respuesta en el valor EIULIM. La accin que se realice depender del diseo de la suite de aplicaciones. No obstante, la accin por omisin para poner mensajes en una cola de mensajes no entregados (mensajes en espera) debera ser conservar el tiempo de caducidad restante del mensaje y continuar disminuyndolo. 8. Los mensajes desencadenantes siempre se generan con EIULIM. 9. Un mensaje (por lo general, en una cola de transmisin) que tiene un nombre MDFMT de FMXQH, tiene un segundo descriptor de mensaje en el

100

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


MQXQH. Por lo tanto, tiene dos campos MDEXP asociados. En este caso hay que tener en cuenta los siguientes puntos adicionales: v Cuando una aplicacin pone un mensaje en una cola remota, el gestor de colas coloca el mensaje inicialmente en una cola de transmisin local, y pone como prefijo de los datos del mensaje de aplicacin una estructura MQXQH. El gestor de colas establece los valores de los dos campos MDEXP igual que los especificados por la aplicacin. Si una aplicacin pone un mensaje directamente en una cola de transmisin local, los datos del mensaje ya deben empezar por una estructura MQXQH, y el nombre del formato debe ser FMXQH (pero el gestor de colas no fuerza esta situacin). En este caso no es necesario que la aplicacin establezca los valores de los dos campos MDEXP de igual manera. (El gestor de colas no comprueba si el campo MDEXP dentro de MQXQH contiene un valor vlido, ni siquiera si los datos del mensaje son lo bastante largos para incluirlo.) v Cuando un mensaje con un nombre MDFMT de FMXQH se recupera de una cola (tanto si es una cola normal como si es una cola de transmisin), el gestor de colas disminuye ambos campos MDEXP indicando el tiempo que ha transcurrido esperando en la cola. No se produce error alguno si la longitud de los datos del mensaje no es lo bastante grande para incluir el campo MDEXP en el MQXQH. v El gestor de colas utiliza el campo MDEXP del descriptor de mensaje aparte (es decir, no el del descriptor de mensaje incorporado dentro de la estructura MQXQH) para comprobar si el mensaje es elegible para ser descartado. v Si los valores iniciales de los dos campos MDEXP no coinciden, es posible que el tiempo MDEXP del descriptor de mensaje aparte cuando se recupera el mensaje sea mayor que cero (con lo que el mensaje no es elegible para ser descartado), mientras que el tiempo segn el campo MDEXP de MQXQH ya ha transcurrido. En este caso el campo MDEXP de MQXQH se establece en cero. Se reconocen los siguientes valores especiales: EIULIM Duracin ilimitada. El mensaje tiene una duracin ilimitada. Es un campo de salida para la llamada MQGET, y un campo de entrada para las llamadas MQPUT y MQPUT1. El valor inicial de este campo es EIULIM. MDFB (entero con signo de 10 dgitos) Cdigo de informacin de retorno o de razn. Se utiliza con un mensaje de tipo MTRPRT para indicar la naturaleza del informe y solo tiene significado con este tipo de mensaje. El campo puede contener uno de los valores FB* o uno de los valores RC*. Los cdigos de informacin de retorno estn agrupados de la siguiente manera: FBNONE No se proporciona informacin de retorno. FBSFST Valor inferior de la informacin de retorno generada por el sistema. FBSLST Valor superior de la informacin de retorno generada por el sistema.
Captulo 10. MQMD - Descriptor de mensaje

101

MQMD - Descriptor de mensaje


El rango de los cdigos de informacin de retorno generados por el sistema, de FBSFST a FBSLST, incluye los cdigos de informacin de retorno generales enumerados a continuacin (FB*), y tambin los cdigos de razn (RC*) que pueden aparecer cuando el mensaje no se puede poner en la cola destino. FBAFST Valor inferior de la informacin de retorno generada por aplicacin. FBALST Valor superior de la informacin de retorno generada por aplicacin. Las aplicaciones que generan mensajes de informe no deben utilizar los cdigos de informacin de retorno comprendidos en el rango del sistema (distintos de FBQUIT) a menos que deseen simular mensajes de informe generados por el gestor de colas o por el agente de canal de mensajes. En las llamadas MQPUT o MQPUT1, el valor especificado debe ser FBNONE, o debe pertenecer al rango del sistema o al rango de la aplicacin. Esto se comprueba sea cual sea el valor de MDMT. Cdigos de informacin de retorno generales: FBCOA Confirmacin de la llegada a la cola destino (vea ROCOA). FBCOD Confirmacin de entrega a la aplicacin receptora (vea ROCOD). FBEXP Mensaje caducado. El mensaje se ha descartado porque no se haba eliminado de la cola destino antes de que hubiese transcurrido el tiempo de caducidad. FBPAN Notificacin de accin positiva (vea ROPAN). FBNAN Notificacin de accin negativa (vea ROPAN). FBQUIT La aplicacin debe finalizar. Esto puede utilizarlo un programa de planificacin de carga para controlar el nmero de ejecuciones simultneas de un programa de aplicacin. El envo de un mensaje MTRPRT con este cdigo de informacin de retorno a una instancia del programa de aplicacin indica a dicha instancia que debe detener el proceso. Sin embargo, el cumplir esta norma es responsabilidad de la aplicacin; el gestor de colas no fuerza a ello. | | | | | | | Cdigos de informacin de retorno del puente IMS: Cuando el puente IMS recibe un cdigo de deteccin IMS-OTMA distinto de cero, el puente IMS convierte el cdigo de deteccin de hexadecimal a decimal, aade el valor FBIERR (300) y pone el resultado en el campo MDFB del mensaje de respuesta. Esto tiene como resultado que el cdigo de informacin de retorno tiene un valor comprendido entre FBIFST (301) y FBILST (399) cuando se ha producido un error IMS-OTMA. El puente IMS puede generar los siguientes cdigos de informacin de retorno:

102

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


FBDLZ La longitud de los datos es cero. La longitud de un segmento era cero en los datos de aplicacin del mensaje. FBDLN La longitud de los datos es negativa. La longitud de un segmento era negativa en los datos de aplicacin del mensaje. FBDLTB La longitud de los datos es demasiado grande. La longitud de un segmento era demasiado grande en los datos de aplicacin del mensaje. FBBUFO Desbordamiento de almacenamiento intermedio. El valor de uno de los campos de longitud hara que los datos desbordaran el almacenamiento intermedio de mensajes MQSeries. FBLOB1 La longitud es errnea en uno. Al valor de uno de los campos de longitud le faltaba un byte. FBIIH La estructura MQIIH no es vlida o no est presente. El campo MDFMT de MQMD especifica FMIMS, pero el mensaje no empieza por una estructura MQIIH vlida. FBNAFI ID de usuario no autorizado para su utilizacin en IMS. El ID de usuario incluido en el descriptor de mensaje MQMD, o la contrasea incluida en el campo IIAUT de la estructura MQIIH, no pas la validacin llevada a cabo por el puente IMS. Como resultado, el mensaje no se pas a IMS. FBIERR Error inesperado devuelto por IMS. IMS devolvi un error inesperado. Consulte las anotaciones de error de MQSeries en el sistema donde reside el puente IMS para obtener ms informacin acerca del error. FBIFST Valor inferior de la informacin de retorno generada por IMS. Los cdigos de informacin de retorno generados por IMS estn comprendidos entre FBIFST (300) y FBILST (399). El cdigo de deteccin IMS-OTMA propiamente dicho es MDFB menos FBIERR. FBILST Valor superior de la informacin de retorno generada por IMS. | | | | Cdigos de informacin de retorno de puente CICS: el puente CICS puede generar los siguientes cdigos de informacin de retorno: FBCAAB La aplicacin ha finalizado de forma anmala (abend).

Captulo 10. MQMD - Descriptor de mensaje

103

MQMD - Descriptor de mensaje


| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | El programa de aplicacin especificado en el mensaje finaliz de forma anmala. Este cdigo de informacin de retorno aparece solamente en el campo DLREA de la estructura MQDLH. FBCANS La aplicacin no puede iniciarse. El EXEC CICS LINK para el programa de aplicacin especificado en el mensaje no fue satisfactorio. Este cdigo de informacin de retorno aparece solamente en el campo DLREA de la estructura MQDLH. FBCBRF El puente CICS finaliz de forma anmala sin completar el proceso normal de errores. FBCCSE El identificador de juego de caracteres no es vlido. FBCIHE La estructura de cabecera de informacin de CICS falta o no es vlida. FBCCAE La longitud del rea comn de CICS no es vlida. FBCCIE El identificador de correlacin no es vlido. FBCDLQ La cola de mensajes no entregados no est disponible. La tarea del puente CICS no pudo copiar una respuesta a esta peticin en la cola de mensajes no entregados. La peticin se restituy. FBCENE La codificacin no es vlida. FBCINE El puente CICS encontr un error inesperado. Este cdigo de informacin de retorno aparece solamente en el campo DLREA de la estructura MQDLH. FBCNTA Identificador de usuario no autorizado o contrasea no vlida. Este cdigo de informacin de retorno aparece solamente en el campo DLREA de la estructura MQDLH. FBCUBO Unidad de trabajo restituida. La unidad de trabajo se restituy, debido a uno de los siguientes cdigos de razn: v Se detect una anomala al procesar otra peticin dentro de la misma unidad de trabajo. v Se produjo una finalizacin anmala (abend) de CICS mientras la unidad de trabajo estaba en proceso. FBCUWE El campo de control CIUOW de la unidad de trabajo no es vlido. Cdigos de razn MQ: para los mensajes de informe de caducidad, MDFB contiene un cdigo de razn MQ. Entre los posibles cdigos de razn se encuentran los siguientes:

104

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


RC2051 (2051, X'803') Las llamadas de poner estn inhibidas en la cola. RC2053 (2053, X'805') La cola ya contiene el nmero mximo de mensajes. RC2035 (2035, X'7F3') No posee autorizacin para acceder. RC2056 (2056, X'808') No hay espacio disponible para la cola en el disco. RC2048 (2048, X'800') Un mensaje en una cola dinmica temporal no puede ser permanente. RC2031 (2031, X'7EF') La longitud del mensaje es superior al mximo del gestor de colas. RC2030 (2030, X'7EE') La longitud del mensaje es superior al mximo de la cola. En Cdigos de razn en la pgina 373 encontrar la lista completa de cdigos de razn. Es un campo de salida para la llamada MQGET, y un campo de entrada para las llamadas MQPUT y MQPUT1. El valor inicial de este campo es FBNONE. MDENC (entero con signo de 10 dgitos) Codificacin numrica de datos de mensaje. Identifica la representacin utilizada para valores numricos en los datos de mensaje de aplicacin; esto se aplica a datos enteros binarios, datos enteros decimales empaquetados y datos de coma flotante. Se ha definido el siguiente valor: ENNAT Codificacin de la mquina original. La codificacin es el valor por omisin para el lenguaje de programacin y la mquina en la que se est ejecutando la aplicacin. Nota: El valor de esta constante es especfico del entorno y del lenguaje de programacin. El gestor de colas no valida el contenido de este campo. Normalmente, las aplicaciones que transfieren mensajes especifican ENNAT. Las aplicaciones que recuperan mensajes deben comparar este campo con el valor ENNAT; si los valores difieren, puede que la aplicacin tenga que convertir los datos numricos del mensaje. En el Apndice D. Codificaciones de mquina en la pgina 477 encontrar informacin detallada sobre la creacin de este campo. Si la opcin GMCONV se especifica en la llamada MQGET, este campo es de entrada/salida. El valor especificado por la aplicacin es la codificacin a la que los datos del mensaje se deberan convertir si fuera necesario. Si la conversin se realizara satisfactoriamente o fuera innecesaria, el valor
Captulo 10. MQMD - Descriptor de mensaje

105

MQMD - Descriptor de mensaje


permanecer sin cambios. Si la conversin no es satisfactoria, el valor despus de la llamada MQGET representa la codificacin del mensaje no convertido que se devuelve a la aplicacin. En cualquier otro caso, es un campo de salida para la llamada MQGET y un campo de entrada para las llamadas MQPUT y MQPUT1. El valor inicial de este campo es ENNAT. MDCSI (entero con signo de 10 dgitos) Identificador de juego de caracteres de datos de mensaje. Especifica el identificador del juego de caracteres de los datos de tipo carcter del mensaje de la aplicacin. Recuerde que los datos de tipo carcter del descriptor de mensaje y las dems estructuras de datos MQI deben tener el juego de caracteres utilizado por el gestor de colas. Esto se define mediante el atributo de gestor de colas CodedCharSetId; consulte el Captulo 43. Atributos del gestor de colas en la pgina 337 para obtener informacin detallada de este atributo. Se han definido los valores siguientes: CSQM Identificador del juego de caracteres del gestor de colas. Los datos de tipo carcter del mensaje tienen el juego de caracteres del gestor de colas. CSINHT Heredar identificador de juego de caracteres de esta estructura. Los datos de tipo carcter del mensaje tienen el mismo juego de caracteres que MQMD; es el juego de caracteres del gestor de colas. CSEMBD Identificador de juego de caracteres incluido. Los datos de tipo carcter del mensaje tienen un juego de caracteres cuyo identificador est incluido en los propios datos del mensaje. Puede haber cualquier nmero de identificadores de juego de caracteres incluidos en los datos del mensaje, aplicables a diferentes partes de los datos. Este valor debe utilizarse para los mensajes PCF que contienen datos con una combinacin de juegos de caracteres. Los mensajes PCF tienen un nombre de formato de FMPCF. Especifique este valor nicamente en las llamadas MQPUT y MQPUT1. Si se especifica en la llamada MQGET, impide la conversin del mensaje. En las llamadas MQPUT y MQPUT1, el gestor de colas cambia el valor CSQM del campo MDCSI de la MQMD que se enva con el mensaje por el valor del atributo de gestor de colas CodedCharSetId; como resultado, la llamada MQGET nunca devuelve el valor CSQM. No se altera el campo MDCSI de la MQMD especificada en la llamada MQPUT o MQPUT1. No se realiza ninguna otra comprobacin en el valor especificado. Las aplicaciones que recuperan mensajes deben comparar este campo con el valor que la aplicacin espera; si los valores difieren, puede que la aplicacin tenga que convertir los datos de tipo carcter del mensaje.

106

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


Si la opcin GMCONV se especifica en la llamada MQGET, este campo es de entrada/salida. El valor especificado por la aplicacin es el identificador del juego de caracteres al que los datos del mensaje se deberan convertir si fuera necesario. Si la conversin es satisfactoria o innecesaria, el valor no cambia (salvo en que el valor CSQM se convierte al valor actual). Si la conversin no fuera satisfactoria, el valor despus de la llamada MQGET representa el identificador del juego de caracteres del mensaje no convertido que se devuelve a la aplicacin. En cualquier otro caso, es un campo de salida para la llamada MQGET y un campo de entrada para las llamadas MQPUT y MQPUT1. El valor inicial de este campo es CSQM. MDFMT (serie de caracteres de 8 bytes) Nombre del formato de los datos de mensaje. Es un nombre que puede utilizar el emisor del mensaje para indicar al receptor la naturaleza de los datos del mensaje. Para el nombre puede especificarse cualquier carcter del juego de caracteres del gestor de colas, pero es aconsejable respetar las siguientes limitaciones: v Maysculas A a Z v Dgitos numricos 0 a 9 Si se utilizan otros caracteres, puede que no sea posible la conversin del nombre entre los juegos de caracteres del gestor de colas emisor y del gestor de colas receptor. El nombre debe rellenarse con blancos hasta alcanzar la longitud del campo o se debe utilizar un carcter nulo para terminar el nombre antes de llegar al final del campo; dicho carcter y los caracteres subsiguientes se considerarn blancos. No especifique un nombre con blancos iniciales o intercalados. Para la llamada MQGET, el gestor de colas devuelve el nombre relleno con blancos hasta la longitud del campo. El gestor de colas no comprueba si el nombre cumple las recomendaciones descritas anteriormente. Los nombres que empiezan por MQ tienen significados definidos por el gestor de colas; no utilice nombres de este tipo en sus propios formatos. Los formatos incorporados del gestor de colas son los siguientes: FMNONE Sin nombre de formato. La naturaleza de los datos de mensaje de aplicacin no est definida. Esto significa que los datos no se pueden convertir cuando el mensaje se recupera de una cola. Nota: Si se especifica GMCONV en la llamada MQGET para un mensaje que tiene un nombre de formato de FMNONE, y el juego de caracteres o la codificacin del mensaje es diferente de lo especificado en el parmetro MSGDSC, se sigue devolviendo el mensaje en el parmetro BUFFER (suponiendo que no hay otros errores), pero la llamada se completa con el cdigo de terminacin CCWARN y el cdigo de razn RC2110. FMADMN Mensaje de peticin/respuesta del servidor de mandatos.
Captulo 10. MQMD - Descriptor de mensaje

107

MQMD - Descriptor de mensaje


El mensaje es una peticin del servidor de mandatos o un mensaje de respuesta en formato de mandatos programables (PCF). Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. Consulte la publicacin MQSeries Programmable System Management para obtener ms informacin acerca de cmo utilizar mensajes con formato de mandato programable. FMCICS Cabecera de informacin de CICS Los datos de mensaje empiezan por la cabecera de informacin MQCIH de CICS, que va seguida de los datos de aplicacin. El nombre del formato de los datos de aplicacin lo proporciona el campo CIFMT en la estructura MQCIH. FMCMD1 Mensaje de respuesta del mandato de tipo 1 El mensaje es un mensaje de respuesta del servidor de mandatos MQSC que contiene la cuenta de objetos, el cdigo de terminacin y el cdigo de razn. Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. FMCMD2 Mensaje de respuesta del mandato de tipo 2. El mensaje es un mensaje de respuesta del servidor de mandatos MQSC que contiene la cuenta de objetos, el cdigo de terminacin y el cdigo de razn. Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. FMDLH Cabecera de mensaje no entregado. Los datos del mensaje empiezan por la cabecera de mensaje no entregado MQDLH. Los datos del mensaje original van inmediatamente a continuacin de la estructura MQDLH. El nombre del formato de los datos del mensaje original lo proporciona el campo DLFMT de la estructura MQDLH; consulte el Captulo 7. MQDLH Cabecera de mensaje no entregado en la pgina 43 para obtener informacin detallada acerca de esta estructura. Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. No se generan informes COA y COD para los mensajes que tienen un MDFMT de FMDLH. FMDH Cabecera de lista de distribucin. Los datos del mensaje empiezan por la cabecera de lista de distribucin MQDH; esto incluye las matrices de los registros MQOR y MQPMR. La cabecera de lista de distribucin puede ir seguida de datos adicionales. El formato de los datos adicionales (si existe) lo proporciona el campo DHFMT de la estructura MQDH; consulte el Captulo 6. MQDH - Cabecera de distribucin en la pgina 37 para obtener informacin detallada acerca de esta estructura. Los mensajes con el formato FMDH se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. FMEVNT Mensaje de suceso.

108

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


El mensaje es un mensaje de suceso MQ que informa de un suceso que se ha producido. Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. Los mensajes de suceso tienen la misma estructura que los mandatos programables; consulte la publicacin MQSeries Programmable System Management para obtener ms informacin acerca de esta estructura. FMIMS Cabecera de informacin de IMS. Los datos de mensaje empiezan por la cabecera de informacin MQIIH de IMS, que va seguida de los datos de aplicacin. El nombre del formato de los datos de aplicacin lo proporciona el campo IIFMT en la estructura MQIIH. Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. FMIMVS Serie de variables IMS. El mensaje es una serie de variables IMS, que es una serie con el formato llzzccc, donde: ll es un campo con una longitud de 2 bytes que especifica la longitud total del elemento de la serie de variables IMS. Esta longitud equivale a la longitud de ll (2 bytes), ms la longitud de zz (2 bytes), ms la longitud de la propia serie de caracteres. ll es un entero binario de 2 bytes con la codificacin especificada por el campo MDENC. es un campo de 2 bytes que contiene distintivos que son significativos para IMS. zz es una serie de bytes que consta de dos campos de serie de bits de 1 byte, y que se transmite sin cambios del emisor al receptor (es decir, zz no se somete a ninguna conversin). es una serie de caracteres de longitud variable que contiene los caracteres ll-4. ccc tiene el juego de caracteres especificado por el campo MDCSI.

zz

ccc

Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. FMMDE Extensin de descriptor de mensaje. Los datos de mensaje empiezan por la extensin MQMDE del descriptor de mensaje y van seguidos, de forma opcional, por otros datos (normalmente los datos de mensajes de aplicacin). El nombre del formato, el juego de caracteres y la codificacin de los datos que siguen a MQMDE los proporcionan los campos MEFMT, MECSI y MEENC de MQMDE. En el Captulo 11. MQMDE - Extensin de descriptor de mensaje en la pgina 137 encontrar informacin detallada sobre esta estructura. Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. FMPCF Mensaje definido por el usuario en formato de mandato programable (PCF). Este es un mensaje definido por el usuario que se ajusta a la estructura de un mensaje en formato de mandato programable (PCF). Los
Captulo 10. MQMD - Descriptor de mensaje

109

MQMD - Descriptor de mensaje


mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. Consulte la publicacin MQSeries Programmable System Management para obtener ms informacin acerca de cmo utilizar mensajes con formato de mandato programable. FMRMH Cabecera de mensaje de referencia. Los datos del mensaje empiezan por la cabecera del mensaje de referencia MQRMH y, de forma opcional, van seguidos de otros datos. El nombre del formato, el juego de caracteres y la codificacin de los datos los proporcionan los campos RMFMT, RMCSI y RMENC de MQRMH. En el Captulo 16. MQRMH - Cabecera de mensaje de referencia en la pgina 177 encontrar informacin detallada sobre esta estructura. Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. | | | | | | FMSTR Mensaje formado nicamente por caracteres. Los datos del mensaje de la aplicacin pueden ser una serie SBCS (juego de caracteres de un solo byte) o una serie DBCS (juego de caracteres de doble byte). Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. FMTM Mensaje desencadenante. Es un mensaje desencadenante, descrito por la estructura MQTM; consulte el Captulo 18. MQTM - Mensaje desencadenante en la pgina 189 para obtener informacin detallada acerca de esta estructura. Los mensajes con este formato se pueden convertir si la opcin GMCONV se especifica en la llamada MQGET. | | | | | | FMWIH Cabecera de informacin de trabajo. Los datos del mensaje empiezan por la cabecera de informacin de trabajo MQWIH, que va seguida de los datos de aplicacin. El nombre del formato de los datos de aplicacin lo proporciona el campo WIFMT de la estructura MQWIH. FMXQH Cabecera de cola de transmisin. Los datos del mensaje empiezan por la cabecera de cola de transmisin MQXQH. Los datos del mensaje original van inmediatamente a continuacin de la estructura MQXQH. El nombre del formato de los datos del mensaje original lo proporciona el campo MDFMT en la estructura MQMD que forma parte de la cabecera de cola de transmisin MQXQH. En el Captulo 21. MQXQH - Cabecera de cola de transmisin en la pgina 203 encontrar informacin detallada sobre esta estructura. FMRFH Cabecera de formato y reglas. Los datos del mensaje empiezan por la cabecera de formato y reglas MQRFH y, de forma opcional, van seguidos de otros datos. El nombre del formato, el juego de caracteres y la codificacin de los datos (si existe) los proporcionan los campos RFFMT, RFCSI y RFENC de MQRFH.

110

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


No se generan informes COA y COD para los mensajes que tienen un MDFMT de FMXQH. Es un campo de salida para la llamada MQGET, y un campo de entrada para las llamadas MQPUT y MQPUT1. La longitud de este campo la proporciona LNFMT. El valor inicial de este campo es FMNONE. MDPRI (entero con signo de 10 dgitos) Prioridad del mensaje. Para las llamadas MQPUT y MQPUT1, el valor debe ser mayor o igual que cero; cero es la prioridad ms baja. Tambin puede utilizarse el siguiente valor especial: PRQDEF Prioridad por omisin de la cola. | | | | | | | | | | | | | v Si la cola es de un clster, la prioridad del mensaje se toma del atributo DefPriority tal como est definido en el gestor de colas destino que es propietario de la instancia concreta de la cola en la que se coloca el mensaje. Normalmente, todas las instancias de una cola de clster tienen el mismo valor para el atributo DefPriority, aunque esto no es obligatorio. El valor de DefPriority se copia en el campo MDPRI cuando el mensaje se coloca en la cola destino. Si DefPriority cambia con posterioridad, los mensajes que ya se han puesto en la cola no resultan afectados. v Si la cola no es de un clster, la prioridad del mensaje se toma del atributoDefPrioritytal como est definido en el gestor de colaslocal, aunque el gestor de colas destino sea remoto. Si hay ms de una definicin en la va de resolucin de nombres de cola, la prioridad por omisin se toma del valor de este atributo en la primera definicin de la va. Esta puede ser: Una cola de alias Una cola local Una definicin local de una cola remota Un alias de gestor de colas Una cola de transmisin (por ejemplo, la cola DefXmitQName) El valor de DefPriority se copia en el campo MDPRI cuando se transfiere el mensaje. Si DefPriority se cambia posteriormente, los mensajes ya transferidos no resultan afectados. Cuando se responde a un mensaje, las aplicaciones deben usar normalmente la prioridad del mensaje de peticin para la respuesta. En otras situaciones, tomar por omisin la definicin de la cola permite ajustar la prioridad sin cambiar la aplicacin. Si un mensaje se transfiere con una prioridad superior a la mxima soportada por el gestor de colas local (indicada por el atributo de gestor de colas MaxPriority), el gestor de colas acepta el mensaje, pero lo coloca en la cola con la prioridad mxima del gestor de colas; la llamada MQPUT o MQPUT1 se completa con CCWARN y el cdigo de razn RC2049. No obstante, el campo MDPRI retendr el valor especificado por la aplicacin que puso el mensaje.

Captulo 10. MQMD - Descriptor de mensaje

111

MQMD - Descriptor de mensaje


El valor devuelto por la llamada MQGET siempre es mayor o igual que cero; el valor PRQDEF no se devuelve nunca. Es un campo de salida para la llamada MQGET, y un campo de entrada para las llamadas MQPUT y MQPUT1. El valor inicial de este campo es PRQDEF. MDPER (entero con signo de 10 dgitos) Permanencia del mensaje. Para las llamadas MQPUT y MQPUT1, el valor debe ser uno de los siguientes: PEPER El mensaje es permanente. El mensaje sigue existiendo tras los rearranques del gestor de colas. Dado que las colas dinmicas temporales no siguen existiendo tras los rearranques del gestor de colas, los mensajes permanentes no pueden ponerse en este tipo de colas, pero s a colas dinmicas permanentes y colas predefinidas. Cuando se ha transferido un mensaje permanente (o se ha comprometido la unidad de trabajo, si la llamada MQPUT o MQPUT1 forma parte de una unidad de trabajo), el mensaje est disponible en el almacenamiento auxiliar hasta el momento en que se elimina de la cola (o la unidad de trabajo se compromete, si la llamada MQGET forma parte de una unidad de trabajo). Cuando se enva un mensaje permanente a una cola remota, se utiliza un mecanismo de almacenar y reenviar para que retenga el mensaje en cada gestor de colas a lo largo de la ruta de acceso al destino. PENPER El mensaje no es permanente. El mensaje no sigue existiendo tras los rearranques del gestor de colas. Esto se aplica aunque se encuentre una copia intacta del mensaje en el almacenamiento auxiliar durante el procedimiento de rearranque. PEQDEF El mensaje tiene la permanencia por omisin. | | | | | | | | | | | | | | v Si la cola es de un clster, la permanencia del mensaje se toma del atributo DefPersistence tal como est definido en el gestor de colas destino que es propietario de la instancia concreta de la cola en la que se coloca el mensaje. Normalmente, todas las instancias de una cola de clster tienen el mismo valor para el atributo DefPersistence, aunque esto no es obligatorio. El valor de DefPersistence se copia en el campo MDPER cuando el mensaje se coloca en la cola destino. Si DefPersistence cambia con posterioridad, los mensajes que ya se han puesto en la cola no resultan afectados. v Si la cola no es de un clster, la permanencia del mensaje se toma del atributoDefPersistencetal como est definido en el gestor de colaslocal, aunque el gestor de colas destino sea remoto. Si hay ms de una definicin en la va de resolucin de nombres de cola, la permanencia por omisin se toma del valor de este atributo en la primera definicin de la va. Esta puede ser: Una cola de alias Una cola local

112

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


Una definicin local de una cola remota Un alias de gestor de colas Una cola de transmisin (por ejemplo, la cola DefXmitQName) El valor de DefPersistence se copia en el campo MDPER cuando se transfiere el mensaje. Si DefPersistence se cambia posteriormente, los mensajes ya transferidos no resultan afectados. En una cola puede haber mensajes permanentes y no permanentes. Cuando se responde a un mensaje, las aplicaciones deben usar normalmente la permanencia del mensaje de peticin para la respuesta. En otras situaciones, tomar por omisin la definicin de la cola permite cambiar la permanencia sin cambiar la aplicacin. Para una llamada MQGET, el valor devuelto es PEPER o PENPER. Es un campo de salida para la llamada MQGET, y un campo de entrada para las llamadas MQPUT y MQPUT1. El valor inicial de este campo es PEQDEF. MDMID (serie de bits de 24 bytes) Identificador de mensaje. Es una serie de bytes que se utiliza para distinguir un mensaje de otro. Generalmente, el identificador de mensaje no debera ser nunca el mismo para ms de un mensaje, aunque el gestor de colas no lo prohba. El identificador de mensaje es propiedad permanente del mensaje, y sigue existiendo tras los rearranques del gestor de colas. Como el identificador de mensaje es una serie de bytes y no una serie de caracteres, no se convierten los juegos de caracteres del identificador de mensaje cuando el mensaje va de un gestor de colas a otro. Para las llamadas MQPUT y MQPUT1, si la aplicacin especifica MINONE o PMNMID, el gestor de colas genera un identificador de mensaje exclusivo 1 cuando se pone el mensaje, y lo coloca en el descriptor de mensaje que se enva con l. El gestor de colas tambin devuelve el identificador del mensaje en el descriptor de mensaje que pertenece a la aplicacin emisora. La aplicacin puede utilizar este valor para registrar informacin sobre determinados mensajes, y para responder a consultas de otras partes de la aplicacin. Si el mensaje se pone en una lista de distribucin, el gestor de colas genera identificadores de mensaje exclusivos, segn sea necesario, pero el valor del campo MDMID de MQMD permanece sin cambios al regreso de la llamada, aunque se haya especificado MINONE o PMNMID. Si la aplicacin tiene que conocer los identificadores de mensaje generados por el gestor de colas, deber proporcionar registros MQPMR que contengan el campo PRMID.

1. Un MDMID generado por el gestor de colas consta de un identificador de producto de 4 bytes (AMQb o CSQb en ASCII o EBCDIC, donde b representa un espacio en blanco), seguido de una implementacin de una serie exclusiva especfica de producto. En MQSeries contiene los primeros 12 caracteres del nombre del gestor de colas, y un valor derivado del reloj del sistema. As pues, los gestores de colas que puedan comunicarse entre s debern tener nombres cuyos 12 primeros caracteres sean distintos, a fin de que los identificadores de mensajes sean exclusivos. La posibilidad de generar un nmero exclusivo depende tambin de que el reloj del sistema no se retrase. Para eliminar la posibilidad de que un identificador de mensaje generado por el gestor de colas coincida con uno generado por la aplicacin, esta ltima debe procurar no generar identificadores cuyos caracteres iniciales estn comprendidos entre la A y la I en ASCII o EBCDIC (entre X'41' y X'49' y entre X'C1' y X'C9'). Sin embargo, la aplicacin no tiene prohibido generar identificadores con caracteres iniciales que pertenezcan a estos rangos. Captulo 10. MQMD - Descriptor de mensaje

113

MQMD - Descriptor de mensaje


La aplicacin emisora puede especificar tambin un valor especfico para el identificador del mensaje, distinto de MINONE; esto impide que el gestor de colas genere un identificador de mensaje exclusivo. Una aplicacin que est reenviando un mensaje puede utilizar este recurso para propagar el identificador del mensaje original. El gestor de colas propiamente dicho no utiliza este campo, salvo para hacer lo siguiente: v Generar un valor exclusivo si se le solicita, como se explica arriba. v Entregar el valor a la aplicacin que emite la peticin de obtencin del mensaje v Copiar el valor en el campo MDCID de cualquier mensaje de informe que genere sobre el mensaje (en funcin de las opciones de MDREP) Cuando el gestor de colas o el agente de canal de mensajes genera un mensaje de informe, establece el MDMID en la forma especificada por el campo MDREP del mensaje original, ya sea RONMI o ROPMI. Las aplicaciones que generan mensajes de informe tambin deben hacer esto. Para la llamada MQGET, MDMID es uno de los cinco campos que se pueden utilizar para seleccionar que un mensaje determinado se recupere de la cola. Normalmente, la llamada MQGET devuelve el siguiente mensaje de la cola, pero si se requiere un determinado mensaje, se puede obtener especificando uno o ms de los cinco criterios de seleccin, en cualquier combinacin; estos campos son los siguientes: MDMID MDCID MDGID MDSEQ MDOFF La aplicacin establece uno o ms de estos campos en los valores necesarios, y entonces establece las opciones coincidentes MO* que corresponden en el campo GMMO de MQGMO para indicar que esos campos deben utilizarse como criterios de seleccin. Solamente son candidatos a la recuperacin los mensajes que han especificado valores en esos campos. El valor por omisin para el campo GMMO (si la aplicacin no lo altera) es emparejar el identificador de mensaje y el identificador de correlacin. Normalmente, el mensaje devuelto es el primer mensaje de la cola que satisface el criterio de seleccin. Pero si se especifica GMBRWN, el mensaje devuelto es el siguiente mensaje que satisface los criterios de seleccin; la exploracin en busca de este mensaje comienza con el mensaje situado a continuacin de la posicin actual del cursor. Nota: La cola se explora por orden en busca de un mensaje que satisfaga dichos criterios, por lo que los tiempos de recuperacin son menores que si no se especifica ningn criterio de seleccin, sobre todo si hay que explorar muchos mensajes antes de dar con el adecuado. Consulte la Tabla 16 en la pgina 64 para obtener ms informacin acerca de cmo se utilizan los criterios de seleccin en diferentes situaciones. Especificar MINONE como identificador de mensaje tiene el mismo efecto que no especificar MOMSGI, es decir, cualquier identificador de mensaje coincidir.

114

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


Este campo se pasa por alto si la opcin GMMUC se especifica en el parmetro GMO de la llamada MQGET. Al regreso de una llamada MQGET, el campo MDMID se establece en el identificador del mensaje devuelto (si lo hay). Se pueden utilizar los siguientes valores especiales: MINONE No se especifica ningn identificador de mensaje. El valor de la longitud del campo es cero binario. Es un campo de entrada/salida para las llamadas MQGET, MQPUT y MQPUT1. La longitud de este campo la proporciona LNMID. El valor inicial del campo es MINONE. MDCID (serie de bits de 24 bytes) Identificador de correlacin. Es una serie de bytes que la aplicacin puede utilizar para relacionar un mensaje con otro, o para relacionar el mensaje con otro trabajo que la aplicacin realiza. El identificador de correlacin es propiedad permanente del mensaje, y sigue existiendo tras los rearranques del gestor de colas. Como el identificador de correlacin es una serie de bytes y no una serie de caracteres, no se convierten los juegos de caracteres del identificador de correlacin cuando el mensaje va de un gestor de colas a otro. Para las llamadas MQPUT y MQPUT1, la aplicacin puede especificar cualquier valor. El gestor de colas transmite este valor con el mensaje y lo entrega a la aplicacin que emite la peticin de obtencin del mensaje. Si la aplicacin especifica PMNCID, el gestor de colas genera un identificador de correlacin exclusivo que se enva con el mensaje, y que tambin se devuelve a la aplicacin emisora en la salida de la llamada MQPUT o MQPUT1. El gestor de colas o el agente de canal de mensajes, al generar un mensaje de informe, establece el campo MDCID en la forma especificada por el campo MDREP del mensaje original, ya sea ROCMTC o ROPCI. Las aplicaciones que generan mensajes de informe tambin deben hacer esto. Para la llamada MQGET, MDCID es uno de los cinco campos que se pueden utilizar para seleccionar que un mensaje determinado se recupere de la cola. Vea la descripcin del campo MDMID para obtener informacin detallada acerca de cmo especificar valores para este campo. Especificar CINONE como identificador de correlacin tiene el mismo efecto que no especificar MOCORI, es decir, cualquier identificador de correlacin coincidir. Si se especifica la opcin GMMUC en el parmetro GMO en la llamada MQGET, este campo se pasa por alto. Al regreso de una llamada MQGET, el campo MDCID se establece en el identificador de correlacin del mensaje devuelto (si lo hay).

Captulo 10. MQMD - Descriptor de mensaje

115

MQMD - Descriptor de mensaje


Se pueden utilizar los siguientes valores especiales: CINONE No se especifica ningn identificador de correlacin. El valor de la longitud del campo es cero binario. CINEWS El mensaje es el inicio de una nueva sesin. Este valor lo reconoce el puente CICS como indicativo del comienzo de una nueva sesin, es decir, del principio de una nueva secuencia de mensajes. Para la llamada MQGET, es un campo de entrada/salida. Para las llamadas MQPUT y MQPUT1, es un campo de entrada si PMNCID no se especifica, y un campo de salida si PMNCID s se especifica. La longitud de este campo la proporciona LNCID. El valor inicial del campo es CINONE. MDBOC (entero con signo de 10 dgitos) Contador de restitucin. Es una cuenta del nmero de veces que la llamada MQGET haba devuelto anteriormente el mensaje como parte de una unidad de trabajo y lo haba restituido a continuacin. Constituye una ayuda para que la aplicacin detecte errores de proceso basados en el contenido del mensaje. La cuenta excluye las llamadas MQGET que especificaron cualquiera de las opciones GMBRW*. La exactitud de este recuento est afectada por el atributo de cola local HardenGetBackout; consulte el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311. Es un campo de salida para la llamada MQGET. Se pasa por alto para las llamadas MQPUT y MQPUT1. El valor inicial de este campo es 0. MDRQ (serie de caracteres de 48 bytes) Nombre de la cola de respuestas. Es el nombre de la cola de mensajes a la que la aplicacin que emiti la peticin de obtencin del mensaje debe enviar los mensajes MTRPLY y MTRPRT. Es el nombre local de una cola que se define en el gestor de colas identificado por MDRM. Esta cola no debe ser una cola modelo, aunque el gestor de colas emisor no verifica esta circunstancia al poner el mensaje. Para las llamadas MQPUT y MQPUT1, este campo no debe estar en blanco si el campo MDMT tiene el valor MTRQST, o si el campo MDREP no solicita ningn informe. Sin embargo, el valor especificado (o sustituido, vase a continuacin) se pasa a la aplicacin que emite la peticin de obtener el mensaje, independientemente del tipo de mensaje. Si el campo MDRM est en blanco, el gestor de colas buscar el nombre MDRQ en sus propias definiciones de cola. Si existe una definicin local de una cola remota con ese nombre, el valor MDRQ del mensaje transmitido se sustituir por el valor del atributo RemoteQName de la definicin de la cola remota, y este valor se devolver en el descriptor de mensaje cuando la aplicacin receptora emita una llamada MQGET para obtener el mensaje. Si no existe una definicin local de una cola remota, MDRQ no cambia.

116

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


Si se especifica el nombre, este puede contener blancos finales; el primer carcter nulo y los caracteres que le siguen se tratan como blancos. De lo contrario, no se comprobar si el nombre satisface las normas de los nombres de cola; y lo mismo ocurre con el nombre transmitido si el campo MDRQ se sustituye en el mensaje transmitido. Solo se comprueba si se ha especificado un nombre, si las circunstancias as lo requieren. Si no es necesaria una cola de respuestas, es aconsejable (aunque no se comprueba) que el campo MDRQ se establezca en blancos; el campo no debe dejarse sin inicializar. Para la llamada MQGET, el gestor de colas siempre devuelve el nombre relleno con blancos hasta la longitud del campo. Si un mensaje que requiere un mensaje de informe no puede entregarse y el mensaje de informe tampoco puede entregarse en la cola especificada, tanto el mensaje original como el mensaje de informe irn a la cola de mensajes no entregados (mensajes en espera); (consulte la descripcin del atributo DeadLetterQName en el Captulo 43. Atributos del gestor de colas en la pgina 337). Es un campo de salida para la llamada MQGET, y un campo de entrada para las llamadas MQPUT y MQPUT1. La longitud de este campo la proporciona LNQN. El valor inicial del campo son 48 caracteres en blanco. MDRM (serie de caracteres de 48 bytes) Nombre del gestor de la cola de respuestas. Es el nombre del gestor de colas al que debe enviar el mensaje de respuesta o el mensaje de informe. MDRQ es el nombre local de una cola definida en este gestor de colas. Si el campo MDRM est en blanco, el gestor de colas local buscar el nombre MDRQ en sus definiciones de cola. Si existe una definicin local de una cola remota con ese nombre, el valor de MDRM del mensaje transmitido se sustituir por el valor del atributo RemoteQMgrName de la definicin de la cola remota, y este valor se devolver en el descriptor de mensaje cuando la aplicacin receptora emita una llamada MQGET para obtener el mensaje. Si no existe una definicin local de una cola remota, el MDRM que se transmite con el mensaje es el nombre del gestor de colas local. Si se especifica el nombre, este puede contener blancos finales; el primer carcter nulo y los caracteres que le siguen se tratan como blancos. De lo contrario, no se comprobar si el nombre satisface las normas para nombres de cola o si el gestor de colas emisor conoce este nombre; y lo mismo ocurre con el nombre transmitido si el MDRM se sustituye en el mensaje transmitido. Para ms informacin sobre nombres, consulte la publicacin MQSeries Application Programming Guide. Si no es necesaria una cola de respuestas, es aconsejable (aunque no se comprueba) que el campo MDRM se establezca en blancos; el campo no debe dejarse sin inicializar. Para la llamada MQGET, el gestor de colas siempre devuelve el nombre relleno con blancos hasta la longitud del campo.

Captulo 10. MQMD - Descriptor de mensaje

117

MQMD - Descriptor de mensaje


Es un campo de salida para la llamada MQGET, y un campo de entrada para las llamadas MQPUT y MQPUT1. La longitud de este campo la proporciona LNQMN. El valor inicial del campo son 48 caracteres en blanco. MDUID (serie de caracteres de 12 bytes) Identificador de usuario. Los campos de MDUID a MDAOD contienen el contexto de identidad y el contexto de origen del mensaje. Por lo general: v El contexto de identidad se refiere a la aplicacin que puso el mensaje originalmente v El contexto de origen se refiere a la aplicacin que ha puesto el mensaje ms recientemente. Estas dos aplicaciones pueden ser la misma, pero tambin pueden ser aplicaciones diferentes (por ejemplo, cuando se reenva un mensaje de una aplicacin a otra). Aunque los contextos de identidad y de origen suelen tener los significados descritos, el contenido de ambos tipos de contexto depende en realidad de las opciones PM* que se han especificado al poner el mensaje. Como resultado, el contexto de identidad no se refiere necesariamente a la aplicacin que transfiri el mensaje originalmente, y el contexto de origen no se refiere necesariamente a la aplicacin que lo ha transferido ms recientemente; esto depende del diseo de la suite de aplicaciones. Existe una clase de aplicacin que nunca altera el contexto de mensaje, a saber, el agente de canal de mensajes (MCA). Los MCA que reciben mensajes de los gestores de colas remotos utilizan la opcin de contexto PMSETA en la llamada MQPUT o MQPUT1. Esto permite al MCA receptor conservar exactamente igual el contexto de mensaje que ha viajado con el mensaje desde el MCA emisor. No obstante, el resultado es que el contexto de origen no se refiere a la aplicacin que ha puesto el mensaje ms recientemente (el MCA receptor), sino que se refiere a una aplicacin anterior que puso el mensaje (posiblemente la propia aplicacin que lo origin). En las descripciones siguientes, los campos de contexto se describen como si se utilizaran en la forma normal. Para obtener ms informacin acerca del contexto de mensaje, consulte la publicacin MQSeries Application Programming Guide. MDUID forma parte del contexto de identidad del mensaje. Especifica el identificador de usuario de la aplicacin que origin el mensaje. El gestor de colas trata esta informacin como datos de tipo carcter, pero no define su formato. Despus de haber recibido un mensaje, MDUID se puede utilizar en el campo ODAU del parmetro OBJDSC de una llamada MQOPEN o MQPUT1 posterior, para que la comprobacin de autorizacin se lleve a cabo para el usuario MDUID en lugar de la aplicacin que realiza la apertura. | | | | Cuando el gestor de colas genera esta informacin para una llamada MQPUT o MQPUT1: v En OS/390, el gestor de colas utiliza el ODAU del parmetro OBJDSC de la llamada MQOPEN o MQPUT1 si se ha especificado la opcin OOALTU o

118

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


| | | | | PMALTU. Si no se ha especificado la opcin pertinente, el gestor de colas utiliza un identificador de usuario determinado desde el entorno. v En otros entornos, el gestor de colas siempre utiliza un identificador de usuario determinado desde el entorno. Cuando el identificador de usuario se determina desde el entorno: v En OS/400, el gestor de colas utiliza el nombre del perfil de usuario asociado con el trabajo de la aplicacin. Para las llamadas MQPUT y MQPUT1, es un campo de entrada/salida si se ha especificado PMSETI o PMSETA en el parmetro PMO. Cualquier informacin que siga a un carcter nulo dentro del campo se pasar por alto. El gestor de colas convierte en blancos el carcter nulo y todos los caracteres que le siguen. Si no se ha especificado PMSETI o PMSETA, este campo se pasa por alto a la entrada y solo es un campo de salida. Tras la finalizacin satisfactoria de una llamada MQPUT o MQPUT1, este campo contiene el MDUID que se transmiti con el mensaje. Si el mensaje no tiene contexto, el campo est completamente en blanco. Es un campo de salida para la llamada MQGET. La longitud del campo la proporciona LNUID. El valor inicial del campo son 12 caracteres en blanco. MDACC (serie de bits de 32 bytes) Cdigo de contabilidad. Forma parte del contexto de identidad del mensaje. Para obtener ms informacin acerca del contexto de mensaje, consulte la descripcin del campo MDUID ya mencionada; consulte tambin la publicacin MQSeries Application Programming Guide. MDACC permite a una aplicacin cargar correctamente el trabajo realizado como resultado del mensaje. El gestor de colas trata esta informacin como una serie de bits y no comprueba su contenido. Cuando el gestor de colas genera esta informacin, se establece de la siguiente manera: v El primer byte del campo se establece en la longitud de la informacin de contabilidad que est presente en los bytes que le siguen; esta longitud est en el rango de cero a 30, y se almacena en el primer byte como un entero binario. v Los bytes segundo y siguientes (segn lo indicado por la longitud del campo) se establecen en la informacin de contabilidad adecuada al entorno. En OS/400, la informacin de contabilidad se establece en el cdigo de contabilidad del trabajo. v El ltimo byte se establece en el tipo de smbolo de contabilidad, que es uno de los siguientes valores: ATTCIC Identificador LUOW de CICS. ATTDOS Smbolo de contabilidad por omisin de cliente DOS. ATTWNT Identificador de seguridad de Windows NT. ATTOS2 Smbolo de contabilidad por omisin de OS/2.
Captulo 10. MQMD - Descriptor de mensaje

| | | | | | | | | |

119

MQMD - Descriptor de mensaje


| | | | | | | | | | | | | | | | | ATT400 Smbolo de contabilidad de OS/400. ATTUNX Identificador numrico de sistemas UNIX. ATTWIN Smbolo de contabilidad por omisin de cliente Windows, Windows de 16 bits o Windows de 32 bits. ATTUSR Smbolo de contabilidad definido por usuario. ATTUNK Tipo de smbolo de contabilidad desconocido. El tipo de smbolo de contabilidad se establece en un valor explcito solo en los siguientes entornos: AIX, cliente DOS, HP-UX, OS/2, Sun Solaris, cliente Windows y Windows NT. En otros entornos, el tipo de smbolo de contabilidad se establece en el valor ATTUNK. En estos entornos, el campo MDPAT se puede utilizar para deducir el tipo de smbolo de contabilidad recibido. v Todos los dems bytes se establecen en ceros binarios. Para las llamadas MQPUT y MQPUT1, es un campo de entrada/salida si se ha especificado PMSETI o PMSETA en el parmetro PMO. Si no se ha especificado PMSETI o PMSETA, este campo se pasa por alto a la entrada y solo es un campo de salida. Para obtener ms informacin sobre el contexto de mensaje, consulte la publicacin MQSeries Application Programming Guide. Tras la finalizacin satisfactoria de una llamada MQPUT o MQPUT1, este campo contiene el MDACC que se transmiti con el mensaje. Si el mensaje no tiene contexto, el campo contiene nicamente ceros binarios. Es un campo de salida para la llamada MQGET. Este campo no est sujeto a ninguna conversin basada en el juego de caracteres del gestor de colasel campo se trata como una serie de bits y no como una serie de caracteres. El gestor de colas no hace nada con la informacin de este campo. La aplicacin debe interpretar la informacin si desea utilizarla para la contabilidad. Se puede utilizar el siguiente valor especial para el campo MDACC: ACNONE No se especifica ningn smbolo de contabilidad. El valor de la longitud del campo es cero binario. La longitud de este campo la proporciona LNACCT. El valor inicial del campo es ACNONE. MDAID (serie de caracteres de 32 bytes) Datos de la aplicacin relacionados con la identidad. Forma parte del contexto de identidad del mensaje. Para obtener ms informacin acerca del contexto de mensaje, consulte la descripcin del campo MDUID ya mencionada; consulte tambin la publicacin MQSeries Application Programming Guide.

120

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


MDAID es informacin definida por la suite de aplicaciones y se puede utilizar para proporcionar informacin adicional acerca del mensaje o su originador. El gestor de colas trata esta informacin como datos de tipo carcter, pero no define su formato. Al generarla, est completamente en blanco. Para las llamadas MQPUT y MQPUT1, es un campo de entrada/salida si se ha especificado PMSETI o PMSETA en el parmetro PMO. El gestor de colas convierte en blancos el carcter nulo y todos los caracteres que le siguen, si es que hay alguno. Si no se ha especificado PMSETI o PMSETA, este campo se pasa por alto a la entrada y solo es un campo de salida. Para obtener ms informacin sobre el contexto de mensaje, consulte la publicacin MQSeries Application Programming Guide. Tras la finalizacin satisfactoria de una llamada MQPUT o MQPUT1, este campo contiene el MDAID que se transmiti con el mensaje. Si el mensaje no tiene contexto, el campo est completamente en blanco. | En VSE/ESA, es un campo reservado. Es un campo de salida para la llamada MQGET. La longitud de este campo la proporciona LNAIDD. El valor inicial del campo son 32 caracteres en blanco. MDPAT (entero con signo de 10 dgitos) Tipo de aplicacin que puso el mensaje. Forma parte del contexto de origen del mensaje. Para obtener ms informacin acerca del contexto de mensaje, consulte la descripcin del campo MDUID ya mencionada; consulte tambin la publicacin MQSeries Application Programming Guide. MDPAT puede tener uno de los siguientes tipos estndar. Tambin pueden utilizarse tipos definidos por el usuario, pero deben limitarse a valores que estn dentro del rango de ATUFST a ATULST. ATAIX Aplicacin AIX (el mismo valor que ATUNIX). ATCICS Transaccin CICS. | | | | ATCICB Puente CICS. ATVSE Transaccin CICS/VSE. ATDOS Aplicacin cliente DOS | | ATGUAR Aplicacin Tandem Guardian (el mismo valor que ATNSK). ATIMS Aplicacin IMS ATIMSB Puente IMS. ATMVS Aplicacin OS/390 o TSO (el mismo valor que AT390).

Captulo 10. MQMD - Descriptor de mensaje

121

MQMD - Descriptor de mensaje


| | | | ATNOTE Aplicacin Lotus Notes Agent. ATNSK Aplicacin Tandem NonStop Kernel. ATOS2 Aplicacin OS/2 o Presentation Manager. | AT390 Aplicacin OS/390. AT400 Aplicacin OS/400 ATQM Mensaje generado por el gestor de colas. ATUNIX Aplicacin UNIX. | | | | ATVMS Aplicacin Digital OpenVMS. ATVOS Aplicacin Stratus VOS. ATWIN Aplicacin cliente Windows o Windows de 16 bits. ATWINT Aplicacin Windows NT o Windows de 32 bits. ATXCF XCF. ATDEF Tipo de aplicacin por omisin. Es el tipo de aplicacin por omisin para la plataforma en la que se ejecuta la aplicacin. Nota: El valor de esta constante es especfico del entorno. ATUNK Tipo de aplicacin desconocido. Este valor puede utilizarse para indicar que el tipo de aplicacin no se conoce, incluso si hay otra informacin de contexto. ATUFST Valor inferior del tipo de aplicacin definido por usuario. ATULST Valor superior del tipo de aplicacin definido por usuario. Tambin puede darse el siguiente valor especial: ATNCON No hay informacin de contexto en el mensaje. Este valor lo establece el gestor de colas cuando se transfiere un mensaje sin contexto (es decir, se especifica la opcin de contexto PMNOC). Cuando se recupera un mensaje, puede probarse este valor de MDPAT para decidir si el mensaje tiene contexto (se recomienda que una

122

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


aplicacin que utilice PMSETA no establezca nunca MDPAT en ATNCON, si cualquiera de los dems campos de contexto no est en blanco). Cuando el gestor de colas genera esta informacin como resultado de una transferencia de la aplicacin, el campo se establece en un valor determinado por el entorno. Tenga en cuenta que, en OS/400, se establece en AT400; el gestor de colas nunca utiliza ATCICS en OS/400. Para las llamadas MQPUT y MQPUT1, es un campo de entrada/salida si se ha especificado PMSETA en el parmetro PMO. Si no se ha especificado PMSETA, este campo se pasa por alto a la entrada y solo es un campo de salida. Tras la finalizacin satisfactoria de una llamada MQPUT o MQPUT1, este campo contiene el MDPAT que se transmiti con el mensaje. Si el mensaje no tiene contexto, el campo se establece en ATNCON. Es un campo de salida para la llamada MQGET. El valor inicial de este campo es ATNCON. MDPAN (serie de caracteres de 28 bytes) Nombre de la aplicacin que pone el mensaje. Forma parte del contexto de origen del mensaje. Para obtener ms informacin acerca del contexto de mensaje, consulte la descripcin del campo MDUID ya mencionada; consulte tambin la publicacin MQSeries Application Programming Guide. El formato de MDPAN depende del valor de MDPAT. Cuando el gestor de colas establece este campo (es decir, para todas las opciones salvo para PMSETA), se le asigna el valor determinado por el entorno: v En OS/400, el gestor de colas utiliza el nombre del trabajo totalmente calificado. Para las llamadas MQPUT y MQPUT1, es un campo de entrada/salida si se ha especificado PMSETA en el parmetro PMO. Cualquier informacin que siga a un carcter nulo dentro del campo se pasar por alto. El gestor de colas convierte en blancos el carcter nulo y todos los caracteres que le siguen. Si no se ha especificado PMSETA, este campo se pasa por alto a la entrada y solo es un campo de salida. Tras la finalizacin satisfactoria de una llamada MQPUT o MQPUT1, este campo contiene el MDPAN que se transmiti con el mensaje. Si el mensaje no tiene contexto, el campo est completamente en blanco. Es un campo de salida para la llamada MQGET. La longitud de este campo la proporciona LNPAN. El valor inicial del campo son 28 caracteres en blanco. MDPD (serie de caracteres de 8 bytes) Fecha en que se puso el mensaje. Forma parte del contexto de origen del mensaje. Para obtener ms informacin acerca del contexto de mensaje, consulte la descripcin del campo MDUID ya mencionada; consulte tambin la publicacin MQSeries Application Programming Guide.

Captulo 10. MQMD - Descriptor de mensaje

123

MQMD - Descriptor de mensaje


El formato utilizado para la fecha cuando este campo lo genera el gestor de colas es el siguiente: AAAAMMDD donde los caracteres representan lo siguiente: AAAA ao (cuatro nmeros) MM mes del ao (de 01 a 12) DD da del mes (de 01 a 31) En los campos MDPD y MDPT se utiliza la Hora del Meridiano de Greenwich (GMT), suponiendo que el reloj del sistema se haya ajustado correctamente segn la GMT. Si el mensaje se transfiri como parte de una unidad de trabajo, la fecha indica cundo se transfiri el mensaje y no cundo se comprometi la unidad de trabajo. Para las llamadas MQPUT y MQPUT1, es un campo de entrada/salida si se ha especicado PMSETA en el parmetro PMO. El gestor de colas no comprueba el contenido del campo excepto si se descarta cualquier informacin que siga a un carcter nulo dentro del campo. El gestor de colas convierte en blancos el carcter nulo y todos los caracteres que le siguen. Si no se ha especificado PMSETA, este campo se pasa por alto en la entrada y es un campo de solo salida. Tras la conclusin satisfactoria de una llamada MQPUT o MQPUT1, este campo contiene el MDPD que se transmiti con el mensaje. Si el mensaje no tiene contexto, el campo est completamente en blanco. | En VSE/ESA, es un campo reservado. Es un campo de salida para la llamada MQGET. La longitud de este campo la proporciona LNPDAT. El valor inicial del campo son 8 caracteres en blanco. MDPT (serie de caracteres de 8 bytes) Hora en que se transfiri el mensaje. Forma parte del contexto de origen del mensaje. Para obtener ms informacin acerca del contexto de mensaje, consulte la descripcin del campo MDUID ya mencionada; consulte tambin la publicacin MQSeries Application Programming Guide. El formato utilizado para la hora cuando el gestor de colas genera este campo es el siguiente: HHMMSSTH donde HH MM SS T H los caracteres representan (por orden), lo siguiente: horas (de 00 a 23) minutos (de 00 a 59) segundos (de 00 a 59; vase la siguiente nota) dcimas de segundo (de 0 a 9) centsimas de segundo (de 0 a 9)

Nota: Si el reloj del sistema est sincronizado para una hora estndar muy exacta, es posible que en algunas ocasiones, poco frecuentes, se devuelva 60 61 para los segundos en MDPT. Esto sucede cuando se insertan

124

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


segundos de ao bisiesto en la hora global estndar. En los campos MDPD y MDPT se utiliza la Hora del Meridiano de Greenwich (GMT), suponiendo que el reloj del sistema se haya ajustado correctamente segn la GMT. Si el mensaje se transfiri como parte de una unidad de trabajo, la hora indica cundo se transfiri el mensaje y no cundo se comprometi la unidad de trabajo. Para las llamadas MQPUT y MQPUT1, es un campo de entrada/salida si se ha especicado PMSETA en el parmetro PMO. El gestor de colas no comprueba el contenido del campo excepto si se descarta cualquier informacin que siga a un carcter nulo dentro del campo. El gestor de colas convierte en blancos el carcter nulo y todos los caracteres que le siguen. Si no se ha especificado PMSETA, este campo se pasa por alto a la entrada y solo es un campo de salida. Tras la finalizacin satisfactoria de una llamada MQPUT o MQPUT1, este campo contiene el MDPT que se transmiti con el mensaje. Si el mensaje no tiene contexto, el campo est completamente en blanco. | En VSE/ESA, es un campo reservado. Es un campo de salida para la llamada MQGET. La longitud de este campo la proporciona LNPTIM. El valor inicial del campo son 8 caracteres en blanco. MDAOD (serie de caracteres de 4 bytes) Datos de la aplicacin relacionados con el origen. Forma parte del contexto de origen del mensaje. Para obtener ms informacin acerca del contexto de mensaje, consulte la descripcin del campo MDUID ya mencionada; consulte tambin la publicacin MQSeries Application Programming Guide. MDAOD es informacin definida por la suite de aplicaciones, que se puede utilizar para proporcionar informacin adicional acerca del origen del mensaje. Por ejemplo, lo pueden establecer aplicaciones autorizadas convenientemente para indicar si los datos de identidad son fiables. El gestor de colas trata esta informacin como datos de tipo carcter, pero no define su formato. Al generarla, est completamente en blanco. Para las llamadas MQPUT y MQPUT1, es un campo de entrada/salida si se ha especicado PMSETA en el parmetro PMO. Cualquier informacin que siga a un carcter nulo dentro del campo se pasar por alto. El gestor de colas convierte en blancos el carcter nulo y todos los caracteres que le siguen. Si no se ha especificado PMSETA, este campo se pasa por alto a la entrada y solo es un campo de salida. Tras la finalizacin satisfactoria de una llamada MQPUT o MQPUT1, este campo contiene el MDAOD que se transmiti con el mensaje. Si el mensaje no tiene contexto, el campo est completamente en blanco. | En VSE/ESA, es un campo reservado.

Captulo 10. MQMD - Descriptor de mensaje

125

MQMD - Descriptor de mensaje


Es un campo de salida para la llamada MQGET. La longitud de este campo la proporciona LNAORD. El valor inicial del campo son 4 caracteres en blanco. Los campos restantes no estn presentes si MDVER es menor que MDVER2. MDGID (serie de bits de 24 bytes) Identificador de grupo. Es una serie de bytes que se utiliza para identificar el mensaje lgico o grupo de mensajes determinado al que pertenece el mensaje fsico. MDGID tambin se utiliza si se permite la segmentacin del mensaje. En todos estos casos, MDGID tiene un valor diferente del nulo, y se establece uno o ms de los siguientes distintivos en el campo MDMFL: MFMIG MFLMIG MFSEG MFLSEG MFSEGA Si no se establece ninguno de estos distintivos, MDGID tiene el valor nulo especial GINONE. No es necesario que la aplicacin establezca este campo en la llamada MQPUT o MQGET cuando: v En la llamada MQPUT se especifica PMLOGO. v En la llamada MQGET no se especifica MOGRPI. Estas son las maneras recomendadas de utilizar esas llamadas para los mensajes que no son mensajes de informe. Sin embargo, si la aplicacin requiere ms control o la llamada es MQPUT1, la aplicacin debe garantizar que MDGID se ha establecido con un valor adecuado. Los segmentos y grupos de mensajes solo se pueden procesar correctamente si el identificador de grupo es exclusivo. Por este motivo, las aplicaciones no deben generar sus propios identificadores de grupo; en cambio, deben realizar una de las siguientes acciones: v Si se especifica PMLOGO, el gestor de colas genera automticamente un identificador de grupo exclusivo para el primer mensaje del grupo o segmento del mensaje lgico, y utiliza ese identificador de grupo para los mensajes restantes del grupo o los segmentos del mensaje lgico, de tal manera que la aplicacin no tiene que realizar ninguna accin especial. Este es el procedimiento aconsejado. v Si PMLOGO no se especifica, la aplicacin debe solicitar al gestor de colar que genere el identificador de grupo, estableciendo MDGID en GINONE en la primera llamada MQPUT o MQPUT1 para un mensaje del grupo o segmento del mensaje lgico. El identificador de grupo devuelto por el gestor de colas como salida de esa llamada debe utilizarse a continuacin para los restantes mensajes del grupo o segmentos del mensaje lgico. Si un grupo de mensajes contiene mensajes segmentados, debe utilizarse el mismo identificador de grupo para todos los segmentos y mensajes de ese grupo. Cuando PMLOGO no se especifica, los mensajes de grupos y los segmentos de mensajes lgicos se pueden transferir en cualquier orden (por ejemplo, en orden inverso), pero el identificador de grupo debe asignarlo la primera llamada MQPUT o MQPUT1 que se emite para cualquiera de esos mensajes. A la entrada de las llamadas MQPUT y MQPUT1, el gestor de colas utiliza el valor que se describe detalladamente en la Tabla 31 en la pgina 160. Como

126

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


salida de las llamadas MQPUT y MQPUT1, el gestor de colas establece este campo en el valor que se envi con el mensaje si el objeto abierto es una sola cola y no una lista de distribucin, pero lo deja sin cambios si el objeto abierto es una lista de distribucin. En el ltimo caso, si la aplicacin tiene que saber cules son los identificadores de grupo generados, debe proporcionar registros MQPMR que contengan el campo PRGID. A la entrada de la llamada MQGET, el gestor de colas utiliza el valor que se describe detalladamente en la Tabla 16 en la pgina 64. Como salida de la llamada MQGET, el gestor de colas establece este campo en el valor para el mensaje recuperado. Se define el siguiente valor especial: GINONE No se especifica ningn identificador de grupo. El valor de la longitud del campo es cero binario. Este es el valor que se utiliza para los mensajes que no estn en grupos, que no son segmentos de mensajes lgicos y para los que no se permite la segmentacin. La longitud de este campo la proporciona LNGID. El valor inicial del campo es GINONE. Este campo no est presente si MDVER es menor que MDVER2. MDSEQ (entero con signo de 10 dgitos) Nmero de secuencia de mensaje lgico en grupo. Los nmeros de secuencia empiezan por el 1, y aumentan en 1 para cada nuevo mensaje lgico del grupo, hasta un mximo de 999 999 999. Los mensajes fsicos que no estn en un grupo tienen el nmero de secuencia 1. No es necesario que la aplicacin establezca este campo en la llamada MQPUT o MQGET cuando: v En la llamada MQPUT se especifica PMLOGO. v En la llamada MQGET no se especifica MOSEQN. Estas son las maneras recomendadas de utilizar esas llamadas para los mensajes que no son mensajes de informe. Sin embargo, si la aplicacin requiere ms control o la llamada es MQPUT1, la aplicacin debe garantizar que MDSEQ se ha establecido con un valor adecuado. A la entrada de las llamadas MQPUT y MQPUT1, el gestor de colas utiliza el valor que se describe detalladamente en la Tabla 31 en la pgina 160. Como salida de las llamadas MQPUT y MQPUT1, el gestor de colas establece este campo en el valor que se envi con el mensaje. Como entrada de la llamada MQGET, el gestor de colas utiliza el valor que se describe detalladamente en la Tabla 16 en la pgina 64. Como salida de la llamada MQGET, el gestor de colas establece este campo en el valor para el mensaje recuperado. El valor inicial de este campo es uno. Este campo no est presente si MDVER es menor que MDVER2. MDOFF (entero con signo de 10 dgitos) Desplazamiento de datos en mensaje fsico desde principio de mensaje lgico.

Captulo 10. MQMD - Descriptor de mensaje

127

MQMD - Descriptor de mensaje


Es el desplazamiento, en bytes, de los datos del mensaje fsico desde el principio del mensaje lgico del que forman parte los datos. Estos datos se llaman segmento. El desplazamiento est en el rango de 0 a 999 999 999. Los mensajes fsicos que no son segmentos de mensajes lgicos tienen un desplazamiento cero. No es necesario que la aplicacin establezca este campo en la llamada MQPUT o MQGET cuando: v En la llamada MQPUT se especifica PMLOGO. v En la llamada MQGET no se especifica MOOFFS. Estas son las maneras recomendadas de utilizar esas llamadas para los mensajes que no son mensajes de informe. Sin embargo, si la aplicacin no cumple estas condiciones o la llamada es MQPUT1, la aplicacin debe garantizar que MDOFF se ha establecido con un valor adecuado. A la entrada de las llamadas MQPUT y MQPUT1, el gestor de colas utiliza el valor que se describe detalladamente en la Tabla 31 en la pgina 160. Como salida de las llamadas MQPUT y MQPUT1, el gestor de colas establece este campo en el valor que se envi con el mensaje. Para un mensaje de informe que informa acerca de un segmento de un mensaje lgico, el campo MDOLN (siempre que no sea OLUNDF) se utiliza para actualizar el desplazamiento en la informacin de segmento retenida por el gestor de colas. A la entrada de la llamada MQGET, el gestor de colas utiliza el valor que se describe detalladamente en la Tabla 16 en la pgina 64. Como salida de la llamada MQGET, el gestor de colas establece este campo en el valor para el mensaje recuperado. El valor inicial de este campo es cero. Este campo no est presente si MDVER es menor que MDVER2. MDMFL (entero con signo de 10 dgitos) Distintivos de mensaje. Son distintivos que especifican atributos del mensaje, o que controlan su proceso. Los distintivos se dividen en las siguientes categoras: v Distintivo de segmentacin v Distintivos de estado Ambos se describen a continuacin. Distintivo de segmentacin: cuando un mensaje es demasiado grande para una cola, el intento de ponerlo en la cola no suele ser satisfactorio. La segmentacin es una tcnica en la que el gestor de colas o la aplicacin divide el mensaje en trozos ms pequeos llamados segmentos, y coloca cada segmento en la cola como un mensaje fsico aparte. La aplicacin que recupera el mensaje puede recuperar los segmentos uno por uno, o solicitar que el gestor de colas reensamble los segmentos en un nico mensaje que es devuelto por la llamada MQGET. Esto ltimo se consigue especificando la opcin GMCMPM en la llamada MQGET, y suministrando un almacenamiento intermedio que sea lo bastante grande para dar cabida al mensaje completo. (Consulte el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51 para obtener informacin detallada acerca de la opcin GMCMPM.)

128

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


La segmentacin de un mensaje puede producirse en el gestor de colas emisor, en un gestor de colas intermedio o en el gestor de colas destino. Se puede especificar uno de los siguientes valores para controlar la segmentacin de un mensaje: MFSEGI Se inhibe la segmentacin. Esta opcin impide que el gestor de colas desglose el mensaje en segmentos. Si se especifica para un mensaje que ya es un segmento, esta opcin impide que el segmento se desglose en segmentos ms pequeos. El valor de este distintivo es cero binario. Es el valor por omisin. MFSEGA Se permite segmentacin. Esta opcin permite que el gestor de colas desglose el mensaje en segmentos. Si se especifica para un mensaje que ya es un segmento, esta opcin permite que el segmento se desglose en segmentos ms pequeos. MFSEGA se puede establecer sin que se establezcan MFSEG o MFLSEG. Cuando el gestor de colas segmenta un mensaje, activa el distintivo MFSEG en la copia del MQMD que se enva con cada segmento, pero no altera los valores de esos distintivos en el MQMD que proporciona la aplicacin en la llamada MQPUT o MQPUT1. En el ltimo segmento del mensaje lgico, el gestor de colas tambin activa el distintivo MFLSEG del MQMD que se enva con el segmento. Nota: Hay que prestar atencin al poner mensajes con MFSEGA pero sin PMLOGO. Si el mensaje: v No es un segmento, v No est en un grupo, y v No se est reenviando, la aplicacin debe recordar que ha de restablecer el campo MDGID en GINONE antes de cada llamada MQPUT o MQPUT1, a fin de hacer que el gestor de colas genere un identificador de grupo exclusivo para cada mensaje. Si no se hace esto, es posible que mensajes no relacionados terminen inadvertidamente con el mismo identificador de grupo, lo que puede provocar un proceso posterior incorrecto. Consulte las descripciones del campo MDGID y la opcin PMLOGO para obtener ms informacin acerca de cundo debe restablecerse el campo MDGID. El gestor de colas divide los mensajes en segmentos, segn las necesidades, para garantizar que los segmentos (ms cualesquiera datos de cabecera que se requieran) caben en la cola. Sin embargo, existe un lmite para el tamao de los segmentos generados por el gestor de colas (vase a continuacin), y solo el ltimo segmento creado de un mensaje puede ser ms pequeo que este lmite. El lmite inferior para el tamao de un segmento generado por aplicacin es de un byte. Los segmentos generados por el gestor de colas pueden tener longitudes desiguales. El gestor de colas procesa los mensajes de la siguiente forma:
Captulo 10. MQMD - Descriptor de mensaje

129

MQMD - Descriptor de mensaje


v Los formatos definidos por usuario se dividen en lmites que son mltiplos de 16 bytes. Esto significa que el gestor de colas no generar segmentos ms pequeos de 16 bytes (que no sean el ltimo segmento). v Los formatos incorporados que no son FMSTR se dividen en los puntos adecuados en funcin de la naturaleza de los datos presentes. No obstante, el gestor de colas nunca divide un mensaje en medio de una estructura de cabecera MQ. Esto significa que el gestor de colas no puede dividir ms el segmento que contiene una nica estructura de cabecera MQ y que, como resultado, el tamao de segmento mnimo posible para ese mensaje es mayor que 16 bytes. El segundo o ltimo segmento generado por el gestor de colas empezar con uno de los siguientes elementos: Una estructura de cabecera MQ El principio de los datos de mensaje de aplicacin En mitad de los datos de mensaje de aplicacin v FMSTR se divide sin tener en cuenta la naturaleza de los datos presentes (SBCS, DBCS o SBCS/DBCS mixto). Cuando la serie es DBCS o SBCS/DBCS mixto, esto puede tener como resultado segmentos cuyo juego de caracteres no se puede convertir de uno a otro (vase a continuacin). El gestor de colas nunca divide mensajes FMSTR en segmentos ms pequeos que 16 bytes (que no sean el ltimo segmento). v El gestor de colas establece los campos MDFMT, MDCSI y MDENC en el MQMD de cada segmento para describir correctamente los datos que estn presentes al principio del segmento; el nombre del formato ser el de un formato incorporado o el de un formato definido por usuario. v El campo MDREP en el MQMD de los segmentos con MDOFF mayor que cero se modifica de la siguiente forma: Para cada tipo de informe, si la opcin de informe es RO*D pero el segmento no puede contener nunca ninguno de los primeros 100 bytes de los datos de usuario (es decir, los datos que siguen a cualesquiera estructuras de cabecera MQ que puedan estar presentes), la opcin de informe cambia a RO*. El gestor de colas cumple las reglas mencionadas, pero por lo dems divide los mensajes de la forma que cree conveniente; no hay que presuponer nada acerca de la manera en que el gestor de colas va a dividir un mensaje determinado. En los mensajes permanentes, el gestor de colas puede llevar a cabo la segmentacin nicamente dentro de una unidad de trabajo: v Si la llamada MQPUT o MQPUT1 opera dentro de una unidad de trabajo definida por usuario, se utiliza dicha unidad de trabajo. Si la llamada falla en mitad del proceso de segmentacin, el gestor de colas elimina los segmentos que se colocaron en la cola como resultado de la llamada no satisfactoria. No obstante, la anomala no impide que la unidad de trabajo se comprometa de forma satisfactoria. v Si la llamada es operativa fuera de una unidad de trabajo definida por usuario, y no existe ninguna unidad de trabajo definida por usuario, el gestor de colas crea una unidad de trabajo exclusivamente para el tiempo que dura la llamada. Si la llamada es

130

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


satisfactoria, el gestor de colas compromete la unidad de trabajo automticamente (la aplicacin no tiene que hacerlo). Si la llamada no es satisfactoria, el gestor de colas restituye la unidad de trabajo. v Si la llamada es operativa fuera de una unidad de trabajo definida por usuario, pero s existe una unidad de trabajo definida por usuario, el gestor de colas no puede llevar a cabo la segmentacin. Si el mensaje no requiere segmentacin, la llamada puede ser satisfactoria. Pero si el mensaje s requiere segmentacin, la llamada falla con el cdigo de razn RC2255. En mensajes no permanentes, el gestor de colas no requiere que haya disponible una unidad de trabajo para poder llevar a cabo la segmentacin. Hay que tener en cuenta algunas consideraciones especiales en relacin con la conversin de datos de los mensajes que pueden estar segmentados: v Si la conversin de datos solo la lleva a cabo la aplicacin receptora en la llamada MQGET y la aplicacin especifica la opcin GMCMPM, a la rutina de salida de conversin de datos se le pasar el mensaje completo para su conversin, y el hecho de que el mensaje estuviera segmentado no ser evidente para la rutina de salida. v Si la aplicacin receptora recupera los segmentos de uno en uno, se invocar a la rutina de salida de conversin de datos para que convierta los segmentos de uno en uno. Por consiguiente, la rutina de salida debe ser capaz de convertir los datos de un segmento independientemente de los datos de cualquiera de los dems segmentos. Si la naturaleza de los datos del mensaje es tal que la segmentacin arbitraria de los datos en lmites de 16 bytes puede tener como resultado segmentos que la rutina de salida no puede convertir, o el formato es FMSTR y el juego de caracteres es DBCS o SBCS/DBCS mixto, la propia aplicacin emisora debe crear y transferir los segmentos, especificando MFSEGI para suprimir la segmentacin adicional. De esta forma, la aplicacin emisora puede asegurar que cada segmento contiene suficiente informacin para permitir que la rutina de salida de conversin de datos convierta el segmento satisfactoriamente. v Si se especifica conversin de emisor para un agente de canal de mensajes (MCA) emisor, el MCA convierte nicamente los mensajes que no son segmentos de mensajes lgicos; el MCA nunca intenta convertir mensajes que son segmentos. Este distintivo es un distintivo de entrada en las llamadas MQPUT y MQPUT1, y un distintivo de salida en la llamada MQGET. En esta ltima llamada, el gestor de colas tambin reproduce el valor del distintivo en el campo GMSEG de MQGMO. El valor inicial de este distintivo es MFSEGI. Distintivos de estado: son distintivos que indican si el mensaje fsico pertenece a un grupo de mensajes, es un segmento de un mensaje lgico, ambas cosas o ninguna de ellas. Uno o ms de los siguientes valores se puede especificar en la llamada MQPUT o MQPUT1, o puede ser devuelto por la llamada MQGET:
Captulo 10. MQMD - Descriptor de mensaje

131

MQMD - Descriptor de mensaje


MFMIG El mensaje es un miembro de un grupo. MFLMIG El mensaje es el ltimo mensaje lgico de un grupo. Si se establece este distintivo, el gestor de colas activa MFMIG en la copia del MQMD que se enva con el mensaje, pero no altera los valores de esos distintivos en el MQMD proporcionado por la aplicacin en la llamada MQPUT o MQPUT1. Es vlido que un grupo conste nicamente de un mensaje lgico. Si este es el caso, se establece MFLMIG, pero el campo MDSEQ tiene el valor uno. MFSEG El mensaje es un segmento de un mensaje lgico. Cuando MFSEG se especifica sin MFLSEG, la longitud de los datos de mensaje de aplicacin del segmento (excluidas las longitudes de cualesquiera estructuras de cabecera MQ que pueda haber presentes) debe ser, como mnimo, uno. Si la longitud es cero, la llamada MQPUT o MQPUT1 falla con el cdigo de razn RC2253. MFLSEG El mensaje es el ltimo segmento de un mensaje lgico. Si se establece este distintivo, el gestor de colas activa MFSEG en la copia del MQMD que se enva con el mensaje, pero no altera los valores de esos distintivos en el MQMD proporcionado por la aplicacin en la llamada MQPUT o MQPUT1. Es vlido que un mensaje lgico conste nicamente de un segmento. Si este es el caso, se establece MFLSEG, pero el campo MDOFF tiene el valor cero. Cuando se especifica MFLSEG, se permite que la longitud de los datos de mensaje de aplicacin del segmento (excluidas las longitudes de cualesquiera estructuras de cabecera que pueda haber presentes) sea cero. La aplicacin debe asegurar que estos distintivos estn establecidos correctamente cuando transfiere mensajes. Si se especifica PMLOGO, o se ha especificado en la llamada MQPUT anterior para el asa de cola, los valores de los distintivos deben ser coherentes con la informacin de grupo y de segmento retenida por el gestor de colas para el asa de cola. Las siguientes condiciones son aplicables en las llamadas sucesivas MQPUT para el asa de cola, cuando se ha especificado PMLOGO: v Si no hay grupo o mensaje lgico actual, todos estos distintivos (y sus combinaciones) son vlidos. v Una vez especificado MFMIG, debe permanecer activo hasta que se especifica MFLMIG. Si no se satisface esta condicin, la llamada falla con el cdigo de razn RC2241. v Una vez especificado MFSEG, debe permanecer activo hasta que se especifica MFLSEG. Si no se satisface esta condicin, la llamada falla con el cdigo de razn RC2242. v Una vez especificado MFSEG sin MFMIG, MFMIG debe permanecer desactivado hasta haber especificado MFLSEG. Si no se satisface esta condicin, la llamada falla con el cdigo de razn RC2242.

132

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje


La Tabla 31 en la pgina 160 muestra las combinaciones vlidas de los distintivos, y los valores utilizados para varios campos. Estos distintivos son distintivos de entrada en las llamadas MQPUT y MQPUT1, y distintivos de salida en la llamada MQGET. En esta ltima llamada, el gestor de colas tambin reproduce los valores de los distintivos en los campos GMGST y GMSST de MQGMO. Distintivos por omisin: se puede especificar lo siguiente para indicar que el mensaje tiene atributos por omisin: MFNONE Sin distintivos de mensaje (atributos de mensaje por omisin). Esto inhibe la segmentacin, e indica que el mensaje no est en un grupo y no es un segmento de un mensaje lgico. MFNONE se ha definido como ayuda para la documentacin del programa. No se pretende que este distintivo se utilice con ningn otro, pero como su valor es cero no es posible detectar tal uso. El campo MDMFL est particionado en subcampos; encontrar informacin detallada en el Apndice E. Opciones de informe en la pgina 481. El valor inicial de este campo es MFNONE. Este campo no est presente si MDVER es menor que MDVER2. MDOLN (entero con signo de 10 dgitos) Longitud de mensaje original. Este campo solo es pertinente en mensajes de informe; especifica la longitud del mensaje con el que est relacionado el informe. Si el mensaje de informe informa acerca de un segmento, MDOLN es la longitud del segmento, y no la longitud del mensaje lgico del que forma parte el segmento, ni tampoco la longitud de los datos del mensaje de informe. MDOLN debe establecerlo el programa que genera el informe, pero si ese programa no establece el campo, MDOLN tiene el siguiente valor especial: OLUNDF Longitud original del mensaje no definida. Es un campo de entrada en las llamadas MQPUT y MQPUT1, pero el valor proporcionado por la aplicacin solo se utiliza en circunstancias determinadas: v Si el mensaje que se transfiere es un segmento pero no un mensaje de informe, el gestor de colas pasa por alto el campo y, en cambio, utiliza la longitud de los datos de mensaje de aplicacin. v Si el mensaje que se transfiere es un mensaje de informe que informa acerca de un segmento, el gestor de colas acepta el valor especificado. El valor debe ser: Mayor que cero si el segmento no es el ltimo segmento No menor que cero si el segmento es el ltimo segmento No menor que la longitud de los datos presentes en el mensaje Si no se satisfacen estas condiciones, la llamada falla con el cdigo de razn RC2252. v En todos los dems casos, el gestor de colas pasa por alto el campo y, en cambio, utiliza el valor OLUNDF.

Captulo 10. MQMD - Descriptor de mensaje

133

MQMD - Descriptor de mensaje


Es un campo de salida en la llamada MQGET. El valor inicial de este campo es OLUNDF. Este campo no est presente si MDVER es menor que MDVER2.

Valores iniciales y declaracin RPG


Tabla 22. Valores iniciales de campos de MQMD
Nombre de campo MDSID MDVER MDREP MDMT MDEXP MDFB MDENC MDCSI MDFMT MDPRI MDPER MDMID MDCID MDBOC MDRQ MDRM MDUID MDACC MDAID MDPAT MDPAN MDPD MDPT MDAOD MDGID MDSEQ MDOFF MDMFL MDOLN Notas: 1. El smbolo b representa un carcter en blanco. 2. El valor de esta constante es especfico del entorno. Nombre de constante MDSIDV MDVER1 RONONE MTDGRM EIULIM FBNONE ENNAT CSQM FMNONE PRQDEF PEQDEF MINONE CINONE Ninguno Ninguno Ninguno Ninguno ACNONE Ninguno ATNCON Ninguno Ninguno Ninguno Ninguno GINONE Ninguno Ninguno MFNONE OLUNDF Valor de constante 'MDbb' (Ver nota 1) 1 0 8 -1 0 Vea la nota 2 0 'bbbbbbbb' -1 2 Nulos Nulos 0 Blancos Blancos Blancos Nulos Blancos 0 Blancos Blancos Blancos Blancos Nulos 1 0 0 -1

134

Consulta de programacin de aplicaciones (ILE RPG)

MQMD - Descriptor de mensaje

Declaracin RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQMD D* D* Identificador de estructura D MDSID 1 4 D* Nmero de versin de estructura D MDVER 5 8I 0 D* Opciones para mensajes de informe D MDREP 9 12I 0 D* Tipo de mensaje D MDMT 13 16I 0 D* Duracin de mensaje D MDEXP 17 20I 0 D* Cdigo de informacin de retorno o de razn D MDFB 21 24I 0 D* Codificacin numrica de datos de mensaje D MDENC 25 28I 0 D* Identificador de juego de caracteres de los datos de mensaje D MDCSI 29 32I 0 D* Nombre de formato de los datos de mensaje D MDFMT 33 40 D* Prioridad de mensaje D MDPRI 41 44I 0 D* Permanencia de mensaje D MDPER 45 48I 0 D* Identificador de mensaje D MDMID 49 72 D* Identificador de correlacin D MDCID 73 96 D* Contador de restitucin D MDBOC 97 100I 0 D* Nombre de cola de respuestas D MDRQ 101 148 D* Nombre de gestor de colas de respuestas D MDRM 149 196 D* Identificador de usuario D MDUID 197 208 D* Smbolo de contabilidad D MDACC 209 240 D* Datos de aplicacin relativos a identidad D MDAID 241 272 D* Tipo de aplicacin que pone el mensaje D MDPAT 273 276I 0 D* Nombre de aplicacin que pone el mensaje D MDPAN 277 304 D* Fecha en que se puso el mensaje D MDPD 305 312 D* Hora en que se puso el mensaje D MDPT 313 320 D* Datos de aplicacin relativos al origen D MDAOD 321 324 D* Identificador de grupo D MDGID 325 348 D* Nmero de secuencia de mensaje lgico en grupo D MDSEQ 349 352I 0 D* Desplazamiento de datos en mensaje fsico desde principio D* de mensaje lgico D MDOFF 353 356I 0 D* Distintivos de mensaje D MDMFL 357 360I 0 D* Longitud de mensaje original D MDOLN 361 364I 0

Captulo 10. MQMD - Descriptor de mensaje

135

MQMD - Descriptor de mensaje

136

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 11. MQMDE - Extensin de descriptor de mensaje


La tabla siguiente resume los campos de la estructura.
Tabla 23. Campos de MQMDE
Campo MESID MEVER MELEN MEENC MECSI MEFMT MEFLG MEGID MESEQ MEOFF MEMFL MEOLN Descripcin Identificador de estructura Nmero de versin de la estructura Longitud de la estructura MQMDE Codificacin numrica de los datos que siguen a MQMDE Identificador de juego de caracteres de los datos que siguen a MQMDE Nombre de formato de los datos que siguen a MQMDE Distintivos generales Identificador de grupo Nmero de secuencia de mensaje lgico dentro del grupo Desplazamiento de datos del mensaje fsico desde el inicio del mensaje lgico Distintivos de mensajes Longitud del mensaje original Pgina 140 140 140 140 140 140 141 141 141 141 141 141

Visin general
La estructura MQMDE describe los datos que aparecen a veces antes de los datos del mensaje de aplicacin. Las aplicaciones normales debern utilizar un MQMD de la versin 2, en cuyo caso no se encontrarn una estructura MQMDE. Sin embargo, las aplicaciones especializadas y las aplicaciones que continen utilizando un MQMD de la versin 1, podran encontrar una MQMDE en algunas situaciones. La estructura MQMDE contiene aquellos campos de MQMD que existen en el MQMD de la versin 2, pero no en el MQMD de la versin 1. Puede aparecer bajo las siguientes circunstancias: v Especificado en las llamadas MQPUT y MQPUT1 v Devuelto por la llamada MQGET v En los mensajes de las colas de transmisin Estos se describen ms adelante. MQMDE especificada en llamadas MQPUT y MQPUT1: En las llamadas MQPUT y MQPUT1, si la aplicacin proporciona un MQMD de la versin 1, la aplicacin puede poner una MQMDE opcionalmente como prefijo de los datos del mensaje, estableciendo el campo MDFMT de MQMD en FMMDE para indicar que hay una MQMDE presente. Si la aplicacin no proporciona una MQMDE, el gestor de colas toma los valores por omisin para los campos de la MQMDE. Los valores por

Copyright IBM Corp. 1994, 2000

137

MQMDE - Extensin de descriptor de mensaje


omisin que utiliza el gestor de colas son los mismos que los valores iniciales para la estructura vea la Tabla 25 en la pgina 141. Si la aplicacin proporciona un MQMD de la versin 2 y pone una MQMDE como prefijo de los datos del mensaje de aplicacin, las estructuras se procesan como se muestra en la Tabla 24. Existe un caso especial. Si la aplicacin utiliza un MQMD de la versin 2 para transferir un mensaje que es un segmento (es decir, est establecido el distintivo MFSEG o MFLSEG) y el nombre de formato del MQMD es FMDLH, el gestor de colas genera una estructura MQMDE y la inserta entre la estructura MQDLH y los datos que siguen. En el MQMD que el gestor de colas retiene con el mensaje, se establecen los campos de la versin 2 en sus valores por omisin.
Tabla 24. Accin del gestor de colas cuando se especifica MQMDE en MQPUT o MQPUT1. Esta tabla muestra la accin que lleva a cabo el gestor de colas cuando la aplicacin especifica una estructura MQMDE al principio de los datos del mensaje de aplicacin en la llamada MQPUT o MQPUT1.
Versin de MQMD 1 1 1 Valores de los campos de la versin 2 Valores de los correspondientes Accin que lleva a cabo el campos de MQMDE gestor de colas Vlido No vlido MQMDE tiene un juego de caracteres o una codificacin errneos, o una versin no soportada Vlido No vlido MQMDE tiene un juego de caracteres o una codificacin errneos, o una versin no soportada MQMDE se respeta Anomala de la llamada con un cdigo de razn adecuado Se trata a MQMDE como datos de mensaje

2 2 2

Por omisin Por omisin Por omisin

MQMDE se respeta Anomala de la llamada con un cdigo de razn adecuado Se trata a MQMDE como datos de mensaje

2 2 2 2

No por omisin Vlidos e iguales que MQMD No por omisin Vlidos, pero distintos de MQMD No por omisin No vlido No por omisin MQMDE tiene un juego de caracteres o una codificacin errneos, o una versin no soportada

MQMDE se respeta Se trata a MQMDE como datos de mensaje Anomala de la llamada con un cdigo de razn adecuado Se trata a MQMDE como datos de mensaje

Los datos de la estructura MQMDE deben tener el mismo juego de caracteres y la misma codificacin que el gestor de colas. El juego de caracteres viene dado por el atributo de gestor de colasCodedCharSetId (vea el Captulo 43. Atributos del gestor de colas en la pgina 337), mientras que, en la mayora de los casos, la codificacin viene dada por el valor de ENNAT. Si no se satisface esta condicin, se acepta MQMDE, pero no se cumple, es decir, se trata a MQMDE como datos de mensaje. Nota: En las aplicaciones OS/2 y Windows NT, compiladas con Micro Focus COBOL, utilice un valor de ENNAT distinto de la codificacin del gestor de colas. Aunque los campos numricos de la estructura MQMD en las

138

Consulta de programacin de aplicaciones (ILE RPG)

MQMDE - Extensin de descriptor de mensaje


llamadas MQPUT, MQPUT1 y MQGET deben tener la codificacin de Micro Focus COBOL, los campos numricos de la estructura MQMDE deben tener la codificacin del gestor de colas. Esta viene dada por ENNAT para el lenguaje de programacin C y tiene el valor 546. Varios de los campos que existen en el MQMD de la versin 2, pero no en el de la versin 1, son campos de entrada/salida en MQPUT y MQPUT1. Sin embargo, el gestor de colas no devuelve valores en los campos equivalentes de la MQMDE para salida de las llamadas MQPUT y MQPUT1; si la aplicacin necesita dichos valores de salida, debe utilizar un MQMD de la versin 2. MQMDE devuelta por una llamada MQGET: En la llamada MQGET, si la aplicacin proporciona un MQMD de la versin 1, el gestor de colas pone una MQMDE como prefijo del mensaje devuelto, pero solamente si uno o varios de los campos de la MQMDE tiene un valor no por omisin. El gestor de colas establece el campo MDFMT de MQMD en el valor FMMDE para indicar que hay una MQMDE presente. Si la aplicacin proporciona una MQMDE al principio del parmetro BUFFER, se ignora la MQMDE. Cuando se devuelve desde la llamada MQGET, se sustituye por la MQMDE del mensaje (si es necesario), o bien queda sobrescrita por los datos del mensaje de aplicacin (si la MQMDE no es necesaria). Si la llamada MQGET devuelve una MQMDE, los datos de la MQMDE suelen tener el mismo juego de caracteres y la misma codificacin que el gestor de colas. Sin embargo, la MQMDE podra tener otro juego de caracteres y otra codificacin si se cumple lo siguiente: v Se trat a MQMDE como datos en la llamada MQPUT o MQPUT1 (vea la Tabla 24 en la pgina 138 para conocer las circunstancias que pueden provocar esto). v El mensaje se recibi desde un gestor de colas remoto conectado mediante una conexin TCP, y el agente de canal de mensajes (MCA) receptor no se haba establecido correctamente (consulte el manual MQSeries Intercommunication para obtener ms informacin). Nota: En las aplicaciones OS/2 y Windows NT, compiladas con Micro Focus COBOL, utilice un valor de ENNAT que sea distinto de la codificacin del gestor de colas (vea ms arriba). MQMDE en mensajes en colas de transmisin: Los mensajes que hay en las colas de transmisin llevan como prefijo la estructura MQXQH, que contiene un MQMD de la versin 1. Tambin puede haber una MQMDE, situada entre la estructura MQXQH y los datos del mensaje de aplicacin, pero normalmente solo estar presente si uno o varios de los campos de la MQMDE tiene un valor no por omisin. Tambin pueden aparecer otras estrcuturas de cabecera MQ entre la estructura MQXQH y los datos del mensaje de aplicacin. Por ejemplo, cuando la cabecera de mensaje no entregado MQDLH est presente y el mensaje no es un segmento, el orden es: v MQXQH (contiene un MQMD de versin 1) v MQMDE v MQDLH v datos del mensaje de la aplicacin

Captulo 11. MQMDE - Extensin de descriptor de mensaje

139

MQMDE - Extensin de descriptor de mensaje

Campos
MESID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: MESIDV Identificador de la estructura de extensin de descriptor de mensaje. El valor inicial de este campo es MESIDV. MEVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser: MEVER2 Estructura de extensin de descriptor de mensaje de la versin 2. La siguiente constante especifica el nmero de la versin actual: MEVERC Versin actual de la estructura de extensin de descriptor de mensaje. El valor inicial de este campo es MEVER2. MELEN (entero con signo de 10 dgitos) Longitud de la estructura MQMDE. Se ha definido el siguiente valor: MELEN2 Longitud de la estructura de extensin de descriptor de mensaje de la versin 2. El valor inicial de este campo es MELEN2. MEENC (entero con signo de 10 dgitos) Codificacin numrica de los datos que siguen a MQMDE. El gestor de colas no comprueba el valor de este campo. Vea el campo MDENC descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para obtener ms informacin sobre las codificaciones de datos. El valor inicial de este campo es ENNAT. MECSI (entero con signo de 10 dgitos) Identificador de juego de caracteres de los datos que siguen a MQMDE. El gestor de colas no comprueba el valor de este campo. El valor inicial de este campo es 0. MEFMT (serie de caracteres de 8 bytes) Nombre de formato de los datos que siguen a MQMDE. El gestor de colas no comprueba el valor de este campo. Vea el campo MDFMT descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para obtener ms informacin sobre los nombres de formato.

140

Consulta de programacin de aplicaciones (ILE RPG)

MQMDE - Extensin de descriptor de mensaje


El valor inicial de este campo es FMNONE. MEFLG (entero con signo de 10 dgitos) Distintivos generales. Puede especificarse el siguiente distintivo: MEFNON Ningn distintivo. El valor inicial de este campo es MEFNON. MEGID (serie de bits de 24 bytes) Identificador de grupo. Vea el campo MDGID descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85. El valor inicial de este campo es GINONE. MESEQ (entero con signo de 10 dgitos) Nmero de secuencia de mensaje lgico dentro del grupo. Vea el campo MDSEQ descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85. El valor inicial de este campo es 1. MEOFF (entero con signo de 10 dgitos) Desplazamiento de datos del mensaje fsico desde el inicio del mensaje lgico. Vea el campo MDOFF descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85. El valor inicial de este campo es 0. MEMFL (entero con signo de 10 dgitos) Distintivos de mensajes. Vea el campo MDMFL descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85. El valor inicial de este campo es MFNONE. MEOLN (entero con signo de 10 dgitos) Longitud del mensaje original. Vea el campo MDOLN descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85. El valor inicial de este campo es OLUNDF.

Valores iniciales y declaracin de RPG


Tabla 25. Valores iniciales de los campos de MQMDE
Nombre de campo MESID MEVER MELEN MEENC MECSI MEFMT MEFLG MEGID MESEQ Nombre de constante MESIDV MEVER2 MELEN2 ENNAT Ninguno FMNONE MEFNON GINONE Ninguno Valor de constante 'MDEb' (Vea la nota 1) 2 72 Vea la nota 2 0 'bbbbbbbb' 0 Nulos 1

Captulo 11. MQMDE - Extensin de descriptor de mensaje

141

Declaracin de RPG
Tabla 25. Valores iniciales de los campos de MQMDE (continuacin)
Nombre de campo MEOFF MEMFL MEOLN Notas: 1. El smbolo b representa un carcter en blanco. 2. El valor de esta constante es especfico del entorno. Nombre de constante Ninguno MFNONE OLUNDF Valor de constante 0 0 -1

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQMDE D* D* Identificador de estructura D MESID 1 4 D* Nmero de versin de estructura D MEVER 5 8I 0 D* Longitud de la estructura MQMDE D MELEN 9 12I 0 D* Codificacin numrica de los datos que siguen a MQMDE D MEENC 13 16I 0 D* Identificador de juego de caracteres de los datos que siguen a MQMDE D MECSI 17 20I 0 D* Nombre de formato de los datos que siguen a MQMDE D MEFMT 21 28 D* Distintivos generales D MEFLG 29 32I 0 D* Identificador de grupo D MEGID 33 56 D* Nmero de secuencia de mensaje lgico dentro del grupo D MESEQ 57 60I 0 D* Desplazamiento de datos del mensaje fsico desde el principio del mensaje lgico D MEOFF 61 64I 0 D* Distintivos de mensaje D MEMFL 65 68I 0 D* Longitud del mensaje original D MEOLN 69 72I 0

142

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 12. MQOD - Descriptor de objeto


La tabla siguiente resume los campos de la estructura.
Tabla 26. Campos de MQOD
Campo ODSID ODVER ODOT ODON ODMN ODDN ODAU ODREC ODKDC ODUDC ODIDC ODORO ODRRO ODORP ODRRP Descripcin Identificador de estructura Nmero de versin de la estructura Tipo de objeto Nombre de objeto Nombre del gestor de colas del objeto Nombre de cola dinmica Identificador de usuario alternativo Pgina 144 144 144 145 145 146 147

Nota: Los campos restantes no estarn presentes si ODVER es inferior a ODVER2. Nmero de registros de objeto presentes Nmero de colas locales abiertas satisfactoriamente Nmero de colas remotas abiertas satisfactoriamente Nmero de colas que no han logrado abrirse Desplazamiento del primer registro de objeto desde el principio de MQOD Desplazamiento del primer registro de respuesta desde el principio de MQOD Direccin del primer registro de objeto Direccin del primer registro de respuesta 147 147 147 148 148 148 149 149

| | | |

Nota: Los campos restantes no estarn presentes si ODVER es inferior a ODVER3. ODASI ODRQN ODRMN Identificador de seguridad alternativo Nombre de cola resuelto Nombre de gestor de colas resuelto 150 150 151

Visin general
Para especificar un objeto por su nombre se utiliza la estructura MQOD. Son vlidos los siguientes tipos de objetos: v Cola o lista de distribucin v Definicin de proceso v Gestor de colas La versin actual de MQOD viene dada por ODVERC. Los campos que existen solamente en las versiones ms recientes de la estructura estn identificados como tales en las descripciones que se ofrecen a continuacin. La declaracin de MQOD proporcionada en el archivo COPY contiene los campos adicionales, pero el valor inicial proporcionado para el campo ODVER es ODVER1. Para utilizar los campos adicionales, la aplicacin debe establecer el nmero de versin en ODVERC. Las

Copyright IBM Corp. 1994, 2000

143

MQOD - Descriptor de objeto


aplicaciones pensadas para su uso entre varios entornos debern utilizar una versin de MQOD ms reciente solo si todos los entornos soportan dicha versin. Para abrir una lista de distribucin, ODVER debe ser ODVER2 o superior. Esta estructura es un parmetro de entrada/salida para las llamadas MQOPEN y MQPUT1.

Campos
ODSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: ODSIDV Identificador de la estructura del descriptor de objeto. Siempre es un campo de entrada. El valor inicial de este campo es ODSIDV. ODVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser uno de los siguientes: ODVER1 Estructura del descriptor de objeto de la versin 1. ODVER2 Estructura del descriptor de objeto de la versin 2. Los campos que existen solamente en la estructura de la versin 2 estn identificados como tales en las descripciones que se ofrecen a continuacin. | | | | | ODVER3 Estructura del descriptor de objeto de la versin 3. Los campos que existen solamente en la estructura de la versin 3 estn identificados como tales en las descripciones que se ofrecen a continuacin. La siguiente constante especifica el nmero de la versin actual: ODVERC Versin actual de la estructura del descriptor de objeto. Siempre es un campo de entrada. El valor inicial de este campo es ODVER1. ODOT (entero con signo de 10 dgitos) Tipo de objeto. Tipo de objeto al que se da nombre en ODON. Los valores posibles son: OTQ Cola.

OTNLST Lista de nombres. OTPRO Definicin de proceso.

144

Consulta de programacin de aplicaciones (ILE RPG)

MQOD - Descriptor de objeto


OTQM Gestor de colas. Siempre es un campo de entrada. El valor inicial de este campo es OTQ. ODON (serie de caracteres de 48 bytes) Nombre de objeto. Es el nombre local del objeto tal como se ha definido en el gestor de colas identificado por ODMN. El nombre puede contener los siguientes caracteres: v Caracteres alfabticos en maysculas (de A a Z) v Caracteres alfabticos en minsculas (de a a z) v Dgitos numricos (de 0 a 9) v Punto (.), barra inclinada (/), subrayado (_), signo de porcentaje (%) El nombre no debe contener blancos iniciales ni intercalados, pero puede contener blancos finales. Puede utilizarse un carcter nulo para indicar el final de los datos significativos del nombre; el carcter nulo y los caracteres que le sigan se tratarn como blancos. Se aplican las siguientes restricciones en los entornos indicados: v En los sistemas que utilizan Katakana EBCDIC, no pueden utilizarse caracteres en minsculas. v En OS/400, los nombres que contienen caracteres en minsculas, barras inclinadas o signos de porcentaje, deben ir entre comillas cuando se especifican en mandatos. No deben especificarse dichas comillas en el parmetro QMNAME. Si ODOT es OTQM, se aplicarn reglas especiales; en ese caso, el nombre deber estar completamente en blanco hasta el primer carcter nulo o hasta el final del campo. Si ODON es el nombre de una cola modelo, el gestor de colas crea una cola dinmica con los atributos de la cola modelo y devuelve en el campo ODON el nombre de la cola creada. Solo puede especificarse una cola modelo para la llamada MQOPEN. Si se abre una lista de distribucin (es decir, ODREC est presente y es mayor que cero), ODON debe ser un espacio en blanco o la serie de nulos. Si no se cumple esta condicin, la llamada resulta anmala, con el cdigo de razn RC2152. Este es un campo de entrada/salida para la llamada MQOPEN cuando ODON es el nombre de una cola modelo, y un campo solo de entrada en el resto de casos. La longitud de este campo la indica LNQN. El valor inicial de este campo es de 48 caracteres en blanco. ODMN (serie de caracteres de 48 bytes) Nombre del gestor de colas del objeto. Es el nombre del gestor de colas en el que est definido el objeto ODON. Los caracteres que son vlidos en el nombre son los mismos que para ODON (vea ms arriba). Un nombre que est completamente en blanco hasta el primer carcter nulo o hasta el final del campo indica el gestor de colas al que est conectada la aplicacin.
Captulo 12. MQOD - Descriptor de objeto

145

MQOD - Descriptor de objeto


| Si ODOT es OTNLST, OTPRO o OTQM, el nombre del gestor de colas local debe especificarse de forma explcita o como blanco. Si ODON es el nombre de una cola modelo, el gestor de colas crea una cola dinmica con los atributos de la cola modelo y devuelve en el campo ODMN el nombre del gestor de colas en el que se ha creado la cola, que coincide con el nombre del gestor de colas local. Solo puede especificarse una cola modelo para la llamada MQOPEN. | | | | | | | | | | | | | | | | Si ODON es el nombre de una cola de clster y ODMN est en blanco, el destino real de los mensajes enviados utilizando el asa de cola devuelta por la llamada MQOPEN lo elige el gestor de colas (o una rutina de salida de carga de trabajo de clster, si existe una): v Si se especifica OOBNDO, el gestor de colas selecciona una instancia concreta de la cola de clster durante el proceso de la llamada MQOPEN, y todos los mensajes transferidos utilizando esta asa de cola se envan a esa instancia. v Si se especifica OOBNDN, el gestor de colas puede elegir una instancia distinta de la cola destino (que resida en un gestor de colas distinto del clster) en cada llamada MQPUT sucesiva que utilice esta asa de cola. Si la aplicacin necesita enviar un mensaje a una instancia especfica de una cola de clster (es decir, una instancia de cola que resida en un gestor de colas concreto), la aplicacin debe especificar el nombre de ese gestor de colas en el campo ODMN. Esto fuerza al gestor de colas local a enviar el mensaje al gestor de colas destino especificado. Si se abre una lista de distribucin (es decir, ODREC es mayor que cero), ODMN debe ser un espacio en blanco o la serie de nulos. Si no se cumple esta condicin, la llamada resulta anmala, con el cdigo de razn RC2153. Este es un campo de entrada/salida para la llamada MQOPEN cuando ODON es el nombre de una cola modelo, y un campo solo de entrada en el resto de casos. La longitud de este campo la indica LNQMN. El valor inicial de este campo es de 48 caracteres en blanco. ODDN (serie de caracteres de 48 bytes) Nombre de cola dinmica. Es el nombre de una cola dinmica que la llamada MQOPEN deber crear. Esto solamente tiene relevancia cuando ODON especifica el nombre de una cola modelo; en todos los dems casos se ignora ODDN. Los caracteres que son vlidos en el nombre son los mismos que para ODON (vea ms arriba), excepto en que el asterisco tambin es vlido (vea ms abajo). Un nombre totalmente en blanco (o en el que solo aparezcan blancos antes del primer carcter nulo) no es vlido si ODON es el nombre de una cola modelo. Si el ltimo carcter no blanco del nombre es un asterisco (*), el gestor de colas sustituye el asterisco por una serie de caracteres que garantiza que el nombre generado para la cola es exclusivo en el gestor de colas local. Para permitir un nmero de caracteres suficiente para esto, el asterisco solo es vlido en las posiciones 1 a la 33. Despus del asterisco, solo pueden aparecer blancos o un carcter nulo.

146

Consulta de programacin de aplicaciones (ILE RPG)

MQOD - Descriptor de objeto


El asterisco tambin puede ir en la primera posicin, en cuyo caso el nombre constar nicamente de los caracteres generados por el gestor de colas. Es un campo de entrada. La longitud de este campo la indica LNQN. El valor inicial de este campo es 'AMQ.*', rellenado con blancos. ODAU (serie de caracteres de 12 bytes) Identificador de usuario alternativo. Si se especifica OOALTU para la llamada MQOPEN, o PMALTU para la llamada MQPUT1, este campo contendr un identificador de usuario alternativo que debe utilizarse para comprobar la autorizacin de apertura, en vez del identificador de usuario bajo el que se est ejecutando la aplicacin actualmente. Sin embargo, algunas comprobaciones siguen efectundose con el identificador de usuario actual (por ejemplo, las comprobaciones de contexto). Si se ha especificado OOALTU o PMALTU y el campo est completamente en blanco hasta el primer carcter nulo o hasta el final del campo, la apertura solo podr realizarse si no se necesita autorizacin de usuario para abrir el objeto con las opciones especificadas. Si no se especifica OOALTU ni PMALTU, el campo se ignorar. Es un campo de entrada. La longitud de este campo la indica LNUID. El valor inicial del campo son 12 caracteres en blanco. Los campos restantes no estarn presentes si ODVER es inferior a ODVER2. ODREC (entero con signo de 10 dgitos) Nmero de registros de objeto presentes. Este es el nmero de registros de objeto MQOR que la aplicacin ha proporcionado. Si el nmero es mayor que cero, indica que se abrir una lista de distribucin, siendo ODREC el nmero de colas destino de la lista. Es vlido que una lista de distribucin solo contenga un destino. El valor de ODREC no debe ser menor que cero y, si es mayor que cero, ODOT debe ser OTQ; si no se cumplen estas condiciones, la llamada resulta anmala con el cdigo de razn RC2154. Es un campo de entrada. El valor inicial de este campo es 0. Este campo no estar presente si ODVER es inferior a ODVER2. ODKDC (entero con signo de 10 dgitos) Nmero de colas locales abiertas satisfactoriamente. Es el nmero de colas de la lista de distribucin que se resuelven en colas locales y que se abrieron satisfactoriamente. El recuento no incluye las colas que se resuelven en colas remotas (aunque inicialmente se utilice una cola de transmisin local para almacenar el mensaje). Si est presente, este campo tambin se establece al abrir una sola cola que no est en una lista de distribucin. Es un campo de salida. El valor inicial de este campo es 0. Este campo no estar presente si ODVER es inferior a ODVER2. ODUDC (entero con signo de 10 dgitos) Nmero de colas remotas abiertas satisfactoriamente
Captulo 12. MQOD - Descriptor de objeto

147

MQOD - Descriptor de objeto


Es el nmero de colas de la lista de distribucin que se resuelven en colas remotas y que se abrieron satisfactoriamente. Si est presente, este campo tambin se establece al abrir una sola cola que no est en una lista de distribucin. Es un campo de salida. El valor inicial de este campo es 0. Este campo no estar presente si ODVER es inferior a ODVER2. ODIDC (entero con signo de 10 dgitos) Nmero de colas que no han logrado abrirse. Es el nmero de colas de la lista de distribucin que no han logrado abrirse satisfactoriamente. Si est presente, este campo tambin se establece al abrir una sola cola que no est en una lista de distribucin. Nota: Si est presente, este campo solo se establece si el parmetro CMPCOD de la llamada MQOPEN o MQPUT1 es CCOK o CCWARN; no se establece si el parmetro CMPCOD es CCFAIL. Es un campo de salida. El valor inicial de este campo es 0. Este campo no estar presente si ODVER es inferior a ODVER2. ODORO (entero con signo de 10 dgitos) Desplazamiento del primer registro de objeto desde el principio de MQOD. Es el desplazamiento en bytes del primer registro de objeto MQOR desde el principio de la estructura MQOD. El desplazamiento puede ser positivo o negativo. ODORO se utiliza solamente cuando se va a abrir una lista de distribucin. El campo se ignora si ODREC es cero. Cuando se abre una lista de distribucin, debe proporcionarse un conjunto de uno o ms registros de objeto MQOR para poder especificar los nombres de las colas destino en la lista de distribucin. Esto puede llevarse a cabo de dos maneras: v Utilizando el campo de desplazamiento ODORO En este caso, la aplicacin deber declarar su propia estructura conteniendo un MQOD seguido del conjunto de registros MQOR (con todos los elementos de conjunto que sean necesarios) y establecer ODORO en el desplazamiento del primer elemento del conjunto desde el principio de MQOD. Debe ponerse gran cuidado para asegurarse de que este desplazamiento es correcto. v Utilizando el campo de puntero ODORP En este caso, la aplicacin puede declarar el conjunto de estructuras MQOR aparte de la estructura MQOD y establecer ODORP en la direccin del conjunto. Elija la tcnica que elija, debe utilizarse ODORO o ODORP; la llamada resulta anmala con el cdigo de razn RC2155 si ambos son cero o si ninguno es cero. Es un campo de entrada. El valor inicial de este campo es 0. Este campo no estar presente si ODVER es inferior a ODVER2. ODRRO (entero con signo de 10 dgitos) Desplazamiento del primer registro de respuesta desde el principio de MQOD.

148

Consulta de programacin de aplicaciones (ILE RPG)

MQOD - Descriptor de objeto


Es el desplazamiento en bytes del primer registro de respuesta MQRR desde el principio de la estructura MQOD. El desplazamiento puede ser positivo o negativo. ODRRO se utiliza solamente cuando se va a abrir una lista de distribucin. El campo se ignora si ODREC es cero. Cuando se abre una lista de distribucin, puede proporcionarse un conjunto de uno o ms registros de respuesta MQRR para poder identificar las colas que no han logrado abrirse (campo RRCC de MQRR) y el motivo de cada anomala (campo RRREA de MQRR). Los datos se devuelven en el conjunto de registros de respuesta en el mismo orden en que aparecen los nombres de cola en el conjunto de registros de objeto. El gestor de colas establece los registros de respuesta solamente cuando el resultado de la llamada es mixto (es decir, algunas colas se abrieron satisfactoriamente mientras otras no lo consiguieron, o bien ninguna lo consigui por distintos motivos); el cdigo de razn RC2136 de la llamada indica este caso. Si el mismo cdigo de razn es aplicable a todas las colas, esa razn se devuelve en el parmetro REASON de la llamada MQOPEN o MQPUT1 y no se establecen los registros de respuesta. Los registros de respuesta son opcionales pero, si se suministran, debe haber un ODREC de ellos. Los registros de respuesta pueden suministrarse de la misma forma que los registros de objeto, especificando un desplazamiento en ODRRO, o bien especificando una direccin en ODRRP; vea la descripcin de ODORO ms arriba para conocer detalles sobre cmo hacerlo. Sin embargo, no puede utilizarse ms de uno de ODRRO y de ODRRP; la llamada resulta anmala con el cdigo de razn RC2156 si ninguno es cero. Para la llamada MQPUT1, estos registros de respuesta se utilizan para devolver informacin sobre errores que se producen cuando se enva el mensaje a las colas de la lista de distribucin, as como los errores que se producen cuando se abren las colas. El cdigo de terminacin y el cdigo de razn de la operacin de poner para una cola sustituyen a los de la operacin de abrir para esa cola, solamente si el cdigo de terminacin de la operacin de abrir era CCOK o CCWARN. Es un campo de entrada. El valor inicial de este campo es 0. Este campo no estar presente si ODVER es inferior a ODVER2. ODORP (puntero) Direccin del primer registro de objeto. Esta es la direccin del primer registro de objeto MQOR. ODORP se utiliza solamente cuando se va a abrir una lista de distribucin. El campo se ignora si ODREC es cero. Puede utilizarse ODORP o bien ODORO para especificar los registros de objeto, pero no ambos; vea la descripcin del campo ODORO ms arriba para conocer detalles. Si no se utiliza ODORP, debe establecerse en el puntero nulo o en bytes nulos. Es un campo de entrada. El valor inicial de este campo es el puntero nulo. Este campo no estar presente si ODVER es inferior a ODVER2. ODRRP (puntero) Direccin del primer registro de respuesta.

Captulo 12. MQOD - Descriptor de objeto

149

MQOD - Descriptor de objeto


Esta es la direccin del primer registro de respuesta MQRR. ODRRP se utiliza solamente cuando se va a abrir una lista de distribucin. El campo se ignora si ODREC es cero. Puede utilizarse ODRRP o bien ODRRO para especificar los registros de respuesta, pero no ambos; vea la descripcin del campo ODRRO ms arriba para conocer los detalles. Si no se utiliza ODRRP, debe establecerse en el puntero nulo o en bytes nulos. Es un campo de entrada. El valor inicial de este campo es el puntero nulo. Este campo no estar presente si ODVER es inferior a ODVER2. | Los campos restantes no estarn presentes si ODVER es inferior a ODVER3. ODASI (serie de bits de 40 bytes) Identificador de seguridad alternativo. Este es un identificador de seguridad que se transfiere con el ODAU al servicio de autorizaciones para permitir que se lleven a cabo las comprobaciones de autorizacin correspondientes. ODASI se utiliza solamente si: v Se especifica OOALTU en la llamada MQOPEN o v Se especifica PMALTU en la llamada MQPUT1 y el campo ODAU no est completamente en blanco hasta el primer carcter nulo o hasta el final del campo. El campo ODASI tiene la siguiente estructura: v El primer byte es un entero binario que contiene la longitud de los datos significativos que siguen; la longitud excluye el propio byte de longitud. Si no hay un identificador de seguridad presente, la longitud es cero. v El segundo byte indica el tipo de identificador de seguridad que est presente; estos son los valores posibles: SITWNT Identificador de seguridad de Windows NT. SITNON Ningn identificador de seguridad. v El tercer byte y los siguientes, hasta la longitud definida por el primer byte, contienen el propio identificador de seguridad. v Los bytes restantes del campo se establecen a ceros binarios. Puede utilizarse el siguiente valor especial: SINONE Ningn identificador de seguridad especificado. El valor de la longitud del campo es cero binario. Es un campo de entrada. La longitud de este campo la indica LNSCID. El valor inicial de este campo es SINONE. Este campo no estar presente si ODVER es inferior a ODVER3. ODRQN (serie de caracteres de 48 bytes) Nombre de cola resuelto. Es el nombre de la cola destino final, tal como la conoce el gestor de colas local. El gestor de colas la establece en un valor no blanco, solamente para las colas que se abren para examinar, entrada o salida (o cualquier combinacin).

| | | | | |

150

Consulta de programacin de aplicaciones (ILE RPG)

MQOD - Descriptor de objeto


| | | | | | | | | | | | | | | | | | | | | | | | ODRQN se establece en blancos si el objeto abierto es alguno de los siguientes: v Una lista de distribucin v No abierto para examinar, entrada o salida v No es una cola Es un campo de salida. La longitud de este campo la indica LNQN. El valor inicial de este campo es la serie de caracteres nulos de C y 48 caracteres en blanco en otros lenguajes de programacin. Este campo no estar presente si ODVER es inferior a ODVER3. ODRMN (serie de caracteres de 48 bytes) Nombre de gestor de colas resuelto. Es el nombre del gestor de colas destino final, tal como lo conoce el gestor de colas local. El gestor de colas la establece en un valor no blanco, solamente para las colas que se abren para examinar, entrada o salida (o cualquier combinacin de estas opciones). ODRMN se establece en blancos si el objeto abierto es alguno de los siguientes: v Una cola de clster con OOBNDN especificado (o con OOBNDQ en vigor cuando el atributo de cola DefBind tiene el valor BNDNOT) v Una lista de distribucin v No abierto para examinar, entrada o salida v No es una cola Es un campo de salida. La longitud de este campo la indica LNQN. El valor inicial de este campo es la serie de caracteres nulos de C y 48 caracteres en blanco en otros lenguajes de programacin. Este campo no estar presente si ODVER es inferior a ODVER3.

Valores iniciales y declaracin de RPG


Tabla 27. Valores iniciales de campos de MQOD
Nombre de campo ODSID ODVER ODOT ODON ODMN ODDN ODAU ODREC ODKDC ODUDC ODIDC ODORO ODRRO ODORP ODRRP Nombre de constante ODSIDV ODVER1 OTQ Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Valor de constante 'ODbb' (Vea la nota 1) 1 1 Blancos Blancos 'AMQ.*' Blancos 0 0 0 0 0 0 Puntero nulo o bytes nulos Puntero nulo o bytes nulos
Captulo 12. MQOD - Descriptor de objeto

151

MQOD - Descriptor de objeto


Tabla 27. Valores iniciales de campos de MQOD (continuacin)
Nombre de campo Nombre de constante SINONE Ninguno Ninguno Valor de constante Nulos Blancos Blancos ODASI ODRQN ODRMN Notas: 1. El smbolo b representa un carcter en blanco.

| | |

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQOD D* D* Identificador de estructura D ODSID 1 4 D* Nmero de versin de estructura D ODVER 5 8I 0 D* Tipo de objeto D ODOT 9 12I 0 D* Nombre de objeto D ODON 13 60 D* Nombre del gestor de colas del objeto D ODMN 61 108 D* Nombre de cola dinmica D ODDN 109 156 D* Identificador de usuario alternativo D ODAU 157 168 D* Nmero de registros de objeto presentes D ODREC 169 172I 0 D* Nmero de colas locales abiertas satisfactoriamente D ODKDC 173 176I 0 D* Nmero de colas remotas abiertas satisfactoriamente D ODUDC 177 180I 0 D* Nmero de colas que no han logrado abrirse D ODIDC 181 184I 0 D* Desplazamiento del primer registro de objeto desde el principio de MQOD D ODORO 185 188I 0 D* Desplazamiento del primer registro de respuesta desde el principio de MQOD D ODRRO 189 192I 0 D* Direccin del primer registro de objeto D ODORP 193 208* D* Direccin del primer registro de respuesta D ODRRP 209 224* D* Identificador de seguridad alternativo D ODASI 225 264 D* Nombre de cola resuelto D ODRQN 265 312 D* Nombre de gestor de colas resuelto D ODRMN 313 360

| | | | | |

152

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 13. MQOR - Registro de objeto


La tabla siguiente resume los campos de la estructura.
Tabla 28. Campos de MQOR
Campo ORON ORMN Descripcin Nombre de objeto Nombre del gestor de colas del objeto Pgina 153 153

Visin general
La estructura MQOR se utiliza para especificar el nombre de cola y el nombre del gestor de colas de una sola cola destino. Al proporcionarse un conjunto de estas estructuras en la llamada MQOPEN, es posible abrir una lista de colas; esta lista se denomina lista de distribucin. Cada mensaje transferido utilizando el asa de cola devuelta por esa llamada MQOPEN se coloca en cada una de las colas de la lista, siempre que esa cola se haya abierto satisfactoriamente. Los datos de tipo carcter de la estructura MQOR deben ser del mismo juego de caracteres que el gestor de colas. MQOR es una estructura de entrada para las llamadas MQOPEN y MQPUT1.

Campos
ORON (serie de caracteres de 48 bytes) Nombre de objeto. Es igual que el campo ODON de la estructura MQOD (vea MQOD para conocer ms detalles), excepto en lo siguiente: v Debe ser el nombre de una cola. v No debe ser el nombre de una cola modelo. Siempre es un campo de entrada. El valor inicial de este campo es de 48 caracteres en blanco. ORMN (serie de caracteres de 48 bytes) Nombre del gestor de colas del objeto. Es igual que el campo ODMN de la estructura MQOD (vea MQOD para conocer ms detalles). Siempre es un campo de entrada. El valor inicial de este campo es de 48 caracteres en blanco.

Valores iniciales y declaracin de RPG


Tabla 29. Valores iniciales de campos de MQOR
Nombre de campo ORON ORMN Nombre de constante Ninguno Ninguno Valor de constante Blancos Blancos

Copyright IBM Corp. 1994, 2000

153

Declaracin de RPG

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQOR D* D* Nombre de objeto D ORON 1 48 D* Nombre del gestor de colas del objeto D ORMN 49 96

154

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 14. MQPMO - Opciones de poner mensaje


La tabla siguiente resume los campos de la estructura.
Tabla 30. Campos de MQPMO
Campo PMSID PMVER PMOPT PMCT PMKDC PMUDC PMIDC PMRQN PMRMN PMREC PMPRF PMPRO PMRRO PMPRP PMRRP Descripcin Identificador de estructura Nmero de versin de la estructura Opciones que controlan la accin de MQPUT y MQPUT1 Asa de objeto de la cola de entrada Nmero de mensajes enviados satisfactoriamente a colas locales Nmero de mensajes enviados satisfactoriamente a colas remotas Nmero de mensajes que no han podido enviarse Nombre resuelto de la cola destino Nombre resuelto del gestor de la cola destino Pgina 156 156 156 165 165 165 165 166 166

Nota: Los campos restantes no estarn presentes si PMVER es inferior a PMVER2. Nmero de registros de poner mensaje o de registros de respuesta presentes Distintivos que indican qu campos de MQPMR estn presentes Desplazamiento del primer registro de poner mensaje desde el principio de MQPMO Desplazamiento del primer registro de respuesta desde el principio de MQPMO Direccin del primer registro de poner mensaje Direccin del primer registro de respuesta 166 167 167 168 169 170

Visin general
La versin actual de MQPMO viene dada por PMVERC. Los campos que existen solamente en las versiones ms recientes de la estructura estn identificados como tales en las descripciones que se ofrecen a continuacin. La declaracin de MQPMO proporcionada en el archivo COPY contiene los campos adicionales, pero el valor inicial proporcionado para el campo PMVER es PMVER1. Para utilizar los campos adicionales, la aplicacin debe establecer el nmero de versin en PMVERC. Las aplicaciones pensadas para su uso entre varios entornos debern utilizar una versin de MQPMO ms reciente solo si todos los entornos soportan dicha versin. La estructura MQPMO es un parmetro de entrada/salida para las llamadas MQPUT y MQPUT1.

Copyright IBM Corp. 1994, 2000

155

MQPMO - Opciones de poner mensaje

Campos
PMSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: PMSIDV Identificador de la estructura de opciones de poner mensaje. Siempre es un campo de entrada. El valor inicial de este campo es PMSIDV. PMVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser uno de los siguientes: PMVER1 Estructura de opciones de poner mensaje de la versin 1. PMVER2 Estructura de opciones de poner mensaje de la versin 2. Los campos que existen solamente en la estructura de la versin 2 estn identificados como tales en las descripciones que se ofrecen a continuacin. La siguiente constante especifica el nmero de la versin actual: PMVERC Versin actual de la estructura de opciones de poner mensaje. Siempre es un campo de entrada. El valor inicial de este campo es PMVER1. PMOPT (entero con signo de 10 dgitos) Opciones que controlan la accin de MQPUT y MQPUT1. Puede especificarse cualquiera o ninguno de los siguientes valores. Si es necesario ms de uno, los valores se aaden juntos (no aada la misma constante ms de una vez). Se indican las combinaciones no vlidas; las dems combinaciones son vlidas. PMSYP Poner mensaje con control de punto de sincronismo. La peticin debe operar con los protocolos normales de la unidad de trabajo. El mensaje no es visible fuera de la unidad de trabajo hasta que dicha unidad de trabajo se comprometa. Si la unidad de trabajo se restituye, el mensaje se suprime. Si no se especifica esta opcin ni PMNSYP, la peticin de transferencia no est en una unidad de trabajo. PMNSYP no debe especificarse con PMSYP. PMNSYP Poner mensaje sin control de punto de sincronismo. La peticin debe operar fuera de los protocolos normales de la unidad de trabajo. El mensaje queda disponible inmediatamente y no puede suprimirse restituyendo una unidad de trabajo.

156

Consulta de programacin de aplicaciones (ILE RPG)

MQPMO - Opciones de poner mensaje


Si no se especifica esta opcin ni PMSYP, la peticin de transferencia no est en una unidad de trabajo. PMNSYP no debe especificarse con PMSYP. PMNMID Generar un nuevo identificador de mensaje. Esta opcin provoca que el gestor de colas sustituya el contenido del campo MDMID de MQMD por un nuevo identificador de mensaje. Dicho identificador de mensaje se enva con el mensaje y se devuelve a la aplicacin en la salida de la llamada MQPUT o MQPUT1. Esta opcin tambin puede especificarse cuando se est transfiriendo el mensaje a una lista de distribucin; vea la descripcin del campo PRMID en la estructura MQPMR para conocer los detalles. Utilizar esta opcin libra a la aplicacin de la necesidad de restablecer el campo MDMID a MINONE antes de cada llamada MQPUT o MQPUT1. PMNCID Generar un nuevo identificador de correlacin. Esta opcin provoca que el gestor de colas sustituya el contenido del campo MDCID de MQMD por un nuevo identificador de correlacin. Dicho identificador de correlacin se enva con el mensaje y se devuelve a la aplicacin en la salida de la llamada MQPUT o MQPUT1. Esta opcin tambin puede especificarse cuando se est transfiriendo el mensaje a una lista de distribucin; vea la descripcin del campo PRCID en la estructura MQPMR para conocer los detalles. PMNCID es til en situaciones en las que la aplicacin necesite un identificador de correlacin exclusivo. Opcin de grupos y segmentos: La opcin descrita ms abajo est relacionada con los mensajes en grupos y segmentos de los mensajes lgicos. Las siguientes definiciones pueden servir de ayuda para entender esta opcin: Mensaje fsico La unidad de informacin ms pequea que puede colocarse en una cola o eliminarse de ella; suele corresponder a la informacin especificada o recuperada en una sola llamada MQPUT, MQPUT1 o MQGET. Cada mensaje fsico tiene su propio descriptor de mensaje (MQMD). Generalmente, los mensajes fsicos se distinguen por valores distintos para el identificador de mensaje (campo MDMID de MQMD), aunque el gestor de colas no lo impone. Mensaje lgico Una sola unidad de informacin de la aplicacin. En ausencia de restricciones del sistema, un mensaje lgico sera lo mismo que un mensaje fsico. Pero cuando los mensajes lgicos son excesivamente grandes, las restricciones del sistema hacen que sea recomendable o incluso necesario dividir un mensaje lgico en dos o ms mensajes fsicos, denominados segmentos. Un mensaje lgico que ha sido segmentado consta de dos o ms mensajes fsicos que tienen el mismo identificador de grupo no nulo (campo MDGID de MQMD) y el mismo nmero de secuencia de mensaje (campo MDSEQ de MQMD). Los segmentos se distinguen por valores
Captulo 14. MQPMO - Opciones de poner mensaje

157

MQPMO - Opciones de poner mensaje


distintos para el desplazamiento de segmento (campo MDOFF de MQMD), que da el desplazamiento de los datos del mensaje fsico desde el inicio de los datos del mensaje lgico. Dado que cada segmento es un mensaje fsico, los segmentos de un mensaje lgico suelen tener distintos identificadores de mensaje. Un mensaje lgico que no ha sido segmentado, pero para el que la aplicacin emisora ha permitido la segmentacin, tambin tiene un identificador de grupo no nulo, aunque en este caso solamente hay un mensaje fsico con ese identificador de grupo si el mensaje lgico no pertenece a un grupo de mensajes. Los mensajes lgicos para los que se la aplicacin emisora ha inhibido la segmentacin, tienen un identificador de grupo nulo (GINONE), a no ser que el mensaje lgico pertenezca a un grupo de mensajes. Grupo de mensajes Es un conjunto de uno o varios mensajes lgicos que tienen el mismo identificador de grupo no nulo. Los mensajes lgicos del grupo se distinguen por valores distintos para el nmero de secuencia de mensaje, el cul es un entero de 1 a n, donde n es el nmero de mensajes lgicos del grupo. Si uno o varios de los mensajes lgicos est segmentado, habr ms de n mensajes fsicos en el grupo. PMLOGO Los mensajes en grupos y segmentos de mensajes lgicos se transferirn en orden lgico. Esta opcin indica al gestor de colas cmo la aplicacin pondr los mensajes de grupos y los segmentos de mensajes lgicos. Solamente puede especificarse en la llamada MQPUT; no es vlido en la llamada MQPUT1. Si se especifica PMLOGO, indica que la aplicacin utilizar llamadas MQPUT sucesivas con el siguiente fin: v Poner los segmentos de cada mensaje lgico en el orden creciente de desplazamiento de segmento, empezando por el 0, sin huecos. v Poner todos los segmentos de un mensaje lgico antes de poner los segmentos del siguiente mensaje lgico. v Poner los mensajes lgicos de cada grupo de mensajes en el orden creciente de nmero de secuencia de mensaje, empezando por el 1, sin huecos. v Poner todos los mensajes lgicos de un grupo de mensajes antes de poner los mensajes lgicos del siguiente grupo de mensajes. El orden anterior se denomina orden lgico. Dado que la aplicacin ha indicado al gestor de colas cmo pondr los mensajes de grupos y los segmentos de mensajes lgicos, la aplicacin no tiene que mantener ni actualizar la informacin de grupos y segmentos en cada llamada MQPUT, ya que el gestor de colas realizar esta operacin. Especificamente, esto significa que la aplicacin no tiene est obligada a establecer los campos MDGID, MDSEQ y MDOFF de MQMD, ya que el gestor de colas establece los valores adecuados en esos campos. La aplicacin solamente tiene que establecer el campo MDMFL de MQMD, para indicar cundo los mensajes pertenecen a grupos o bien son segmentos de mensajes lgicos y para sealar el ltimo mensaje de un grupo o el ltimo segmento de un mensaje lgico.

158

Consulta de programacin de aplicaciones (ILE RPG)

MQPMO - Opciones de poner mensaje


Una vez se ha iniciado un grupo de mensajes o un mensaje lgico, las llamadas MQPUT siguientes deben especificar los distintivos MF* adecuados en MDMFL de MQMD. Si la aplicacin intenta transferir un mensaje que no est en un grupo cuando hay grupo de mensajes no concluido, o intenta transferir un mensaje que no es un segmento cuando hay mensaje lgico no concluido, la llamada resulta anmala con el cdigo de razn RC2241 o RC2242, como corresponda. No obstante, el gestor de colas conserva la informacin sobre el grupo de mensajes actual y/o el mensaje lgico actual, y la aplicacin puede finalizarlos enviando un mensaje (probablemente sin datos de mensaje de aplicacin) que especifique MFLMIG y/o MFLSEG como corresponda, antes de volver a emitir la llamada MQPUT para transferir el mensaje que no est en el grupo o no es un segmento. La Tabla 31 en la pgina 160 muestra las combinaciones de opciones y distintivos que son vlidas y los valores de los campos MDGID, MDSEQ y MDOFF que el gestor de colas utiliza en cada caso. Las combinaciones de opciones y distintivos que no aparecen en la tabla no son vlidas. Las columnas de la tabla tienen los siguientes significados: ORD LOG Una marca U significa que la fila solo es aplicable cuando se especifica la opcin PMLOGO. MIG SEG Una marca U significa que la fila solo es aplicable cuando se especifica la opcin MFMIG o MFLMIG. Una marca U significa que la fila solo es aplicable cuando se especifica la opcin MFSEG o MFLSEG. Una marca (U) significa que la fila es aplicable se especifiquen o no las opciones MFSEG o MFLSEG. SEG OK Una marca U significa que la fila solo es aplicable cuando se especifica la opcin MFSEGA. Una marca (U) significa que la fila es aplicable se especifique o no la opcin MFSEGA. Grp act Una marca U significa que la fila solo es aplicable cuando existe un grupo de mensajes actual antes de la llamada. Una marca (U) significa que la fila es aplicable exista o no un grupo de mensajes actual antes de la llamada. Msg log act Una marca U significa que la fila solo es aplicable cuando existe un mensaje lgico actual antes de la llamada. Una marca (U) significa que la fila es aplicable exista o no un mensaje lgico actual antes de la llamada. Otras columnas Muestran los valores que utiliza el gestor de colas. Anterior denota el valor utilizado para el campo en el mensaje anterior para el asa de cola.

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Captulo 14. MQPMO - Opciones de poner mensaje

159

MQPMO - Opciones de poner mensaje


Tabla 31. Opciones de MQPUT relacionadas con los mensajes de los grupos y los segmentos de mensajes lgicos
Opciones que especifica personalmente Estado de grupo y mensaje lgico antes de llamada Grp act Msg log act MDGID GINONE U U U (U) (U) U ID de grupo nuevo ID de grupo nuevo ID de grupo anterior Valores que utiliza el gestor de colas

ORD LOG U U U U

MIG

SEG

SEG OK

MDSEQ 1 1 1 1

MDOFF 0 0 0 Desplazamiento anterior + longitud de segmento anterior 0 0 Desplazamiento anterior + longitud de segmento anterior 0 0

U U U

U U U

(U) (U) U

(U) (U) (U) U U U

ID de grupo nuevo ID de grupo anterior ID de grupo anterior

1 Nmero de secuencia anterior + 1 Nmero de secuencia anterior 1 1

(U) U (U)

(U) (U)

GINONE ID de grupo nuevo si GINONE, si no valor en campo ID de grupo nuevo si GINONE, si no valor en campo ID de grupo nuevo si GINONE, si no valor en campo ID de grupo nuevo si GINONE, si no valor en campo

(U)

(U)

(U)

Valor en campo

(U)

(U)

(U)

Valor en campo

(U)

(U)

(U)

Valor en campo

Valor en campo

Notas: v PMLOGO no es vlido en la llamada MQPUT1. v Para el campo MDMID, el gestor de colas genera un nuevo identificador de mensaje si se especifica PMNMID o MINONE, de lo contrario utiliza el valor del campo. v Para el campo MDCID, el gestor de colas genera un nuevo identificador de correlacin si se especifica PMNCID, de lo contrario utiliza el valor del campo.

Cuando se especifica PMLOGO, el gestor de colas requiere que todos los mensajes de un grupo y los segmentos de un mensaje lgico se transfieran con el mismo valor del campo MDPER de MQMD, es decir, todos deben ser persistentes o bien todos deben ser no persistentes. Si no se cumple esta condicin, la llamada MQPUT resulta anmala con el cdigo de razn RC2185. La opcin PMLOGO afecta a las unidades de trabajo de las siguientes maneras: v Si el primer mensaje fsico de un grupo o de un mensaje lgico se pone dentro de una unidad de trabajo, todos los dems mensajes fsicos del grupo o del mensaje lgico deben ponerse dentro de una unidad de trabajo, si se utiliza la misma asa de cola. No obstante, no es necesario que se pongan dentro de la misma unidad de trabajo. Esto permite que un grupo de mensajes o un mensaje lgico que conste de muchos mensajes fsicos pueda dividirse entre dos o ms unidades de trabajo consecutivas para el asa de cola. v Si el primer mensaje fsico de un grupo o de un mensaje lgico no se pone dentro de una unidad de trabajo, ninguno de los dems mensajes fsicos del grupo o del mensaje lgico podr ponerse dentro de una unidad de trabajo, si se utiliza la misma asa de cola.

160

Consulta de programacin de aplicaciones (ILE RPG)

MQPMO - Opciones de poner mensaje


Si no se cumplen estas condiciones, la llamada MQPUT resulta anmala con el cdigo de razn RC2245. Cuando se especifica PMLOGO, el MQMD suministrado en la llamada MQPUT no debe ser inferior a MDVER2. Si no se cumple esta condicin, la llamada resulta anmala, con el cdigo de razn RC2257. Si no se especifica PMLOGO, los mensajes en grupos y los segmentos de mensajes lgicos pueden transferirse en cualquier orden y no es necesario transferir grupos de mensajes completos o mensajes lgicos completos. Es responsabilidad de la aplicacin asegurarse de que los campos MDGID, MDSEQ, MDOFF y MDMFL tienen los valores adecuados. Esta es la tcnica que puede utilizarse para reiniciar un grupo de mensajes o un mensaje lgico por la mitad, tras producirse una anomala del sistema. Al rearrancarse el sistema, la aplicacin puede establecer los campos MDGID, MDSEQ, MDOFF, MDMFL y MDPER en los valores adecuados y, a continuacin, emitir la llamada MQPUT con PMSYP o PMNSYP establecidos como se desee, pero sin especificar PMLOGO. Si esta llamada resulta satisfactoria, el gestor de colas retiene la informacin de grupos y segmentos, y as las llamadas MQPUT siguientes que utilicen esa asa de cola pueden especificar PMLOGO con normalidad. La informacin de grupos y segmentos que el gestor de colas retiene para la llamada MQPUT est separada de la informacin de grupos y segmentos que retiene para la llamada MQGET. Para cualquier asa de cola dada, la aplicacin tiene libertad para mezclar las llamadas MQPUT que especifiquen PMLOGO con las llamadas MQPUT que no lo especifiquen, pero deben tenerse en cuenta los siguientes puntos: v Cada llamada MQPUT satisfactoria que no especifique PMLOGO hace que el gestor de colas establezca la informacin de grupos y segmentos del asa de cola en los valores especificados por la aplicacin; as se sustituye la informacin de grupos y segmentos existente que el gestor de colas ha retenido para el asa de cola. v Si no se especifica PMLOGO, la llamada no resulta anmala si hay un grupo de mensajes o un mensaje lgico actuales, pero el mensaje o segmento transferido no es el siguiente del grupo o mensaje lgico. No obstante, la llamada puede resultar satisfactoria, con un cdigo de terminacin CCWARN. La Tabla 32 en la pgina 162 muestra los diversos casos que pueden darse. En estos casos, si el cdigo de terminacin no es CCOK, el cdigo de razn ser uno de los siguientes (como corresponda): RC2241 RC2242 RC2185 RC2245 Nota: El gestor de colas no comprueba la informacin de grupos y segmentos para la llamada MQPUT1.

Captulo 14. MQPMO - Opciones de poner mensaje

161

MQPMO - Opciones de poner mensaje


Tabla 32. Resultado cuando no existe coherencia entre la llamada MQPUT o MQCLOSE y la informacin de grupos y segmentos
Llamada actual MQPUT con PMLOGO MQPUT con PMLOGO MQPUT sin PMLOGO MQCLOSE con un grupo o mensaje lgico no concluido CCFAIL CCWARN CCWARN Llamada anterior MQPUT sin PMLOGO CCFAIL CCOK CCOK

Se recomienda que las aplicaciones que simplemente deseen transferir mensajes y segmentos en orden lgico especifiquen PMLOGO, ya que es la opcin ms sencilla que se puede utilizar. Esta opcin libra a la aplicacin de la necesidad de gestionar la informacin de grupos y segmentos, ya que el gestor de colas se encarga de gestionar esa informacin. Sin embargo, las aplicaciones especializadas pueden necesitar ms control que el que proporciona la opcin PMLOGO, lo que puede conseguirse no especificando esa opcin. Si es as, la aplicacin debe asegurarse de que los campos MDGID, MDSEQ, MDOFF y MDMFL de MQMD se establecen correctamente antes de cada llamada MQPUT o MQPUT1. Por ejemplo, una aplicacin que desee reenviar los mensajes fsicos que reciba, sin tener en cuenta si esos mensajes estn en grupos o son segmentos de mensajes lgicos, no deber especificar PMLOGO. Hay dos motivos para ello: v Si los mensajes se recuperan y transfieren por orden, especificar PMLOGO provocar que se asigne un identificador de grupo nuevo a los mensajes, lo que puede hacer ms difcil o incluso imposible que el originador de los mensajes pueda correlacionar los mensajes de respuesta o de informe que se obtengan como resultado del grupo de mensajes. v En una red compleja con mltiples vas de acceso entre el gestor de colas emisor y el receptor, los mensajes fsicos pueden llegar desordenados. Si no se especifica PMLOGO ni el GMLOGO correspondiente en la llamada MQGET, la aplicacin emisora puede recuperar y reenviar cada mensaje fsico en cuanto llega, sin tener que esperar al siguiente que llegue en orden lgico. Las aplicaciones que generan mensajes de informe para los mensajes de grupos o los segmentos de mensajes lgicos tampoco deberan especificar PMLOGO al poner el mensaje de informe. PMLOGO puede especificarse con cualquiera de las dems opciones PM*. PMNOC No debe asociarse contexto al mensaje. Tanto el contexto de identidad como el de origen se establecen para indicar que no hay contexto. Esto significa los campos de contexto de MQMD se establecen en: v Blancos para los campos de caracteres v Nulos para los campos de bytes v Ceros para los campos numricos

162

Consulta de programacin de aplicaciones (ILE RPG)

MQPMO - Opciones de poner mensaje


PMDEFC Utilizar el contexto por omisin. El mensaje debe tener informacin de contexto por omisin asociada a l para la identidad y el origen. El gestor de colas establece los campos de contexto del descriptor de mensaje del modo siguiente: Campo de MQMD Valor utilizado MDUID Determinado por el entorno a ser posible; de lo contrario, establecido en blancos. MDACC Determinado por el entorno a ser posible; de lo contrario, establecido en ACNONE. MDAID Establecido en blancos. MDPAT Determinado por el entorno. MDPAN Determinado por el entorno a ser posible; de lo contrario, establecido en blancos. MDPD Establecido en la fecha del momento de poner el mensaje. MDPT Establecido en la hora del momento de poner el mensaje. MDAOD Establecido en blancos. Para ms informacin sobre el contexto de mensaje, consulte el manual MQSeries Application Programming Guide. Esta es la accin por omisin si no se especifican opciones de contexto. PMPASI Pasar contexto de identidad desde un asa de cola de entrada. El mensaje debe tener asociada informacin de contexto. El contexto de identidad se toma del asa de cola especificada en el campo PMCT. El gestor de colas genera la informacin de contexto de origen del mismo modo que para PMDEFC (consulte los valores ms arriba). Para ms informacin sobre el contexto de mensajes, consulte el manual MQSeries Application Programming Guide. Para la llamada MQPUT, debe haberse abierto la cola con la opcin OOPASI (o una opcin que la implique). Para la llamada MQPUT1, se lleva a cabo la misma comprobacin de autorizacin que para la llamada MQOPEN con la opcin OOPASI. PMPASA Pasa todo el contexto desde un asa de cola de entrada. El mensaje debe tener asociada informacin de contexto. Tanto el contexto de identidad como el de origen se toman del asa de cola especificada en el campo PMCT. Para ms informacin sobre el contexto de mensajes, consulte el manual MQSeries Application Programming Guide. Para la llamada MQPUT, debe haberse abierto la cola con la opcin OOPASA (o una opcin que la implique). Para la llamada MQPUT1, se lleva a cabo la misma comprobacin de autorizacin que para la llamada MQOPEN con la opcin OOPASA. PMSETI Establecer el contexto de identidad desde la aplicacin. El mensaje debe tener asociada informacin de contexto. La aplicacin especifica el contexto de identidad en la estructura MQMD. El gestor de colas genera la informacin de contexto de origen del mismo modo
Captulo 14. MQPMO - Opciones de poner mensaje

163

MQPMO - Opciones de poner mensaje


que para PMDEFC (consulte los valores ms arriba). Para ms informacin sobre el contexto de mensajes, consulte el manual MQSeries Application Programming Guide. Para la llamada MQPUT, debe haberse abierto la cola con la opcin OOSETI (o una opcin que la implique). Para la llamada MQPUT1, se lleva a cabo la misma comprobacin de autorizacin que para la llamada MQOPEN con la opcin OOSETI. PMSETA Establecer todo el contexto desde la aplicacin. El mensaje debe tener asociada informacin de contexto. La aplicacin especifica el contexto de identidad y origen en la estructura MQMD. Para ms informacin sobre el contexto de mensajes, consulte el manual MQSeries Application Programming Guide. Para la llamada MQPUT, debe haberse abierto la cola con la opcin OOSETA. Para la llamada MQPUT1, se lleva a cabo la misma comprobacin de autorizacin que para la llamada MQOPEN con la opcin OOSETA. Solo se puede especificar una de las opciones de contexto PM*. Si no se especifica ninguna de estas opciones, se toma PMDEFC. PMALTU Validar con el identificador de usuario especificado. Indica que el campo ODAU del parmetro OBJDSC de la llamada MQPUT1 contiene un identificador de usuario que debe utilizarse para validar la autorizacin de transferencia de mensajes a la cola. La llamada solo ser satisfactoria si este ODAU tiene autorizacin para abrir la cola con las opciones especificadas, independientemente de si el identificador del usuario bajo el que est ejecutndose la aplicacin tiene autorizacin para ello. (Sin embargo, esto no se aplica a ninguna de las opciones de contexto especificadas, ya que se comprueban siempre con el identificador de usuario bajo el que est ejecutndose la aplicacin.) Esta opcin solo es vlida con la llamada MQPUT1. PMFIQ Falla si el gestor de colas est en reposo. Esta opcin fuerza que fallen las llamadas MQPUT o MQPUT1 si el estado del gestor de colas es en reposo. La llamada devuelve el cdigo de terminacin CCFAIL con el cdigo de razn RC2161. PMNONE No se especifican opciones. Este valor puede utilizarse para indicar que no se han especificado otras opciones; todas las opciones toman sus valores por omisin. PMNONE se ha definido para ayudar en la documentacin del programa; no se pretende que esta opcin se utilice con ninguna otra, pero ya que su valor es cero, esa utilizacin no puede ser detectada. Es un campo de entrada. El valor inicial del campo PMOPT es PMNONE.

164

Consulta de programacin de aplicaciones (ILE RPG)

MQPMO - Opciones de poner mensaje


PMTO (entero con signo de 10 dgitos) Reservado. Es un campo reservado; su valor no es significativo. El valor inicial de este campo es 1. PMCT (entero con signo de 10 dgitos) Asa de objeto de la cola de entrada. Si se especifica PMPASI o PMPASA, este campo debe contener el asa de cola de entrada de la que se toma la informacin de contexto que va a asociarse al mensaje que se est transfiriendo. Si no se especifica PMPASI ni PMPASA, el campo se ignorar. Es un campo de entrada. El valor inicial de este campo es 0. PMKDC (entero con signo de 10 dgitos) Nmero de mensajes enviados satisfactoriamente a colas locales. Este es el nmero de mensajes que la llamada MQPUT o MQPUT1 actual ha enviado satisfactoriamente a las colas de la lista de distribucin que son colas locales. El recuento no incluye los mensajes enviados a colas que se resuelven en colas remotas (aunque inicialmente se utilice una cola de transmisin local para almacenar el mensaje). Este campo tambin se establece al poner un mensaje en una sola cola que no est en una lista de distribucin. Es un campo de salida. El valor inicial de este campo es 0. Este campo no se establece si PMVER es inferior a PMVER2. PMUDC (entero con signo de 10 dgitos) Nmero de mensajes enviados satisfactoriamente a colas remotas. Este es el nmero de mensajes que la llamada MQPUT o MQPUT1 actual ha enviado satisfactoriamente a las colas de la lista de distribucin que se resuelven en colas remotas. Los mensajes que el gestor de colas conserva temporalmente en forma de lista de distribucin se cuentan como el nmero de destinos individuales que contienen esas listas de distribucin. Este campo tambin se establece cuando se pone un mensaje en una sola cola que no est en una lista de distribucin. Es un campo de salida. El valor inicial de este campo es 0. Este campo no se establece si PMVER es inferior a PMVER2. PMIDC (entero con signo de 10 dgitos) Nmero de mensajes que no han podido enviarse. Este es el nmero de mensajes que no han podido enviarse a las colas de la lista de distribucin. El recuento incluye las colas que no han podido abrirse, as como las colas que se han abierto satisfactoriamente, pero para las que ha fallado la operacin de poner. Este campo tambin se establece cuando se pone un mensaje en una sola cola que no est en una lista de distribucin. Nota: Este campo solo se establece si el parmetro CMPCOD de la llamada MQPUT o MQPUT1 es CCOK o CCWARN; no se establece si el parmetro CMPCOD es CCFAIL.

Captulo 14. MQPMO - Opciones de poner mensaje

165

MQPMO - Opciones de poner mensaje


Es un campo de salida. El valor inicial de este campo es 0. Este campo no se establece si PMVER es inferior a PMVER2. PMRQN (serie de caracteres de 48 bytes) Nombre resuelto de la cola destino. Es un campo de salida al que el gestor de colas asigna el nombre de la cola (tras la resolucin del alias) en la que se colocar el mensaje. Puede ser el nombre de una cola local o el de una cola remota. Si la cola destino abierta era una cola modelo, se devolver el nombre de la cola local dinmica creada. En ambos casos, el nombre devuelto es el de una cola definida en el gestor de colas identificado por PMRMN. Si se utiliza la llamada MQPUT o MQPUT1 para poner el mensaje en una lista de distribucin, el valor devuelto en este campo no est definido. Es un campo de salida. La longitud de este campo la indica LNQN. El valor inicial de este campo es de 48 caracteres en blanco. PMRMN (serie de caracteres de 48 bytes) Nombre resuelto del gestor de la cola destino. Es el nombre del gestor de colas (tras la resolucin del alias) que posee la cola especificada por PMRQN. Si se utiliza la llamada MQPUT o MQPUT1 para poner el mensaje en una lista de distribucin, el valor devuelto en este campo no est definido. Es un campo de salida. La longitud de este campo la indica LNQMN. El valor inicial de este campo es de 48 caracteres en blanco. Los campos restantes no estarn presentes si PMVER es inferior a PMVER2. PMREC (entero con signo de 10 dgitos) Nmero de registros de poner mensaje o de registros de respuesta presentes. Este es el nmero de registros de poner mensaje MQPMR o de registros de respuesta MQRR que la aplicacin ha suministrado. Este nmero puede ser mayor que cero solamente si el mensaje se va a poner en una lista de distribucin. Los registros de poner mensaje y los registros de respuesta son opcionales la aplicacin no tiene que suministrar ningn registro, o bien puede elegir suministrar registros de un tipo solamente. Sin embargo, si la aplicacin suministra registros de ambos tipos, debe proporcionar registros PMREC de cada tipo. El valor de PMREC no tiene por qu ser el mismo que el nmero de destinos de la lista de distribucin. Si se suministran demasiados registros, el excedente no se utiliza; si no se suministran suficientes, se utilizan valores por omisin para las propiedades de mensaje para aquellos destinos que no tengan registros de poner mensaje (vea PMPRO ms abajo). Si PMREC es menos que cero o es mayor que cero pero el mensaje no se pone en una lista de distribucin, la llamada falla con el cdigo de razn RC2154. Es un campo de entrada. El valor inicial de este campo es 0. Este campo no estar presente si PMVER es inferior a PMVER2.

166

Consulta de programacin de aplicaciones (ILE RPG)

MQPMO - Opciones de poner mensaje


PMPRF (entero con signo de 10 dgitos) Distintivos que indican qu campos de MQPMR estn presentes. Este campo contiene distintivos que deben establecerse para indicar qu campos de MQPMR estn presentes en los registros de poner mensaje suministrados por la aplicacin. PMPRF se utiliza solamente cuando se pone el mensaje en una lista de distribucin. El campo se ignorar si PMREC es cero, o tanto PMPRO como PMPRP son cero. Para los campos presentes, el gestor de colas utiliza, para cada destino, los valores de los campos del registro de poner mensaje correspondiente. Para los campos ausentes, el gestor de colas utiliza los valores de la estructura MQMD. Puede especificarse uno o varios de los distintivos siguientes para indicar qu campos estn presentes en los registros de poner mensaje: PFMID El campo Identificador de mensaje est presente. PFCID El campo Identificador de correlacin est presente. PFGID El campo Identificador de grupo est presente. PFFB PFACC El campo smbolo de contabilidad est presente. Si se especifica este distintivo, deber especificarse PMSETI o PMSETA en el campo PMOPT; si no se cumple esta condicin, la llamada resulta anmala con el cdigo de razn RC2158. Si no hay campos de MQPMR presentes, puede especificarse lo siguiente: PFNONE No hay campos de registro de poner mensaje presentes. Si se especifica este valor, PMREC deber ser cero, o bien tanto PMPRO como PMPRP debern ser cero. PFNONE se define para ayudar en la documentacin del programa. No se pretende que esta constante se utilice con ninguna otra, pero ya que su valor es cero, esa utilizacin no se puede detectar. Si PMPRF contiene distintivos no vlidos, o se suministran registros de poner mensaje pero PMPRF tiene el valor PFNONE, la llamada resulta anmala con el cdigo de razn RC2158. Es un campo de entrada. El valor inicial de este campo es PFNONE. Este campo no estar presente si PMVER es inferior a PMVER2. PMPRO (entero con signo de 10 dgitos) Desplazamiento del primer registro de poner mensaje a partir del principio de MQPMO. Es el desplazamiento en bytes del primer registro de poner mensaje MQPMR desde el principio de la estructura MQPMO. El desplazamiento puede ser positivo o negativo. PMPRO se utiliza solamente cuando el mensaje se pone en una lista de distribucin. El campo se ignora si PMREC es cero.
Captulo 14. MQPMO - Opciones de poner mensaje

El campo informacin de retorno est presente.

167

MQPMO - Opciones de poner mensaje


Cuando se pone el mensaje en una lista de distribucin, puede suministrarse un conjunto de uno o varios registros de poner mensaje MQPMR para especificar determinadas propiedades del mensaje para cada destino individualmente; esas propiedades son: v identificador de mensaje v identificador de correlacin v identificador de grupo v valor de informacin de retorno v smbolo de contabilidad No es necesario especificar todas estas propiedades pero, cualquiera que sea el subconjunto elegido, los campos deben especificarse en el orden correcto. Vea la descripcin de la estructura MQPMR para conocer ms detalles. Normalmente, debera haber tantos registros de poner mensaje como registros de objeto especificados por MQOD al abrir la lista de distribucin; cada registro de poner mensaje suministra las propiedades de mensaje para la cola identificada por el registro de objeto correspondiente. Las colas de la lista de distribucin que no consigan abrirse debern seguir teniendo asignados registros de poner mensaje en las posiciones adecuadas en el conjunto aunque, en este caso, las propiedades de mensaje se ignoran. Es posible que el nmero de registros de poner mensaje sea distinto del nmero de registros de objeto. Si hay menos registros de poner mensaje que registros de objeto, las propiedades de mensaje para los destinos que no tengan registros de poner mensaje se tomarn de los campos correspondientes en el descriptor de mensaje MQMD. Si hay ms registros de poner mensaje que registros de objeto, el excedente no se utiliza (aunque an puede ser posible acceder a ellos). Los registros de poner mensaje son opcionales pero, si se suministran, la cantidad que debe haber es PMREC. Los registros de poner mensaje pueden suministrarse de forma similar a los registros de objeto de MQOD, especificando un desplazamiento en PMPRO, o bien especificando una direccin en PMPRP; para conocer detalles sobre cmo hacerlo, vea el campo ODORO descrito en el Captulo 12. MQOD - Descriptor de objeto en la pgina 143. No puede utilizarse ms de uno de PMPRO y PMPRP; la llamada resulta anmala con el cdigo de razn RC2159 si ninguno es cero. Es un campo de entrada. El valor inicial de este campo es 0. Este campo no estar presente si PMVER es inferior a PMVER2. PMRRO (entero con signo de 10 dgitos) Desplazamiento del primer registro de respuesta desde el principio de MQPMO. Es el desplazamiento en bytes del primer registro de respuesta de MQRR desde el principio de la estructura MQPMO. El desplazamiento puede ser positivo o negativo. PMRRO se utiliza solamente cuando se pone el mensaje en una lista de distribucin. El campo se ignora si PMREC es cero. Cuando se pone el mensaje en una lista de distribucin, puede suministrarse un conjunto de uno o varios registros de respuesta MQRR para poder identificar las colas a las que no se envi el mensaje satisfactoriamente (campo RRCC de MQRR) y el motivo de cada anomala (campo RRREA de MQRR). Es

168

Consulta de programacin de aplicaciones (ILE RPG)

MQPMO - Opciones de poner mensaje


posible que el mensaje no se haya enviado porque la cola no ha logrado abrirse, o bien porque la operacin de poner ha fallado. El gestor de colas establece los registros de respuesta solamente cuando el resultado de la llamada es mixto (es decir, algunos mensajes se enviaron satisfactoriamente mientras que otros no, o bien no lleg ninguno por distintos motivos); el cdigo de razn RC2136 de la llamada indica este caso. Si el mismo cdigo de razn es aplicable a todas las colas, esa razn se devuelve en el parmetro REASON de la llamada MQPUT o MQPUT1 y no se establecen los registros de respuesta. Normalmente, debera haber tantos registros de respuesta como registros de objeto especificados por MQOD al abrirse la lista de distribucin; cuando es necesario, cada registro de respuesta se establece en el cdigo de terminacin y el cdigo de razn para la transferencia a la cola identificada por el registro de objeto correspondiente. Las colas de la lista de distribucin que no consigan abrirse debern seguir teniendo asignados registros de respuesta en las posiciones adecuadas en el conjunto, aunque se establecen en el cdigo de terminacin y el cdigo de razn resultado de la operacin de abrir, en lugar de la operacin de poner. Es posible que el nmero de registros de respuesta sea distinto del nmero de registros de objeto. Si hay menos registros de respuesta que registros de objeto, es posible que la aplicacin no pueda identificar todos los destinos para los que la operacin de transferencia ha resultado anmala, o los motivos de las anomalas. Si hay ms registros de respuesta que registros de objeto, el excedente no se utiliza (aunque an puede ser posible acceder a ellos). Los registros de respuesta son opcionales pero, si se suministran, la cantidad que debe haber es PMREC. Los registros de respuesta pueden suministrarse de forma similar a los registros de objeto de MQOD, especificando un desplazamiento en PMRRO, o bien especificando una direccin en PMRRP; para conocer detalles sobre cmo hacerlo, vea el campo ODORO descrito en el Captulo 12. MQOD - Descriptor de objeto en la pgina 143. Sin embargo, no puede utilizarse ms de uno de PMRRO y de PMRRP; la llamada resulta anmala con el cdigo de razn RC2156 si ninguno es cero. Para la llamada MQPUT1, este campo debe ser cero. Esto se debe a que la informacin de respuesta (si se solicita) se devuelve en los registros de respuesta especificados por el descriptor de objeto MQOD. Es un campo de entrada. El valor inicial de este campo es 0. Este campo no estar presente si PMVER es inferior a PMVER2. PMPRP (puntero) Direccin del primer registro de poner mensaje. Esta es la direccin del primer registro de poner mensaje MQPMR. PMPRP se utiliza solamente cuando se pone el mensaje en una lista de distribucin. El campo se ignora si PMREC es cero. Puede utilizarse PMPRP o bien PMPRO para especificar los registros de poner mensaje, pero no ambos; vea la descripcin del campo PMPRO ms arriba para conocer detalles. Si no se utiliza PMPRP, debe establecerse en el puntero nulo o en bytes nulos.

Captulo 14. MQPMO - Opciones de poner mensaje

169

MQPMO - Opciones de poner mensaje


Es un campo de entrada. El valor inicial de este campo es el puntero nulo. Este campo no estar presente si PMVER es inferior a PMVER2. PMRRP (puntero) Direccin del primer registro de respuesta. Esta es la direccin del primer registro de respuesta MQRR. PMRRP se utiliza solamente cuando se pone el mensaje en una lista de distribucin. El campo se ignora si PMREC es cero. Puede utilizarse PMRRP o bien PMRRO para especificar los registros de respuesta, pero no ambos; vea la descripcin del campo PMRRO ms arriba para conocer detalles. Si no se utiliza PMRRP, debe establecerse en el puntero nulo o en bytes nulos. Para la llamada MQPUT1, este campo debe ser el puntero nulo o bytes nulos. Esto se debe a que la informacin de respuesta (si se solicita) se devuelve en los registros de respuesta especificados por el descriptor de objeto MQOD. Es un campo de entrada. El valor inicial de este campo es el puntero nulo. Este campo no estar presente si PMVER es inferior a PMVER2.

Valores iniciales y declaracin de RPG


Tabla 33. Valores iniciales de campos de MQPMO
Nombre de campo PMSID PMVER PMOPT PMTO PMCT PMKDC PMUDC PMIDC PMRQN PMRMN PMREC PMPRF PMPRO PMRRO PMPRP PMRRP Notas: 1. El smbolo b representa un carcter en blanco. Nombre de constante PMSIDV PMVER1 PMNONE Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno PFNONE Ninguno Ninguno Ninguno Ninguno Valor de constante 'PMOb' (Vea la nota 1) 1 0 -1 0 0 0 0 Blancos Blancos 0 0 0 0 Puntero nulo o bytes nulos Puntero nulo o bytes nulos

170

Consulta de programacin de aplicaciones (ILE RPG)

Declaracin de RPG

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQPMO D* D* Identificador de estructura D PMSID 1 4 D* Nmero de versin de estructura D PMVER 5 8I 0 D* Opciones que controlan la accin de MQPUT y MQPUT1 D PMOPT 9 12I 0 D* Reservado D PMTO 13 16I 0 D* Asa de objeto de la cola de entrada D PMCT 17 20I 0 D* Nmero de mensajes enviados satisfactoriamente a colas locales D PMKDC 21 24I 0 D* Nmero de mensajes enviados satisfactoriamente a colas remotas D PMUDC 25 28I 0 D* Nmero de mensajes que no han podido enviarse D PMIDC 29 32I 0 D* Nombre resuelto de la cola destino D PMRQN 33 80 D* Nombre resuelto del gestor de la cola destino D PMRMN 81 128 D* Nmero de registros de poner mensaje o de respuesta presentes D PMREC 129 132I 0 D* Distintivos que indican qu campos de MQPMR estn presentes D PMPRF 133 136I 0 D* Desplazamiento del primer registro de poner mensaje desde el principio de MQPMO D PMPRO 137 140I 0 D* Desplazamiento del primer registro de respuesta desde el principio de MQPMO D PMRRO 141 144I 0 D* Direccin del primer registro de poner mensaje D PMPRP 145 160* D* Direccin del primer registro de respuesta D PMRRP 161 176*

Captulo 14. MQPMO - Opciones de poner mensaje

171

Declaracin de RPG

172

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 15. MQPMR - Registro de poner mensaje


La tabla siguiente resume los campos de la estructura.
Tabla 34. Campos de MQPMR
Campo PRMID PRCID PRGID PRFB PRACC Descripcin Identificador de mensaje Identificador de correlacin Identificador de grupo Cdigo de informacin de retorno o de razn Smbolo de contabilidad Pgina 173 174 174 174 175

Visin general
La estructura MQPMR se utiliza para especificar diversas propiedades de mensaje para un nico destino. Al proporcionarse un conjunto de estas estructuras en la llamada MQPUT o MQPUT1, es posible especificar distintos valores para cada cola destino de una lista de distribucin. Algunos de los campos son solo de entrada, otros son de entrada/salida. Nota: Esta estructura es inusual ya que no tiene un diseo fijo. Los campos de esta estructura son opcionales y la presencia o ausencia de cada campo viene indicada por los distintivos del campo PMPRF de MQPMO. Los campos presentes deben aparecen en el orden mostrado ms abajo. Los campos ausentes no ocupan espacio en el registro. Dado que MQPMR no tiene un diseo fijo, no se le proporciona una declaracin en un archivo COPY. El programador de la aplicacin debe crear una declaracin que contenga los campos que la aplicacin necesita y establecer los distintivos de PMPRF para indicar los campos que estn presentes. MQPMR es una estructura de entrada/salida para las llamadas MQPUT y MQPUT1.

Campos
PRMID (serie de bits de 24 bytes) Identificador de mensaje. Este es el identificador de mensaje que debe utilizarse para el mensaje enviado a la cola, cuyo nombre especific el elemento correspondiente del conjunto de estructuras MQOR suministradas en la llamada MQOPEN o MQPUT1. Se procesa de la misma forma que el campo MDMID de MQMD para la transferencia a una sola cola. Si este campo no est presente en el registro MQPMR, o hay menos registros de MQPMR que destinos, se utiliza el valor de MQMD para esos destinos que no tienen un registro MQPMR que contenga un campo PRMID. Si ese valor es

Copyright IBM Corp. 1994, 2000

173

MQPMR - Registro de poner mensaje


MINONE, se genera un nuevo identificador de mensaje para cada destino (es decir, no habr dos destinos con el mismo identificador de mensaje). Si se especifica PMNMID, se generan nuevos identificadores de mensajes para todos los destinos de la lista de distribucin, sin tener en cuenta si tienen registros MQPMR. Este es un proceso distinto al de PMNCID (vea ms abajo). Este es un campo de entrada/salida. PRCID (serie de bits de 24 bytes) Identificador de correlacin. Este es el identificador de correlacin que debe utilizarse para el mensaje enviado a la cola, cuyo nombre especific el elemento correspondiente del conjunto de estructuras MQOR suministradas en la llamada MQOPEN o MQPUT1. Se procesa de la misma forma que el campo MDCID de MQMD para la transferencia a una sola cola. Si este campo no est presente en el registro MQPMR, o hay menos registros MQPMR que destinos, se utiliza el valor de MQMD para esos destinos que no tienen un registro MQPMR que contenga un campo PRCID. Si se especifica PMNCID, se genera un nico identificador de correlacin y se utiliza para todos los destinos de la lista de distribucin, sin tener en cuenta si tienen registros MQPMR. Este es un proceso distinto al de PMNMID (vea ms abajo). Este es un campo de entrada/salida. PRGID (serie de bits de 24 bytes) Identificador de grupo. Este es el identificador de grupo que debe utilizarse para el mensaje enviado a la cola, cuyo nombre especific el elemento correspondiente del conjunto de estructuras MQOR suministradas en la llamada MQOPEN o MQPUT1. Se procesa de la misma forma que el campo MDGID de MQMD para la transferencia a una sola cola. Si este campo no est presente en el registro MQPMR, o hay menos registros MQPMR que destinos, se utiliza el valor de MQMD para esos destinos que no tienen un registro MQPMR que contenga un campo PRGID. El valor se procesa tal como se explica en la Tabla 31 en la pgina 160, pero con las siguientes diferencias: v En aquellos casos en los que se utilizara un nuevo identificador de grupo, el gestor de colas genera un identificador de grupo distinto para cada destino (es decir, no habr dos destinos con el mismo identificador de grupo). v En aquellos casos en que se utilizara el valor del campo, la llamada resulta anmala, con el cdigo de razn RC2258. Este es un campo de entrada/salida. PRFB (entero con signo de 10 dgitos) Cdigo de informacin de retorno o de razn. Este es el cdigo de informacin de retorno que debe utilizarse para el mensaje enviado a la cola, cuyo nombre especific el elemento correspondiente del conjunto de estructuras MQOR suministradas en la llamada MQOPEN o

174

Consulta de programacin de aplicaciones (ILE RPG)

MQPMR - Registro de poner mensaje


MQPUT1. Se procesa de la misma forma que el campo MDFB de MQMD para una transferencia a una sola cola. Si este campo no est presente, se utiliza el valor de MQMD. Es un campo de entrada. PRACC (serie de bits de 32 bytes) Smbolo de contabilidad Es el smbolo de contabilidad que debe utilizarse para el mensaje enviado a la cola, cuyo nombre especific el elemento correspondiente del conjunto de estructuras MQOR suministradas en la llamada MQOPEN o MQPUT1. Se procesa de la misma forma que el campo MDACC de MQMD para la transferencia a una sola cola. Vea la descripcin de MDACC en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para obtener informacin sobre el contenido de este campo. Si este campo no est presente, se utiliza el valor de MQMD. Es un campo de entrada.

| | |

Valores iniciales y declaracin de RPG


No hay valores iniciales definidos para esta estructura, ya que no se suministra ninguna declaracin de estructura. La declaracin de ejemplo que encontrar ms abajo muestra cmo el programador de la aplicacin debe declarar la estructura si todos los campos son necesarios.

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQPMR D* D* Identificador de mensaje D PRMID 1 24 D* Identificador de correlacin D PRCID 25 48 D* Identificador de grupo D PRGID 49 72 D* Cdigo de informacin de retorno o de razn D PRFB 73 76I 0 D* Smbolo de contabilidad D PRACC 77 108

Captulo 15. MQPMR - Registro de poner mensaje

175

Declaracin de RPG

176

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 16. MQRMH - Cabecera de mensaje de referencia


La tabla siguiente resume los campos de la estructura.
Tabla 35. Campos de MQRMH
Campo RMSID RMVER RMLEN Descripcin Identificador de estructura Nmero de versin de la estructura Longitud total de MQRMH, incluidas las series situadas al final de los campos de longitud fija, pero no los datos generales Codificacin numrica de los datos generales Identificador del juego de caracteres de los datos generales Nombre de formato de los datos generales Distintivos de mensajes de referencia Tipo de objeto Identificador de la instancia de objeto Longitud de los datos del entorno origen Desplazamiento de los datos del entorno origen Longitud del nombre de objeto origen Desplazamiento del nombre de objeto origen Longitud de los datos del entorno destino Desplazamiento de los datos del entorno destino Longitud del nombre de objeto destino Desplazamiento del nombre de objeto destino Longitud de los datos generales Desplazamiento bajo de los datos generales Desplazamiento alto de los datos generales Pgina 178 178 179

RMENC RMCSI RMFMT RMFLG RMOT RMOII RMSEL RMSEO RMSNL RMSNO RMDEL RMDEO RMDNL RMDNO RMDL RMDO RMDO2

179 179 179 179 180 180 180 180 181 181 181 181 182 182 182 183 183

Visin general
La estructura MQRMH define el formato de una cabecera de mensaje de referencia. Una aplicacin puede transferir un mensaje en este formato, omitiendo los datos generales. Cuando un agente de canal de mensajes (MCA) lee el mensaje en la cola de transmisin, se llama a una rutina de salida de mensaje suministrada por usuario para que procese la cabecera del mensaje de referencia. La rutina de salida puede aadir al mensaje de referencia los datos generales identificados por la estructura MQRMH, antes de que el MCA enve el mensaje a travs del canal al siguiente gestor de colas. En el extremo receptor debe existir una rutina de salida de mensaje que espere mensajes de referencia. Al recibirse un mensaje de referencia, la rutina de salida debe crear el objeto a partir de los datos generales que siguen a la MQRMH en el mensaje y, a continuacin, pasar el mensaje de referencia sin los datos generales.
Copyright IBM Corp. 1994, 2000

177

MQRMH - Cabecera de mensaje de referencia


Posteriormente, una aplicacin que lea el mensaje de referencia (sin los datos generales) en una cola, puede recuperarlo de una cola. Normalmente, la estructura MQRMH (opcionalmente con los datos generales) es todo lo que hay en el mensaje. Sin embargo, si el mensaje est en una cola de transmisin, habr una o ms cabeceras adicionales precediendo a la estructura MQRMH. Un mensaje de referencia tambin puede enviarse a una lista de distribucin. En este caso, la estructura MQDH y sus registros relacionados preceden a la estructura MQRMH cuando el mensaje est en una cola de transmisin. Nota: Un mensaje de referencia no debe enviarse como un mensaje segmentado, ya que la rutina de salida de mensaje no puede procesarlo correctamente. Para la conversin de datos, la conversin de la estructura MQRMH incluye la conversin de los datos del entorno origen, el nombre del objeto origen, los datos del entorno destino y el nombre del objeto destino. Los dems bytes que haya en RMLEN se descartarn o bien tendrn valores no definidos tras la conversin de datos. Los datos generales se convertirn siempre que se cumplan las siguientes condiciones: v Los datos generales estn presentes en el mensaje cuando se realiza la conversin de datos. v El campo RMFMT de MQRMH tiene un valor que no es FMNONE. v Existe una rutina de salida de conversin de datos escrita por usuario que tiene el nombre de formato especificado. Tenga en cuenta, no obstante, que normalmente los datos generales no estn presentes en el mensaje cuando el mensaje est en una cola y que, como resultado, la opcin GMCONV no convertir los datos generales. El nombre de formato de una estructura MQRMH es FMRMH. Los campos de la estructura MQRMH y las series direccionadas por los campos de desplazamiento tienen el juego de caracteres y la codificacin dados por los campos MDCSI y MDENC de la estructura de cabecera que precede a la MQRMH, o por esos campos de la estructura MQMD, si la MQRMH est al principio de los datos del mensaje de aplicacin.

Campos
RMSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: RMSIDV Identificador para la estructura de cabecera de mensaje de referencia. El valor inicial de este campo es RMSIDV. RMVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser: RMVER1 Estructura de cabecera de mensaje de referencia de la versin 1.

178

Consulta de programacin de aplicaciones (ILE RPG)

MQRMH - Cabecera de mensaje de referencia


La siguiente constante especifica el nmero de la versin actual: RMVERC Versin actual de la estructura de cabecera de mensaje de referencia. El valor inicial de este campo es RMVER1. RMLEN (entero con signo de 10 dgitos) Longitud total de MQRMH, incluidas las series situadas al final de los campos de longitud fija, pero no los datos generales. El valor inicial de este campo es cero. RMENC (entero con signo de 10 dgitos) Codificacin numrica de los datos generales. Identifica la representacin utilizada para valores numricos en los datos generales; esto se aplica a datos enteros binarios, datos enteros con decimales empaquetados y datos de coma flotante. El valor inicial de este campo es ENNAT. RMCSI (entero con signo de 10 dgitos) Identificador del juego de caracteres de los datos generales. Especifica el identificador del juego de caracteres codificado de los datos de tipo carcter de los datos generales. Recuerde que los datos de tipo carcter de las estructuras de datos MQ deben estar en el juego de caracteres utilizado por el gestor de colas. Esto se define mediante el atributo CodedCharSetId del gestor de colas; vea el Captulo 43. Atributos del gestor de colas en la pgina 337 para ver ms detalles de este atributo. El valor inicial de este campo es 0. RMFMT (serie de caracteres de 8 bytes) Nombre de formato de los datos generales. Es un nombre que el emisor del mensaje puede utilizar para indicar al receptor la naturaleza de los datos generales. Puede especificarse para el nombre cualquier carcter que est en el juego de caracteres del gestor de colas, pero es aconsejable que el nombre est dentro de las siguientes limitaciones: v Maysculas de la A a la Z v Dgitos numricos del 0 a al 9 Si se utilizan otros caracteres, puede que no sea posible la conversin del nombre entre los juegos de caracteres del gestor de colas emisor y del receptor. El nombre debe estar rellenado con blancos en toda la longitud del campo. No utilice un carcter nulo para terminar el nombre antes del final del campo, ya que el gestor de colas no cambia el nulo y los caracteres siguientes por blancos en la estructura MQRMH. No especifique un nombre con blancos iniciales ni intercalados. El valor inicial de este campo es FMNONE. RMFLG (entero con signo de 10 dgitos) Distintivos de mensajes de referencia.
Captulo 16. MQRMH - Cabecera de mensaje de referencia

179

MQRMH - Cabecera de mensaje de referencia


Estn definidos los siguientes distintivos: RMLAST El mensaje de referencia contiene o representa la ltima parte del objeto. Este distintivo indica que el mensaje de referencia representa o contiene la ltima parte del objeto referenciado. RMNLST El mensaje de referencia no contiene ni representa la ltima parte del objeto. RMNLST se define para ayudar en la documentacin del programa. No se pretende que esta opcin se utilice con ninguna otra, pero ya que su valor es cero, esa utilizacin no se puede detectar. El valor inicial de este campo es RMNLST. RMOT (serie de caracteres de 8 bytes) Tipo de objeto. Es un nombre que la rutina de salida de mensaje puede utilizar para reconocer los tipos de mensajes de referencia que soporta. Se recomienda que el nombre se ajuste a las mismas reglas que el campo RMFMT descrito ms arriba. El valor inicial de este campo es de 8 blancos. RMOII (serie de bits de 24 bytes) Identificador de la instancia de objeto. Este campo puede utilizarse para identificar una instancia especfica de un objeto. Si no es necesario, deber establecerse en el siguiente valor: OIINON No se ha especificado ningn identificador de la instancia de objeto. El valor de la longitud del campo es cero binario. La longitud de este campo la indica LNOIID. El valor inicial de este campo es OIINON. RMSEL (entero con signo de 10 dgitos) Longitud de los datos del entorno origen. Si este campo es cero, significa que no hay datos del entorno origen y RMSEO se ignora. El valor inicial de este campo es 0. RMSEO (entero con signo de 10 dgitos) Desplazamiento de los datos del entorno origen. Este campo especifica el desplazamiento de los datos del entorno origen desde el principio de la estructura MQRMH. El creador del mensaje de referencia puede especificar los datos del entorno origen, si el creador conoce esos datos. Por ejemplo, en OS/2, los datos del entorno origen podran ser la va de acceso del directorio del objeto que contiene los datos generales. Sin embargo, si el creador no conoce los datos del entorno origen, la rutina de salida de mensaje suministrada por usuario es la encargada de determinar la informacin de entorno necesaria.

180

Consulta de programacin de aplicaciones (ILE RPG)

MQRMH - Cabecera de mensaje de referencia


La longitud de los datos del entorno origen viene dada por RMSEL; si esta longitud es cero, significa que no hay datos del entorno origen y RMSEO se ignora. Si estn presentes, los datos del entorno origen deben residir por completo en RMLEN bytes desde el principio de la estructura. Las aplicaciones no deben presuponer que los datos de entorno empiezan inmediatamente despus del ltimo campo de longitud fija de la estructura, o que se encuentran junto a los datos direccionados por los campos RMSNO, RMDEO y RMDNO. El valor inicial de este campo es 0. RMSNL (entero con signo de 10 dgitos) Longitud del nombre de objeto origen. Si este campo es cero, significa que no hay un nombre de objeto origen y RMSNO se ignora. El valor inicial de este campo es 0. RMSNO (entero con signo de 10 dgitos) Desplazamiento del nombre de objeto origen. Este campo especifica el desplazamiento del nombre de objeto origen desde el principio de la estructura MQRMH. El creador del mensaje de referencia puede especificar el nombre de objeto origen, si el creador conoce esos datos. Sin embargo, si el creador no conoce el nombre de objeto origen, la rutina de salida de mensaje suministrada por usuario es la encargada de identificar el objeto al que se ha de acceder. La longitud del nombre de objeto origen viene dada por RMSNL; si esta longitud es cero, significa que no hay un nombre de objeto origen y RMSNO se ignora. Si est presente, el nombre de objeto origen debe residir por completo en RMLEN bytes desde el principio de la estructura. Las aplicaciones no deben presuponer que el nombre de objeto origen se encuentra junto a los datos direccionados por los campos RMSEO, RMDEO y RMDNO. El valor inicial de este campo es 0. RMDEL (entero con signo de 10 dgitos) Longitud de los datos del entorno destino. Si este campo es cero, significa que no hay datos del entorno destino y RMDEO se ignora. RMDEO (entero con signo de 10 dgitos) Desplazamiento de los datos del entorno destino. Este campo especifica el desplazamiento de los datos del entorno destino desde el principio de la estructura MQRMH. El creador del mensaje de referencia puede especificar los datos del entorno destino, si el creador conoce esos datos. Por ejemplo, en OS/2, los datos del entorno destino podran ser la va de acceso del directorio del objeto que contiene los datos generales. Sin embargo, si el creador no conoce los datos del entorno destino, la rutina de salida de mensaje suministrada por usuario es la encargada de determinar la informacin de entorno necesaria.

Captulo 16. MQRMH - Cabecera de mensaje de referencia

181

MQRMH - Cabecera de mensaje de referencia


La longitud de los datos del entorno destino viene dada por RMDEL; si esta longitud es cero, significa que no hay datos del entorno destino y RMDEO se ignora. Si estn presentes, los datos del entorno destino deben residir por completo en RMLEN bytes desde el principio de la estructura. Las aplicaciones no deben presuponer que los datos del entorno destino se encuentran junto a los datos direccionados por los campos RMSEO, RMSNO y RMDNO. El valor inicial de este campo es 0. RMDNL (entero con signo de 10 dgitos) Longitud del nombre de objeto destino. Si este campo es cero, significa que no hay un nombre de objeto destino y RMDNO se ignora. RMDNO (entero con signo de 10 dgitos) Desplazamiento del nombre de objeto destino. Este campo especifica el desplazamiento del nombre de objeto destino desde el principio de la estructura MQRMH. El creador del mensaje de referencia puede especificar el nombre de objeto destino, si el creador conoce esos datos. Sin embargo, si el creador no conoce el nombre de objeto destino, la rutina de salida de mensaje suministrada por usuario es la encargada de identificar el objeto que debe crearse o modificarse. La longitud del nombre de objeto destino viene dada por RMDNL; si esta longitud es cero, significa que no hay un nombre de objeto destino y RMDNO se ignora. Si est presente, el nombre de objeto destino debe residir por completo en RMLEN bytes desde el principio de la estructura. Las aplicaciones no deben presuponer que el nombre de objeto destino se encuentra junto a los datos direccionados por los campos RMSEO, RMSNO y RMDEO. El valor inicial de este campo es 0. RMDL (entero con signo de 10 dgitos) Longitud de los datos generales. El campo RMDL especifica la longitud de los datos generales referenciados por la estructura MQRMH. Si los datos generales estn realmente presentes en el mensaje, los datos empiezan en un desplazamiento de RMLEN bytes desde el principio de la estructura MQRMH. La longitud del mensaje completo, menos RMLEN, da la longitud de los datos generales presentes. Si hay datos presentes en el mensaje, RMDL especifica la cantidad de esos datos que es de relevancia. El caso normal es que RMDL tenga el mismo valor que la longitud de datos realmente presentes en el mensaje. Si la estructura MQRMH representa los datos restantes del objeto (a partir del desplazamiento lgico especificado), puede utilizarse el valor cero para RMDL, siempre que los datos generales no estn realmente presentes en el mensaje.

182

Consulta de programacin de aplicaciones (ILE RPG)

MQRMH - Cabecera de mensaje de referencia


Si no hay datos presentes, el final de MQRMH coincidir con el final del mensaje. El valor inicial de este campo es 0. RMDO (entero con signo de 10 dgitos) Desplazamiento bajo de los datos generales. Este campo especifica el desplazamiento bajo de los datos generales desde el principio del objeto del que forman parte los datos generales. El desplazamiento de los datos generales desde el principio del objeto se denomina desplazamiento lgico. Este no es el desplazamiento fsico de los datos generales desde el principio de la estructura MQRMH ese desplazamiento est indicado por RMLEN. Para permitir que se enven objetos de gran tamao utilizando mensajes de referencia, el desplazamiento lgico se divide en dos campos y el desplazamiento lgico real viene dado por la suma de estos campos: v RMDO representa el resto obtenido cuando se divide el desplazamiento lgico entre 1 000 000 000. Por consiguiente, ser un valor comprendido entre 0 y 999 999 999. v RMDO2 representa el resultado obtenido cuando se divide el desplazamiento lgico entre 1 000 000 000. Por consiguiente, ser el nmero de mltiplos completos de 1 000 000 000 que existan en el desplazamiento lgico. El nmero de mltiplos est comprendido entre 0 y 999 999 999. El valor inicial de este campo es 0. RMDO2 (entero con signo de 10 dgitos) Desplazamiento alto de los datos generales. Este campo especifica el desplazamiento alto de los datos generales desde el principio del objeto del que forman parte los datos generales. Es un valor comprendido entre 0 y 999 999 999. Vea RMDO para ms detalles. El valor inicial de este campo es 0.

Captulo 16. MQRMH - Cabecera de mensaje de referencia

183

Declaracin de RPG

Valores iniciales y declaracin de RPG


Tabla 36. Valores iniciales de campos de MQRMH
Nombre de campo RMSID RMVER RMLEN RMENC RMCSI RMFMT RMFLG RMOT RMOII RMSEL RMSEO RMSNL RMSNO RMDEL RMDEO RMDNL RMDNO RMDL RMDO RMDO2 Notas: 1. El smbolo b representa un carcter en blanco. 2. El valor de esta constante es especfico del entorno. Nombre de constante RMSIDV RMVER1 Ninguno ENNAT Ninguno FMNONE RMNLST Ninguno OIINON Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Valor de constante 'RMHb' (Vea la nota 1) 1 0 Vea la nota 2 0 'bbbbbbbb' 0 'bbbbbbbb' Nulos 0 0 0 0 0 0 0 0 0 0 0

184

Consulta de programacin de aplicaciones (ILE RPG)

Declaracin de RPG

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQRMH D* D* Identificador de estructura D RMSID 1 4 D* Nmero de versin de estructura D RMVER 5 8I 0 D* Longitud total de MQRMH, incluidas las series al final de los campos de longitud fija, D* pero no los datos generales D RMLEN 9 12I 0 D* Codificacin numrica de los datos generales D RMENC 13 16I 0 D* Identificador del juego de caracteres de los datos generales D RMCSI 17 20I 0 D* Nombre de formato de los datos generales D RMFMT 21 28 D* Distintivos de mensajes de referencia D RMFLG 29 32I 0 D* Tipo de objeto D RMOT 33 40 D* Identificador de la instancia de objeto D RMOII 41 64 D* Longitud de los datos del entorno origen D RMSEL 65 68I 0 D* Desplazamiento de los datos del entorno origen D RMSEO 69 72I 0 D* Longitud del nombre de objeto origen D RMSNL 73 76I 0 D* Desplazamiento del nombre de objeto origen D RMSNO 77 80I 0 D* Longitud de los datos del entorno destino D RMDEL 81 84I 0 D* Desplazamiento de los datos del entorno destino D RMDEO 85 88I 0 D* Longitud del nombre de objeto destino D RMDNL 89 92I 0 D* Desplazamiento del nombre de objeto destino D RMDNO 93 96I 0 D* Longitud de los datos generales D RMDL 97 100I 0 D* Desplazamiento bajo de los datos generales D RMDO 101 104I 0 D* Desplazamiento alto de los datos generales D RMDO2 105 108I 0

Captulo 16. MQRMH - Cabecera de mensaje de referencia

185

Declaracin de RPG

186

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 17. MQRR - Registro de respuesta


La tabla siguiente resume los campos de la estructura.
Tabla 37. Campos de MQRR
Campo RRCC RRREA Descripcin Cdigo de terminacin para la cola Cdigo de razn para la cola Pgina 187 187

Visin general
La estructura MQRR se utiliza para recibir el cdigo de terminacin y el cdigo de razn resultantes de la operacin de abrir o poner para una sola cola destino. Proporcionando un conjunto de estas estructuras en las llamadas MQOPEN y MQPUT, o en la llamada MQPUT1, es posible determinar los cdigos de terminacin y los cdigos de razn para todas las colas de una lista de distribucin, cuando el resultado de la llamada es mixto, es decir, cuando la llamada es satisfactoria para algunas colas de la lista pero resulta anmala para otras. El cdigo de razn RC2136 de la llamada indica que el gestor de colas ha establecido los registros de respuesta (si la aplicacin los suministra). MQRR es una estructura de salida para las llamadas MQOPEN, MQPUT y MQPUT1.

Campos
RRCC (entero con signo de 10 dgitos) Cdigo de terminacin para la cola. Este es el cdigo de terminacin resultante de la operacin de apertura o transferencia para la cola cuyo nombre especific el elemento correspondiente del conjunto de estructuras MQOR suministradas en la llamada MQOPEN o MQPUT1. Es siempre un campo de salida. El valor inicial de este campo es CCOK. RRREA (entero con signo de 10 dgitos) Cdigo de razn para la cola. Este es el cdigo de razn resultante de la operacin de apertura o transferencia para la cola cuyo nombre especific el elemento correspondiente del conjunto de estructuras MQOR suministradas en la llamada MQOPEN o MQPUT1. Es siempre un campo de salida. El valor inicial de este campo es RCNONE.

Copyright IBM Corp. 1994, 2000

187

Declaracin de RPG

Valores iniciales y declaracin de RPG


Tabla 38. Valores iniciales de campos de MQRR
Nombre de campo RRCC RRREA Nombre de constante CCOK RCNONE Valor de constante 0 0

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQRR D* D* Cdigo de terminacin para la cola D RRCC 1 4I 0 D* Cdigo de razn para la cola D RRREA 5 8I 0

188

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 18. MQTM - Mensaje desencadenante


La tabla siguiente resume los campos de la estructura.
Tabla 39. Campos de MQTM
Campo TMSID TMVER TMQN TMPN TMTD TMAT TMAI TMED TMUD Descripcin Identificador de estructura Nmero de versin de la estructura Nombre de cola desencadenada Nombre del objeto proceso Datos desencadenantes Tipo de aplicacin Identificador de aplicacin Datos del entorno Datos de usuario Pgina 190 190 190 191 191 191 192 192 192

Visin general
La estructura MQTM describe los datos del mensaje desencadenante que el gestor de colas enva a una aplicacin supervisora de desencadenamiento cuando se produce un suceso desencadenante para una cola. Esta estructura forma parte de la interfaz de supervisor de desencadenamiento (TMI) de MQSeries, que es una de las interfaces de la Infraestructura MQSeries. La aplicacin supervisora de desencadenamiento tal vez tenga que pasar parte o toda la informacin del mensaje desencadenante a la aplicacin arrancada por la aplicacin supervisora de desencadenamiento. La informacin que la aplicacin arrancada puede necesitar incluye TMQN, TMTD y TMUD. La aplicacin supervisora de desencadenamiento puede pasar la estructura MQTM directamente a la aplicacin arrancada o bien pasar una estructura MQTMC2, segn lo que sea ms prctico para la aplicacin arrancada. Para obtener informacin sobre MQTMC2, vea el Captulo 19. MQTMC2 - Mensaje desencadenante (formato de caracteres) en la pgina 195. Encontrar informacin sobre mensajes desencadenantes en MQSeries Application Programming Guide. Los campos del descriptor del mensaje desencadenante se establecen del modo siguiente: Campo de MQMD Valor utilizado MDSID MDSIDV MDVER MDVER1 MDREP RONONE MDMT MTDGRM MDEXP EIULIM MDFB FBNONE MDENC ENNAT
Copyright IBM Corp. 1994, 2000

189

MQTM - Mensaje desencadenante


MDCSI MDFMT MDPRI MDPER MDMID MDCID MDBOC MDRQ MDRM MDUID MDACC MDAID MDPAT MDPAN MDPD MDPT MDAOD Atributo CodedCharSetId del gestor de colas FMTM Atributo DefPriority de la cola de inicio PENPER Un valor exclusivo CINONE 0 Blancos Nombre del gestor de colas Blancos ACNONE Blancos ATQM o el apropiado para el agente de canal de mensajes Los primeros 28 bytes del nombre del gestor de colas Fecha en la que se enva el mensaje desencadenante Hora a la que se ha enva el mensaje desencadenante Blancos

Se recomienda utilizar valores similares en las aplicaciones que generen un mensaje desencadenante, salvo en los casos siguientes: v El campo MDPRI se puede establecer en PRQDEF (el gestor de colas cambiar este valor por la prioridad por omisin para la cola de inicio cuando se ponga el mensaje). v El campo MDRM se puede establecer en blancos (el gestor de colas cambiar este valor por el nombre del gestor de colas local cuando se ponga el mensaje). v Los campos de contexto deben establecerse segn corresponda a la aplicacin.

Campos
TMSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: TMSIDV Identificador de una estructura de mensaje desencadenante. El valor inicial de este campo es TMSIDV. TMVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser: TMVER1 Nmero de versin de la estructura del mensaje desencadenante. La siguiente constante especifica el nmero de la versin actual: TMVERC Versin actual de la estructura de mensaje desencadenante. El valor inicial de este campo es TMVER1. TMQN (serie de caracteres de 48 bytes) Nombre de la cola desencadenada.

190

Consulta de programacin de aplicaciones (ILE RPG)

MQTM - Mensaje desencadenante


Es el nombre de la cola para la que se ha producido un suceso desencadenante; lo utiliza la aplicacin arrancada por la aplicacin supervisora de desencadenamiento. El gestor de colas inicializa este campo con el valor del atributo QName de la cola desencadenada; vea el Captulo 37. Atributos de todas las colas en la pgina 305 para obtener detalles de este atributo. Los nombres cuya longitud sea inferior a la definida para el campo se rellenarn con blancos a la derecha; no terminarn prematuramente mediante un carcter nulo. La longitud de este campo la indica LNQN. El valor inicial de este campo es de 48 caracteres en blanco. TMPN (serie de caracteres de 48 bytes) Nombre del objeto proceso. Es el nombre del objeto proceso de gestor de colas especificado para la cola desencadenada; lo puede utilizar la aplicacin supervisora de desencadenamiento que recibe el mensaje desencadenante. El gestor de colas inicializa este campo con el valor del atributo ProcessName de la cola identificada por el campo TMQN; vea el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311 para obtener detalles de este atributo. Los nombres cuya longitud sea inferior a la definida para el campo siempre se rellenarn con blancos a la derecha; no terminarn prematuramente mediante un carcter nulo. La longitud de este campo la indica LNPRON. El valor inicial de este campo es de 48 caracteres en blanco. TMTD (serie de caracteres de 64 bytes) Datos desencadenantes. Son datos con formato libre que utilizar la aplicacin supervisora de desencadenamiento que recibe el mensaje desencadenante. El gestor de colas inicializa este campo con el valor del atributo TriggerData de la cola identificada por el campo TMQN; vea el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311 para obtener detalles de este atributo. El contenido de estos datos no es significativo para el gestor de colas. La longitud de este campo la indica LNTRGD. El valor inicial del campo son 64 caracteres en blanco. TMAT (entero con signo de 10 dgitos) Tipo de aplicacin. Identifica la naturaleza del programa que se ha de arrancar; lo utiliza la aplicacin supervisora de desencadenamiento que recibe el mensaje desencadenante. El gestor de colas inicializa este campo con el valor del atributo ApplType del objeto proceso identificado por el campo TMPN; vea el Captulo 42. Atributos de las definiciones de proceso en la pgina 333 para obtener detalles de este atributo. El contenido de estos datos no es significativo para el gestor de colas. TMAT puede tener uno de los siguientes valores estndar. Tambin pueden utilizarse tipos definidos por el usuario, pero deben estar restringidos a los valores comprendidos entre ATUFST y ATULST:
Captulo 18. MQTM - Mensaje desencadenante

191

MQTM - Mensaje desencadenante


ATCICS Transaccin CICS. ATVSE Transaccin CICS/VSE. AT400 Aplicacin OS/400 ATUFST Valor inferior del tipo de aplicacin definido por el usuario. ATULST Valor superior del tipo de aplicacin definido por el usuario. El valor inicial de este campo es 0. TMAI (serie de caracteres de 256 bytes) Identificador de aplicacin. Es una serie de caracteres que identifica la aplicacin que debe arrancarse; lo utiliza la aplicacin supervisora de desencadenamiento que recibe el mensaje desencadenante. El gestor de colas inicializa este campo con el valor del atributo ApplId del objeto proceso identificado por el campo TMPN; vea el Captulo 42. Atributos de las definiciones de proceso en la pgina 333 para obtener detalles de este atributo. El contenido de estos datos no es significativo para el gestor de colas. El significado de TMAI viene determinado por la aplicacin supervisora de desencadenamiento. El supervisor de desencadenamiento suministrado por MQSeries requiere que TMAI sea el nombre de un programa ejecutable. La longitud de este campo la indica LNPROA. El valor inicial del campo son 256 caracteres en blanco. TMED (serie de caracteres de 128 bytes) Datos de entorno. Es una serie de caracteres que contiene informacin relacionada con el entorno y referente a la aplicacin que se ha de arrancar; lo utiliza la aplicacin supervisora de desencadenamiento que recibe el mensaje desencadenante. El gestor de colas inicializa este campo con el valor del atributo EnvData del objeto proceso identificado por el campo TMPN; vea el Captulo 42. Atributos de las definiciones de proceso en la pgina 333 para obtener detalles de este atributo. El contenido de estos datos no es significativo para el gestor de colas. La longitud de este campo la indica LNPROE. El valor inicial del campo son 128 caracteres en blanco. TMUD (serie de caracteres de 128 bytes) Datos de usuario. Es una serie de caracteres que contiene informacin de usuario referente a la aplicacin que se ha de arrancar; lo utiliza la aplicacin supervisora de desencadenamiento que recibe el mensaje desencadenante. El gestor de colas inicializa este campo con el valor del atributo UserData del objeto proceso identificado por el campo TMPN; vea el Captulo 42. Atributos de las definiciones de proceso en la pgina 333 para obtener detalles de este atributo. El contenido de estos datos no es significativo para el gestor de colas. La longitud de este campo la indica LNPROU. El valor inicial del campo son 128 caracteres en blanco.

| |

192

Consulta de programacin de aplicaciones (ILE RPG)

MQTM - Mensaje desencadenante

Valores iniciales y declaracin de RPG


Tabla 40. Valores iniciales de campos de MQTM
Nombre de campo TMSID TMVER TMQN TMPN TMTD TMAT TMAI TMED TMUD Notas: 1. El smbolo b representa un solo carcter en blanco. Nombre de constante TMSIDV TMVER1 Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Valor de constante 'TMbb' (Ver nota 1) 1 Blancos Blancos Blancos 0 Blancos Blancos Blancos

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura de MQTM D* D* Identificador de estructura D TMSID 1 4 D* Nmero de versin de estructura D TMVER 5 8I 0 D* Nombre de cola desencadenada D TMQN 9 56 D* Nombre del objeto proceso D TMPN 57 104 D* Datos desencadenantes D TMTD 105 168 D* Tipo de aplicacin D TMAT 169 172I 0 D* Identificador de aplicacin D TMAI 173 428 D* Datos de entorno D TMED 429 556 D* Datos de usuario D TMUD 557 684

Captulo 18. MQTM - Mensaje desencadenante

193

MQTM - Mensaje desencadenante

194

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 19. MQTMC2 - Mensaje desencadenante (formato de caracteres)


La tabla siguiente resume los campos de la estructura.
Tabla 41. Campos de MQTMC2
Campo TC2SID TC2VER TC2QN TC2PN TC2TD TC2AT TC2AI TC2ED TC2UD TC2QMN Descripcin Identificador de estructura Nmero de versin de la estructura Nombre de cola desencadenada Nombre del objeto de proceso Datos desencadenantes Tipo de aplicacin Identificador de aplicacin Datos del entorno Datos de usuario Nombre del gestor de colas Pgina 196 196 196 196 196 196 196 196 196 197

Visin general
Cuando una aplicacin supervisora de desencadenamiento recupera un mensaje desencadenante (MQTM) de una cola de inicio, el supervisor de desencadenamiento puede tener que pasar parte o toda la informacin del mensaje desencadenante a la aplicacin arrancada por el supervisor de desencadenamiento. La informacin que la aplicacin arrancada puede necesitar incluye TC2QN, TC2TD y TC2UD. La aplicacin supervisora de desencadenamiento puede pasar la estructura MQTM directamente a la aplicacin arrancada o bien pasar una estructura MQTMC2, segn lo que sea ms prctico para la aplicacin arrancada. Esta estructura forma parte de la interfaz de supervisor de desencadenamiento (TMI) de MQSeries, que es una de las interfaces de la Infraestructura MQSeries. v En OS/390, para una aplicacin ATIMS que se arranque utilizando la aplicacin CSQQTRMN, se pone una estructura MQTMC2 a disposicin de la aplicacin arrancada. v En VSE/ESA, esta estructura no est soportada. v En Windows de 16 bits y Windows de 32 bits, no hay ninguna aplicacin supervisora de desencadenamiento, por lo que esta estructura no est soportada. La estructura MQTMC2 es muy parecida al formato del mensaje desencadenante (estructura MQTM). La diferencia estriba en que los campos de MQTM que no son de caracteres, en MQTMC2 se convierten en campos de caracteres de la misma longitud y se aade el nombre del gestor de colas al final de la estructura. Vea el Captulo 18. MQTM - Mensaje desencadenante en la pgina 189 para obtener ms detalles sobre los campos que son los mismos en esta estructura.

Copyright IBM Corp. 1994, 2000

195

MQTMC2 - Mensaje desencadenante (formato de caracteres)

Campos
TC2SID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: TCSIDV Identificador de una estructura de mensaje desencadenante (formato de caracteres). TC2VER (serie de caracteres de 4 bytes) Nmero de versin de la estructura. El valor debe ser: TCVER2 Estructura de mensaje desencadenante (formato de caracteres) de la versin 2. La siguiente constante especifica el nmero de la versin actual: TCVERC Versin actual de la estructura de mensaje desencadenante (formato de caracteres). TC2QN (serie de caracteres de 48 bytes) Nombre de la cola desencadenada. Vea el campo TMQN de la estructura MQTM. TC2PN (serie de caracteres de 48 bytes) Nombre del objeto proceso. Vea el campo TMPN de la estructura MQTM. TC2TD (serie de caracteres de 64 bytes) Datos desencadenantes. Vea el campo TMTD de la estructura MQTM. TC2AT (serie de caracteres de 4 bytes) Tipo de aplicacin. Este campo siempre contiene blancos, sea cual sea el valor del campo TMAT de la estructura MQTM del mensaje desencadenante original. TC2AI (serie de caracteres de 256 bytes) Identificador de aplicacin. Vea el campo TMAI de la estructura MQTM. TC2ED (serie de caracteres de 128 bytes) Datos de entorno. Vea el campo TMED de la estructura MQTM. TC2UD (serie de caracteres de 128 bytes) Datos de usuario. Vea el campo TMUD de la estructura MQTM.

196

Consulta de programacin de aplicaciones (ILE RPG)

MQTMC2 - Mensaje desencadenante (formato de caracteres)


TC2QMN (serie de caracteres de 48 bytes) Nombre del gestor de colas. Es el nombre del gestor de colas en el que se ha producido el suceso desencadenante.

Valores iniciales y declaracin de RPG


Tabla 42. Valores iniciales de campos de MQTMC2
Nombre de campo TC2SID TC2VER TC2QN TC2PN TC2TD TC2AT TC2AI TC2ED TC2UD TC2QMN Notas: 1. El smbolo b representa un solo carcter en blanco. Nombre de constante TCSIDV TCVER2 Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Ninguno Valor de constante 'TMCb' (Ver nota 1) 'bbb2' Blancos Blancos Blancos 'bbbb' Blancos Blancos Blancos Blancos

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQTMC2 D* D* Identificador de estructura D TC2SID 1 4 D* Nmero de versin de estructura D TC2VER 5 8 D* Nombre de cola desencadenada D TC2QN 9 56 D* Nombre del objeto proceso D TC2PN 57 104 D* Datos desencadenantes D TC2TD 105 168 D* Tipo de aplicacin D TC2AT 169 172 D* Identificador de aplicacin D TC2AI 173 428 D* Datos de entorno D TC2ED 429 556 D* Datos de usuario D TC2UD 557 684 D* Nombre del gestor de colas D TC2QMN 685 732

Captulo 19. MQTMC2 - Mensaje desencadenante (formato de caracteres)

197

Declaracin de RPG

198

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 20. MQWIH - Cabecera de informacin de trabajo


La tabla siguiente resume los campos de la estructura.
Tabla 43. Campos de MQWIH
Campo WISID WIVER WILEN WIENC WICSI WIFMT WIFLG WISNM WISST WITOK Descripcin Identificador de estructura Nmero de versin de la estructura Longitud de la estructura MQWIH Codificacin numrica de los datos que siguen a MQWIH Identificador de juego de caracteres de los datos que siguen a MQWIH Nombre de formato de los datos que siguen a MQWIH Distintivos Nombre de servicio Nombre de paso de servicio Smbolo de mensaje Pgina 199 199 200 200 200 200 200 200 200 201

Visin general
La estructura MQWIH describe la informacin que debe estar presente al principio de un mensaje que el gestor de carga de trabajo de OS/390 tiene que manejar. El nombre del formato de esta estructura es FMWIH.

Campos
WISID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: WISIDV Identificador de la estructura de cabecera de informacin de trabajo. El valor inicial de este campo es WISIDV. WIVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser: WIVER1 Estructura de cabecera de informacin de trabajo de la versin 1. La siguiente constante especifica el nmero de la versin actual: WIVERC Versin actual de la estructura de cabecera de informacin de trabajo.

Copyright IBM Corp. 1994, 2000

199

MQWIH - Cabecera de informacin de trabajo


El valor inicial de este campo es WIVER1. WILEN (entero con signo de 10 dgitos) Longitud de la estructura MQWIH. El valor debe ser: WILEN1 Longitud de la estructura de cabecera de informacin de trabajo de la versin 1. La siguiente constante especifica la longitud de la versin actual: WILENC Longitud de la versin actual de la estructura de cabecera de informacin de trabajo. El valor inicial de este campo es WILEN1. WIENC (entero con signo de 10 dgitos) Codificacin numrica de los datos que siguen a MQWIH. Esta es la codificacin numrica de los datos que siguen a la estructura MQWIH. El valor inicial de este campo es 0. WICSI (entero con signo de 10 dgitos) Identificador de juego de caracteres de los datos que siguen a MQWIH. Este es el identificador de juego de caracteres codificado de los datos que siguen a la estructura MQWIH. El valor inicial de este campo es 0. WIFMT (serie de caracteres de 8 bytes) Nombre del formato de los datos que siguen a MQWIH. Este es el nombre de formato MQ de los datos que siguen a la estructura MQWIH. Las reglas para codificar son las mismas que las aplicables al campo MDFMT de MQMD. La longitud de este campo la indica LNFMT. El valor inicial de este campo es FMNONE. WIFLG (entero con signo de 10 dgitos) Distintivos El valor debe ser: WINONE Ningn distintivo. El valor inicial de este campo es WINONE. WISNM (serie de caracteres de 32 bytes) Nombre de servicio. Esl el nombre del servicio que procesar el mensaje. La longitud de este campo la indica LNSVNM. El valor inicial del campo son 32 caracteres en blanco. WISST (serie de caracteres de 8 bytes) Nombre de paso de servicio.

200

Consulta de programacin de aplicaciones (ILE RPG)

MQWIH - Cabecera de informacin de trabajo


Es el nombre del paso de WISNM con el que est relacionado el mensaje. La longitud de este campo la indica LNSVST. El valor inicial del campo son 8 caracteres en blanco. WITOK (serie de bits de 16 bytes) Smbolo de mensaje. Es un smbolo de mensaje que identifica al mensaje de forma exclusiva. En las llamadas MQPUT y MQPUT1, se ignora este campo. La longitud de este campo la indica LNMTOK. El valor inicial de este campo es MTKNON. WIRSV (serie de caracteres de 32 bytes) Reservado. Es un campo reservado; debe estar en blanco.

Valores iniciales y declaracin de RPG


| | | | | | | | | | | | | | | | |
Tabla 44. Valores iniciales de campos de MQWIH
Nombre de campo WISID WIVER WILEN WIENC WICSI WIFMT WIFLG WISNM WISST WITOK WIRSV Notas: 1. El smbolo b representa un carcter en blanco. Nombre de constante WISIDV WIVER1 WILEN1 Ninguno Ninguno FMNONE WINONE Ninguno Ninguno MTKNON Ninguno Valor de constante 'WIHb' (Vea la nota 1) 1 120 0 0 'bbbbbbbb' 0 Blancos Blancos Nulos Blancos

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQWIH D* D* Identificador de estructura D WISID 1 4 D* Nmero de versin de estructura D WIVER 5 8I 0 D* Longitud de la estructura MQWIH D WILEN 9 12I 0 D* Codificacin numrica de los datos que siguen a MQWIH D WIENC 13 16I 0 D* Identificador de juego de caracteres de los datos que siguen a MQWIH D WICSI 17 20I 0 D* Nombre de formato de los datos que siguen a MQWIH D WIFMT 21 28 D* Distintivos
Captulo 20. MQWIH - Cabecera de informacin de trabajo

201

Declaracin de RPG
D D* D D* D D* D D* D WIFLG 29 32I 0 Nombre de servicio WISNM 33 64 Nombre de paso de servicio WISST 65 72 Smbolo de mensaje WITOK 73 88 Reservado WIRSV 89 120

202

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 21. MQXQH - Cabecera de cola de transmisin


La tabla siguiente resume los campos de la estructura.
Tabla 45. Campos de MQXQH
Campo XQSID XQVER XQRQ XQRQM XQMD Descripcin Identificador de estructura Nmero de versin de la estructura Nombre de la cola destino Nombre del gestor de colas destino Descriptor de mensaje original Pgina 206 206 206 206 206

Visin general
La estructura MQXQH describe la informacin que se prefija en los datos de los mensajes de aplicacin cuando estn en colas de transmisin. Una cola de transmisin es un tipo especial de cola local que contiene temporalmente los mensajes destinados a colas remotas (es decir, los destinados a colas que no pertenecen al gestor de colas local). Una cola de transmisin se indica mediante el valor USTRAN aplicado al atributo de cola Usage. Un mensaje que est en una cola de transmisin tiene dos descriptores de mensaje: v Un descriptor de mensaje se almacena aparte de los datos del mensaje, lo que se conoce con el nombre de descriptor de mensaje aparte, y se trata de una versin modificada del descriptor de mensaje que facilita la aplicacin en el parmetro MSGDSC de la llamada MQPUT o MQPUT1 (vea ms detalles a continuacin). El mensaje transferido por la aplicacin puede ser un mensaje de un grupo o un segmento de un mensaje lgico, o bien puede tener habilitada la segmentacin, pero estas propiedades no se propagan al descriptor de mensaje aparte: los campos de la versin 2 en el descriptor de mensaje aparte siempre tienen los valores por omisin. El descriptor de mensaje aparte es el que se devuelve a la aplicacin en el parmetro MSGDSC de la llamada MQGET cuando el mensaje se elimina de la cola de transmisin. v Un segundo descriptor de mensaje se almacena en la estructura MQXQH como parte de los datos del mensaje, lo que se conoce con el nombre de descriptor de mensaje incorporado y es una copia bastante aproximada del descriptor de mensaje que facilita la aplicacin en el parmetro MSGDSC de la llamada MQPUT o MQPUT1 (vea ms detalles a continuacin). El descriptor de mensaje incorporado es siempre un MQMD de la versin 1. Si el mensaje transferido por la aplicacin tiene valores no por omisin para uno o varios de los campos de la versin 2 en el MQMD, habr una estructura MQMDE a continuacin de MQXQH que, a su vez, ir seguido de los datos del mensaje de la aplicacin (si los hay). El MQMDE puede ser: Generado por el gestor de colas (si la aplicacin utiliza un MQMD de la versin 2 para transferir el mensaje), o bien Ya presente al principio de los datos del mensaje de la aplicacin (si la aplicacin utiliza un MQMD de la versin 1 para transferir el mensaje).
Copyright IBM Corp. 1994, 2000

203

MQXQH - Cabecera de cola de transmisin


El descriptor de mensaje incorporado es el que se devuelve a la aplicacin en el parmetro MSGDSC de la llamada MQGET cuando el mensaje se elimina de la cola destino final. Poner mensajes en colas remotas: Cuando una aplicacin pone un mensaje en una cola remota (ya sea especificando directamente el nombre de la cola remota, o utilizando una definicin local de la cola remota), el gestor de colas local: v Crea una estructura MQXQH que contiene el descriptor de mensaje incorporado v Aade una MQMDE, si es necesaria y no hay ninguna presente v Aade los datos del mensaje de aplicacin v Coloca el mensaje en una cola de transmisin adecuada Los datos de tipo carcter de la estructura MQXQH tienen el juego de caracteres del gestor de colas local (definido por el atributo de gestor de colas CodedCharSetId); los datos de tipo entero tienen la codificacin de mquina nativa. Estos valores se almacenan en el descriptor de mensaje aparte y pueden ser distintos de los valores de los campos MDCSI y MDENC del descriptor de mensaje incorporado, ya que los ltimos campos estn relacionados con los datos del mensaje de aplicacin y no con la estructura MQXQH propiamente dicha. Los campos del descriptor de mensaje incorporado tienen los mismos valores que los del parmetro MSGDSC de la llamada MQPUT o MQPUT1, salvo en los casos siguientes: v El campo MDVER siempre tiene el valor MDVER1. v Si el campo MDPRI tiene el valor PRQDEF, se sustituye por el valor del atributo DefPriority de la cola. v Si el campo MDPER tiene el valor PEQDEF, se sustituye por el valor del atributo DefPersistence de la cola. v Si el campo MDMID tiene el valor MINONE, o se ha especificado la opcin PMNMID, o el mensaje es un mensaje de lista de distribucin, se sustituye MDMID por un identificador de mensaje nuevo generado por el gestor de colas. Cuando se divide un mensaje de lista de distribucin en mensajes de lista de distribucin ms pequeos colocados en distintas colas de transmisin, el campo MDMID de cada uno de los nuevos descriptores de mensaje incorporados ser igual que en el mensaje de lista de distribucin original. v Si se ha especificado la opcin PMNCID, se sustituye MDCID por un identificador de correlacin nuevo generado por el gestor de colas. v Los campos de contexto se definen tal como indican las opciones de contexto PM* especificadas en el parmetro PMO. Estos campos de contexto son los campos de MDUID a MDAOD indicados en la lista siguiente. v Los campos de la versin 2 (si estn presentes) se eliminan de MQMD y se trasladan a una estructura MQMDE, si uno o varios de los campos de la versin 2 tienen un valor no por omisin. Los campos del descriptor de mensaje aparte los establece el gestor de colas del modo que se muestra ms abajo. Si el gestor de colas no soporta el MQMD de la versin 2, se utiliza un MQMD de la versin 1 sin prdida de funciones.
Campo en MQMD separado MDSID MDVER MDREP Valor utilizado MDSIDV MDVER2 Copiado del descriptor de mensaje incorporado, pero con los bits identificados por ROAUXM establecidos en cero. (Esto impide que se genere un mensaje de informe COA o COD cuando se coloca o se elimina un mensaje en una cola de transmisin).

204

Consulta de programacin de aplicaciones (ILE RPG)

MQXQH - Cabecera de cola de transmisin


Campo en MQMD separado MDMT MDEXP MDFB MDENC MDCSI MDFMT MDPRI MDPER MDMID Valor utilizado Copiado del descriptor de mensaje incorporado. Copiado del descriptor de mensaje incorporado. Copiado del descriptor de mensaje incorporado. ENNAT Atributo CodedCharSetId del gestor de colas. FMXQH Copiado del descriptor de mensaje incorporado. Copiado del descriptor de mensaje incorporado. El gestor de colas genera un valor nuevo. Este identificador de mensaje es distinto del MDMID que el gestor de colas puede haber generado para el descriptor de mensaje incorporado (vea la nota anterior). El MDMID del descriptor de mensaje incorporado. 0 Copiado del descriptor de mensaje incorporado. Copiado del descriptor de mensaje incorporado. Copiado del descriptor de mensaje incorporado. Copiado del descriptor de mensaje incorporado. Copiado del descriptor de mensaje incorporado. ATQM Los primeros 28 bytes del nombre del gestor de colas. Fecha en la que se puso el mensaje en la cola de transmisin. Hora en la que se puso el mensaje en la cola de transmisin. Blancos. GINONE 1 0 MFNONE OLUNDF

MDCID MDBOC MDRQ MDRM MDUID MDACC MDAID MDPAT MDPAN MDPD MDPT MDAOD MDGID MDSEQ MDOFF MDMFL MDOLN

Poner mensajes directamente en colas de transmisin: Tambin es posible que una aplicacin ponga un mensaje directamente en una cola de transmisin. En ese caso, la aplicacin debe prefijar los datos del mensaje de la aplicacin con una estructura MQXQH e inicializar los campos con los valores adecuados. Adems, el campo MDFMT del parmetro MSGDSC de la llamada MQPUT o MQPUT1 debe tener el valor FMXQH. Los datos de tipo carcter de la estructura MQXQH creada por la aplicacin deben tener el juego de caracteres del gestor de colas local (definido por el atributo de gestor de colas CodedCharSetId); los datos de tipo entero deben tener la codificacin de mquina nativa. Adems, los datos de tipo carcter de la estructura MQXQH deben rellenarse con blancos hasta alcanzar la longitud definida para el campo; los datos no deben terminar prematuramente utilizando un carcter nulo, ya que el gestor de colas no convierte en blancos el nulo ni los caracteres siguientes de esta estructura MQXQH. Recuerde que el gestor de colas no comprueba si existe una estructura MQXQH, ni si se han especificado valores vlidos en los campos. Obtener mensajes de las colas de transmisin: Las aplicaciones que obtienen mensajes de una cola de transmisin deben procesar de forma adecuada la informacin de la estructura MQXQH. La presencia de la estructura MQXQH al principio de los datos del mensaje de aplicacin est indicada mediante la devolucin del valor FMXQH en el campo MDFMT del parmetro MSGDSC de la llamada MQGET. Los valores devueltos en los campos MDCSI y MDENC del
Captulo 21. MQXQH - Cabecera de cola de transmisin

205

MQXQH - Cabecera de cola de transmisin


parmetro MSGDSC indican, respectivamente, el juego de caracteres y la codificacin de los datos de tipo carcter y de tipo entero de la estructura MQXQH. El juego de caracteres y la codificacin de los datos del mensaje de aplicacin los definen los campos MDCSI y MDENC del descriptor de mensaje incorporado.

Campos
XQSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: XQSIDV Identificador de la estructura de cabecera de cola de transmisin. El valor inicial de este campo es XQSIDV. XQVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser: XQVER1 Nmero de versin de la estructura de cabecera de cola de transmisin. La siguiente constante especifica el nmero de la versin actual: XQVERC Versin actual de la estructura de cabecera de cola de transmisin. El valor inicial de este campo es XQVER1. XQRQ (serie de caracteres de 48 bytes) Nombre de la cola destino. Es el nombre de la cola de mensajes que constituye el destino eventual y aparente del mensaje (puede que no sea el posible destino real si, por ejemplo, la cola se define en XQRQM como la definicin local de otra cola remota). Si el mensaje es un mensaje de lista de distribucin (es decir, el campo MDFMT del descriptor de mensaje incorporado es FMDH), XQRQ estar en blanco. La longitud de este campo la indica LNQN. El valor inicial de este campo es de 48 caracteres en blanco. XQRQM (serie de caracteres de 48 bytes) Nombre del gestor de colas destino. Es el nombre del gestor de colas propietario de la cola que constituye el destino eventual y aparente del mensaje. Si el mensaje es un mensaje de lista de distribucin, XQRQM estar en blanco. La longitud de este campo la indica LNQMN. El valor inicial de este campo es de 48 caracteres en blanco. XQMD (MQMD1) Descriptor de mensaje original.

206

Consulta de programacin de aplicaciones (ILE RPG)

MQXQH - Cabecera de cola de transmisin


Es el descriptor de mensaje incorporado y es una copia aproximada del MQMD del descriptor de mensaje que se especific como parmetro MSGDSC en la llamada MQPUT o MQPUT1 al transferir originalmente el mensaje a la cola remota. Nota: Este es un MQMD de la versin 1. Los valores iniciales de los campos de esta estructura son iguales que los de la estructura MQMD.

Valores iniciales y declaracin de RPG


Tabla 46. Valores iniciales de campos de MQXQH
Nombre de campo XQSID XQVER XQRQ XQRQM XQMD Notas: 1. El smbolo b representa un carcter en blanco. Nombre de constante XQSIDV XQVER1 Ninguno Ninguno Los mismos nombres y valores que para MQMD; vea la Tabla 22 en la pgina 134 Valor de constante 'XQHb' (Vea la nota 1) 1 Blancos Blancos

Declaracin de RPG
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQXQH D* D* Identificador de estructura D XQSID 1 4 D* Nmero de versin de estructura D XQVER 5 8I 0 D* Nombre de la cola destino D XQRQ 9 56 D* Nombre del gestor de colas destino D XQRQM 57 104 D* Descriptor de mensaje original D* D* Identificador de estructura D XQ1SID 105 108 D* Nmero de versin de estructura D XQ1VER 109 112I 0 D* Opciones de informe D XQ1REP 113 116I 0 D* Tipo de mensaje D XQ1MT 117 120I 0 D* Hora de caducidad D XQ1EXP 121 124I 0 D* Cdigo de informacin de retorno o de razn D XQ1FB 125 128I 0 D* Codificacin numrica de los datos del mensaje D XQ1ENC 129 132I 0 D* Identificador de juego de caracteres de los datos del mensaje D XQ1CSI 133 136I 0 D* Nombre de formato de los datos del mensaje D XQ1FMT 137 144 D* Prioridad del mensaje D XQ1PRI 145 148I 0
Captulo 21. MQXQH - Cabecera de cola de transmisin

207

Declaracin de RPG
D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D D* D Permanencia del mensaje XQ1PER 149 152I 0 Identificador de mensaje XQ1MID 153 176 Identificador de correlacin XQ1CID 177 200 Contador de restitucin XQ1BOC 201 204I 0 Nombre de la cola de respuestas XQ1RQ 205 252 Nombre del gestor de la cola de respuestas XQ1RM 253 300 Identificador de usuario XQ1UID 301 312 Smbolo de contabilidad XQ1ACC 313 344 Datos de aplicacin relacionados con la identidad XQ1AID 345 376 Tipo de aplicacin que pone el mensaje XQ1PAT 377 380I 0 Nombre de aplicacin que pone el mensaje XQ1PAN 381 408 Fecha en que se puso el mensaje XQ1PD 409 416 Hora en que se puso el mensaje XQ1PT 417 424 Datos de aplicacin relacionados con el origen XQ1AOD 425 428

208

Consulta de programacin de aplicaciones (ILE RPG)

Parte 2. Llamadas de funciones


Captulo 22. Descripciones de las llamadas . . 211 Convenios utilizados en las descripciones de las llamadas . . . . . . . . . . . . . . . 211 Captulo 23. MQBACK Sintaxis . . . . . Parmetros . . . . Notas de utilizacin . Invocacin RPG . . - Restituir . . . . . . . . . . . . . . . . cambios . . . 213 . . . . . . 213 . . . . . . 213 . . . . . . 214 . . . . . . 215 de . . . . . Captulo 31. MQINQ - Consultar los objeto . . . . . . . . . . Sintaxis . . . . . . . . . . Parmetros . . . . . . . . . Notas de utilizacin . . . . . . Invocacin RPG . . . . . . . Captulo 32. MQOPEN Sintaxis . . . . . Parmetros . . . . Notas de utilizacin . Invocacin RPG . . Captulo 33. MQPUT Sintaxis . . . . . Parmetros . . . . Notas de utilizacin . Invocacin RPG . . Captulo 34. MQPUT1 Sintaxis . . . . . Parmetros . . . . Notas de utilizacin . Invocacin RPG . . Captulo 35. MQSET objeto . . . . . Sintaxis . . . . . Parmetros . . . . Notas de utilizacin . Invocacin RPG . . - Abrir objeto . . . . . . . . . . . . . . . . . . . . Poner . . . . . . . . atributos de . . . . . . . . . . . . . . . . . . . . . . . . . 251 251 251 259 260

Captulo 24. MQBEGIN trabajo . . . . . . Sintaxis . . . . . . Parmetros . . . . . Notas de utilizacin . . Invocacin RPG (ILE) . Captulo 25. MQCLOSE Sintaxis . . . . . . Parmetros . . . . . Notas de utilizacin . . Invocacin RPG . . .

Empezar unidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cerrar objeto . . . . . . . . . . . . . . . . . . . .

. . 217 . . 217 . . 217 . . 218 . . 220

. . . . . 261 . . . . . 261 . . . . . 261 . . . . . 270 . . . . . 275

. . . . 221 . . . . 221 . . . . 221 . . . . 224 . . . . 226 227 227 227 228 229

mensaje . . . . 277 . . . . . . . . 277 . . . . . . . . 277 . . . . . . . . 282 . . . . . . . . 286

Captulo 26. MQCMIT - Comprometer cambios Sintaxis . . . . . . . . . . . . . . Parmetros . . . . . . . . . . . . . Notas de utilizacin . . . . . . . . . . Invocacin RPG . . . . . . . . . . . Captulo 27. MQCONN - Conectar gestor de colas . . . . . . . . . . . . . . Sintaxis . . . . . . . . . . . . . Parmetros . . . . . . . . . . . . Notas de utilizacin . . . . . . . . . Invocacin RPG . . . . . . . . . .

- Poner un mensaje . . . 287 . . . . . . . . . . 287 . . . . . . . . . . 287 . . . . . . . . . . 292 . . . . . . . . . . 293 Establecer . . . . . . . . . . . . . . . . . . . . atributos de . . . . . . 295 . . . . . . 295 . . . . . . 295 . . . . . . 298 . . . . . . 299

. . . .

. . 231 . . 231 . . 231 . . 234 . . 235

Captulo 28. MQCONNX - Conectar gestor de colas (ampliado) . . . . . . . . . . . . 237 Sintaxis . . . . . . . . . . . . . . . 237 Parmetros . . . . . . . . . . . . . . 237 Invocacin RPG . . . . . . . . . . . . 238 Captulo 29. MQDISC - Desconectar colas . . . . . . . . . . . Sintaxis . . . . . . . . . . Parmetros . . . . . . . . . Notas de utilizacin . . . . . . Invocacin RPG . . . . . . . Captulo 30. MQGET Sintaxis . . . . . Parmetros . . . . Notas de utilizacin . Invocacin RPG . . Obtener . . . . . . . . . . . . gestor de . . . . . 239 . . . . . 239 . . . . . 239 . . . . . 240 . . . . . 240

mensaje. . . . 241 . . . . . . . 241 . . . . . . . 241 . . . . . . . 246 . . . . . . . 250

Copyright IBM Corp. 1994, 2000

209

Llamadas de funciones

210

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 22. Descripciones de las llamadas


Este captulo describe las llamadas MQI: v MQCLOSE Cerrar objeto v MQCONN Conectar al gestor de colas v MQDISC Desconectar del gestor de colas v MQGET Obtener mensaje v MQINQ Consultar los atributos de objeto v MQOPEN Abrir objeto v MQPUT Poner mensaje v MQPUT1 Poner un solo mensaje v MQSET Establecer atributos de objeto Nota: Las llamadas asociadas a la conversin de datos, MQXCNVC y MQDATACONVEXIT, se encuentran en el Apndice F. Conversin de datos en la pgina 485.

Convenios utilizados en las descripciones de las llamadas


Para cada llamada, este captulo facilita una descripcin de los parmetros y de la utilizacin de la llamada. Esto va seguido de las invocaciones normales de la llamada y de las declaraciones normales de sus parmetros en el lenguaje de programacin RPG. La descripcin de cada llamada consta de las siguientes secciones: Nombre de la llamada El nombre de la llamada seguido de una breve descripcin de la finalidad de la llamada. Parmetros En cada parmetro, el nombre va seguido de su tipo de datos entre parntesis ( ) y su direccin; por ejemplo: CMPCOD (entero decimal de 9 dgitos) salida Encontrar ms informacin sobre los tipos de datos de estructura en el Captulo 1. Tipos de datos elementales en la pgina 3. La direccin del parmetro puede ser: Entrada El programador debe proporcionar este parmetro. Salida La llamada devuelve este parmetro. Entrada/salida El programador debe proporcionar este parmetro, pero la llamada lo modifica. Encontrar tambin una breve descripcin de la finalidad del parmetro junto con una lista de los valores que puede adoptar. Los dos ltimos parmetros de cada llamada son un cdigo de terminacin y un cdigo de razn. El cdigo de terminacin indica si la llamada se ha
Copyright IBM Corp. 1994, 2000

211

Descripciones de las llamadas


realizado satisfactoriamente, parcialmente, o no se ha realizado en absoluto. El cdigo de razn proporciona ms informacin sobre la realizacin parcial o la anomala de la llamada. Encontrar ms informacin sobre los cdigos de razn y de terminacin en el Apndice A. Cdigos de retorno en la pgina 373. Notas de utilizacin Informacin suplementaria sobre la llamada, que describe la forma de utilizarla y las limitaciones de uso. Invocacin RPG La invocacin normal de la llamada y la declaracin de sus parmetros en RPG. Otros convenios de notacin son: Constantes Los nombres de las constantes se muestran en maysculas; por ejemplo, OOOUT. Matrices En algunas llamadas, los parmetros son matrices de series de caracteres cuyo tamao no es fijo. En las descripciones de estos parmetros, una n minscula representa una constante numrica. Cuando codifique la declaracin de ese parmetro, sustituya la n por el valor numrico que necesite.

212

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 23. MQBACK - Restituir cambios


La llamada MQBACK indica al gestor de colas que todas las operaciones de obtener y poner mensaje que se han producido desde el ltimo punto de sincronismo tienen que restituirse. Los mensajes transferidos como parte de una unidad de trabajo se suprimirn; los mensajes recuperados como parte de una unidad de trabajo se vuelven a incluir en la cola. v En OS/400, esta llamada no est soportada para las aplicaciones en modalidad de compatibilidad.

Sintaxis
MQBACK (HCONN, COMCOD, REASON)

Parmetros
HCONN (entero con signo de 10 dgitos) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. COMCOD (entero con signo de 10 dgitos) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCFAIL La llamada ha fallado. REASON (entero con signo de 10 dgitos) salida Cdigo de razn que califica a COMCOD. Si COMCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si COMCOD es CCFAIL: RC2219 (2219, X'8AB') La llamada MQI reentr antes de que se completase la llamada anterior. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2101 (2101, X'835') Objeto daado. RC2123 (2123, X'84B') El resultado de la operacin de comprometer o restituir es mixto.
Copyright IBM Corp. 1994, 2000

213

RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2195 (2195, X'893') Se ha producido un error inesperado. Vea el Apndice A. Cdigos de retorno en la pgina 373 para obtener ms detalles.

Notas de utilizacin
1. Esta llamada puede utilizarse solamente cuando el propio gestor de colas coordina la unidad de trabajo. Esta es una unidad de trabajo local, donde los cambios afectan solamente a los recursos MQ. En los entornos en los que el gestor de colas no coordina la unidad de trabajo, debe utilizarse la llamada de restituir adecuada en lugar de MQBACK. El entorno tambin puede soportar una restitucin implcita causada por una terminacin anmala de la aplicacin. v En OS/400, esta llamada puede utilizarse para las unidades de trabajo locales coordinadas por el gestor de colas. Esto significa que no debe existir una definicin de compromiso a nivel de trabajo, es decir, no debe haberse emitido el mandato STRCMTCTL con el parmetro CMTSCOPE(*JOB) para el trabajo. 2. Cuando una aplicacin pone u obtiene mensajes de grupos o segmentos de mensajes lgicos, el gestor de colas retiene informacin relacionada con el grupo de mensajes o con el mensaje lgico para las ltimas llamadas MQPUT y MQGET satisfactorias. Esta informacin est asociada al asa de cola e incluye elementos tales como: v Los valores de los campos MDGID, MDSEQ, MDOFF y MDMFL de MQMD. v Indicacin de si el mensaje forma parte de una unidad de trabajo. v Para la llamada MQPUT: indicacin de si el mensaje es permanente o no permanente. El gestor de colas conserva tres juegos de informacin de grupo y de segmento, un juego para cada una de las siguientes llamadas: v La ltima llamada MQPUT satisfactoria (puede formar parte de una unidad de trabajo). v La ltima llamada MQGET satisfactoria que elimin un mensaje de la cola (puede formar parte de una unidad de trabajo). v La ltima llamada MQGET satisfactoria que examin un mensaje de la cola (esta no puede formar parte de una unidad de trabajo). Si la aplicacin pone u obtiene los mensajes como parte de una unidad de trabajo, y la aplicacin decide entonces restituir la unidad de trabajo, la informacin de grupo y de segmento se restaura al valor que tena anteriormente: v La informacin asociada a la llamada MQPUT se restaura al valor que tena antes de la primera llamada MQPUT satisfactoria para esa asa de cola en la unidad de trabajo actual.

214

Consulta de programacin de aplicaciones (ILE RPG)

v La informacin asociada a la llamada MQGET se restaura al valor que tena antes de la primera llamada MQGET satisfactoria para esa asa de cola en la unidad de trabajo actual. Las colas que la aplicacin actualiz una vez iniciada la unidad de trabajo, pero fuera del mbito de la unidad de trabajo, no conseguirn la restauracin de su informacin de grupo y de segmento si se restituye la unidad de trabajo. Restaurar la informacin de grupo y de segmento a su valor anterior cuando se restituye una unidad de trabajo, permite a la aplicacin repartir un grupo de mensajes o un mensaje lgico de gran tamao que conste de muchos segmentos entre varias unidades de trabajo, as como reiniciar en el punto correcto del grupo de mensajes o del mensaje lgico si falla una de las unidades de trabajo. Utilizar varias unidades de trabajo tiene sus ventajas si el gestor de colas local tiene un almacenamiento de cola limitado. Sin embargo, la aplicacin debe conservar suficiente informacin para poder reiniciar las operaciones de poner u obtener mensajes en el punto correcto, en el caso de que se produzca una anomala del sistema. Para obtener detalles sobre cmo reiniciar en el punto correcto tras una anomala del sistema, vea la opcin PMLOGO descrita en el Captulo 14. MQPMO - Opciones de poner mensaje en la pgina 155 y la opcin GMLOGO descrita en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51. Las dems notas de utilizacin solamente son aplicables cuando el gestor de colas coordina las unidades de trabajo: 3. Una unidad de trabajo tiene el mismo mbito que un asa de conexin. Esto significa que todas las llamadas MQ que afectan a una unidad de trabajo concreta deben realizarse utilizando la misma asa de conexin. Las llamadas emitidas utilizando otra asa de conexin (por ejemplo, las llamadas emitidas por otra aplicacin) afectan a otra unidad de trabajo. Vea el parmetro HCONN descrito en el Captulo 27. MQCONN - Conectar gestor de colas en la pgina 231 para obtener informacin sobre el mbito de las asas de conexin. 4. Esta llamada solamente afecta a los mensajes que se han transferido o recuperado como parte de la unidad de trabajo actual. 5. Una aplicacin de ejecucin prolongada que emita llamadas MQGET, MQPUT o MQPUT1 dentro de una unidad de trabajo, pero que nunca emita una llamada de comprometer o restituir, provocar que las colas se llenen de mensajes que no estn disponibles para otras aplicaciones.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQBACK(HCONN : COMCOD : REASON)

El prototipo de definicin para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQBACK PR EXTPROC('MQBACK') D* Asa de conexin D HCONN 10I 0 VALUE D* Cdigo de terminacin D COMCOD 10I 0 D* Cdigo de razn que califica a COMCOD D REASON 10I 0

Captulo 23. MQBACK - Restituir cambios

215

Invocacin RPG

216

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 24. MQBEGIN - Empezar unidad de trabajo


La llamada MQBEGIN empieza una unidad de trabajo que est coordinada por el gestor de colas y que puede implicar a gestores de recursos externos. Esta llamada est soportada en los siguientes entornos: AIX, HP-UX, OS/2, OS/400, Sun Solaris, Windows NT.

Sintaxis
MQBEGIN (HCONN, BEGOP, CMPCOD, REASON)

Parmetros
HCONN (entero con signo de 10 dgitos) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. BEGOP (MQBO) entrada/salida Opciones que controlan la accin de MQBEGIN. Consulte el Captulo 3. MQBO - Opciones de empezar en la pgina 15 para obtener detalles. BEGOP es un parmetro reservado. Los programas escritos en C o S/390 assembler pueden especificar una direccin de parmetro nula, en lugar de especificar la direccin de una estructura MQBO. CMPCOD (entero con signo de 10 dgitos) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCWARN Aviso (la llamada se ha completado parcialmente). CCFAIL La llamada ha fallado. REASON (entero con signo de 10 dgitos) salida Cdigo de razn que califica a CMPCOD. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCWARN: RC2121 (2121, X'849') No se han registrado gestores de recursos participantes.

Copyright IBM Corp. 1994, 2000

217

RC2122 (2122, X'84A') El gestor de recursos participante no est disponible. Si CMPCOD es CCFAIL: RC2134 (2134, X'856') La estructura de opciones de empezar no es vlida. RC2219 (2219, X'8AB') La llamada MQI ha reentrado antes de que se completara la llamada anterior. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2012 (2012, X'7DC') Llamada no vlida en el entorno. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2046 (2046, X'7FE') Las opciones no son vlidas o no son coherentes. RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2195 (2195, X'893') Se ha producido un error inesperado. RC2128 (2128, X'850') La unidad de trabajo ya est iniciada. Para ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Notas de utilizacin
1. La llamada MQBEGIN puede utilizarse para iniciar una unidad de trabajo que est coordinada por el gestor de colas y que puede implicar cambios en los recursos que son propiedad de otros gestores de recursos. El gestor de colas soporta tres tipos de unidades de trabajo: Unidad de trabajo local coordinada por el gestor de colas Es una unidad de trabajo en la que el gestor de colas es el nico gestor de recursos participante, por lo que el gestor de colas hace de coordinador de la unidad de trabajo. v Para iniciar este tipo de unidad de trabajo, deber especificarse la opcin PMSYP o GMSYP en la primera llamada MQPUT, MQPUT1 o MQGET de la unidad de trabajo. No es necesario que la aplicacin emita la llamada MQBEGIN para iniciar la unidad de trabajo. Sin embargo, si se utiliza MQBEGIN, se inicia la unidad de trabajo pero la llamada se completa con CCWARN y el cdigo de razn RC2121. v Para comprometer o restituir este tipo de unidad de trabajo, deben utilizarse las llamadas MQCMIT y MQBACK. Si la aplicacin no emite ninguna de estas dos llamadas, se comprometer la unidad de trabajo si la aplicacin emite la llamada MQDISC, pero se restituir si la aplicacin finaliza sin emitir la llamada MQDISC.

218

Consulta de programacin de aplicaciones (ILE RPG)

Unidad de trabajo global coordinada por el gestor de colas Es una unidad de trabajo en la que el gestor de colas hace de coordinador de la unidad de trabajo, para los recursos MQ y para los recursos que pertenecen a otros gestores de recursos. Dichos gestores de recursos cooperan con el gestor de colas para asegurar que todos los cambios realizados en los recursos de la unidad de trabajo se comprometen o se restituyen juntos. v Para iniciar este tipo de unidad de trabajo, debe utilizarse la llamada MQBEGIN. v Para comprometer o restituir este tipo de unidad de trabajo, deben utilizarse las llamadas MQCMIT y MQBACK. Si la aplicacin no emite ninguna de estas dos llamadas, se comprometer la unidad de trabajo si la aplicacin emite la llamada MQDISC, pero se restituir si la aplicacin finaliza sin emitir la llamada MQDISC. Unidad de trabajo global coordinada externamente Es una unidad de trabajo en la que el gestor de colas es un participante, pero no hace de coordinador de la unidad de trabajo. En vez de ello, existe un coordinador de unidad de trabajo externo con el que coopera el gestor de colas. v Para iniciar este tipo de unidad de trabajo, debe utilizarse la llamada pertinente suministrada por el coordinador externo de la unidad de trabajo. Si se utiliza la llamada MQBEGIN para intentar iniciar la unidad de trabajo, la llamada fallar con el cdigo de razn RC2012. v Para comprometer o restituir este tipo de unidad de trabajo, deben utilizarse las llamadas de comprometer y restituir suministradas por el coordinador externo de la unidad de trabajo; no pueden utilizarse las llamadas MQCMIT y MQBACK. 2. Una aplicacin puede participar solamente en una unidad de trabajo a la vez. La llamada MQBEGIN resulta anmala, con el cdigo de razn RC2128, si ya existe una unidad de trabajo para la aplicacin, sea cual sea el tipo de unidad de trabajo. 3. La llamada MQBEGIN no es vlida en un entorno de cliente MQ. El intento de utilizar la llamada resulta anmalo, con el cdigo de razn RC2012. 4. Cuando el gestor de colas hace de coordinador de la unidad de trabajo para unidades de trabajo globales, los gestores de recursos que pueden participar en la unidad de trabajo se definen en el archivo de configuracin del gestor de colas. | | | | | | | | | | | | | | 5. En OS/400, estn soportados los tres tipos de unidad de trabajo, de la siguiente manera: v Las unidades de trabajo locales coordinadas por el gestor de colas pueden utilizarse solamente cuando no existe una definicin de compromiso a nivel de trabajo, es decir, no debe haberse emitido el mandato STRCMTCTL con el parmetro CMTSCOPE(*JOB) para el trabajo. v Las unidades de trabajo globales coordinadas por el gestor de colas no estn soportadas. v Las unidades de trabajo globales coordinadas externamente pueden utilizarse solamente cuando existe una definicin de compromiso a nivel de trabajo, es decir, debe haberse emitido el mandato STRCMTCTL con el parmetro CMTSCOPE(*JOB) para el trabajo. Si se ha hecho as, las operaciones de OS/400 COMMIT y ROLLBACK son aplicables a los recursos MQ, as como a los recursos que pertenecen a otros gestores de recursos participantes.
Captulo 24. MQBEGIN - Empezar unidad de trabajo

219

Invocacin RPG (ILE)


C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQBEGIN(HCONN : BEGOP : CMPCOD : C REASON)

El prototipo de definicin para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQBEGIN PR EXTPROC('MQBEGIN') D* Asa de conexin D HCONN 10I 0 VALUE D* Opciones que controlan la accin de MQBEGIN D BEGOP 12A D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

220

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 25. MQCLOSE - Cerrar objeto


La llamada MQCLOSE abandona el acceso a un objeto y es lo contrario de la llamada MQOPEN.

Sintaxis
MQCLOSE (HCONN, HOBJ, OPTS, CMPCOD, REASON)

Parmetros
HCONN (entero con signo de 10 dgitos) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. En OS/400 para las aplicaciones que se ejecutan en modalidad de compatibilidad, puede omitirse la llamada MQCONN y especificarse el siguiente valor HCONN: HCDEFH Asa de conexin por omisin. HOBJ (entero con signo de 10 dgitos) entrada/salida Asa de objeto. Esta asa representa el objeto que se est cerrando. El objeto puede ser de cualquier tipo. El valor de HOBJ lo devolvi una llamada MQOPEN anterior. Cuando la llamada se completa satisfactoramente, el gestor de colas establece este parmetro en un valor que no es un asa vlida para el entorno. El valor es: HOUNUH Asa de objeto no utilizable. OPTS (entero con signo de 10 dgitos) entrada Opciones que controlan la accin de MQCLOSE. El parmetro OPTS controla el modo en que se cierra el objeto. Las colas dinmicas permanentes son las nicas que pueden cerrarse de varias formas, ya sea retenindolas o suprimindolas; estas colas tienen el atributo DefinitionType definido con el valor QDPERM (vea el atributo DefinitionType descrito en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311). Las opciones de cerrar aparecen resumidas en la Tabla 47 en la pgina 222. Debe especificarse uno (y solamente uno) de los siguientes valores: CONONE No es necesario el proceso de cierre opcional. Esto debe especificarse para:
Copyright IBM Corp. 1994, 2000

221

v Objetos que no sean colas v Colas predefinidas v Colas dinmicas temporales (pero solo en aquellos casos en los que HOBJ no sea el asa devuelta por la llamada MQOPEN que ha creado la cola). v Listas de distribucin En los dems casos, el objeto se retiene y no se suprime. Si se especifica esta opcin para una cola dinmica temporal: v Se suprime la cola, si la cre la llamada MQOPEN que haba devuelto HOBJ; los mensajes de la cola se depurarn. v En todos los dems casos se retiene la cola (y los mensajes que contenga). Si se especifica esta opcin para una cola dinmica permanente, la cola se retiene y no se suprime. CODEL Suprimir la cola. La cola se suprime si se cumple alguna de las condiciones siguientes: v Se trata de una cola dinmica permanente y no hay mensajes en la cola ni peticiones de transferencia u obtencin no comprometidas pendientes para la cola (ya sea para la tarea actual o para cualquier otra). v Se trata de la cola dinamica temporal que ha creado la llamada MQOPEN que ha devuelto HOBJ. En ese caso, se eliminarn todos los mensajes de la cola. En todos los dems casos la llamada resulta anmala, con el cdigo de razn RC2045, y no se suprime el objeto. COPURG Suprimir la cola, eliminando todos sus mensajes. La cola se suprime si se cumple alguna de las condiciones siguientes: v Se trata de una cola dinmica permanente y no hay peticiones de transferencia u obtencin no comprometidas pendientes (ya sea para la tarea actual o para cualquier otra). v Se trata de la cola dinamica temporal que ha creado la llamada MQOPEN que ha devuelto HOBJ. En todos los dems casos la llamada resulta anmala, con el cdigo de razn RC2045, y no se suprime el objeto.
Tabla 47. Efectos de las opciones MQCLOSE en distintos tipos de objetos y colas. Esta tabla muestra las opciones de cerrar vlidas y si el objeto se retiene o se suprime.
Tipo de objeto o cola Objeto que no sea una cola Cola predefinida Cola dinmica permanente CONONE retenido retenida retenida CODEL no vlido no vlido suprimida, si est vaca y sin actualizaciones pendientes COPURG no vlido no vlido mensajes suprimidos; la cola se suprime si no tiene actualizaciones pendientes

222

Consulta de programacin de aplicaciones (ILE RPG)

Tabla 47. Efectos de las opciones MQCLOSE en distintos tipos de objetos y colas (continuacin). Esta tabla muestra las opciones de cerrar vlidas y si el objeto se retiene o se suprime.
Tipo de objeto o cola Cola dinmica temporal (llamada emitida por el creador de la cola) Cola dinmica temporal (llamada no emitida por el creador de la cola) Lista de distribucin CONONE suprimida retenida retenida CODEL suprimida no vlido no vlido COPURG suprimida no vlido no vlido

CMPCOD (entero con signo de 10 dgitos) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCFAIL La llamada ha fallado. REASON (entero con signo de 10 dgitos) salida Cdigo de razn que califica a CMPCOD. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCWARN: RC2241 (2241, X'8C1') El grupo de mensajes no est completo. RC2242 (2242, X'8C2') El mensaje lgico no est completo. Si CMPCOD es CCFAIL: RC2219 (2219, X'8AB') La llamada MQI reentr antes de que se completase la llamada anterior. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2019 (2019, X'7E3') El asa de objeto no es vlida. RC2035 (2035, X'7F3') No posee autorizacin para acceder. RC2101 (2101, X'835') Objeto daado. RC2045 (2045, X'7FD') La opcin no es vlida para este tipo de objeto. RC2046 (2046, X'7FE') Las opciones no son vlidas o no son coherentes. RC2058 (2058, X'80A') El nombre del gestor de colas no es vlido o es desconocido. RC2059 (2059, X'80B') El gestor de colas no est disponible para conexin. RC2162 (2162, X'872') Se est cerrando el gestor de colas.
Captulo 25. MQCLOSE - Cerrar objeto

223

RC2055 (2055, X'807') La cola contiene uno o ms mensajes o peticiones de poner o de obtener no comprometidas. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2063 (2063, X'80F') Se ha producido un error de seguridad. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2195 (2195, X'893') Se ha producido un error inesperado. Vea el Apndice A. Cdigos de retorno en la pgina 373 para obtener ms detalles.

Notas de utilizacin
1. Cuando una aplicacin emite la llamada MQDISC o termina normal o anmalamente, todos los objetos abiertos por la aplicacin que permanezcan abiertos, se cerrarn automticamente con la opcin CONONE. 2. Los siguientes puntos se aplican si el objeto que va a cerrarse es una cola: v Si las operaciones de la cola se realizaron como parte de una unidad de trabajo, la cola podr cerrarse antes o despus de que se produzca el punto de sincronismo, sin que ello afecte al resultado del mismo. v Si la cola se abri con la opcin OOBRW, el cursor para examinar se destruir. Si la cola vuelve a abrirse posteriormente con la opcin OOBRW, se crea un nuevo cursor para examinar (vea la opcin OOBRW descrita en MQOPEN). v Si actualmente hay un mensaje bloqueado para esta asa en el momento de la llamada MQCLOSE, el bloqueo se liberar (vea la opcin GMLK descrita en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51). 3. Los siguientes puntos se aplican si el objeto que va a cerrarse es una cola dinmica (permanente o temporal): v Si la cola es dinmica, pueden especificarse las opciones CODEL o COPURG, independientemente de las opciones que se hayan especificado la llamada MQOPEN correspondiente. v Cuando se suprime una cola dinmica, todas las llamadas MQGET con la opcin GMWT que estn pendientes en la cola se cancelan y se devuelve el cdigo de razn RC2052. Vea la opcin GMWT descrita en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51. Despus de suprimir una cola dinmica, cualquier llamada (distinta de MQCLOSE) que intente hacer referencia a la cola utilizando otra asa HOBJ adquirida previamente falla con el cdigo de razn RC2052. Tenga en cuenta que, aunque las aplicaciones no pueden acceder a una cola suprimida, la cola no se elimina del sistema y no se liberan los recursos asociados hasta el momento en que se hayan cerrado todas las asas que hacen referencia a la cola y se hayan comprometido o restituido todas las unidades de trabajo que afectan a la cola. v Cuando se suprime una cola dinmica permanente, si el asa HOBJ especificada en la llamada MQCLOSE no es la devuelta por la llamada MQOPEN que cre la cola, se comprueba que el identificador de usuario que se utiliz para validar la llamada MQOPEN tiene autorizacin para suprimir la cola. Si se especific la opcin OOALTU en la llamada MQOPEN, el identificador de usuario comprobado es ODAU.

224

Consulta de programacin de aplicaciones (ILE RPG)

Esta comprobacin no se lleva a cabo si: El asa especificada es la devuelta por la llamada MQOPEN que cre la cola. La cola que se va a suprimir es una cola dinmica temporal. v Cuando se cierra una cola dinmica temporal, si el asa HOBJ especificada en la llamada MQCLOSE es la devuelta por la llamada MQOPEN que cre la cola, se suprime la cola. Esto ocurre sin tener en cuenta las opciones de cerrar especificadas en la llamada MQCLOSE. Si hay mensajes en la cola, se descartan; no se generan mensajes de informe. Si hay unidades de trabajo no comprometidas que afectan a la cola, se suprime la cola y sus mensajes igualmente, pero ello no provoca anomalas en las unidades de trabajo. No obstante, como se describe ms arriba, los recursos asociados con las unidades de trabajo no se liberan hasta que cada una de las unidades de trabajo est comprometida o restituida. 4. Los siguientes puntos se aplican si el objeto que va a cerrarse es una lista de distribucin: v La nica opcin de cierre vlida para una lista de distribucin es CONONE; la llamada resulta anmala, con el cdigo de razn RC2046 o RC2045 si hay otras opciones especificadas. v Cuando se cierra una lista de distribucin, no se devuelven cdigos de terminacin ni cdigos de razn individuales para las colas de la lista; solamente estn disponibles los parmetros CMPCOD y REASON de la llamada para diagnstico. Si se produce una anomala al cerrar una de las colas, el gestor de colas contina el proceso e intenta cerrar las colas restantes de la lista de distribucin. Los parmetros CMPCOD y REASON de la llamada se definen entonces con la informacin de retorno que describe la anomala. As es posible que el cdigo de terminacin sea CCFAIL, aunque la mayora de colas se cerraron satisfactoriamente. La cola que ha encontrado el error no est identificada. Si hay una anomala en ms de una cola, no se define de qu anomala se informa en los parmetros CMPCOD y REASON. 5. En OS/400, si la aplicacin se ha conectado implcitamente cuando se ha emitido la primera llamada MQOPEN, se producir una MQDISC implcita al emitirse la ltima MQCLOSE. Solamente las aplicaciones que se ejecutan en modalidad de compatibilidad pueden conectarse de forma implcita; las dems aplicaciones deben emitir la llamada MQCONN o MQCONNX para conectar con el gestor de colas de forma explcita.

Captulo 25. MQCLOSE - Cerrar objeto

225

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQCLOSE(HCONN : HOBJ : OPTS : C CMPCOD : REASON)

El prototipo de definicin para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQCLOSE PR EXTPROC('MQCLOSE') D* Asa de conexin D HCONN 10I 0 VALUE D* Asa de objeto D HOBJ 10I 0 D* Opciones que controlan la accin de MQCLOSE D OPTS 10I 0 VALUE D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

226

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 26. MQCMIT - Comprometer cambios


La llamada MQCMIT indica al gestor de colas que la aplicacin ha llegado a un punto de sincronismo y que todas las operaciones de obtener y poner mensajes que se han producido desde el ltimo punto de sincronismo sern permanentes. Los mensajes transferidos como parte de una unidad de trabajo se ponen a disposicin de otras aplicaciones; los mensajes recuperados como parte de una unidad de trabajo se suprimen. v En OS/400, esta llamada no est soportada para las aplicaciones en modalidad de compatibilidad.

Sintaxis
MQCMIT (HCONN, COMCOD, REASON)

Parmetros
HCONN (entero con signo de 10 dgitos) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. COMCOD (entero con signo de 10 dgitos) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCWARN Aviso (la llamada se ha completado parcialmente). CCFAIL La llamada ha fallado. REASON (entero con signo de 10 dgitos) salida Cdigo de razn que califica a COMCOD. Si COMCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si COMCOD es CCWARN: RC2003 (2003, X'7D3') La unidad de trabajo ha encontrado un error muy grave o se ha restituido. RC2124 (2124, X'84C') El resultado de la operacin de compromiso est pendiente. Si COMCOD es CCFAIL:

Copyright IBM Corp. 1994, 2000

227

RC2219 (2219, X'8AB') La llamada MQI reentr antes de que se completase la llamada anterior. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2101 (2101, X'835') Objeto daado. RC2123 (2123, X'84B') El resultado de la operacin de comprometer o restituir es mixto. RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2195 (2195, X'893') Se ha producido un error inesperado. Vea el Apndice A. Cdigos de retorno en la pgina 373 para obtener ms detalles.

Notas de utilizacin
1. Esta llamada puede utilizarse solamente cuando el propio gestor de colas coordina la unidad de trabajo. Esta es una unidad de trabajo local, donde los cambios afectan solamente a los recursos MQ. En los entornos en los que el gestor de colas no coordina la unidad de trabajo, debe utilizarse la llamada de comprometer adecuada en lugar de MQCMIT. El entorno tambin puede soportar una operacin de comprometer implcita causada por una terminacin anmala de la aplicacin. v En OS/400, esta llamada puede utilizarse para las unidades de trabajo locales coordinadas por el gestor de colas. Esto significa que no debe existir una definicin de compromiso a nivel de trabajo, es decir, no debe haberse emitido el mandato STRCMTCTL con el parmetro CMTSCOPE(*JOB) para el trabajo. 2. Cuando una aplicacin transfiere u obtiene mensajes en grupos o segmentos de mensajes lgicos, el gestor de colas retiene informacin relacionada con el grupo de mensajes y el mensaje lgico para las ltimas llamadas MQPUT y MQGET satisfactorias. Esta informacin est asociada al asa de cola e incluye elementos tales como: v Los valores de los campos MDGID, MDSEQ, MDOFF y MDMFL de MQMD. v Indicacin de si el mensaje forma parte de una unidad de trabajo. v Para la llamada MQPUT: indicacin de si el mensaje es permanente o no permanente. Cuando se compromete una unidad de trabajo, el gestor de colas retiene la informacin de grupos y segmentos, y la aplicacin puede continuar transfiriendo u obteniendo mensajes del grupo de mensajes o mensaje lgico actuales. Retener la informacin de grupos y segmentos cuando se compromete una unidad de trabajo, permite a la aplicacin repartir un grupo de mensajes o un

228

Consulta de programacin de aplicaciones (ILE RPG)

mensaje lgico de gran tamao que conste de muchos segmentos entre varias unidades de trabajo. Utilizar varias unidades de trabajo tiene sus ventajas si el gestor de colas local tiene un almacenamiento de cola limitado. Sin embargo, la aplicacin debe conservar suficiente informacin para poder reiniciar las operaciones de poner u obtener mensajes en el punto correcto, en el caso de que se produzca una anomala del sistema. Para obtener detalles sobre cmo reiniciar en el punto correcto tras una anomala del sistema, vea la opcin PMLOGO descrita en el Captulo 14. MQPMO - Opciones de poner mensaje en la pgina 155 y la opcin GMLOGO descrita en el Captulo 8. MQGMO Opciones de obtener mensaje en la pgina 51. Las dems notas de utilizacin solamente son aplicables cuando el gestor de colas coordina las unidades de trabajo: 3. Una unidad de trabajo tiene el mismo mbito que un asa de conexin. Esto significa que todas las llamadas MQ que afectan a una unidad de trabajo concreta deben realizarse utilizando la misma asa de conexin. Las llamadas emitidas utilizando otra asa de conexin (por ejemplo, las llamadas emitidas por otra aplicacin) afectan a otra unidad de trabajo. Vea el parmetro HCONN descrito en MQCONN para obtener informacin sobre el mbito de las asas de conexin. 4. Esta llamada solamente afecta a los mensajes que han transferido o recuperado como parte de la unidad de trabajo actual. 5. Si una aplicacin finaliza sin emitir la llamada MQCMIT o MQBACK cuando hay cambios no comprometidos dentro de una unidad de trabajo, la disposicin de esos cambios depender de cmo finalice la aplicacin: v Si la aplicacin emite la llamada MQDISC antes de finalizar, esa llamada provocar que se comprometa la unidad de trabajo. v Si la aplicacin no emite la llamada MQDISC pero finaliza normalmente de todos modos, se restituye la unidad de trabajo. v Si la aplicacin finaliza de forma anmala, se restituye la unidad de trabajo, lo que tiene el mismo efecto que el que la aplicacin emita la llamada MQBACK. 6. Una aplicacin de ejecucin prolongada que emita llamadas MQGET, MQPUT o MQPUT1 dentro de una unidad de trabajo, pero que nunca emita una llamada de comprometer o restituir, provocar que las colas se llenen de mensajes que no estn disponibles para otras aplicaciones.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQCMIT(HCONN : COMCOD : REASON)

El prototipo de definicin para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQCMIT PR EXTPROC('MQCMIT') D* Asa de conexin D HCONN 10I 0 VALUE D* Cdigo de terminacin D COMCOD 10I 0 D* Cdigo de razn que califica a COMCOD D REASON 10I 0

Captulo 26. MQCMIT - Comprometer cambios

229

Invocacin RPG

230

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 27. MQCONN - Conectar gestor de colas


La llamada MQCONN conecta un programa de aplicacin a un gestor de colas. Facilita un asa de conexin de gestor de colas que la aplicacin utiliza en posteriores llamadas de gestin de colas de mensajes. v En OS/400, las aplicaciones que se ejecutan en modalidad de compatibilidad no tienen que emitir esta llamada. Estas aplicaciones se conectan automticamente al gestor de colas cuando emiten la primera llamada MQOPEN. Sin embargo, siguen aceptndose las llamadas MQCONN y MQDISC desde aplicaciones OS/400. Las dems aplicaciones (es decir, las que no se ejecutan en modalidad de compatibilidad) deben utilizar la llamada MQCONN o MQCONNX para conectarse al gestor de colas y la llamada MQDISC para desconectarse de l. Este es el estilo de programacin recomendado.

Sintaxis
MQCONN (QMNAME, HCONN, CMPCOD, REASON)

Parmetros
QMNAME (serie de caracteres de 48 bytes) entrada Nombre del gestor de colas. Es el nombre del gestor de colas al que la aplicacin desea conectarse. El nombre puede contener los siguientes caracteres: v Caracteres alfabticos en maysculas (de A a Z) v Caracteres alfabticos en minsculas (de a a z) v Dgitos numricos (de 0 a 9) v Punto (.), barra inclinada (/), subrayado (_), signo de porcentaje (%) El nombre no debe contener blancos iniciales ni intercalados, pero puede contener blancos finales. Puede utilizarse un carcter nulo para indicar el final de los datos significativos del nombre; el carcter nulo y los caracteres que le sigan se tratarn como blancos. Se aplican las siguientes restricciones en los entornos indicados: v En OS/400, los nombres que contienen caracteres en minsculas, barras inclinadas o signos de porcentaje, deben ir entre comillas cuando se especifican en mandatos. No deben especificarse dichas comillas en el parmetro QMNAME. Si el nombre consta solo de blancos, se utilizar el nombre del gestor de colas por omisin. El nombre especificado para QMNAME debe ser el nombre de un gestor de colas al que se pueda conectar. Aplicaciones de cliente MQ: Para las aplicaciones de cliente MQ, se intenta una conexin para cada definicin de canal de conexin de cliente con el nombre de gestor de colas especificado, hasta que una se realiza
Copyright IBM Corp. 1994, 2000

231

satisfactoriamente. El gestor de colas, no obstante, debe tener el mismo nombre que el nombre especificado. Si se especifica un nombre que sea todo en blanco, se intentar cada canal de conexin de cliente con un nombre de gestor de colas que sea todo en blanco hasta que uno resulte satisfactorio. En este caso no se realiza la comprobacin del nombre del gestor de colas. Grupos de gestores de colas: Si el nombre especificado empieza por un asterisco (*), el gestor de colas real con el que se establece la conexin podra tener un nombre distinto del especificado por la aplicacin. El nombre especificado (sin el asterisco) define un grupo de gestores de colas que son elegibles para conexin. La implementacin selecciona uno del grupo probndolos de uno en uno (sin orden definido) hasta que se encuentra uno con el que puede establecerse la conexin. Si ninguno de los gestores de colas del grupo est disponible para conexin, la llamada falla. Solo se realiza un intento con cada gestor de colas. Si se especifica un asterisco solo para el nombre, se utiliza un grupo de gestores de colas por omisin definidos por la implementacin. Los grupos de gestores de colas solamente estn soportados para las aplicaciones que se ejecutan en un entorno de cliente; la llamada resulta anmala si una aplicacin no de cliente especifica un nombre de gestor de colas que empiece por un asterisco. Un grupo se define suministrando varias definiciones de canal de conexin de cliente con el mismo nombre de gestor de colas (el nombre especificado sin el asterisco), para comunicarse con cada uno de los gestores de colas del grupo. El grupo por omisin se define suministrando una o varias definiciones de canal de conexin de cliente, cada una con un nombre de gestor de colas en blanco (especificar un nombre con todo blancos tiene, por consiguiente, el mismo efecto que especificar un solo asterisco para el nombre para una aplicacin de cliente). Tras conectarse a un gestor de colas de un grupo, una aplicacin puede especificar blancos de la forma habitual en los campos de nombre de gestor de colas que hay en los descriptores de mensaje y de objeto, para indicar el nombre del gestor de colas al que la aplicacin se ha conectado realmente (el gestor de colas local). Si la aplicacin necesita conocer este nombre, puede emitirse la llamada MQINQ para consultar el atributo de gestor de colas QMgrName. Poner un asterisco como prefijo del nombre de conexin de esta forma implica que la aplicacin no es sensible a qu gestor de colas del grupo est conectada la aplicacin. Esto no ser adecuado para determinados tipos de aplicacin, por ejemplo las que necesiten obtener mensajes de una cola concreta de un gestor de colas concreto; tales aplicaciones no deben poner un asterisco como prefijo del nombre. El uso de grupos de gestores de colas es apropiado para las aplicaciones que transfieren mensajes y/u obtienen mensajes de colas dinmicas temporales que ellas mismas han creado. Observe que si se especifica un asterisco, la longitud mxima del resto del nombre es de 47 caracteres. La longitud de este parmetro la indica LNQMN. HCONN (entero con signo de 10 dgitos) salida Asa de conexin.

232

Consulta de programacin de aplicaciones (ILE RPG)

Esta asa representa la conexin con el gestor de colas. Debe especificarse en todas las llamadas de gestin de colas de mensajes ulteriores emitidas por la aplicacin. Esto deja de ser vlido cuando se emite la llamada MQDISC o cuando termina la unidad de proceso que define el mbito del asa. El mbito del asa est restringido a la unidad de proceso en paralelo ms pequea soportada por la plataforma en la que se ejecuta la aplicacin; el asa deja de ser vlida fuera de la unidad del proceso en paralelo desde la que se ha emitido la llamada MQCONN. v En OS/400, el mbito del asa es el trabajo que emite la llamada. En OS/400 para las aplicaciones que se ejecutan en modalidad de compatibilidad, el valor devuelto es: HCDEFH Asa de conexin por omisin. CMPCOD (entero con signo de 10 dgitos) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCWARN Aviso (la llamada se ha completado parcialmente). CCFAIL La llamada ha fallado. REASON (entero con signo de 10 dgitos) salida Cdigo de razn que califica a CMPCOD. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCWARN: RC2002 (2002, X'7D2') Aplicacin ya conectada. Si CMPCOD es CCFAIL: RC2219 (2219, X'8AB') La llamada MQI reentr antes de que se completase la llamada anterior. RC2267 (2267, X'8DB') No se ha podido cargar la rutina de salida de carga de trabajo de clster. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2273 (2273, X'8E1') Error al procesar la llamada MQCONN. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2035 (2035, X'7F3') No posee autorizacin para acceder. RC2137 (2137, X'859') El objeto no se ha abierto satisfactoriamente.

| | |

| |

| |

Captulo 27. MQCONN - Conectar gestor de colas

233

RC2058 (2058, X'80A') El nombre del gestor de colas no es vlido o es desconocido. RC2059 (2059, X'80B') El gestor de colas no est disponible para conexin. RC2161 (2161, X'871') El gestor de colas est en reposo. RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2063 (2063, X'80F') Se ha producido un error de seguridad. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2195 (2195, X'893') Se ha producido un error inesperado. Para ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Notas de utilizacin
1. El gestor de colas con el que se establece la conexin mediante la llamada MQCONN recibe el nombre de gestor de colas local. 2. Las colas que pertenecen al gestor de colas local aparecen ante la aplicacin como colas locales. Es posible transferir y obtener mensajes de colas locales. Las colas que pertenecen a gestores de colas remotos aparecen como colas remotas. Es posible transferir mensajes a colas remotas, pero no obtenerlos. 3. Si el gestor de colas falla mientras se est ejecutando una aplicacin, esta debe volver a emitir la llamada MQCONN para poder obtener una nueva asa de conexin para utilizarla en las llamadas MQ subsiguientes. La aplicacin puede emitir la llamada MQCONN peridicamente hasta que resulte satisfactoria. Si una aplicacin no est segura de si est conectada al gestor de colas, la aplicacin puede emitir sin exponerse a ningn riesgo una llamada MQCONN para obtener un asa de conexin. Si la aplicacin ya est conectada, el asa devuelta es la misma que la que devolvi la llamada MQCONN anterior, pero con el cdigo de terminacin CCWARN y el cdigo de razn RC2002. 4. La aplicacin, cuando haya terminado de utilizar las llamadas MQ, debe utilizar la llamada MQDISC para desconectarse del gestor de colas. 5. En OS/400, las aplicaciones escritas para releases anteriores del gestor de colas pueden ejecutarse sin necesidad de recompilarse. Esto se denomina modalidad de compatibilidad. Esta modalidad de operacin proporciona un entorno de ejecucin compatible para las aplicaciones. Comprende lo siguiente: v El programa de servicio AMQZSTUB que reside en la biblioteca QMQM. AMQZSTUB proporciona la misma interfaz pblica que los releases anteriores y tiene la misma signatura. Este programa de servicio puede utilizarse para acceder a MQI a travs de llamadas de procedimiento enlazadas. v El programa QMQM que reside en la biblioteca QMQM. QMQM proporciona un medio para acceder a MQI a travs de llamadas de programa dinmicas.

234

Consulta de programacin de aplicaciones (ILE RPG)

v Los programas MQCLOSE, MQCONN, MQDISC, MQGET, MQINQ, MQOPEN, MQPUT, MQPUT1 y MQSET que residen en la biblioteca QMQM. Estos programas tambin proporcionan un medio de acceder a MQI a travs de llamadas de programa dinmicas, pero con una lista de parmetros que corresponde con las descripciones estndar de las llamadas MQ. Estas tres interfaces no incluyen las posibilidades que se introdujeron en la versin 5.1. Por ejemplo, las llamadas MQBACK, MQCMIT y MQCONNX no estn soportadas. Estas interfaces solo soportan aplicaciones monohebra. El programa de servicio LIBMQM proporciona soporte para las nuevas llamadas MQ en aplicaciones monohebra y el programa de servicio LIBMQM_R proporciona soporte para todas las llamadas MQ en aplicaciones multihebra.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQCONN(QMNAME : HCONN : CMPCOD : C REASON)

El prototipo de definicin para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQCONN PR EXTPROC('MQCONN') D* Nombre del gestor de colas D QMNAME 48A D* Asa de conexin D HCONN 10I 0 D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

Captulo 27. MQCONN - Conectar gestor de colas

235

236

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 28. MQCONNX - Conectar gestor de colas (ampliado)


La llamada MQCONNX conecta un programa de aplicacin a un gestor de colas. Proporciona un asa de conexin de gestor de colas que la aplicacin utiliza en las llamadas MQ subsiguientes. La llamada MQCONNX es similar a la llamada MQCONN, excepto en que MQCONNX permite que se especifiquen opciones para controlar la forma en que funciona la llamada. v En OS/400, esta llamada no est soportada para las aplicaciones en modalidad de compatibilidad.

Sintaxis
MQCONNX (QMNAME, CNOPT, HCONN, CMPCOD, REASON)

Parmetros
QMNAME (serie de caracteres de 48 bytes) entrada Nombre del gestor de colas. Vea el parmetro QMNAME descrito en el Captulo 27. MQCONN - Conectar gestor de colas en la pgina 231 para obtener detalles. CNOPT (MQCNO) entrada/salida Opciones que controlan la accin de MQCONNX. Vea el Captulo 5. MQCNO - Opciones de conectar en la pgina 31 para obtener detalles. HCONN (entero con signo de 10 dgitos) salida Asa de conexin. Vea el parmetro HCONN descrito en el Captulo 27. MQCONN - Conectar gestor de colas en la pgina 231 para obtener detalles. CMPCOD (entero con signo de 10 dgitos) salida Cdigo de terminacin. Vea el parmetro CMPCOD descrito en el Captulo 27. MQCONN - Conectar gestor de colas en la pgina 231 para obtener detalles. REASON (entero con signo de 10 dgitos) salida Cdigo de razn que califica a CMPCOD. Vea el parmetro REASON descrito en el Captulo 27. MQCONN - Conectar gestor de colas en la pgina 231 para obtener detalles sobre los posibles cdigos de razn. Los siguientes cdigos de razn adicionales pueden ser devueltos por la llamada MQCONNX: Si CMPCOD es CCFAIL:
Copyright IBM Corp. 1994, 2000

237

RC2278 (2278, X'8E6') Los campos de conexin de cliente no son vlidos. RC2139 (2139, X'85B') La estructura de opciones de conectar no es vlida. RC2046 (2046, X'7FE') Las opciones no son vlidas o no son coherentes. Para ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQCONNX(QMNAME : CNOPT : HCONN : C CMPCOD : REASON)

El prototipo de definicin para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQCONNX PR EXTPROC('MQCONNX') D* Nombre del gestor de colas D QMNAME 48A D* Opciones que controlan la accin de MQCONNX D CNOPT 32A D* Asa de conexin D HCONN 10I 0 D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

238

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 29. MQDISC - Desconectar gestor de colas


La llamada MQDISC interrumpe la conexin entre el gestor de colas y el programa de aplicacin y es lo contrario de la llamada MQCONN o MQCONNX. En OS/400 para las aplicaciones que se ejecutan en modalidad de compatibilidad, esta llamada no es necesaria. Vea el Captulo 27. MQCONN - Conectar gestor de colas en la pgina 231 para obtener ms informacin.

Sintaxis
MQDISC (HCONN, CMPCOD, REASON)

Parmetros
HCONN (entero con signo de 10 dgitos) entrada/salida Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. En OS/400 para las aplicaciones que se ejecutan en modalidad de compatibilidad, puede omitirse la llamada MQCONN y especificarse el siguiente valor HCONN: HCDEFH Asa de conexin por omisin. Cuando la llamada se completa satisfactoriamente, el gestor de colas establece HCONN en un valor que no es un asa vlida para el entorno. El valor es: HCUNUH Asa de conexin no utilizable. CMPCOD (entero con signo de 10 dgitos) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCWARN Aviso (la llamada se ha completado parcialmente). CCFAIL La llamada ha fallado. REASON (entero con signo de 10 dgitos) salida Cdigo de razn que califica a CMPCOD. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCFAIL:
Copyright IBM Corp. 1994, 2000

239

RC2219 (2219, X'8AB') La llamada MQI reentr antes de que se completase la llamada anterior. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2058 (2058, X'80A') El nombre del gestor de colas no es vlido o es desconocido. RC2059 (2059, X'80B') El gestor de colas no est disponible para conexin. RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2195 (2195, X'893') Se ha producido un error inesperado. Para ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Notas de utilizacin
1. Si se emite una llamada MQDISC mientras la aplicacin sigue teniendo objetos abiertos, dichos objetos se cerrarn implcitamente y las opciones de cerrar se establecen en CONONE. 2. En OS/400 para las aplicaciones que se ejecutan en modalidad de compatibilidad, no es necesario utilizar esta llamada; vea la llamada MQCONN para conocer ms detalles.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQDISC(HCONN : CMPCOD : REASON)

El prototipo de definicin para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQDISC PR EXTPROC('MQDISC') D* Asa de conexin D HCONN 10I 0 D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

240

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 30. MQGET - Obtener mensaje


La llamada MQGET recupera un mensaje de una cola local que se ha abierto utilizando la llamada MQOPEN.

Sintaxis
MQGET (HCONN, HOBJ, MSGDSC, GMO, BUFLEN, BUFFER, DATLEN, CMPCOD, REASON)

Parmetros
HCONN (entero con signo de 10 dgitos) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. En OS/400 para las aplicaciones que se ejecutan en modalidad de compatibilidad, puede omitirse la llamada MQCONN y especificarse el siguiente valor HCONN: HCDEFH Asa de conexin por omisin. HOBJ (entero con signo de 10 dgitos) entrada Asa de objeto. Esta asa representa la cola de la que debe recuperarse el mensaje. El valor de HOBJ lo devolvi una llamada MQOPEN anterior. La cola debe haberse abierto con una o ms de las opciones siguientes (vea el Captulo 32. MQOPEN Abrir objeto en la pgina 261 para ms detalles): OOINPS OOINPX OOINPQ OOBRW MSGDSC (MQMD) entrada/salida Descriptor de mensaje. Esta estructura describe los atributos del mensaje necesario y los del mensaje recuperado. Vea el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para obtener detalles. Si BUFLEN es inferior a la longitud del mensaje, el gestor de colas rellena MSGDSC igualmente, independientemente de si se ha especificado GMATM en el parmetro GMO (vea el campo GMOPT descrito en el Captulo 8. MQGMO Opciones de obtener mensaje en la pgina 51). Si la aplicacin proporciona un MQMD de la versin 1, el mensaje devuelto tiene un MQMDE como prefijo de los datos del mensaje de aplicacin, pero solamente si uno o varios de los campos del MQMDE tiene un valor no por

Copyright IBM Corp. 1994, 2000

241

omisin. Si todos los campos del MQMDE tienen valores por omisin, se omite el MQMDE. El nombre de formato FMMDE en el campo MDFMT de MQMD indica que ha un MQMDE presente. GMO (MQGMO) entrada/salida Opciones que controlan la accin de MQGET. Vea el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51 para obtener detalles. BUFLEN (entero con signo de 10 dgitos) entrada Longitud en bytes del rea BUFFER. Puede especificarse cero para los mensajes que no tienen datos, o si tiene que eliminarse el mensaje de la cola y descartarse los datos (en este caso debe especificarse GMATM). Nota: La longitud del mensaje ms largo que puede leerse desde la cola se indica en el atributo de cola local MaxMsgLength; vea el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311. BUFFER (serie de bits de 1 byteBUFLEN) salida rea que contendr los datos del mensaje. Si BUFLEN es inferior a la longitud del mensaje, se trasladar a BUFFER todo el trozo del mensaje que pueda contener; esto sucede independientemente de si se ha especificado GMATM en el parmetro GMO (vea el campo GMOPT descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51 para obtener ms informacin). El juego de caracteres y la codificacin de datos en el BUFFER se indican, respectivamente, en los campos MDCSI y MDENC devueltos en el parmetro MSGDSC. Si tienen valores distintos de los que necesita el receptor, este deber convertir los datos del mensaje de la aplicacin para que tengan el juego de caracteres y la codificacin necesarios. Puede utilizarse la opcin GMCONV con una rutina de salida escrita por usuario para realizar la conversin de los datos del mensaje (vea el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51 para obtener detalles sobre esta opcin). Nota: Los dems parmetros de la llamada MQGET deben tener el juego de caracteres y la codificacin del gestor de colas local (facilitados, respectivamente, por el atributo CodedCharSetId del gestor de colas y ENNAT). Si la llamada falla, el contenido del almacenamiento intermedio an puede haber cambiado. DATLEN (entero con signo de 10 dgitos) salida Longitud del mensaje. Indica la longitud en bytes de los datos de la aplicacin en el mensaje. Si es mayor que BUFLEN, solo se devolvern los bytes de BUFLEN en el parmetro BUFFER (es decir, que el mensaje se truncar). Si el valor es cero, significa que el mensaje no contiene datos de la aplicacin. Si BUFLEN es inferior a la longitud del mensaje, el gestor de colas rellena DATLEN igualmente, independientemente de si se ha especificado GMATM en el parmetro GMO (vea el campo GMOPT descrito en el Captulo 8. MQGMO -

242

Consulta de programacin de aplicaciones (ILE RPG)

Opciones de obtener mensaje en la pgina 51 para obtener ms informacin). Esto permite a la aplicacin determinar el tamao del almacenamiento intermedio necesario para introducir los datos del mensaje y despus reemitir la llamada con un almacenamiento intermedio que tenga el tamao adecuado. No obstante, si se especifica la opcin GMCONV y los datos del mensaje convertidos no caben en el BUFFER, el valor que se devuelve para DATLEN es: v La longitud de los datos no convertidos, para formatos definidos por el gestor de colas. En este caso, si la naturaleza de los datos hace que aumenten durante la conversin, la aplicacin debe asignar un almacenamiento intermedio algo mayor que el valor devuelto por el gestor de colas para DATLEN. v El valor devuelto por la rutina de salida de conversin de datos, para formatos definidos por la aplicacin. CMPCOD (entero con signo de 10 dgitos) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCWARN Aviso (la llamada se ha completado parcialmente). CCFAIL La llamada ha fallado. REASON (entero con signo de 10 dgitos) salida Cdigo de razn que califica a CMPCOD. Los cdigos de razn listados ms abajo son los que el gestor de colas puede devolver para el parmetro REASON. Si la aplicacin especifica la opcin GMCONV y se llama a una rutina de salida escrita por usuario para convertir parte de los datos del mensaje o todos ellos, ser la rutina de salida la que decida qu valor se devuelve para el parmetro REASON. Como resultado, son posibles valores distintos a los indicados a continuacin. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCWARN: RC2120 (2120, X'848') Los datos convertidos son demasiado grandes para el almacenamiento intermedio. RC2190 (2190, X'88E') La serie convertida es demasiado grande para el campo. RC2150 (2150, X'866') La serie DBCS no es vlida. RC2110 (2110, X'83E') Formato de mensaje no vlido. RC2243 (2243, X'8C3') Los segmentos del mensaje tienen CCSID distintos. RC2244 (2244, X'8C4') Los segmentos del mensaje tienen codificaciones distintas.

| | | |

Captulo 30. MQGET - Obtener mensaje

243

RC2209 (2209, X'8A1') No hay ningn mensaje bloqueado. RC2119 (2119, X'847') Los datos del mensaje no se han convertido. | | RC2145 (2145, X'861') Parmetro almacenamiento intermedio origen no vlido. RC2111 (2111, X'83F') El identificador de juego de caracteres codificado origen no es vlido. RC2113 (2113, X'841') Codificacin de decimal empaquetado del mensaje no reconocida. RC2114 (2114, X'842') Codificacin de coma flotante del mensaje no reconocida. RC2112 (2112, X'840') Codificacin de entero origen no reconocida. | | | | RC2143 (2143, X'85F') Parmetro longitud origen no vlido. RC2146 (2146, X'862') Parmetro almacenamiento intermedio destino no vlido. RC2115 (2115, X'843') El identificador de juego de caracteres codificado destino no es vlido. RC2117 (2117, X'845') Codificacin de decimal empaquetado especificada por receptor no reconocida. RC2118 (2118, X'846') Codificacin de coma flotante especificada por receptor no reconocida. RC2116 (2116, X'844') Codificacin de entero destino no reconocida. RC2079 (2079, X'81F') Se ha devuelto un mensaje truncado (el proceso se ha completado). RC2080 (2080, X'820') Se ha devuelto un mensaje truncado (el proceso no se ha completado). Si CMPCOD es CCFAIL: RC2004 (2004, X'7D4') El parmetro almacenamiento intermedio no es vlido. RC2005 (2005, X'7D5') El parmetro longitud de almacenamiento intermedio no es vlido. RC2219 (2219, X'8AB') La llamada MQI reentr antes de que se completase la llamada anterior. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2010 (2010, X'7DA') El parmetro longitud de datos no es vlido. RC2016 (2016, X'7E0') Se han inhibido las obtenciones para la cola. RC2186 (2186, X'88A') Estructura no vlida de las opciones de obtener mensaje.

244

Consulta de programacin de aplicaciones (ILE RPG)

RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2019 (2019, X'7E3') El asa de objeto no es vlida. RC2241 (2241, X'8C1') El grupo de mensajes no est completo. RC2242 (2242, X'8C2') El mensaje lgico no est completo. RC2259 (2259, X'8D3') Especificacin de examinar incoherente. RC2245 (2245, X'8C5') Especificacin de unidad de trabajo incoherente. RC2246 (2246, X'8C6') El mensaje bajo el cursor no es vlido para recuperacin. RC2247 (2247, X'8C7') Las opciones de emparejar no son vlidas. RC2026 (2026, X'7EA') El descriptor de mensaje no es vlido. RC2250 (2250, X'8CA') El nmero de secuencia del mensaje no es vlido. RC2033 (2033, X'7F1') No hay ningn mensaje disponible. RC2034 (2034, X'7F2') El cursor para examinar no est colocado en el mensaje. RC2036 (2036, X'7F4') La cola no se ha abierto para examinar. RC2037 (2037, X'7F5') La cola no se ha abierto para entrada. RC2041 (2041, X'7F9') La definicin de un objeto ha cambiado desde su apertura. RC2101 (2101, X'835') Objeto daado. RC2046 (2046, X'7FE') Las opciones no son vlidas o no son coherentes. RC2052 (2052, X'804') La cola se ha suprimido. RC2058 (2058, X'80A') El nombre del gestor de colas no es vlido o es desconocido. RC2059 (2059, X'80B') El gestor de colas no est disponible para conexin. RC2161 (2161, X'871') El gestor de colas est en reposo. RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2024 (2024, X'7E8') No pueden manejarse ms mensajes dentro de la unidad de trabajo actual. RC2072 (2072, X'818') El soporte de punto de sincronismo no est disponible.

Captulo 30. MQGET - Obtener mensaje

245

RC2195 (2195, X'893') Se ha producido un error inesperado. RC2255 (2255, X'8CF') La unidad de trabajo no est disponible para que la utilice el gestor de colas. RC2090 (2090, X'82A') El intervalo de espera de MQGMO no es vlido. RC2256 (2256, X'8D0') Se ha suministrado una versin errnea de MQGMO. RC2257 (2257, X'8D1') Se ha suministrado una versin ernea de MQMD. Para ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Notas de utilizacin
1. Normalmente, el mensaje recuperado se suprime de la cola. Esta supresin puede producirse como parte de la llamada MQGET propiamente dicha o como parte de un punto de sincronismo. La supresin del mensaje no se produce si se especifica una opcin GMBRWF o GMBRWN en el parmetro GMO (vea el campo GMOPT descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51). Si se especifica la opcin GMLK con una de las opciones para examinar, se bloquear el mensaje examinado para que solo pueda verlo esta asa. Si se especifica la opcin GMUNLK, se desbloquear el mensaje bloqueado previamente. En este caso no se recupera ningn mensaje, ni se comprueban ni alteran los parmetros MSGDSC, BUFLEN, BUFFER y DATLEN. 2. Si la aplicacin que emite la llamada MQGET est ejecutndose como un cliente de MQ, es posible que el mensaje recuperado se pierda si, durante el proceso de la llamada MQGET, el cliente de MQ se termina de forma anormal o se interrumple la conexin del cliente. Esto puede darse debido a que el sustituto que se ejecuta en la plataforma del gestor de colas y que emite la llamada MQGET en nombre del cliente, no puede detectar la prdida del cliente hasta que el sustituto est a punto de devolver el mensaje al cliente; esto sucede despus de haber eliminado el mensaje de la cola. Esto puede producirse en los mensajes persistentes y en los no persistentes. El riesgo de perder mensajes de esta forma puede eliminarse recuperando siempre los mensajes dentro de unidades de trabajo (es decir, especificando la opcin GMSYP en la llamada MQGET y utilizando las llamadas MQCMIT o MQBACK para comprometer o restituir la unidad de trabajo al completarse el proceso del mensaje). Si se especifica GMSYP y el cliente termina de forma anmala o se interrumpe la conexin, el sustituto restituye la unidad de trabajo en el gestor de colas y el mensaje se reincorpora a la cola. En principio, puede darse la misma situacin con las aplicaciones que se ejecutan en la plataforma del gestor de colas, pero en este caso el perodo de tiempo durante el que puede perderse un mensaje es muy reducido. Sin embargo, al igual que en los clientes MQ, el riesgo puede eliminarse recuperando el mensaje dentro de una unidad de trabajo. 3. Si una aplicacin coloca una secuencia de mensajes en la misma cola sin utilizar grupos de mensajes, el orden de esos mensajes se conserva siempre que se cumplan ciertas condiciones. Consulte las notas de utilizacin en la descripcin de la llamada MQPUT para obtener detalles. Si se satisfacen estas condiciones, los mensajes se presentarn en la aplicacin receptora en el orden en el que se enviaron, siempre y cuando:

246

Consulta de programacin de aplicaciones (ILE RPG)

v Solo un receptor obtiene mensajes de la cola. Si dos o ms aplicaciones obtienen mensajes de la cola, deben estar de acuerdo con el emisor en el mecanismo que va a utilizarse para identificar los mensajes que formen parte de una secuencia. Por ejemplo, el emisor puede dar un valor exclusivo (en la secuencia de mensajes) a todos los campos MDCID de los mensajes de una secuencia. v El emisor no haya cambiando deliberadamente el orden de recuperacin especificando, por ejemplo, un MDMID o MCCID especfico. Si la aplicacin emisora transfiere los mensajes como grupo de mensajes, los mensajes se presentarn en la aplicacin emisora en el orden correcto, siempre que la aplicacin emisora especifique la opcin GMLOGO en la llamada MQGET. Para obtener ms informacin sobre los grupos de mensajes, vea: v El campo MDMFL en MQMD v La opcin PMLOGO en MQPMO v La opcin GMLOGO en MQGMO 4. Las aplicaciones deben buscar el cdigo de informacin de retorno FBQUIT en el campo MDFB del parmetro MSGDSC. Si se encuentra dicho valor, la aplicacin debera finalizar. Vea el campo MDFB descrito en el Captulo 10. MQMD Descriptor de mensaje en la pgina 85 para obtener ms informacin. 5. Si la cola identificada por HOBJ se abri con la opcin OOSAVA y el cdigo de terminacin de la llamada MQGET es CCOK o CCWARN, el contexto asociado al asa de la cola HOBJ tomar el valor del contexto del mensaje que se haya recuperado (a menos que se haya establecido la opcin GMBRWF o GMBRWN, en cuyo caso se marcar como no disponible). Este contexto puede utilizarse en una llamada MQPUT o MQPUT1 posterior (por ejemplo, cuando se reenve un mensaje a otra cola). Para ms informacin sobre el contexto de mensaje, consulte el manual MQSeries Application Programming Guide. 6. Si se incluye la opcin GMCONV en el parmetro GMO, los datos del mensaje de aplicacin se convierten a la representacin solicitada por la aplicacin receptora, antes de que los datos se coloquen en el parmetro BUFFER: v El campo MDFMT de la informacin de control del mensaje identifica la estructura de los datos de la aplicacin, y los campos MDCSI y MDENC de la informacin de control del mensaje especifican su identificador de juego de caracteres y la codificacin. v La aplicacin que emite la llamada MQGET especifica en los campos MDCSI y MDENC del parmetro MSGDSC el identificador del juego de caracteres y la codificacin a los que los datos del mensaje de la aplicacin deberan convertirse. v Si los valores de MDCSI y MDENC de la informacin de control del mensaje coinciden con los del parmetro MSGDSC, no es preciso realizar conversin alguna. Cuando se necesita la conversin de los datos, esta la realiza el propio gestor de colas o una rutina de salida escrita por usuario, segn sea el valor del campo MDFMT de la informacin de control del mensaje: v Los siguientes nombres de formato son formatos que el gestor de colas convierte automticamente y que reciben el nombre de formatos incorporados: FMADMN FMCICS FMCMD1 FMCMD2 FMDLH
Captulo 30. MQGET - Obtener mensaje

247

FMDH FMEVNT FMIMS FMIMVS FMMDE FMPCF FMRMH FMSTR FMTM FMXQH v El nombre de formato FMNONE es un valor especial que indica que la naturaleza de los datos del mensaje es indefinida. Como consecuencia, el gestor de colas no intenta la conversin cuando se recupera el mensaje de la cola. Nota: Si se especifica GMCONV en la llamada MQGET para un mensaje que tiene el nombre de formato FMNONE, y el juego de caracteres o la codificacin del mensaje difieren de los especificados en el parmetro MSGDSC, el mensaje se devuelve igualmente en el parmetro BUFFER (suponiendo que no haya otros errores), pero la llamada se completa con el cdigo de terminacin CCWARN y el cdigo de razn RC2110. FMNONE puede utilizarse cuando la naturaleza de los datos del mensaje indique que no se precisa conversin alguna, o bien cuando la aplicacin emisora y la receptora hayan llegado a un acuerdo respecto a la forma en que deben enviarse los datos del mensaje. v Todos los dems nombres de formatos hacen que el mensaje pase a una rutina de salida escrita por usuario para la conversin. La rutina de salida tiene el mismo nombre que el formato, adems de otros datos especficos del entorno. Los nombres de formato especificados por el usuario no deben empezar por las letras MQ, ya que dichos nombres pueden entrar en conflicto con los nombres de formato a los que se d soporte en un futuro. Vea el Apndice F. Conversin de datos en la pgina 485 para obtener detalles sobre la rutina de salida de conversin de datos. | | | | | | | | Los datos de usuario del mensaje pueden convertirse a cualquier juego de caracteres y codificacin soportados. Sin embargo, tenga en cuenta que si el mensaje contiene una o varias estructuras de cabecera MQ, el mensaje no podr convertirse de o a un juego de caracteres que tenga caracteres de doble byte o de mltiples bytes para ninguno de los caracteres vlidos en los nombres de cola. Si se intenta esto, se obtiene el cdigo de razn RC2111 o RC2115 y se devuelve el mensaje sin convertir. El juego de caracteres Unicode UCS-2 es un ejemplo de ese tipo de juegos de caracteres. Al devolverse de MQGET, el siguiente cdigo de razn indica que el mensaje se ha convertido satisfactoriamente: RCNONE El siguiente cdigo de razn indica que el mensaje puede haberse convertido satisfactoriamente; la aplicacin debe comprobar los campos MDCSI y MDENC del parmetro MSGDSC para descubrir: RC2079 Todos los dems cdigos de razn indican que el mensaje no se ha convertido.

248

Consulta de programacin de aplicaciones (ILE RPG)

Nota: La interpretacin del cdigo de razn descrito anteriormente se cumplir en el caso de las conversiones realizadas por rutinas de salida escritas por usuario solo si las rutinas se ajustan a las directrices de proceso descritos en el Apndice F. Conversin de datos en la pgina 485. 7. Para los formatos incorporados listados ms arriba, el gestor de colas puede llevar a cabo la conversin por omisin de series de caracteres del mensaje cuando se especifica la opcin GMCONV. La conversin por omisin permite al gestor de colas utilizar un juego de caracteres por omisin especificado por la instalacin que se aproxima al juego de caracteres real, al convertir datos de cadena de caracteres. Como resultado, la llamada MQGET puede ser satisfactoria, con el cdigo de terminacin CCOK, en vea de completarse con CCWARN y el cdigo de razn RC2111 o RC2115. Nota: El resultado de utilizar un juego de caracteres aproximado para convertir los datos de cadena de caracteres es que algunos caracteres pueden convertirse incorrectamente. Esto puede evitarse utilizando en la cadena solamente caracteres que sean comunes al juego de caracteres real y al juego de caracteres por omisin. La conversin por omisin es aplicable tanto a los datos del mensaje de aplicacin como a los campos de caracteres de las estructuras MQMD y MQMDE: v La conversin por omisin de los datos del mensaje de la aplicacin se produce solamente cuando se cumplen todas las condiciones siguientes: La aplicacin especifica GMCONV. El mensaje contiene datos que deben convertirse desde un juego de caracteres o a un juego de caracteres no soportado. Se ha habilitado la conversin por omisin al instalarse o reiniciarse el gestor de colas. v La conversin por omisin de los campos de caracteres en las estructuras MQMD y MQMDE se produce cuando es necesaria, siempre que est habilitada la conversin por omisin para el gestor de colas. La conversin se realiza incluso si la aplicacin no especifica la opcin GMCONV en la llamada MQGET. 8. El parmetro BUFFER mostrado en el ejemplo de programacin RPG se declara como una serie, lo cual limita la longitud mxima del parmetro a 256 bytes. Si se necesita un almacenamiento intermedio ms grande, debe declararse el parmetro en lugar de hacerlo como una estructura, o como un campo de un archivo fsico. Al declarar el parmetro como estructura, la longitud mxima posible aumenta hasta 9999 bytes, mientras que al declararlo como campo de un archivo fsico, esta aumenta hasta unos 32 Kbytes.

Captulo 30. MQGET - Obtener mensaje

249

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQGET(HCONN : HOBJ : MSGDSC : GMO : C BUFLEN : BUFFER : DATLEN : C CMPCOD : REASON)

El prototipo de definicin para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQGET PR EXTPROC('MQGET') D* Asa de conexin D HCONN 10I 0 VALUE D* Asa de objeto D HOBJ 10I 0 VALUE D* Descriptor de mensaje D MSGDSC 364A D* Opciones que controlan la accin de MQGET D GMO 100A D* Longitud en bytes del rea BUFFER D BUFLEN 10I 0 VALUE D* rea que contendr los datos del mensaje D BUFFER * VALUE D* Longitud del mensaje D DATLEN 10I 0 D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

250

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 31. MQINQ - Consultar los atributos de objeto


La llamada MQINQ devuelve una matriz de enteros y un grupo de series de caracteres que contiene los atributos de un objeto. Son vlidos los siguientes tipos de objetos: v Cola v Lista de nombres v Definicin de proceso v Gestor de colas

Sintaxis
MQINQ (HCONN, HOBJ, SELCNT, SELS, IACNT, INTATR, CALEN, CHRATR, CMPCOD, REASON)

Parmetros
HCONN (entero con signo de 10 dgitos) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. En OS/400 para las aplicaciones que se ejecutan en modalidad de compatibilidad, puede omitirse la llamada MQCONN y especificarse el siguiente valor HCONN: HCDEFH Asa de conexin por omisin. HOBJ (entero con signo de 10 dgitos) entrada Asa de objeto. Esta asa represenra el objeto (sea cual sea el tipo) cuyos atributos se requieren. El asa la debe haber devuelto una llamada MQOPEN anterior que especificaba la opcin OOINQ. SELCNT (entero con signo de 10 dgitos) entrada Cuenta de selectores. Esta es la cuenta de selectores suministrados en la matriz SELS. Es el nmero de atributos que deben devolverse. Cero es un valor vlido. El nmero mximo permitido es 256. SELS (entero con signo de 10 dgitosSELCNT) entrada Matriz de selectores de atributos. Es una matriz de selectores de atributos SELCNT; cada selector identifica un atributo (entero o carcter) cuyo valor se requiere. Cada selector debe ser vlido para el tipo de objeto que HOBJ representa, de lo contrario la llamada resulta anmala, con el cdigo de terminacin CCFAIL y el cdigo de razn RC2067.

Copyright IBM Corp. 1994, 2000

251

En el caso especial de colas: v Si el selector no es vlido para colas de ningn tipo, la llamada dar error con el cdigo de terminacin CCFAIL y el cdigo de razn RC2067. v Si el selector solo es aplicable a colas de tipo o tipos distintos de los del objeto, la llamada finalizar con xito con el cdigo de terminacin CCWARN y el cdigo de razn RC2068. Los selectores pueden especificarse en cualquier orden. Los valores de atributos que correspondan a selectores de atributos de enteros (selectores IA*) se devuelven en INTATR en el mismo orden en que dichos selectores aparecen en SELS. Los valores de atributos que correspondan a selectores de atributos de caracteres (selectores CA*) se devuelven en CHRATR en el mismo orden en que dichos selectores se producen. Los selectores IA* pueden estar intercalados con selectores CA*; solo es importante el orden relativo dentro de cada tipo. Notas: 1. Los selectores de enteros y caracteres se asignan dentro de dos rangos distintos; los selectores IA* estn dentro del rango IAFRST a IALAST y los selectores CA* dentro del rango CAFRST a CALAST. De cada rango, las constantes IALSTU y CALSTU definen el valor ms alto que puede aceptar el gestor de colas. 2. Si todos los selectores IA* se producen primero, podrn utilizarse los mismos nmeros de elementos para direccionar los elementos correspondientes de las matrices SELS y INTATR. Para cada selector CA* de las siguientes descripciones, la constante que define la longitud en bytes de la serie resultante de CHRATR se da entre parntesis. | | | | Selectores para el gestor de colas CAALTD Fecha de la alteracin ms reciente (LNDATE). CAALTT Hora de la alteracin ms reciente (LNTIME). CACADX Nombre de la rutina de salida de definicin de canal automtica (LNEXN). CACLWD Datos pasados a la rutina de salida de carga de trabajo de clster (LNEXDA). CACLWX Nombre de la rutina de salida de carga de trabajo de clster (LNEXN). CACMDQ Nombre de la cola de entrada de mandatos del sistema (LNQN). CADLQ Nombre de la cola de mensajes no entregados (LNQN). CADXQN Nombre de la cola de transmisin por omisin (LNQN). CAQMD Descripcin del gestor de colas (LNQMD). CAQMID Identificador del gestor de colas (LNQMID). CAQMN Nombre del gestor de colas local (LNQMN).

| | | | | |

| |

252

Consulta de programacin de aplicaciones (ILE RPG)

| | | | | | |

| |

CARPN Nombre del clster para el que el gestor de colas proporciona servicios de depsito (LNQMN). CARPNL Nombre del objeto lista de nombres que contiene los nombres de los clsteres para los que el gestor de colas proporciona servicios de depsito (LNNLN). IAAUTE Atributo de control para sucesos de autorizacin. IACAD Atributo de control para la definicin de canal automtica. IACADE Atributo de control para sucesos de definicin de canal automtica. IACLWL Longitud de carga de trabajo de clster. IACCSI Identificador de juego de caracteres codificado. IACMDL Nivel de mandatos soportado por el gestor de colas. IADIST Soporte de lista de distribucin. IAINHE Atributo de control para sucesos de inhibir. IALCLE Atributo de control para sucesos locales. IAMHND Nmero mximo de asas. IAMLEN Longitud mxima del mensaje. IAMPRI Prioridad mxima. IAMUNC Nmero mximo de mensajes no comprometidos dentro de una unidad de trabajo. IAPFME Atributo de control para sucesos de rendimiento. IAPLAT Plataforma en la que reside el gestor de colas. IARMTE Atributo de control para sucesos remotos. IASSE Atributo de control para sucesos de inicio y de detencin. IASYNC Disponibilidad del punto de sincronismo. IATRGI Intervalo desencadenante. Selectores para listas de nombres CAALTD Fecha de la alteracin ms reciente (LNDATE). CAALTT Hora de la alteracin ms reciente (LNTIME). CALSTD Descripcin de la lista de nombres (LNNLD). CALSTN Nombre del objeto de lista de nombres (LNNLN).
Captulo 31. MQINQ - Consultar los atributos de objeto

| | | |

253

CANAMS Nombre de la lista de nombres (LNQN Nmero de nombres en la lista). IANAMC Nmero de nombres en la lista de nombres. | | | | | | | Selectores para todos los tipos de cola Si la cola que se consulta es de un clster, los selectores vlidos dependern de cmo se resuelva la cola; vea la nota de utilizacin 4 para conocer ms detalles. CAALTD Fecha de la alteracin ms reciente (LNDATE). CAALTT Hora de la alteracin ms reciente (LNTIME). CAQD Descripcin de la cola (LNQD). CAQN Nombre de la cola (LNQN). IADPER Permanencia del mensaje por omisin. IADPRI Prioridad del mensaje por omisin. IAIPUT Indica si estn permitidas operaciones de poner. IAQTYP Tipo de cola. Selectores para colas locales Si la cola que se consulta es de un clster, los selectores vlidos dependern de cmo se resuelva la cola; vea la nota de utilizacin 4 para conocer ms detalles. CABRQN Nombre de recolocacin en cola de restitucin excesiva (LNQN). CACLN Nombre de clster (LNCLUN). CACLNL Lista de nombres de clster (LNNLN). CACRTD Fecha de creacin de la cola (LNCRTD). CACRTT Hora de creacin de la cola (LNCRTT). CAINIQ Nombre de la cola de inicio (LNQN). CAPRON Nombre de la definicin de proceso (LNPRON). CATRGD Datos desencadenantes (LNTRGD). IABTHR Umbral de restitucin. IACDEP Nmero de mensajes de la cola. IADBND Enlace por omisin. IADINP Opcin de abrir para entrada por omisin.

| | |

| | | |

| |

254

Consulta de programacin de aplicaciones (ILE RPG)

IADEFT Tipo de definicin de cola. IADIST Soporte de lista de distribucin. IAHGB Indica si se memoriza la cuenta de restitucin. IAIGET Indica si estn permitidas operaciones de obtener. IAMLEN Longitud mxima de mensaje. IAMDEP Nmero mximo de mensajes permitidos en la cola. IAMDS Importancia de la prioridad del mensaje. IAOIC Nmero de llamadas MQOPEN que tienen la cola abierta para entrada. IAOOC Nmero de llamadas MQOPEN que tienen la cola abierta para salida. IAQDHE Atributo de control para sucesos de lmite mximo de profundidad de cola. IAQDHL Lmite mximo de profundidad de cola. IAQDLE Atributo de control para sucesos de lmite mnimo de profundidad de cola. IAQDLL Lmite mnimo de profundidad de cola. IAQDME Atributo de control para el nmero mximo de sucesos de profundidad de cola. IAQSI Lmite del intervalo de servicio de la cola. IAQSIE Atributo de control para los sucesos de intervalo de servicio de la cola. IARINT Intervalo de retencin de la cola. IASCOP mbito de definicin de la cola. IASHAR Indica si la cola puede compartirse. IATRGC Control de desencadenamiento. IATRGD Profundidad desencadenante. IATRGP Prioridad de mensaje umbral para desencadenantes. IATRGT Tipo de desencadenante. IAUSAG Utilizacin. Selectores para definiciones locales de colas remotas

Captulo 31. MQINQ - Consultar los atributos de objeto

255

| | | |

| |

CACLN Nombre de clster (LNCLUN). CACLNL Lista de nombres de clster (LNNLN). CARQMN Nombre del gestor de colas remoto (LNQMN). CARQN Nombre de la cola remota tal como se la conoce en el gestor de colas remoto (LNQN). CAXQN Nombre de la cola de transmisin (LNQN). IADBND Enlace por omisin. IASCOP mbito de definicin de la cola. Selectores para colas alias CABASQ Nombre de cola en el que se resuelve el alias (LNQN). CACLN Nombre de clster (LNCLUN). CACLNL Lista de nombres de clster (LNNLN). IADBND Enlace por omisin. IAIGET Indica si estn permitidas operaciones de obtener. IASCOP mbito de definicin de la cola. Selectores para definiciones de proceso CAALTD Fecha de la alteracin ms reciente (LNDATE). CAALTT Hora de la alteracin ms reciente (LNTIME). CAAPPI Identificador de aplicacin (LNPROA). CAENVD Datos de entorno (LNPROE). CAPROD Descripcin de la definicin de proceso (LNPROD). CAPRON Nombre de la definicin de proceso (LNPRON). CAUSRD Datos de usuario (LNPROU). IAAPPT Tipo de aplicacin. IACNT (entero con signo de 10 dgitos) entrada Cuenta de atributos de tipo entero. Es el nmero de elementos de la matriz INTATR. Cero es un valor vlido. Si tiene como mnimo el nmero de selectores IA* del parmetro SELS, se devolvern todos los atributos de tipo entero solicitados. INTATR (entero con signo de 10 dgitosIACNT) salida Matriz de atributos de tipo entero.

| | | | | |

| | | |

256

Consulta de programacin de aplicaciones (ILE RPG)

Es una matriz de valores de atributos de tipo entero IACNT. Los valores de atributos de tipo entero se devuelven en el mismo orden que los selectores IA* del parmetro SELS. Si la matriz contiene ms elementos que el nmero de selectores de IA*, los elementos sobrantes no varan. Si HOBJ representa una cola, pero no puede aplicarse un atributo selector a ese tipo de cola, se devolver el valor especfico IAVNA para el elemento correspondiente de la matriz INTATR. CALEN (entero con signo de 10 dgitos) entrada Longitud del almacenamiento intermedio de atributos de tipo carcter. Es la longitud en bytes del parmetro CHRATR. Debe ser como mnimo la suma de las longitudes de los atributos de tipo carcter solicitados (vea SELS). Cero es un valor vlido. CHRATR (serie de caracteres de 1 byteCALEN) salida Atributos de tipo carcter. Es el almacenamiento intermedio al que se devuelven los atributos de tipo carcter concatenados juntos. La longitud del almacenamiento intermedio la indica el parmetro CALEN. Los atributos de tipo carcter se devuelven en el mismo orden que los selectores CA* del parmetro SELS. La longitud de cada serie de atributos se determina para cada atributo y (vea SELS), y su valor se rellena con blancos a la derecha si es necesario. Si el almacenamiento intermedio tiene ms espacio del necesario para contener todos los atributos de tipo carcter solicitados (incluyendo los caracteres de relleno), los bytes sobrantes despus del ltimo atributo devuelto no cambiarn. Si HOBJ representa una cola, pero no puede aplicarse un selector de atributo a ese tipo de cola, se devolver una serie de caracteres compuesta completamente por asteriscos (*) como valor de dicho atributo en CHRATR. CMPCOD (entero con signo de 10 dgitos) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCWARN Aviso (la llamada se ha completado parcialmente). CCFAIL La llamada ha fallado. REASON (entero con signo de 10 dgitos) salida Cdigo de razn que califica a CMPCOD. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCWARN:

Captulo 31. MQINQ - Consultar los atributos de objeto

257

RC2008 (2008, X'7D8') No se ha dado suficiente espacio para los atributos de tipo carcter. RC2022 (2022, X'7E6') No se ha dado suficiente espacio para los atributos de tipo entero. RC2068 (2068, X'814') Selector no aplicable a este tipo de cola. Si CMPCOD es CCFAIL: RC2219 (2219, X'8AB') La llamada MQI reentr antes de que se completase la llamada anterior. RC2006 (2006, X'7D6') La longitud de los atributos de tipo carcter no es vlida. RC2007 (2007, X'7D7') La serie de atributos de tipo carcter no es vlida. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2019 (2019, X'7E3') El asa de objeto no es vlida. RC2021 (2021, X'7E5') La cuenta de atributos de tipo entero no es vlida. RC2023 (2023, X'7E7') La matriz de atributos de tipo entero no es vlida. RC2038 (2038, X'7F6') La cola no se ha abierto para consulta. RC2041 (2041, X'7F9') La definicin de un objeto ha cambiado desde su apertura. RC2101 (2101, X'835') Objeto daado. RC2052 (2052, X'804') La cola se ha suprimido. RC2058 (2058, X'80A') El nombre del gestor de colas no es vlido o es desconocido. RC2059 (2059, X'80B') El gestor de colas no est disponible para conexin. RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2065 (2065, X'811') La cuenta de selectores no es vlida. RC2067 (2067, X'813') El selector de atributo no es vlido. RC2066 (2066, X'812') La cuenta de selectores es demasiado grande. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2195 (2195, X'893') Se ha producido un error inesperado.

258

Consulta de programacin de aplicaciones (ILE RPG)

Para ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Notas de utilizacin
1. Los valores devueltos son una instantnea de los atributos seleccionados. No puede garantizarse que los atributos no vayan a cambiar antes de que la aplicacin pueda actuar sobre los valores devueltos. 2. Cuando se abre una cola modelo, incluso para consultar sus atributos, se crea una cola dinmica. Los atributos de la cola dinmica (salvo CreationDate, CreationTime y DefinitionType) son los mismos que los de la cola modelo en el momento en que se cra la cola dinmica. Si posteriormente utiliza la llamada MQINQ con la misma asa de objeto, el gestor de colas devolver los atributos de la cola dinmica y no los de la cola modelo. 3. Si el objeto que se consulta es una cola alias, los valores de atributo devueltos por la llamada MQINQ sern los atributos de la cola alias, no los atributos de la cola base en la que se resuelve el alias. | | | | | | | | | | | | | | | | | | | | | | | | | 4. Si el objeto que se consulta es una cola de clster, los atributos que puedan consultarse dependern de cmo se abra la cola: v Si la cola de clster se abre para consulta ms una o varias operaciones de entrada, de examinar o de establecer, debe haber una instancia local de la cola de clster para que la operacin de abrir resulte satisfactoria. En este caso, los atributos que pueden consultarse son los vlidos para las colas locales. v Si la cola de clster se abre solo para consulta o para consulta y salida, solamente pueden consultarse los atributos listados ms abajo; el atributo QType tiene el valor QTCLUS en este caso: CAQD CAQN IADBND IADPER IADPRI IAIPUT IAQTYP Si la cola de clster se abre sin un enlace fijo (es decir, se ha especificado OOBNDN en la llamada MQOPEN o se ha especificado OOBNDQ cuando el atributo DefBind tiene el valor BNDNOT), las llamadas MQINQ sucesivas para la cola podran consultar instancias distintas de la cola de clster, aunque normalmente todas las instancias tienen los mismos valores de atributo. Para obtene ms informacin sobre las colas de clster, consulte la publicacin MQSeries Queue Manager Clusters. 5. Si deben consultarse varios atributos y a continuacin algunos de ellos van a definirse utilizando la llamada MQSET, puede resultar conveniente situar al principio de las matrices de selectores los atributos que tienen que definirse, de forma que las mismas matrices (con cuentas reducidas) puedan utilizarse para MQSET. 6. Si se produce ms de una situacin de aviso (vea el parmetro CMPCOD), el cdigo de razn devuelto es el primero que se aplicable de los de la siguiente lista: a. RC2068 b. RC2022
Captulo 31. MQINQ - Consultar los atributos de objeto

259

c. RC2008 7. Para ms informacin sobre los atributos de objetos, consulte el Captulo 36. Atributos de los objetos de MQSeries.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQINQ(HCONN : HOBJ : SELCNT : C SELS(1) : IACNT : INTATR(1) : C CALEN : CHRATR : CMPCOD : C REASON)

El prototipo de definicin para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQINQ PR EXTPROC('MQINQ') D* Asa de conexin D HCONN 10I 0 VALUE D* Asa de objeto D HOBJ 10I 0 VALUE D* Cuenta de selectores. D SELCNT 10I 0 VALUE D* Matriz de selectores de atributos D SELS 10I 0 D* Cuenta de atributos de enteros D IACNT 10I 0 VALUE D* Matriz de atributos de enteros D INTATR 10I 0 D* Longitud del almacenamiento intermedio de atributos de caracteres D CALEN 10I 0 VALUE D* Atributos de caracteres D CHRATR * VALUE D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

260

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 32. MQOPEN - Abrir objeto


La llamada MQOPEN establece acceso a un objeto. Son vlidos los siguientes tipos de objetos: v Cola (incluidas las listas de distribucin) v Lista de nombres v Definicin de proceso v Gestor de colas

Sintaxis
MQOPEN (HCONN, OBJDSC, OPTS, HOBJ, CMPCOD, REASON)

Parmetros
HCONN (entero de 10 dgitos con signo) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. En OS/400 para aplicaciones que se ejecuten en modalidad de compatibilidad, la llamada MQCONN puede omitirse, as como el siguiente valor especificado para HCONN: HCDEFH Asa de conexin por omisin. OBJDSC (MQOD) entrada/salida Descriptor de objeto. Esta estructura identifica el objeto que se va a abrir; vea el Captulo 12. MQOD - Descriptor de objeto en la pgina 143 para obtener ms detalles. Si el campo ODON del parmetro OBJDSC es el nombre de una cola modelo, se crear una cola local dinmica con los atributos de la cola modelo, independientemente de las opciones de abrir especificadas por el parmetro OPTS. Las operaciones posteriores que utilicen el HOBJ devuelto por la llamada MQOPEN se realizarn en la nueva cola dinmica, no en la cola modelo. Esto ocurre siempre, incluso para las llamadas MQINQ y MQSET. El nombre de la cola modelo del parmetro OBJDSC se sustituye por el nombre de la cola dinmica creada. El tipo de cola dinmica viene determinado por el valor del atributo DefinitionType de la cola modelo (vea el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311). Para obtener informacin sobre las opciones de cerrar aplicables a colas dinmicas, vea la descripcin de la llamada MQCLOSE. OPTS (entero de 10 dgitos con signo) entrada Opciones que controlan la accin de MQOPEN. Debe especificarse como mnimo una de las opciones siguientes: OOBRW
Copyright IBM Corp. 1994, 2000

261

OOINP* (solo una de estas) OOINQ OOOUT OOSET A continuacin encontrar ms detalles sobre estas opciones; aunque tambin pueden especificarse otras si es preciso. Si se necesita ms de una opcin, los valores pueden aadirse al mismo tiempo (no aada la misma constante ms de una vez). Se indican las combinaciones no vlidas; las dems combinaciones son vlidas. Solo se permiten las opciones que son aplicables al tipo de objeto especificado por OBJDSC (vea la Tabla 48 en la pgina 267). Opciones de acceso: Las opciones siguientes controlan los tipos de operaciones que pueden realizarse con el objeto: OOINPQ Abrir la cola para obtener mensajes utilizando el valor por omisin definido por la cola. La cola se abre para utilizarse con las llamadas MQGET posteriores. El tipo de acceso puede ser compartido o exclusivo, segn sea el valor del atributo de cola DefInputOpenOption; encontrar ms informacin en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311. Esta opcin solo es vlida para colas locales, modelos y alias; no es vlida para colas remotas, listas de distribucin u objetos que no sean colas. OOINPS Abrir la cola para obtener mensajes con acceso compartido. La cola se abre para poder utilizarla con llamadas MQGET posteriores. La llamada puede realizarse satisfactoriamente si la cola ya la ha abierto esta u otra aplicacin con OOINPS, pero falla con el cdigo de razn RC2042 si la cola se ha abierto actualmente con OOINPX. Esta opcin solo es vlida para colas locales, modelos y alias; no es vlida para colas remotas, listas de distribucin u objetos que no sean colas. OOINPX Abrir la cola para obtener mensajes con acceso exclusivo. La cola se abre para poder utilizarla con llamadas MQGET posteriores. La llamada falla con el cdigo de razn RC2042 si esta u otra aplicacin ya ha abierto actualmente la cola para entrada de cualquier tipo (OOINPS o OOINPX). Esta opcin solo es vlida para colas locales, modelos y alias; no es vlida para colas remotas, listas de distribucin u objetos que no sean colas. Las notas siguientes se aplican a estas opciones: v Solo puede especificarse una de estas opciones. v Una llamada MQOPEN con una de estas opciones puede realizarse satisfactoriamente incluso si el atributo de cola InhibitGet tiene el valor QAGETI (aunque las llamadas MQGET posteriores fallarn mientras el atributo est establecido en este valor).

262

Consulta de programacin de aplicaciones (ILE RPG)

v Si la cola se define para no ser compartida (es decir, el atributo Shareability de la cola local tiene el valor QANSHR), los intentos de abrir la cola para acceso compartido se considerarn intentos de abrir la cola con acceso exclusivo. v Si una cola alias se abre con una de estas opciones, la prueba de uso exclusivo (o la prueba de si otra aplicacin tiene el uso exclusivo) se realizar para la cola base en la que se resuelve el alias. v Estas opciones no son vlidas si ODMN es el nombre de un alias de gestor de colas, incluso si el valor del atributo RemoteQMgrName de la definicin local de una cola remota utilizado para el alias del gestor de colas coincide con el nombre del gestor de colas local. OOBRW Abrir la cola para examinar mensajes. La cola se abre para poder utilizarla con llamadas MQGET posteriores, con una de las siguientes opciones: GMBRWF GMBRWN GMBRWC Esto est permitido incluso si la cola est abierta actualmente para OOINPX. Una llamada MQOPEN con la opcin OOBRW establece un cursor para examinar, y lo coloca lgicamente antes del primer mensaje de la cola; vea lo referente al campo GMOPT que se describe en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51 para obtener ms informacin. Esta opcin solo es vlida para colas locales, modelos y alias; no es vlida para colas remotas, listas de distribucin u objetos que no sean colas. No es vlida tampoco si ODMN es el nombre de un alias de gestor de colas, incluso si el valor del atributo RemoteQMgrName de la definicin local de una cola remota utilizado para el alias del gestor de colas coincide con el nombre del gestor de colas local. OOOUT Abrir la cola para transferir mensajes. La cola se abre para poder utilizarla con llamadas MQPUT posteriores. Una llamada MQOPEN con esta opcin puede ser satisfactoria incluso si el atributo de cola InhibitPut tiene el valor QAPUTI (aunque las llamadas MQPUT posteriores fallarn mientras el atributo est establecido en este valor). Esta opcin es vlida para todos los tipos de colas, incluidas las listas de distribucin. OOINQ Abrir el objeto para consultar atributos. La cola, la lista de nombres, la definicin de proceso o el gestor de colas se abren para utilizarse con las llamadas MQINQ posteriores. Esta opcin es vlida para todos los tipos de objetos, excepto para las listas de distribucin. No es vlida si ODMN es el nombre de un alias de gestor de colas, incluso si el valor del atributo RemoteQMgrName de la definicin local de una cola remota utilizado para el alias del gestor de colas coincide con el nombre del gestor de colas local.

Captulo 32. MQOPEN - Abrir objeto

263

OOSET Abrir la cola para establecer atributos. La cola se abre para utilizarse con las llamadas MQSET posteriores. Esta opcin es vlida para todos los tipos de colas, excepto para las listas de distribucin. No es vlida si ODMN es el nombre de una definicin local de una cola remota, incluso si el valor del atributo RemoteQMgrName de la definicin local de una cola remota utilizado para el alias del gestor de colas coincide con el nombre del gestor de colas local. | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Opciones de enlace: Las siguientes opciones se aplican cuando el objeto que se va a abrir es una cola de clster; estas opciones controlan el enlace del asa de cola con una instancia determinada de la cola de clster: OOBNDO Enlazar el asa con un destino cuando se abre la cola. Esta opcin permite al gestor de colas local enlazar el asa de cola con una instancia determinada de la cola destino cuando se abre la cola. Como resultado, todos los mensajes transferidos mediante esta asa se envan a la misma instancia de la cola destino y siguiendo la misma ruta. Esta opcin solo es vlida para colas y afecta solamente a colas de clster. Si se especifica para una cola que no sea de clster, la opcin se ignorar. OOBNDN No enlazar con un destino especfico. Esta opcin hace que el gestor de colas local deje de enlazar el asa de cola con una instancia determinada de la cola destino. Como resultado, las llamadas MQPUT posteriores que utilizan esta asa pueden hacer que los mensajes se enven a otras instancias de la cola destino o a la misma instancia pero siguiendo otras rutas. Esta opcin permite tambin que el gestor de colas local, el gestor de colas remotos o el agente de canal de mensajes (MCA) cambie posteriormente la instancia seleccionada, segn sean las condiciones de la red. Nota: Las aplicaciones de cliente y servidor que necesiten intercambiar una serie de mensajes para completar una transaccin no deben utilizar OOBNDN (o OOBNDQ cuando DefBind tenga el valor BNDNOT), ya que podra ocurrir que los mensajes posteriores de la serie se enviaran a otras instancias de la aplicacin del servidor. Si se especifica OOBRW o una de las opciones OOINP* para una cola de clster, el gestor de colas est obligado a seleccionar la instancia local de la cola de clster. Como resultado, se fija el enlace del asa de cola, incluso si se especifica la opcin OOBNDN. Si la opcin OOINQ est especificada con OOBNDN, las llamadas MQINQ posteriores con esta asa pueden consultar instancias distintas de la cola de clster, aunque normalmente todas las instancias tienen los mismos valores de atributo.

264

Consulta de programacin de aplicaciones (ILE RPG)

| | | | | | | | | | | | | |

La opcin OOBNDN solo es vlida para colas y afecta solamente a las colas de clster. Si se especifica para una cola que no sea de clster, la opcin se ignorar. OOBNDQ Utilizar el enlace por omisin para la cola. Esta opcin permite al gestor de colas local enlazar el asa de cola segn se define en el atributo de cola DefBind. El valor de este atributo es BNDOPN o BNDNOT. OOBNDQ es el valor por omisin si no se especifica OOBNDO ni OOBNDN. OOBNDQ se ha definido para ayudar en la documentacin del programa. No se pretende que esta opcin se utilice con ninguna de las otras dos opciones de enlace, pero ya que su valor es cero, esa utilizacin no se puede detectar. Opciones de contexto: Las opciones siguientes controlan el proceso del contexto del mensaje: OOSAVA Salvar el contexto al recuperar el mensaje. La informacin de contexto se asocia al asa de cola. Esta informacin se establece a partir del contexto de cualquier mensaje recuperado utilizando esta asa. Para ms informacin sobre el contexto de mensaje, vea MQSeries Application Programming Guide. Esta informacin de contexto puede pasarse a un mensaje que se ponga posteriormente en una cola mediante las llamadas MQPUT o MQPUT1. Vea las opciones PMPASI y PMPASA que se describen en el Captulo 14. MQPMO - Opciones de poner mensaje en la pgina 155. Hasta que un mensaje se ha recuperado correctamente, el contexto no puede pasarse a un mensaje que est transfirindose a una cola. La informacin de contexto de un mensaje recuperado utilizando una de las opciones de examinar GMBRW* no se salva (aunque los campos de contexto del parmetro MSGDSC se establecen despus de examinar). Esta opcin solo es vlida para colas locales, modelos y alias; no es vlida para colas remotas, listas de distribucin u objetos que no sean colas. Debe especificarse una de las opciones OOINP*. OOPASI Permite pasar contexto de identidad. Esta opcin permite especificar la opcin PMPASI en el parmetro PMO cuando se pone un mensaje en una cola, para que la informacin de contexto de identidad de una cola de entrada abierta con la opcin OOSAVA se asocie al mensaje. Para ms informacin sobre el contexto de mensajes, vea MQSeries Application Programming Guide. Debe especificarse la opcin OOOUT. Esta opcin es vlida para todos los tipos de colas, incluidas las listas de distribucin. OOPASA Permite pasar todo el contexto.

Captulo 32. MQOPEN - Abrir objeto

265

Permite especificar la opcin PMPASA en el parmetro PMO cuando se pone un mensaje en una cola, para que la informacin de contexto de identidad y de origen de una cola de entrada abierta con la opcin OSAVA se asocie al mensaje. Para ms informacin sobre el contexto de mensajes, vea MQSeries Application Programming Guide. Esta opcin implica OOPASI, por lo que no es preciso especificar esta ltima. Debe especificarse la opcin OOOUT. Esta opcin es vlida para todos los tipos de colas, incluidas las listas de distribucin. OOSETI Permite establecer contexto de identidad. Permite especificar la opcin PMSETI en el parmetro PMO cuando se pone un mensaje en una cola, para que la informacin de contexto de identidad que contiene el parmetro MSGDSC especificado en las llamadas MQPUT o MQPUT1 se asocie al mensaje. Para ms informacin sobre el contexto de mensaje, vea MQSeries Application Programming Guide. Esta opcin implica OOPASI, por lo que no es preciso especificar esta ltima. Debe especificarse la opcin OOOUT. Esta opcin es vlida para todos los tipos de colas, incluidas las listas de distribucin. OOSETA Permite establecer todo el contexto. Permite especificar la opcin PMSETI en el parmetro PMO cuando se pone un mensaje en una cola, para que la informacin de contexto de identidad y de origen que contiene el parmetro MSGDSC especificado en las llamadas MQPUT o MQPUT1 se asocie al mensaje. Para ms informacin sobre el contexto de mensaje, vea MQSeries Application Programming Guide. Esta opcin implica las opciones siguientes, por lo que no es preciso especificarlas: OOPASI OOPASA OOSETI Debe especificarse la opcin OOOUT. Esta opcin es vlida para todos los tipos de colas, incluidas las listas de distribucin. Otras opciones: Las opciones siguientes controlan la comprobacin de autorizacin y lo que ocurre cuando no hay actividad en el gestor de colas: OOALTU Validar con el identificador de usuario especificado. Indica que el campo ODAU del parmetro OBJDSC contiene un identificador de usuario que debe utilizarse para validar esta llamada MQOPEN. La llamada solo ser satisfactoria si este ODAU tiene autorizacin para abrir el objeto con las opciones especificadas, independientemente de si el identificador del usuario bajo el que est ejecutndose la aplicacin tiene autorizacin para ello. (Sin embargo, esto no se aplica a ninguna de las opciones de contexto especificadas,

266

Consulta de programacin de aplicaciones (ILE RPG)

ya que se comprueban siempre con el identificador de usuario bajo el que est ejecutndose la aplicacin). Esta opcin es vlida para todos los tipos de objetos. OOFIQ Falla si el gestor de colas est en reposo. Esta opcin fuerza que falle la llamada MQOPEN si el estado del gestor de colas es en reposo. Esta opcin es vlida para todos los tipos de objetos.
Tabla 48. Opciones MQOPEN vlidas para cada tipo de cola
Opcin Alias Local Remota Clster Lista de no y (vea la local distrinota Modelo bucin 1) U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U vea la nota 2 vea la nota 2 U U U U U U U U U U U U U U U U U U U U U U U U U U U U U U

| | | | | | | | | | | | | | | | | |

OOINPQ OOINPS OOINPX OOBRW OOOUT OOINQ OOSET OOBNDO (vea la nota 3) OOBNDN (vea la nota 3) OOBNDQ (vea la nota 3) OOSAVA OOPASI OOPASA OOSETI OOSETA OOALTU OOFIQ Notas:

1. La validez de las opciones para los alias depende de la validez de la opcin para la cola a la que apunta el alias. 2. Esta opcin solo es vlida para la definicin local de una cola remota.

3. Esta opcin se puede especificar para cualquier tipo de cola, aunque si la cola no es de un clster, la opcin se ignorar.

HOBJ (entero de 10 dgitos con signo) salida Asa de objeto. Esta asa representa el acceso que se ha establecido para el objeto. Debe especificarse en todas las llamadas de gestin de colas ulteriores que operen en el objeto. Esto deja de ser vlido cuando se emite la llamada MQCLOSE o cuando termina la unidad de proceso que define el mbito del asa. El mbito del asa est restringido a la unidad de proceso en paralelo ms pequea soportada por la plataforma en la que se ejecuta la aplicacin; el asa no es vlida fuera de la unidad de proceso en paralelo desde la que se ha emitido la llamada MQOPEN: v En OS/400, el mbito del asa es el trabajo que emite la llamada.
Captulo 32. MQOPEN - Abrir objeto

267

CMPCOD (entero de 10 dgitos con signo) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCWARN Aviso (la llamada se ha completado parcialmente). CCFAIL La llamada ha fallado. REASON (entero de 10 dgitos con signo) salida Cdigo de razn que califica a CMPCOD. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCWARN: RC2136 (2136, X'858') Se han devuelto varios cdigos de razn. Si CMPCOD es CCFAIL: RC2001 (2001, X'7D1') El tipo de cola alias base no es vlido. RC2219 (2219, X'8AB') La llamada MQI reentr antes de que se completase la llamada anterior. RC2266 (2266, X'8DA') La rutina de salida de carga de trabajo de clster ha fallado. RC2268 (2268, X'8DC') Las llamadas de poner estn inhibidas para todas las colas del clster. RC2189 (2189, X'88D') La resolucin de nombre de clster ha fallado. RC2269 (2269, X'8DD') Error de recurso de clster. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2198 (2198, X'896') La cola de transmisin por omisin no es local. RC2199 (2199, X'897') Error de utilizacin de la cola de transmisin por omisin. RC2011 (2011, X'7DB') El nombre de la cola dinmica no es vlido. RC2017 (2017, X'7E1') No hay ms asas disponibles. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2019 (2019, X'7E3') El asa de objeto no es vlida. RC2194 (2194, X'892') El nombre de objeto no es vlido para este tipo de objeto.

| | | | | | | |

268

Consulta de programacin de aplicaciones (ILE RPG)

RC2035 (2035, X'7F3') No posee autorizacin para acceder. RC2100 (2100, X'834') El objeto ya existe. RC2101 (2101, X'835') Objeto daado. RC2042 (2042, X'7FA') Objeto ya abierto con opciones en conflicto. RC2043 (2043, X'7FB') Tipo de objeto no vlido. RC2044 (2044, X'7FC') La estructura de descriptor de objeto no es vlida. RC2045 (2045, X'7FD') La opcin no es vlida para este tipo de objeto. RC2046 (2046, X'7FE') Las opciones no son vlidas o no son coherentes. RC2052 (2052, X'804') La cola se ha suprimido. RC2058 (2058, X'80A') El nombre del gestor de colas no es vlido o es desconocido. RC2059 (2059, X'80B') El gestor de colas no est disponible para conexin. RC2161 (2161, X'871') El gestor de colas est en reposo. RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2057 (2057, X'809') Tipo de cola no vlido. RC2184 (2184, X'888') El nombre de la cola remota no es vlido. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2063 (2063, X'80F') Se ha producido un error de seguridad. | | | RC2188 (2188, X'88C') La llamada ha sido rechazada por la rutina de salida de carga de trabajo de clster. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2195 (2195, X'893') Se ha producido un error inesperado. RC2082 (2082, X'822') Cola alias base desconocida. RC2197 (2197, X'895') Cola de transmisin por omisin desconocida. RC2085 (2085, X'825') Nombre de objeto desconocido. RC2086 (2086, X'826') Gestor de colas de objeto desconocido. RC2087 (2087, X'827') Gestor de colas remoto desconocido. RC2196 (2196, X'894') Cola de transmisin desconocida. RC2091 (2091, X'82B') La cola de transmisin no es local.
Captulo 32. MQOPEN - Abrir objeto

269

RC2092 (2092, X'82C') Utilizacin incorrecta de la cola de transmisin. Para ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Notas de utilizacin
1. El objeto abierto es uno de los siguientes: v Una cola, para: Obtener o examinar mensajes (utilizando la llamada MQGET) Poner mensajes (utilizando la llamada MQPUT). Consultar los atributos de la cola (utilizando la llamada MQINQ) Establecer los atributos de la cola (utilizando la llamada MQSET) Si la cola indicada es una cola modelo, se crear una cola local dinmica. Vea el parmetro OBJDSC que se describe en el Captulo 32. MQOPEN Abrir objeto en la pgina 261. Una lista de distribucin es un tipo especial de objeto cola que contiene una lista de colas. Se puede abrir para poner mensajes, pero no para obtener o examinar mensajes, ni para consultar o establecer atributos. v Una lista de nombres, para: Consultar los nombres de las colas que hay en la lista (utilizando la llamada MQINQ). v Una definicin de proceso, para: Consultar los atributos de proceso (utilizando la llamada MQINQ). v El gestor de colas, para: Consultar los atributos del gestor de colas local (utilizando la llamada MQINQ). 2. Esto es vlido para que una aplicacin abra el mismo objeto ms de una vez. Se devuelve un asa de objeto distinta para cada apertura. Cada asa devuelta se puede utilizar para las funciones para las que se realiz la apertura correspondiente. 3. Si el objeto que se va a abrir es una cola, pero no una cola de clster, todas las resoluciones de nombre realizadas dentro del gestor de colas local se efectuarn en el momento de la llamada MQOPEN. Esto puede incluir una o ms de las siguientes operaciones para una determinada llamada MQOPEN: v Resolucin de alias en el nombre de una cola base v Resolucin del nombre de una definicin local de una cola remota en el nombre del gestor de colas remoto y en el nombre mediante el cual se conoce a la cola en el gestor de colas remoto v Resolucin del nombre del gestor de colas remoto en el nombre de una cola de transmisin. No obstante, tenga en cuenta que las llamadas MQINQ o MQSET ulteriores en relacin al asa solo se estn relacionadas con el nombre que se haya abierto y no con el objeto resultante tras la resolucin de nombre. Por ejemplo, si el objeto abierto es un alias, los atributos devueltos por la llamada MQINQ sern los atributos del alias, no los atributos de la cola base en la que se resuelve el alias. No obstante, la comprobacin de la resolucin de nombre sigue llevndose a cabo, independientemente de lo especificado en el parmetro OPTS de la MQOPEN correspondiente.

| | | |

270

Consulta de programacin de aplicaciones (ILE RPG)

| | | | | | | | |

Si el objeto que se va a abrir es una cola de clster, se puede efectuar una resolucin de nombre en el momento de la llamada MQOPEN, o se puede posponer hasta ms tarde. El momento en el que se efecta la resolucin est controlado por las opciones * especificadas en la llamada MQOPEN: OOBNDO OOBNDN OOBNDQ Vea el manual MQSeries Queue Manager Clusters si desea obtener ms informacin sobre la resolucin de nombre en el caso de las colas de clster. 4. Los atributos de un objeto pueden cambiar mientras una aplicacin tiene el objeto abierto. En muchos casos, la aplicacin no informa de esto, pero en determinados atributos el gestor de colas marca el asa como no vlida. Son los siguientes: v Cualquier atributo que afecte a la resolucin de nombre del objeto. Esto se aplica independientemente de las opciones de abrir que se utilicen e incluye: Un cambio en el atributo BaseQName de una cola alias que est abierta. Un cambio en los atributos de cola remota RemoteQName o RemoteQMgrName, para cualquier asa que est abierta para esta cola, o para una cola que efecte la resolucin mediante esta definicin como alias de gestor de colas. Cualquier cambio que haga que un asa abierta actualmente para una cola remota se resuelva en una cola de transmisin distinta, o no logre resolverse en ninguna. Por ejemplo, un cambio en el atributo XmitQName de la definicin local de una cola remota, si la definicin est utilizndose para una cola o para un alias de gestor de colas. Hay una excepcin a esta regla: la creacin de una nueva cola de transmisin. Un asa que se habra resuelto para esta cola si hubiera estado presente al abrir el asa, pero que en cambio se ha resuelto en la cola de transmisin por omisin, no ser incorrecto. Un cambio en el atributo DefXmitQName del gestor de colas. En este caso, todas las asas abiertas que se han resuelto en la cola indicada anteriormente (solo porque era la cola de transmisin por omisin) se marcan como incorrectos. Las asas que se hayan resuelto en esta cola por cualquier otra razn no se vern afectadas. v El atributo de cola local Shareability, si hay dos o ms asas que proporcionan actualmente acceso OOINPS para esta cola o para una cola que se resuelva en esta cola. Si es as, todas las asas que se abran para esta cola o para la cola que se resuelve en esta cola se marcarn como no vlidas independientemente de las opciones de abrir. v El atributo de cola local Usage, para todas las asas que se abran para esta cola o para una cola que se resuelva en esta cola, independientemente de las opciones de abrir. Cuando un asa se marca como no vlida, todas las llamadas siguientes (distintas de MQCLOSE) que utilicen esa asa fallarn con el cdigo de razn RC2041; la aplicacin deber emitir una llamada MQCLOSE (utilizando el asa original) y abrir de nuevo la cola. Las actualizaciones no comprometidas con respecto al asa antigua procedentes de las llamadas satisfactorias anteriores podrn seguir comprometindose o restituyndose, segn lo que requiera la lgica de la aplicacin.

Captulo 32. MQOPEN - Abrir objeto

271

Si debido al cambio de un atributo sucede lo anterior, deber utilizarse una versin especial de forzar del mandato. 5. El gestor de colas efecta comprobaciones de seguridad cuando se emite una llamada MQOPEN para verificar que el identificador de usuario con el que se est ejecutando la aplicacin tiene el nivel de autorizacin adecuado antes de permitir el acceso. La comprobacin de autorizacin se realiza en el nombre del objeto que est abrindose y no en el nombre o nombres resultantes de la resolucin de un nombre. 6. Si el objeto que se est abriendo es una cola modelo, el gestor de colas efecta una comprobacin de seguridad completa del nombre de la cola modelo y del nombre de la cola dinmica que se crea. Si la cola dinmica resultante se abre posteriormente de forma explcita, se efectuar una comprobacin de seguridad de recursos adicional del nombre de la cola dinmica. 7. Una cola remota puede especificarse de una de estas dos maneras en el parmetro OBJDSC de esta llamada (vea lo referente a los campos ODON y ODMN que se describen en el Captulo 12. MQOD - Descriptor de objeto en la pgina 143): v Especificando para ODON el nombre de una definicin local de una cola remota. En este caso, ODMN se refiere al gestor de colas local y puede especificarse como blancos. La validacin de seguridad realizada por el gestor de colas local comprueba si la aplicacin tiene autorizacin para abrir la definicin local de la cola remota. v Especificando para ODON el nombre de la cola remota tal como la conoce el gestor de colas remoto. En ese caso, ODMN sera el nombre del gestor de colas remoto. La validacin de seguridad realizada por el gestor de colas local comprueba si la aplicacin tiene autorizacin para enviar mensajes a la cola de transmisin resultante del proceso de resolucin de nombre. En ambos casos: v El gestor de colas local no enva mensajes al gestor de colas remoto para comprobar si la aplicacin est autorizada a colocar mensajes en la cola. v Cuando llega un mensaje al gestor de colas remoto, este puede rechazarlo si el usuario que lo ha originado no tiene autorizacin. 8. Las notas siguientes son para la utilizacin de listas de distribucin. a. Los campos de la estructura MQOD se deben establecer como se indica a continuacin cuando se abra una lista de distribucin: v ODVER debe tener el valor ODVER2 o superior. v ODOT debe tener el valor OTQ. v ODON debe estar en blanco o con la serie nula. v ODMN debe estar en blanco o con la serie nula. v ODREC debe ser mayor que cero. v Uno de los campos ODORO y ODORP debe ser cero y el otro distinto de cero. v No puede haber ms de un campo ODRRO y ODRRP distinto de cero. v Debe haber registros de objeto ODREC, direccionados por ODORO o ODORP. Los registros de objeto deben establecerse en los nombres de las colas destino que se van a abrir. v Si uno de los campos ODRRO y ODRRP es distinto de cero, debe haber presentes registros de respuesta ODREC. Si la llamada se completa con el cdigo de razn RC2136, el gestor de colas establece los registros.

272

Consulta de programacin de aplicaciones (ILE RPG)

Tambin se puede utilizar MQOD versin 2 para abrir una sola cola que no est en una lista de distribucin, si se asegura que ODREC sea igual a cero. b. Las siguientes opciones de abrir son las nicas vlidas en el parmetro OPTS: OOOUT OOPAS* OOSET* OOALTU OOFIQ c. Las colas destino de las listas de distribucin pueden ser locales, remotas o alias, pero no pueden ser colas modelo. Si se especifica una cola modelo, la cola no se podr abrir, con el cdigo de razn RC2057. No obstante, esto no impide que se puedan abrir satisfactoriamente otras colas de la lista. d. El cdigo de terminacin y el cdigo de razn se establecen como sigue: v Si las operaciones de abrir para las colas de la lista de distribucin terminan todas de la misma forma, con error o satisfactoriamente, los parmetros cdigo de terminacin y cdigo de razn se establecen para describir el resultado comn a todas. Los registros de respuesta MQRR (si son proporcionados por la aplicacin) no se establecen en este caso. Por ejemplo, si todas las aperturas se realizan satisfactoriamente, el cdigo de terminacin y el cdigo de razn se establecen en CCOK y RCNONE, respectivamente; si todas las aperturas fallan debido a que ninguna de las colas existe, los parmetros se establecen en CCFAIL y RC2085. v Si no todas las operaciones de abrir para las colas de la lista de distribucin fallan o son satisfactorias de la misma forma: El parmetro cdigo de terminacin se establece en CCWARN, si al menos una de las aperturas se realiza satisfactoriamente, y en CCFAIL si fallan todas. El parmetro cdigo de razn se establece en RC2136. Los registros de respuesta (si son proporcionados por la aplicacin) se establecen en los cdigos de terminacin y en los cdigos de razn individuales de las colas de la lista de distribucin. e. Cuando se ha abierto satisfactoriamente una lista de distribucin, el asa HOBJ devuelta por la llamada se puede utilizar en las siguientes llamadas MQPUT para poner mensajes en las colas de la lista de distribucin, y en una llamada MQCLOSE para restringir el acceso a la lista de distribucin. La nica opcin de cerrar vlida para una lista de distribucin es CONONE. La llamada MQPUT1 tambin se puede utilizar para poner un mensaje en una lista de distribucin; la estructura MQOD que define las colas de la lista se especifica como parmetro en esa llamada. f. Cada destino abierto satisfactoriamente de la lista de distribucin se cuenta como asa aparte cuando se comprueba si la aplicacin ha superado el nmero mximo de asas permitidas (vea el atributo de gestor de colas MaxHandles). Esto ocurre siempre, incluso si dos o ms de los destinos de la lista de distribucin se resuelven en la misma cola fsica. Si las llamadas MQOPEN o MQPUT1 para poner en una lista de distribucin hacen que el nmero de asas utilizadas por la aplicacin sobrepase el atributo MaxHandles, la llamada falla con el cdigo de razn RC2017. g. Cada destino que se abra satisfactoriamente tiene el valor de su atributo OpenOutputCount ms uno. Si dos o ms de los destinos de la lista de
Captulo 32. MQOPEN - Abrir objeto

| | | |

273

distribucin se resuelven realmente en una misma cola fsica, la cola tiene el valor de su atributo OpenOutputCount ms el nmero de destinos de la lista de distribucin que se resuelvan en esta cola. h. Cualquier cambio realizado en las definiciones de cola que hubiera hecho que un asa se volviera no vlida, en el caso de que las colas se hubieran abierto individualmente (por ejemplo, un cambio en la va de resolucin), no implica que el asa de la lista de distribucin se vuelva no vlida. No obstante, esto har que se produzca un error en la cola cuando se utilice el asa de la lista de distribucin en una llamada MQPUT posterior. i. Una lista de distribucin puede contener un solo destino. 9. Una llamada MQOPEN con la opcin OOBRW establece un cursor para examinar para utilizarlo con las llamadas MQGET que especifiquen el asa de objeto y una de las opciones de examinar. Esto permite explorar la cola sin alterar su contenido. A continuacin, un mensaje que se haya encontrado examinando podr eliminarse de la cola utilizando la opcin GMMUC. Puede haber varios cursores para examinar activos para una sola aplicacin; para ello se emiten varias peticiones MQOPEN para abrir una misma cola. 10. Las notas siguientes se aplican a la utilizacin de colas de clster. a. Cuando se abre una cola de clster por primera vez y el gestor de colas local no es un gestor de colas de depsito completo, el gestor de colas local obtiene la informacin acerca de la cola de clster de un gestor de colas de depsito completo. Si la red est ocupada, puede que el gestor de colas local tarde algunos segundos en recibir la informacin necesaria del gestor de colas de depsito. Como resultado, la aplicacin que emite la llamada MQOPEN deber esperar un mximo de 10 segundos hasta que vuelva el control de la llamada MQOPEN. Si el gestor de colas local no recibe la informacin necesaria acerca de la cola de clster en este tiempo, la llamada falla con el cdigo de razn RC2189. b. Si se abre una cola de clster y hay varias instancias de la cola en el clster, la instancia que realmente se abre depende de las opciones que se hayan especificado en la llamada MQOPEN: v Si las opciones especificadas son algunas de las siguientes: OOBRW OOINPQ OOINPX OOINPS OOSET la instancia de la cola de clster que se abre debe ser la instancia local. Si no hay ninguna instancia local de la cola, la llamada MQOPEN falla. v Si las opciones especificadas no son ninguna de las anteriores, pero incluyen alguna de las siguientes: OOINQ OOOUT la instancia que se abre es la instancia local, si es que existe, o una instancia remota, en caso contrario. No obstante, la instancia elegida por el gestor de colas la puede modificar una rutina de salida de carga de trabajo de clster (si existe). Si desea obtener ms informacin acerca de las colas de clster, vea el manual MQSeries Queue Manager Clusters. 11. Las aplicaciones iniciadas por un supervisor de desencadenamiento reciben el nombre de la cola asociado a la aplicacin cuando esta se inicia. Este nombre

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

274

Consulta de programacin de aplicaciones (ILE RPG)

de cola se puede especificar en el parmetro OBJDSC para abrir la cola. Vea la descripcin de la estructura MQTMC para obtener ms detalles. 12. En OS/400, las aplicaciones que se ejecuten en modalidad de compatibilidad se conectan automticamente al gestor de colas mediante la primera llamada MQOPEN emitida por la aplicacin (si la aplicacin no se ha conectado ya con el gestor de colas utilizando la llamada MQCONN). Las aplicaciones que no se ejecuten en moddalidad de compatibilidad deben emitir las llamadas MQCONN o MQCONNX para conectarse al gestor de colas de manera explcita, antes de utilizar la llamada MQOPEN para abrir un objeto.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQOPEN(HCONN : OBJDSC : OPTS : C HOBJ : CMPCOD : REASON)

La definicin prototipo para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQOPEN PR EXTPROC('MQOPEN') D* Asa de conexin D HCONN 10I 0 VALUE D* Descriptor de objeto D OBJDSC 360A D* Opciones que controlan la accin de MQOPEN D OPTS 10I 0 VALUE D* Asa de objeto D HOBJ 10I 0 D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

Captulo 32. MQOPEN - Abrir objeto

275

276

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 33. MQPUT - Poner mensaje


La llamada MQPUT pone un mensaje en una cola o en una lista de distribucin. La cola o la lista de distribucin deben estar ya abiertas.

Sintaxis
MQPUT (HCONN, HOBJ, MSGDSC, PMO, BUFLEN, BUFFER, CMPCOD, REASON)

Parmetros
HCONN (entero de 10 dgitos con signo) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. En OS/400 para aplicaciones que se ejecutan en modalidad de compatibilidad, la llamada MQCONN puede omitirse, as como el siguiente valor especificado para HCONN: HCDEFH Asa de conexin por omisin. HOBJ (entero de 10 dgitos con signo) entrada Asa de objeto. Esta asa representa la cola a la que debe aadirse el mensaje. El valor de HOBJ lo devolvi una llamada MQOPEN anterior que especificaba la opcin OOOUT. MSGDSC (MQMD) entrada/salida Descriptor de mensaje. Esta estructura describe los atributos del mensaje enviado y recibe informacin sobre el mensaje un vez completada la peticin de poner. Vea el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para obtener ms detalles. Si la aplicacin proporciona un MQMD versin 1, los datos del mensaje se pueden prefijar con una estructura MQMDE para especificar los valores de los campos que existen en MQMD versin 2, pero no en la versin 1. El campo MDFMT en MQMD debe estar definido como FMMDE para indicar que hay presente un MQMDE. Vea el Captulo 11. MQMDE - Extensin de descriptor de mensaje en la pgina 137 para obtener ms detalles. PMO (MQPMO) entrada/salida Opciones que controlan la accin de MQPUT. Vea el Captulo 14. MQPMO - Opciones de poner mensaje en la pgina 155 para obtener ms detalles. BUFLEN (entero de 10 dgitos con signo) entrada Longitud del mensaje en BUFFER.
Copyright IBM Corp. 1994, 2000

277

Cero es vlido e indica que el mensaje no contiene datos de la aplicacin. Si el destino es una cola local, o se resuelve en una cola local, el lmite superior de BUFLEN depender de si: v El gestor de colas local da soporte a la segmentacin. v La aplicacin emisora especifica el distintivo que permite al gestor de colas segmentar el mensaje. Este distintivo es MFSEGA, y se puede especificar en MQMD versin 2, o en MQMDE utilizado con un MQMD versin 1. | | | | | | Si se cumplen estas dos condiciones, BUFLEN no podr sobrepasar 999 999 999 menos el valor del campo MDOFF en MQMD. El mensaje lgico ms largo que se puede transferir es por lo tanto de 999 999 999 bytes (cuando MDOFF es igual a cero). No obstante, las restricciones de recurso impuestas por el sistema operativo o por el entorno de ejecucin de la aplicacin pueden hacer que el lmite sea inferior. Si no se cumplen una o las dos condiciones anteriores, BUFLEN no puede sobrepasar el menor de los atributos MaxMsgLength de cola o MaxMsgLength de gestor de colas. Si el destino es una cola remota, o se resuelve en una cola remota, se aplican las mismas condiciones, pero para cada uno de los gestores de colas por los que el mensaje debe pasar para alcanzar la cola destino; en concreto: 1. La cola de transmisin local utilizada para almacenar temporalmente el mensaje en el gestor de colas local 2. Las colas de transmisin intermedias (caso de existir) utilizadas para almacenar el mensaje en gestores de colas de la ruta entre los gestores de la cola local y destino. 3. La cola destino situada en el gestor de colas destino El mensaje ms largo que se puede transferir depender, por lo tanto, de cul sea la restriccin mayor impuesta por estas colas y gestores de colas. Cuando un mensaje est en una cola de transmisin, la informacin adicional reside junto con los datos del mensaje y esto reduce la cantidad de datos de aplicacin que pueden transferirse. En esta situacin es aconsejable restar los bytes de LNMHD a los valores de MaxMsgLength de las colas de transmisin cuando se determina el lmite de BUFLEN. Nota: Solo el incumplimiento de la condicin 1 puede diagnosticarse sincrnicamente (con el cdigo de razn RC2030 o RC2031) cuando se transfiere el mensaje. Si no se satisfacen las condiciones 2 3, el mensaje se redirecciona a una cola de mensajes no entregados (de un gestor de colas intermedias o del gestor de colas destino); si sucede lo anterior, se generar un mensaje de informe si as lo haba solicitado el emisor. Si esto ocurriera, se generar un mensaje de informe en caso de que lo solicitara el emisor. BUFFER (serie de bits de 1 byteBUFLEN) entrada Datos del mensaje. Es un almacenamiento intermedio que contiene los datos de la aplicacin a enviar. Si BUFFER contiene datos de tipo carcter y/o numricos, deber darse a los campos MDCSI y MDENC del parmetro MSGDSC los valores adecuados para los

278

Consulta de programacin de aplicaciones (ILE RPG)

datos; esto permitir al receptor del mensaje convertir los datos (si es necesario) para que estn en el juego de caracteres y en la codificacin utilizados por el receptor. Nota: El resto de parmetros de la llamada MQPUT debe estar en el juego de caracteres y la codificacin del gestor de colas local (facilitados, respectivamente, por el atributo CodedCharSetId del gestor de colas y ENNAT). CMPCOD (entero de 10 dgitos con signo) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCWARN Aviso (la llamada se ha completado parcialmente). CCFAIL La llamada ha fallado. REASON (entero de 10 dgitos con signo) salida Cdigo de razn que califica a CMPCOD. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCWARN: RC2136 (2136, X'858') Se han devuelto varios cdigos de razn. RC2049 (2049, X'801') La prioridad del mensaje supera el valor mximo soportado. RC2104 (2104, X'838') Las opciones de informe del descriptor de mensaje no se reconocen. Si CMPCOD es CCFAIL: RC2004 (2004, X'7D4') El parmetro almacenamiento intermedio no es vlido. RC2005 (2005, X'7D5') El parmetro longitud de almacenamiento intermedio no es vlido. RC2219 (2219, X'8AB') La llamada MQI reentr antes de que se completase la llamada anterior. RC2266 (2266, X'8DA') Ha fallado la rutina de salida de carga de trabajo de clster. RC2189 (2189, X'88D') Ha fallado la resolucin del nombre de clster. RC2269 (2269, X'8DD') Error de recurso de clster. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas.

| | | | |

Captulo 33. MQPUT - Poner mensaje

279

RC2097 (2097, X'831') El asa de cola a la que se hace referencia no salva el contexto. RC2098 (2098, X'832') Contexto no disponible para el asa de cola a la que se hace referencia. RC2135 (2135, X'857') La estructura de cabecera de distribucin no es vlida. RC2013 (2013, X'7DD') La fecha de caducidad no es vlida. RC2014 (2014, X'7DE') El cdigo de informacin de retorno no es vlido. RC2258 (2258, X'8D2') El identificador de grupo no es vlido. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2019 (2019, X'7E3') El asa de objeto no es vlida. RC2241 (2241, X'8C1') El grupo de mensajes no est completo. RC2242 (2242, X'8C2') El mensaje lgico no est completo. RC2185 (2185, X'889') Especificacin de permanencia incoherente. RC2245 (2245, X'8C5') Especificacin de unidad de trabajo incoherente. RC2026 (2026, X'7EA') El descriptor de mensaje no es vlido. RC2248 (2248, X'8C8') La extensin de descriptor de mensaje no es vlida. RC2027 (2027, X'7EB') Falta la cola de respuestas. RC2249 (2249, X'8C9') Los distintivos del mensaje no son vlidos. RC2250 (2250, X'8CA') El nmero de secuencia del mensaje no es vlido. RC2030 (2030, X'7EE') La longitud del mensaje es superior al mximo de la cola. RC2031 (2031, X'7EF') La longitud del mensaje es superior al mximo del gestor de colas. RC2029 (2029, X'7ED') El tipo de mensaje del descriptor de mensaje no es vlido. RC2136 (2136, X'858') Se han devuelto mltiples cdigos de razn. | | RC2270 (2270, X'8DE') No hay disponible ninguna cola destino. RC2039 (2039, X'7F7') La cola no se ha abierto para salida. RC2093 (2093, X'82D') Cola no abierta para pasar todo el contexto. RC2094 (2094, X'82E') Cola no abierta para pasar el contexto de identidad.

280

Consulta de programacin de aplicaciones (ILE RPG)

RC2095 (2095, X'82F') Cola no abierta para establecer todo el contexto. RC2096 (2096, X'830') Cola no abierta para establecer el contexto de identidad. RC2041 (2041, X'7F9') La definicin de un objeto ha cambiado desde su apertura. RC2101 (2101, X'835') Objeto daado. RC2251 (2251, X'8CB') El desplazamiento del segmento de mensaje no es vlido. RC2137 (2137, X'859') El objeto no se ha abierto satisfactoriamente. RC2046 (2046, X'7FE') Las opciones no son vlidas o no son coherentes. RC2252 (2252, X'8CC') La longitud original no es vlida. | | RC2149 (2149, X'865') Las estructuras PCF no son vlidas. RC2047 (2047, X'7FF') La permanencia no es vlida. RC2048 (2048, X'800') Un mensaje en una cola dinmica temporal no puede ser permanente. RC2173 (2173, X'87D') La estructura de las opciones de poner mensaje no es vlida. RC2158 (2158, X'86E') Los distintivos de registro de poner mensaje no son vlidos. RC2050 (2050, X'802') La prioridad del mensaje no es vlida. RC2051 (2051, X'803') Llamadas de poner estn inhibidas en la cola. RC2159 (2159, X'86F') Los registros de poner mensaje no son vlidos. RC2052 (2052, X'804') La cola se ha suprimido. RC2053 (2053, X'805') La cola ya contiene el nmero mximo de mensajes. RC2058 (2058, X'80A') El nombre del gestor de colas no es vlido o es desconocido. RC2059 (2059, X'80B') El gestor de colas no est disponible para conexin. RC2161 (2161, X'871') El gestor de colas est en reposo. RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2056 (2056, X'808') No hay espacio disponible para la cola en el disco. RC2154 (2154, X'86A') El nmero de registros presente no es vlido.

Captulo 33. MQPUT - Poner mensaje

281

RC2061 (2061, X'80D') Las opciones de informe del descriptor de mensaje no son vlidas. RC2156 (2156, X'86C') Los registros de respuesta no son vlidos. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2253 (2253, X'8CD') La longitud de los datos que hay en el segmento de mensaje es igual a cero. | | | RC2188 (2188, X'88C') Llamada rechazada por la rutina de salida de carga de trabajo de clster. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2024 (2024, X'7E8') No pueden manejarse ms mensajes dentro de la unidad de trabajo actual. RC2072 (2072, X'818') El soporte de punto de sincronismo no est disponible. RC2195 (2195, X'893') Se ha producido un error inesperado. RC2255 (2255, X'8CF') La unidad de trabajo no est disponible para ser utilizada por el gestor de colas. RC2257 (2257, X'8D1') La versin del MQMD suministrado es incorrecta. Para ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Notas de utilizacin
1. Las llamadas MQPUT y MQPUT1 pueden utilizarse para colocar mensajes en una cola; el uso de una u otra depender de las circunstancias: v La llamada MQPUT debe utilizarse cuando deben colocarse varios mensajes en la misma cola. Se emite primero una llamada MQOPEN especificando la opcin OOOUT, seguida de una o ms peticiones MQPUT para aadir mensajes a la cola; finalmente, la cola se cierra con una llamada MQCLOSE. De este modo el rendimiento es mejor que utilizando repetidamente la llamada MQPUT1. v La llamada MQPUT1 debe utilizarse cuando solo debe colocarse un mensaje en la cola. Esta llamada encapsula las llamadas MQOPEN, MQPUT y MQCLOSE en una sola llamada, minimizando por lo tanto el nmero de llamadas que deben emitirse. 2. Si una aplicacin coloca una secuencia de mensajes en la misma cola, sin utilizar grupos de mensajes, el orden de los mismos se conservar siempre y cuando se cumplan las condiciones que se describen a continuacin. Algunas de las condiciones se aplican a colas destino locales y remotas; otras condiciones se aplican a colas destino remotas. Condiciones para las colas destino remotas v Todas las llamadas MQPUT estn dentro de la misma unidad de trabajo o ninguna de ellas est dentro de una unidad de trabajo.

282

Consulta de programacin de aplicaciones (ILE RPG)

Tenga en cuenta que cuando se transfieren mensajes a una cola determinada dentro de una sola unidad de trabajo, los mensajes de otras aplicaciones pueden entremezclarse con la secuencia de mensajes de la cola. v Todas las llamadas MQPUT se efectan utilizando la misma asa de objeto HOBJ. En algunos entornos, la secuencia de mensajes tambin se conserva cuando se utilizan distintas asas, siempre y cuando las llamadas se efecten desde una misma aplicacin. El significado de misma aplicacin lo determina el entorno: En OS/400, la aplicacin es el trabajo. v Todos los mensajes tienen la misma prioridad. Condiciones adicionales para las colas destino remotas v Solo hay una va desde el gestor de colas emisor al gestor de colas destino. Si existe la posibilidad de que algunos de los mensajes de la secuencia puedan ir por una va distinta (por ejemplo, debido a una reconfiguracin, a la regulacin del trfico o a que se haya seleccionado otra va debido al tamao del mensaje), el orden de los mensaje en el gestor de colas destino no podr garantizarse. v Los mensajes no se colocan temporalmente en las colas de mensajes no entregados situadas en los gestores de colas emisores, intermedios o destino. Si uno o ms de los mensajes se ponen temporalmente en una cola de mensajes no entregados (por ejemplo, porque la cola de transmisin o la cola destino estn temporalmente llenas), los mensajes pueden llegar a la cola destino fuera de secuencia. v Los mensajes son todos permanentes o todos no permanentes. Si un canal existente en la ruta entre los gestores de colas emisor y destino tiene su atributo CDNPM establecido en NPFAST, los mensajes no permanentes pueden pasar delante de los mensajes permanentes, de manera que no se conserva el orden de los mensajes permanentes respecto al de los no permanentes. No obstante, s que se conserva el orden de los mensajes permanentes entre ellos, y el de los mensajes no permanentes entre ellos. Si no se cumplen estas condiciones, se pueden utilizar los grupos de mensajes para conservar el orden de los mensajes, pero esto requiere que tanto la aplicacin emisora como la receptora utilicen el soporte de grupos de mensajes. Si desea obtener ms informacin acerca de los grupos de mensajes, vea: v Campo MDMFL en MQMD v Opcin PMLOGO en MQPMO v Opcin GMLOGO en MQGMO 3. Las notas siguientes se aplican a la utilizacin de listas de distribucin. a. Los mensajes se pueden poner en una lista de distribucin utilizando MQPMO versin 1 o versin 2. Si se utiliza MQPMO versin 1 (o MQPMO versin 2 con PMREC igual a cero), la aplicacin no puede proporcionar registros de poner mensaje ni de respuesta. Esto significa que no ser posible identificar las colas en las que se ha producido algn error, si se enva el mensaje satisfactoriamente a algunas colas de la lista de distribucin y no a otras. Para que la aplicacin pueda proporcionar registros de poner mensaje o registros de respuesta, el campo PMVER debe establecerse en PMVER2. Tambin se puede utilizar MQPMO versin 2 para enviar mensajes a una sola cola que no est en una lista de distribucin, si se asegura que PMREC es igual a cero.
Captulo 33. MQPUT - Poner mensaje

283

b. El cdigo de terminacin y el cdigo de razn se establecen como sigue: v Si las transferencias a las colas de la lista de distribucin terminan todas de la misma forma, con error o satisfactoriamente, los parmetros cdigo de terminacin y cdigo de razn se establecen para describir el resultado comn a todas. Los registros de respuesta MQRR (si son proporcionados por la aplicacin) no se establecen en este caso. Por ejemplo, si todas las transferencias se realizan satisfactoriamente, el cdigo de terminacin y el cdigo de razn se establecen en CCOK y RCNONE, respectivamente; si todas las transferencias fallan debido a que todas las colas estn inhibidas para las transferencias, los parmetros se establecen en CCFAIL y RC2051. v Si las transferencias a las colas de la lista de distribucin no terminan todas de la misma forma, con error o satisfactoriamente: El parmetro cdigo de terminacin se establece en CCWARN, si al menos una de las transferencias se realiza satisfactoriamente, y en CCFAIL si todas fallan. El parmetro cdigo de razn se establece en RC2136. Los registros de respuesta (si son proporcionados por la aplicacin) se establecen en los cdigos de terminacin y en los cdigos de razn individuales de las colas de la lista de distribucin. Si la transferencia a un destino falla debido a que ha fallado la apertura para ese mismo destino, los campos del registro de respuesta se establecen en CCFAIL y RC2137; este destino se incluye en PMIDC. c. Si el destino de la lista de distribucin se resuelve en una cola local, el mensaje se coloca en esta cola en su forma normal (esto es, no como un mensaje de lista de distribucin). Si se resuelve ms de un destino en la misma cola local, se coloca un mensaje en la cola para cada uno de estos destinos. Si el destino de la lista de distribucin se resuelve en una cola remota, se coloca un mensaje en la cola de transmisin correspondiente. Si se resuelven varios destinos en una misma cola de transmisin, se debe colocar en esta cola un nico mensaje de lista de distribucin que contenga estos destinos, incluso si estos destinos no eran contiguos en la lista de destinos proporcionada por la aplicacin. No obstante, esto solo se puede hacer si la cola de transmisin da soporte a los mensajes de lista de distribucin (vea el atributo de cola DistLists que se describe en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311). Si la cola de transmisin no da soporte a listas de distribucin, se coloca una copia del mensaje en su forma normal en la cola de trasmisin de cada destino que utilice esa cola de transmisin. Si la lista de distribucin con los datos del mensaje de aplicacin es demasiado grande para una cola transmisin, el mensaje de lista de distribucin se divide en mensajes de lista de distribucin ms pequeos, cada uno de los cuales contiene menos destinos. Si los datos del mensaje de aplicacin solo cabe justo en la cola, los mensajes de lista de distribucin no se pueden usar, y el gestor de colas genera una copia del mensaje en su forma normal para cada destino que utilice esa cola de transmisin. Si distintos destinos tienen diferentes prioridades de mensaje o permanencias de mensaje (esto puede ocurrir cuando la aplicacin especifica PRQDEF o PEQDEF), los mensajes no se guardan en el mismo mensaje de lista de distribucin. En su lugar, el gestor de colas genera tantos mensajes de lista de distribucin como sean necesarios para albergar los diferentes valores de prioridad y permanencia.

284

Consulta de programacin de aplicaciones (ILE RPG)

d. Una transferencia en en una lista de distribucin puede dar resultado a: v Un mensaje nico de lista de distribucin, o v Varios mensajes de lista de distribucin ms pequeos, o v Una combinacin de mensajes de lista de distribucin y mensajes normales, o v Mensajes normales solamente. El resultado depender depender de si: v Los destinos en la lista son locales, remotos, o una combinacin de ambos. v Los destinos tienen la misma prioridad de mensaje y la misma permanencia de mensaje. v Las colas de transmisin pueden contener mensajes de lista de distribucin. v Las longitudes mximas de mensaje de las colas de transmisin son suficientes para albergar el mensaje en forma de lista de distribucin. No obstante, independientemente de cul de estos casos se d, cada mensaje fsico que se produzca como resultado (esto es, cada mensaje normal o cada mensaje de lista de distribucin que produzca la transferencia) contar como un solo mensaje cuando: v Se compruebe si la aplicacin ha sobrepasado el nmero mximo permitido de mensajes en una unidad de trabajo (vea el atributo de gestor de colas MaxUncommittedMsgs). v Se compruebe si se han cumplido las condiciones desencadenantes. v Se aumente la profundidad de cola y se compruebe si se va a sobrepasar la profundidad de cola mxima de las colas. e. Cualquier cambio realizado en las definiciones de cola que hubiera hecho que un asa se volviera no vlida, en el caso de que las colas se hubieran abierto individualmente (por ejemplo, un cambio en la va de resolucin), no implica que el asa de la lista de distribucin se vuelva no vlida. No obstante, esto har que se produzca un error en la cola cuando se utilice el asa de la lista de distribucin en una llamada MQPUT posterior. 4. Si se transfiere un mensaje con una o ms estructuras de cabecera MQ al principio de los datos del mensaje de aplicacin, el gestor de colas lleva a cabo algunas comprobaciones en las estructuras de cabecera para verificar que son vlidas. Si el gestor de colas detecta un error, la llamada falla con el correspondiente cdigo de razn. Las comprobaciones realizadas varan segn las estructuras concretas que estn presentes. Adems, las comprobaciones se realizan solo si se utiliza un MQMD versin 2 o posterior en la llamada MQPUT o MQPUT1; las comprobaciones no se realizan si se utiliza un MQMD versin 1, incluso en el caso de haya presente un MQMDE al principio de los datos del mensaje de la aplicacin. Las siguientes estructuras de cabecera MQ estn validadas completamente por el gestor de colas: MQDH, MQMDE. Para otras estructuras de MQ, el gestor de colas realiza algunas validaciones, pero no comprueba todos los campos. Las estructuras no soportadas por el gestor de colas local y las estructuras que siguen a la primera MQDLH del mensaje no estn validadas. Adems de las comprobaciones generales en los campos de las estructuras MQ, se deben cumplir las siguientes condiciones: v Una estructura MQ no debe estar dividida en dos o ms segmentos la estructura debe estar completamente contenida dentro de un segmento.

Captulo 33. MQPUT - Poner mensaje

285

v La suma de las longitudes de las estructuras en un mensaje PCF debe ser igual a la longitud que especifica el parmetro BUFLEN en las llamadas MQPUT o MQPUT1. Un mensaje PCF es un mensaje que tiene uno de los siguientes nombres de formato: FMADMN FMEVNT FMPCF v Las estructuras MQ no deben estar trucadas, excepto en las siguientes situaciones en las que se permiten estructuras truncadas: Mensajes que sean mensajes de informe. Mensajes PCF. Mensajes que contienen una estructura MQDLH. (Las estructuras que siguen a la primera MQDLH pueden estar truncadas; no as las que preceden a la MQDLH). 5. El parmetro BUFFER mostrado en el ejemplo de programacin RPG se declara como serie, lo cual limita la longitud mxima del parmetro a 256 bytes. Si se necesita un almacenamiento intermedio ms grande, debe declararse el parmetro en lugar de hacerlo como estructura, o como campo de un archivo fsico. Esto aumentar la longitud mxima posible hasta aproximadamente 32 KB.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQPUT(HCONN : HOBJ : MSGDSC : PMO : C BUFLEN : BUFFER : CMPCOD : C REASON)

La definicin prototipo para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQPUT PR EXTPROC('MQPUT') D* Asa de conexin D HCONN 10I 0 VALUE D* Asa de objeto D HOBJ 10I 0 VALUE D* Descriptor de mensaje D MSGDSC 364A D* Opciones que controlan la accin de MQPUT D PMO 176A D* Longitud del mensaje en BUFFER D BUFLEN 10I 0 VALUE D* Datos del mensaje D BUFFER * VALUE D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

286

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 34. MQPUT1 - Poner un mensaje


La llamada MQPUT1 pone un solo mensaje en una cola. No es necesario que la cola est abierta.

Sintaxis
MQPUT1 (HCONN, OBJDSC, MSGDSC, PMO, BUFLEN, BUFFER, CMPCOD, REASON)

Parmetros
HCONN (entero de 10 dgitos con signo) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. En OS/400 para aplicaciones que se ejecutan en modalidad de compatibilidad, la llamada MQCONN puede omitirse, as como el siguiente valor especificado para HCONN: HCDEFH Asa de conexin por omisin. OBJDSC (MQOD) entrada/salida Descriptor de objeto. Es una estructura que identifica la cola a la que se aade el mensaje. Vea el Captulo 12. MQOD - Descriptor de objeto en la pgina 143 para obtener ms detalles. La aplicacin debe tener autorizacin para abrir la cola para salida. La cola no debe ser una cola modelo. MSGDSC (MQMD) entrada/salida Descriptor de mensaje. Esta estructura describe los atributos del mensaje enviado y recibe informacin de retorno cuando la peticin de poner se completa. Vea el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para obtener ms detalles. Si la aplicacin proporciona un MQMD versin 1, los datos del mensaje se pueden prefijar con una estructura MQMDE para especificar los valores de los campos que existen en el MQMD versin 2, pero no en la versin 1. El campo MDFMT en MQMD debe estar definido como FMMDE para indicar que hay presente un MQMDE. Vea el Captulo 11. MQMDE - Extensin de descriptor de mensaje en la pgina 137 para obtener ms detalles. PMO (MQPMO) entrada/salida Opciones que controlan la accin de MQPUT1. Vea el Captulo 14. MQPMO - Opciones de poner mensaje en la pgina 155 para obtener ms detalles.
Copyright IBM Corp. 1994, 2000

287

BUFLEN (entero de 10 dgitos con signo) entrada Longitud del mensaje en BUFFER. Cero es vlido e indica que el mensaje no contiene datos de la aplicacin. El lmite superior depende de varios factores; vea la descripcin del parmetro BUFLEN de la llamada MQPUT para obtener ms detalles. BUFFER (serie de bits de 1 byteBUFLEN) entrada Datos del mensaje. Es un almacenamiento que contiene los datos de la aplicacin a enviar. Si BUFFER contiene datos de tipo carcter y/o numricos, deber darse a los campos MDCSI y MDENC del parmetro MSGDSC los valores adecuados para los datos; esto permitir al receptor del mensaje convertir los datos (si es necesario) para que estn en el juego de caracteres y en la codificacin utilizados por el receptor. Nota: El resto de parmetros de la llamada MQPUT1 debe estar en el juego de caracteres y la codificacin del gestor de colas local (facilitados, respectivamente, por el atributo CodedCharSetId del gestor de colas y ENNAT). CMPCOD (entero de 10 dgitos con signo) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCWARN Aviso (la llamada se ha completado parcialmente). CCFAIL La llamada ha fallado. REASON (entero de 10 dgitos con signo) salida Cdigo de razn que califica a CMPCOD. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCWARN: RC2136 (2136, X'858') Se han devuelto varios cdigos de razn. RC2241 (2241, X'8C1') El grupo de mensajes no est completo. RC2242 (2242, X'8C2') El mensaje lgico no est completo. RC2049 (2049, X'801') La prioridad del mensaje supera el valor mximo soportado. RC2104 (2104, X'838') Las opciones de informe del descriptor de mensaje no se reconocen. Si CMPCOD es CCFAIL:

288

Consulta de programacin de aplicaciones (ILE RPG)

RC2001 (2001, X'7D1') El tipo de cola alias base no es vlido. RC2004 (2004, X'7D4') El parmetro almacenamiento intermedio no es vlido. RC2005 (2005, X'7D5') El parmetro longitud de almacenamiento intermedio no es vlido. RC2219 (2219, X'8AB') La llamada MQI ha reentrado antes de que se completara la llamada anterior. | | | | | RC2266 (2266, X'8DA') Ha fallado la rutina de salida de carga de trabajo de clster. RC2189 (2189, X'88D') Ha fallado la resolucin del nombre de clster. RC2269 (2269, X'8DD') Error de recurso de clster. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2097 (2097, X'831') El asa de cola a la que se hace referencia no salva el contexto. RC2098 (2098, X'832') Contexto no disponible para el asa de cola a la que se hace referencia. RC2198 (2198, X'896') La cola de transmisin por omisin no es local. RC2199 (2199, X'897') Error de utilizacin de la cola de transmisin por omisin. RC2135 (2135, X'857') La estructura de la cabecera de distribucin no es vlida. RC2013 (2013, X'7DD') Fecha de caducidad no vlida. RC2014 (2014, X'7DE') El cdigo de informacin de retorno no es vlido. RC2258 (2258, X'8D2') El identificador de grupo no es vlido. RC2017 (2017, X'7E1') No hay ms asas disponibles. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2026 (2026, X'7EA') El descriptor de mensaje no es vlido. RC2248 (2248, X'8C8') La extensin de descriptor de mensaje no es vlida. RC2027 (2027, X'7EB') Falta la cola de respuestas. RC2249 (2249, X'8C9') Los distintivos del mensaje no son vlidos. RC2250 (2250, X'8CA') El nmero de secuencia del mensaje no es vlido. RC2030 (2030, X'7EE') La longitud del mensaje es superior al mximo de la cola.

Captulo 34. MQPUT1 - Poner un mensaje

289

RC2031 (2031, X'7EF') La longitud del mensaje es superior al mximo para el gestor de colas. RC2029 (2029, X'7ED') El tipo de mensaje del descriptor de mensaje no es vlido. RC2136 (2136, X'858') Se han devuelto mltiples cdigos de razn. | | RC2270 (2270, X'8DE') No hay ninguna cola destino que est disponible. RC2035 (2035, X'7F3') No posee autorizacin para acceder. RC2101 (2101, X'835') Objeto daado. RC2042 (2042, X'7FA') El objeto ya est abierto con opciones en conflicto. RC2155 (2155, X'86B') Los registros de objeto no son vlidos. RC2043 (2043, X'7FB') Tipo de objeto no vlido. RC2044 (2044, X'7FC') La estructura del descriptor de objeto no es vlida. RC2251 (2251, X'8CB') El desplazamiento del segmento del mensaje no es vlido. RC2046 (2046, X'7FE') Las opciones no son vlidas o no son coherentes. RC2252 (2252, X'8CC') La longitud original no es vlida. | | RC2149 (2149, X'865') Las estructuras PCF no son vlidas. RC2047 (2047, X'7FF') La permanencia no es vlida. RC2048 (2048, X'800') Un mensaje en una cola dinmica temporal no puede ser permanente. RC2173 (2173, X'87D') La estructura de las opciones de poner mensaje no es vlida. RC2158 (2158, X'86E') No son vlidos los distintivos de los registros para poner mensaje. RC2050 (2050, X'802') La prioridad del mensaje no es vlida. RC2051 (2051, X'803') Las llamadas de poner estn inhibidas en la cola. RC2159 (2159, X'86F') Los registros de poner mensaje no son vlidos. RC2052 (2052, X'804') La cola se ha suprimido. RC2053 (2053, X'805') La cola ya contiene el nmero mximo de mensajes. RC2058 (2058, X'80A') El nombre del gestor de colas no es vlido o es desconocido.

290

Consulta de programacin de aplicaciones (ILE RPG)

RC2059 (2059, X'80B') El gestor de colas no est disponible para conexin. RC2161 (2161, X'871') El gestor de colas est en reposo. RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2056 (2056, X'808') No hay espacio disponible para la cola en el disco. RC2057 (2057, X'809') Tipo de cola no vlido. RC2154 (2154, X'86A') El nmero de registros presentes no es vlido. RC2184 (2184, X'888') El nombre de la cola remota no es vlido. RC2061 (2061, X'80D') Las opciones de informe del descriptor de mensaje no son vlidas. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2156 (2156, X'86C') Los registros de respuesta no son vlidos. RC2063 (2063, X'80F') Se ha producido un error de seguridad. RC2253 (2253, X'8CD') La longitud de los datos del segmento de mensaje es cero. | | | RC2188 (2188, X'88C') Llamada rechazada por la rutina de salida de carga de trabajo de clster. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2024 (2024, X'7E8') No pueden manejarse ms mensajes dentro de la unidad de trabajo actual. RC2072 (2072, X'818') El soporte de punto de sincronismo no est disponible. RC2195 (2195, X'893') Se ha producido un error inesperado. RC2082 (2082, X'822') Cola alias base desconocida. RC2197 (2197, X'895') Cola de transmisin por omisin desconocida. RC2085 (2085, X'825') Nombre de objeto desconocido. RC2086 (2086, X'826') Gestor de colas de objeto desconocido. RC2087 (2087, X'827') Gestor de colas remoto desconocido. RC2196 (2196, X'894') Cola de transmisin desconocida. RC2255 (2255, X'8CF') La unidad de trabajo no est disponible para que el gestor de colas la utilice. RC2257 (2257, X'8D1') La versin de MQMD suministrada es incorrecta.

Captulo 34. MQPUT1 - Poner un mensaje

291

RC2091 (2091, X'82B') La cola de transmisin no es local. RC2092 (2092, X'82C') Utilizacin incorrecta de la cola de transmisin. Para ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Notas de utilizacin
1. Las llamadas MQPUT y MQPUT1 pueden utilizarse para colocar mensajes en una cola; la llamada que se ha de utilizar depende de las circunstancias: v La llamada MQPUT debe utilizarse cuando deben colocarse varios mensajes en la misma cola. Se emite primero una llamada MQOPEN especificando la opcin OOOUT, seguida de una o ms peticiones MQPUT para aadir mensajes a la cola; finalmente, la cola se cierra con una llamada MQCLOSE. De este modo el rendimiento es mejor que utilizando repetidamente la llamada MQPUT1. v La llamada MQPUT1 debe utilizarse cuando solo debe colocarse un mensaje en la cola. Esta llamada encapsula las llamadas MQOPEN, MQPUT y MQCLOSE en una sola llamada, minimizando por lo tanto el nmero de llamadas que deben emitirse. 2. Si una aplicacin coloca una secuencia de mensajes en la misma cola, sin utilizar grupos de mensajes, el orden de los mismos se conservar siempre y cuando se cumplan algunas condiciones. No obstante, en la mayora de entornos, la llamada MQPUT1 no cumple estas condiciones, por lo que no se conserva el orden de los mensajes. En estos entornos, debe utilizarse en su lugar la llamada MQPUT. Vea la descripcin de la llamada MQPUT en las notas de utilizacin si desea obtener ms detalles. 3. La llamada MQPUT1 se puede utilizar para poner mensajes en listas de distribucin. Si desea informacin general al respecto, vea la nota de utilizacin 8 en la pgina 272 para la llamada MQOPEN, y la nota de utilizacin 3 en la pgina 283 para la llamada MQPUT. Hay algunas diferencias cuando se utiliza la llamada MQPUT1: a. Si la aplicacin proporciona los registros de respuesta MQRR, debe utilizarse para ello la estructura MQOD; no se pueden proporcionar con la estructura MQPMO. b. El cdigo de razn RC2137 no lo devuelve nunca la llamada MQPUT1 en los registros de respuesta; si una cola no se abre satisfactoriamente, el registro de respuesta para esta cola contendr en este caso el cdigo de razn de la operacin de abrir. Si una operacin de abrir una cola es satisfactoria con un cdigo de terminacin CCWARN, el cdigo de terminacin y el cdigo de razn del registro de respuesta para esa cola se sustituyen por los cdigos de terminacin y de razn de la operacin de poner. Al igual que ocurre con las llamadas MQOPEN y MQPUT, el gestor de colas establece los registros de respuesta (si existen) solo cuando el resultado de la llamada no es el mismo para todas las colas de la lista de distribucin; esto viene indicado por la llamada que se completa con el cdigo de razn RC2136.

292

Consulta de programacin de aplicaciones (ILE RPG)

| | |

4. Si se utiliza la llamada MQPUT1 para poner un mensaje en una cola de clster, la llamada se comporta como si se hubiera especificado OOBNDN en la llamada MQOPEN. 5. Si se transfiere un mensaje con una o ms estructuras de cabecera MQ al principio de los datos del mensaje de aplicacin, el gestor de colas lleva a cabo algunas comprobaciones en las estructuras de cabecera para verificar que son vlidas. Si desea obtener ms informacin al respecto, vea la nota de utilizacin 4 en la pgina 285 para la llamada MQPUT. 6. Si se produce ms de una situacin de aviso (vea el parmetro CMPCOD), se devolver el primero de los siguientes cdigos de razn que sea aplicable: a. RC2136 b. RC2242 c. RC2241 d. RC2049 o RC2104 7. El parmetro BUFFER mostrado en el ejemplo de programacin RPG se declara como una serie, lo cual limita la longitud mxima del parmetro a 256 bytes. Si se necesita un almacenamiento intermedio ms grande, debe declararse el parmetro en lugar de hacerlo como una estructura, o como un campo de un archivo fsico. Esto aumentar la longitud mxima posible hasta aproximadamente 32 KB.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQPUT1(HCONN : OBJDSC : MSGDSC : C PMO : BUFLEN : BUFFER : C CMPCOD : REASON)

La definicin prototipo para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQPUT1 PR EXTPROC('MQPUT1') D* Asa de conexin D HCONN 10I 0 VALUE D* Descriptor de objeto D OBJDSC 360A D* Descriptor de mensaje D MSGDSC 364A D* Opciones que controlan la accin de MQPUT1 D PMO 176A D* Longitud del mensaje en BUFFER D BUFLEN 10I 0 VALUE D* Datos del mensaje D BUFFER * VALUE D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

Captulo 34. MQPUT1 - Poner un mensaje

293

294

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 35. MQSET - Establecer atributos de objeto


La llamada MQSET se utiliza para cambiar los atributos de un objeto representado por un asa. El objeto debe ser una cola.

Sintaxis
MQSET (HCONN, HOBJ, SELCNT, SELS, IACNT, INTATR, CALEN, CHRATR, CMPCOD, REASON)

Parmetros
HCONN (entero de 10 dgitos con signo) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. El valor de HCONN lo devolvi una llamada MQCONN o MQCONNX anterior. En OS/400 para aplicaciones que se ejecutan en modalidad de compatibilidad, la llamada MQCONN puede omitirse, as como el siguiente valor especificado para HCONN: HCDEFH Asa de conexin por omisin. HOBJ (entero de 10 dgitos con signo) entrada Asa de objeto. Esta asa representa el objeto cola cuyos atributos se han de establecer. El asa la devolvi una llamada MQOPEN anterior que especificaba la opcin OOSET. SELCNT (entero de 10 dgitos con signo) entrada Cuenta de selectores. Esta es la cuenta de selectores suministrados en la matriz SELS. Es el nmero de atributos que deben establecerse. Cero es un valor vlido. El nmero mximo permitido es 256. SELS (entero de 10 dgitos con signoSELCNT) entrada Matriz de selectores de atributos. Es una matriz de selectores de atributos SELCNT; cada selector identifica un atributo (de tipo entero o carcter) cuyo valor debe establecerse. Cada selector debe ser vlido para el tipo de cola representado por HOBJ. Solo se permiten determinados valores IA* y CA*; estos valores se indican a continuacin. Los selectores pueden especificarse en cualquier orden. Los valores de atributos que correspondan a selectores de atributos de tipo entero (selectores IA*) deben especificarse en INTATR en el mismo orden en que dichos selectores aparecen en SELS. Los valores de atributos que correspondan a selectores de atributos de tipo carcter (selectores CA*) deben especificarse en CHRATR en el

Copyright IBM Corp. 1994, 2000

295

mismo orden en que aparecen dichos selectores. Los selectores IA* pueden estar intercalados con selectores CA*; solo es importante el orden relativo dentro de cada tipo. Se puede especificar el mismo selector ms de una vez; si lo hace, el ltimo valor especificado para un selector determinado ser el que surta efecto. Notas: 1. Los selectores de atributos de tipo entero y de tipo carcter se asignan dentro de dos rangos distintos; los selectores IA* estn comprendidos entre IAFRST y IALAST, y los selectores CA* estn comprendidos entre CAFRST y CALAST. Para cada rango, las constantes IALSTU y CALSTU definen el valor ms alto que puede aceptar el gestor de colas. 2. Si todos los selectores IA* aparecen en primer lugar, podrn utilizarse los mismos nmeros de elementos para direccionar los elementos correspondientes de las matrices SELS y INTATR. Para cada selector CA* de las siguientes descripciones, la constante que define la longitud en bytes de la serie que se necesita en CHRATR se da entre parntesis. Selectores para todos los tipos de cola IAIPUT Indica si estn permitidas operaciones de poner. Selectores para colas locales CATRGD Datos desencadenantes (LNTRGD). IADIST Soporte de lista de distribucin. IAIGET Indica si estn permitidas operaciones de obtener. IATRGC Control de desencadenamiento. IATRGD Profundidad desencadenante. IATRGP Prioridad de mensaje umbral para desencadenantes. IATRGT Tipo de desencadenante. Selectores para colas alias IAIGET Indica si estn permitidas las operaciones de obtener. Con esta llamada no puede establecerse ningn otro atributo. IACNT (entero de 10 dgitos con signo) entrada Cuenta de atributos de tipo entero. Es el nmero de elementos de la matriz INTATR y debe tener, como mnimo, el nmero de selectores IA* del parmetro SELS. Cero es un valor vlido si no hay ninguno. INTATR (entero de 10 dgitos con signoIACNT) entrada Matriz de atributos de tipo entero.

296

Consulta de programacin de aplicaciones (ILE RPG)

Es una matriz de valores de atributos de tipo entero IACNT. Estos valores de atributos deben estar en el mismo orden que los selectores IA* en la matriz SELS. CALEN (entero de 10 dgitos con signo) entrada Longitud del almacenamiento intermedio de atributos de tipo carcter. Es la longitud en bytes del parmetro CHRATR y debe ser como mnimo la suma de las longitudes de los atributos de tipo carcter especificados en la matriz SELS. Cero es un valor vlido si no hay selectores CA* en SELS. CHRATR (serie de caracteres de 1 byteCALEN) entrada Atributos de tipo carcter. Es el almacenamiento intermedio que contiene los valores de los atributos de tipo carcter concatenados. La longitud del almacenamiento intermedio la indica el parmetro CALEN. Los atributos de tipo carcter deben especificarse en el mismo orden que los selectores CA* de la matriz SELS. La longitud de cada atributo de tipo carcter es fija (vea SELS). Si el valor que se ha de establecer para un atributo contiene menos caracteres que no sean blancos que la longitud del atributo, el valor de CHRATR deber rellenarse con blancos a la derecha para que el valor del atributo coincida con la longitud definida del atributo. CMPCOD (entero de 10 dgitos con signo) salida Cdigo de terminacin. Es uno de los siguientes: CCOK La llamada se ha completado satisfactoriamente. CCFAIL La llamada ha fallado. REASON (entero de 10 dgitos con signo) salida Cdigo de razn que califica a CMPCOD. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCFAIL: RC2219 (2219, X'8AB') La llamada MQI reentr antes de que se completase la llamada anterior. RC2006 (2006, X'7D6') La longitud de los atributos de tipo carcter no es vlida. RC2007 (2007, X'7D7') La serie de atributos de tipo carcter no es vlida. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2019 (2019, X'7E3') El asa de objeto no es vlida. RC2020 (2020, X'7E4') El valor del atributo de cola para inhibir obtener o para inhibir poner no es vlido.
Captulo 35. MQSET - Establecer atributos de objeto

297

RC2021 (2021, X'7E5') La cuenta de atributos de tipo entero no es vlida. RC2023 (2023, X'7E7') La matriz de atributos de tipo entero no es vlida. RC2040 (2040, X'7F8') La cola no se ha abierto para establecer. RC2041 (2041, X'7F9') La definicin de objeto ha cambiado desde su apertura. RC2101 (2101, X'835') Objeto daado. RC2052 (2052, X'804') La cola se ha suprimido. RC2058 (2058, X'80A') El nombre del gestor de colas no es vlido o es desconocido. RC2059 (2059, X'80B') El gestor de colas no est disponible para conexin. RC2162 (2162, X'872') Se est cerrando el gestor de colas. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2065 (2065, X'811') La cuenta de selectores no es vlida. RC2067 (2067, X'813') El selector de atributo no es vlido. RC2066 (2066, X'812') La cuenta de selectores es demasiado grande. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2075 (2075, X'81B') El valor del atributo de control de desencadenamiento no es vlido. RC2076 (2076, X'81C') El valor del atributo de profundidad desencadenante no es vlido. RC2077 (2077, X'81D') El valor del atributo de prioridad de mensaje desencadenante no es vlido. RC2078 (2078, X'81E') El valor del atributo de tipo de desencadenante no es vlido. RC2195 (2195, X'893') Se ha producido un error inesperado. Para ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Notas de utilizacin
1. Utilizando esta llamada, la aplicacin puede especificar una matriz de atributos de tipo entero o una coleccin de series de atributo de tipo carcter o ambas cosas. Todos los atributos especificados se establecen simultneamente si no se producen errores. Si se produce un error (por ejemplo, si un selector no es vlido o se intenta estableber un atributo en un valor que no es vlido), la llamada falla y no se establece ningn atributo.

298

Consulta de programacin de aplicaciones (ILE RPG)

2. Los valores de los atributos pueden determinarse utilizando la llamada MQINQ; vea el Captulo 31. MQINQ - Consultar los atributos de objeto en la pgina 251 si desea obtener ms detalles. Nota: No todos los atributos cuyos valores pueden consultarse con la llamada MQINQ pueden cambiar sus valores utilizando la llamada MQSET. Por ejemplo, con esta llamada no pueden establecerse atributos de objeto proceso o de gestor de colas. 3. Los cambios de atributos se conservan con los sucesivos rearranques del gestor de colas (a diferencia de las alteraciones en las colas dinmicas temporales, las cuales no permanecen tras los sucesivos rearranques del gestor de colas). 4. No es posible cambiar los atributos de una cola modelo utilizando la llamada MQSET. No obstante, si abre una cola modelo utilizando la llamada MQOPEN con la opcin OOSET, puede utilizar la llamada MQSET para establacer los atributos de la cola dinmica creada por la llamada MQOPEN. 5. Si el objeto que se est estableciendo es una cola de clster, debe haber una instancia local de la cola de clster para que la apertura sea satisfactoria. 6. Para ms informacin sobre los atributos de objeto, consulte el Captulo 36. Atributos de los objetos de MQSeries.

| |

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQSET(HCONN : HOBJ : SELCNT : C SELS(1) : IACNT : INTATR(1) : C CALEN : CHRATR : CMPCOD : C REASON)

La definicin prototipo para la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQSET PR EXTPROC('MQSET') D* Asa de conexin D HCONN 10I 0 VALUE D* Asa de objeto D HOBJ 10I 0 VALUE D* Cuenta de selectores D SELCNT 10I 0 VALUE D* Matriz de selectores de atributos D SELS 10I 0 D* Cuenta de atributos de tipo entero D IACNT 10I 0 VALUE D* Matriz de atributos de tipo entero D INTATR 10I 0 D* Longitud de almacenamiento intermedio de atributos de tipo carcter D CALEN 10I 0 VALUE D* Atributos de tipo carcter D CHRATR * VALUE D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

Captulo 35. MQSET - Establecer atributos de objeto

299

Invocacin RPG

300

Consulta de programacin de aplicaciones (ILE RPG)

Parte 3. Atributos de objeto


Captulo 36. Atributos de los objetos de MQSeries . . . . . . . . . . . . . . . 303 . 305

Captulo 37. Atributos de todas las colas .

Captulo 38. Atributos de colas locales y colas modelo . . . . . . . . . . . . . . . 311 Captulo 39. Atributos de definiciones locales de colas remotas . . . . . . . . . . Captulo 40. Atributos de colas alias . . . .

. 327 . 329 331

Captulo 41. Atributos de las listas de nombres Captulo 42. Atributos de las definiciones de proceso . . . . . . . . . . . . . . Captulo 43. Atributos del gestor de colas . .

. 333 . 337

Copyright IBM Corp. 1994, 2000

301

Atributos de objeto

302

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 36. Atributos de los objetos de MQSeries


Los objetos de MQSeries pueden ser: v Canales v Colas v Gestores de colas v Listas de nombres v Procesos Esta parte del manual describe los atributos (o propiedades) de los objetos de MQSeries a los que se puede acceder mediante la API, que son las colas, los gestores de colas, las listas de nombres y los procesos. Las listas de nombres estn soportadas en los siguientes entornos: AIX, cliente DOS, HP-UX, OS/390, OS/2, OS/400, Sun Solaris, cliente Windows y Windows NT. Las definiciones de proceso no estn soportadas en los siguientes entornos: Windows de 16 bits, Windows de 32 bits y VSE/ESA. Los atributos se agrupan segn el tipo de objeto al que se aplican; vea : v Captulo 37. Atributos de todas las colas en la pgina 305 v Captulo 38. Atributos de colas locales y colas modelo en la pgina 311 v Captulo 39. Atributos de definiciones locales de colas remotas en la pgina 327 v Captulo 40. Atributos de colas alias en la pgina 329 v Captulo 41. Atributos de las listas de nombres en la pgina 331 v Captulo 42. Atributos de las definiciones de proceso en la pgina 333 v Captulo 43. Atributos del gestor de colas en la pgina 337 En cada seccin, los atributos se indican en orden alfabtico. Nota: Los nombres de los atributos de los objetos aparecen en el manual con el formato con que se utilizan en las llamadas MQINQ y MQSET. Al utilizar los mandatos de MQSeries para definir, alterar o visualizar los atributos, se emplean las palabras clave que aparecen en las descripciones de los mandatos, en el manual MQSeries Consulta de mandatos.

Copyright IBM Corp. 1994, 2000

303

Atributos

304

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 37. Atributos de todas las colas


La siguiente tabla resume los atributos que son comunes a todos los tipos de cola (excepto cuando se indique lo contrario). Los atributos se describen en orden alfabtico.
Tabla 49. Atributos de todas las colas
Atributo Descripcin Pgina AlterationDate AlterationTime ClusterName ClusterNamelist

| | | | | | | | |

Fecha en la que se cambi la definicin por ltima 305 vez Hora a la que se cambi la definicin por ltima vez Nombre del clster al que pertenece la cola 305 305

Nombre del objeto lista de nombres que contiene 306 los nombres de los clsteres a los que pertenece la cola Enlace por omisin Permanencia del mensaje por omisin Prioridad del mensaje por omisin Controla si estn permitidas las operaciones de obtener en la cola Controla si estn permitidas las operaciones de poner en la cola Descripcin de la cola Nombre de la cola Tipo de cola Controla si tambin existe la entrada para la cola en un directorio de celdas 306 306 307 308 308 308 309 309 309

DefBind DefPersistence DefPriority InhibitGet InhibitPut QDesc QName QType Scope

| | | | | | | | | | | | | | |

AlterationDate (serie de caracteres de 12 bytes) Fecha en la que se cambi la definicin por ltima vez. Es la fecha en la que se cambi la definicin por ltima vez. El formato de la fecha es AAAA-MM-DD, rellenado con dos blancos finales para que la longitud sea igual a 12 bytes. Para determinar el valor de este atributo, utilice el selector CAALTD con la llamada MQINQ. La longitud de este atributo la indica LNDATE. AlterationTime (serie de caracteres de 8 bytes) Hora a la que se cambi la definicin por ltima vez. Es la hora a la que se cambi la definicin por ltima vez. El formato de la hora es HH.MM.SS. Para determinar el valor de este atributo, utilice el selector CAALTT con la llamada MQINQ. La longitud de este atributo la indica LNTIME. ClusterName (serie de caracteres de 48 bytes) Nombre del clster al que pertenece la cola.
Copyright IBM Corp. 1994, 2000

305

Atributos - todas las colas


| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Es el nombre del clster al que pertenece la cola. Si la cola pertenece a ms de un clster, ClusterNamelist especifica el nombre de un objeto lista de nombres que identifica los clsteres, y ClusterName est en blanco. Al menos uno de los atributos ClusterName y ClusterNamelist debe estar en blanco. Este atributo no es aplicable a las colas modelo. Para determinar el valor de este atributo, utilice el selector CACLN con la llamada MQINQ. La longitud de este atributo la indica LNCLUN. ClusterNamelist (serie de caracteres de 48 bytes) Nombre del objeto lista de nombres que contiene los nombres de los clsteres a los que pertenece la cola. Es el nombre del objeto lista de nombres que contiene los nombres de los clsteres a los que pertenece la cola. Si la cola solo pertenece a un clster, el objeto lista de nombres contiene un solo nombre. Asimismo, se puede utilizar ClusterName para especificar el nombre del clster, en cuyo caso ClusterNamelist quedar en blanco. Al menos uno de los atributos ClusterName y ClusterNamelist debe estar en blanco. Este atributo no es aplicable a las colas modelo. Para determinar el valor de este atributo, utilice el selector CACLNL con la llamada MQINQ. La longitud de este atributo la indica LNNLN. DefBind (entero de 10 dgitos con signo) Enlace por omisin. Es el enlace por omisin que se utiliza cuando se especifica OOBNDQ en la llamada MQOPEN y la cola es de un clster. Este atributo no es aplicable a las colas modelo. El valor es uno de los siguientes: BNDOPN Enlace fijado por la llamada MQOPEN. BNDNOT Enlace no fijo. Para determinar el valor de este atributo, utilice el selector IADBND con la llamada MQINQ. DefPersistence (entero de 10 dgitos con signo) Permanencia de mensaje por omisin. Es la permanencia por omisin de los mensajes que hay en la cola. Es aplicable si se especifica PEQDEF en el descriptor de mensaje cuando se transfiere el mensaje. Si hay ms de una definicin en la va de resolucin de nombres de cola, la permanencia por omisin se toma del valor de este atributo en la primera definicin de la va cuando se realiza la llamada MQPUT o MQPUT1. Esta puede ser: v Una cola alias v Una cola local v Una definicin local de una cola remota v Un alias de gestor de colas v Una cola de transmisin (por ejemplo, la cola DefXmitQName)

306

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - todas las colas


El valor es uno de los siguientes: PEPER El mensaje es permanente. El mensaje sigue existiendo tras los rearranques del gestor de colas. Dado que las colas dinmicas temporales no siguen existiendo tras los rearranques del gestor de colas, los mensajes permanentes no pueden colocarse en este tipo de colas, pero s en colas dinmicas permanentes y colas predefinidas. PENPER El mensaje no es permanente. El mensaje no sigue existiendo tras los rearranques del gestor de colas. Esto se aplica aunque se encuentre una copia intacta del mensaje en el almacenamiento auxiliar durante el procedimiento de rearranque. En una cola puede haber mensajes permanentes y no permanentes. Para determinar el valor de este atributo, utilice el selector IADPER con la llamada MQINQ. DefPriority (entero de 10 dgitos con signo) Prioridad del mensaje por omisin Es la prioridad por omisin de los mensajes de la cola. Esto es aplicable si se especifica PRQDEF en el descriptor de mensaje al transferirlo a la cola. Si hay ms de una definicin en la va de resolucin de nombres de cola, la permanencia por omisin del mensaje se toma del valor de este atributo en la primera definicin de la va en el momento de realizarse la operacin de poner. Esta puede ser: v Una cola alias v Una cola local v Una definicin local de una cola remota v Un alias de gestor de colas v Una cola de transmisin (por ejemplo, la cola DefXmitQName) La forma en la que se coloca un mensaje en una cola depende del valor del atributo MsgDeliverySequence de la cola: v Si el atributo MsgDeliverySequence es MSPRIO, la posicin lgica en la que se coloca el mensaje en la cola depender del valor del campo MDPRI en el descriptor de mensajes. v Si el atributo MsgDeliverySequence es MSFIFO, los mensajes se colocan en la cola como si tuvieran la misma prioridad que el DefPriority de la cola resuelta, independientemente del valor del campo MDPRI en el descriptor de mensaje. No obstante, el campo MDPRI retendr el valor especificado por la aplicacin que transfiri el mensaje. Vea el atributo MsgDeliverySequence que se describe en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311 para obtener ms informacin. Las prioridades van de cero (la inferior) a MaxPriority (la ms alta); vea el atributo MaxPriority que se describe en el Captulo 43. Atributos del gestor de colas en la pgina 337. Para determinar el valor de este atributo, utilice el selector IADPRI con la llamada MQINQ.
Captulo 37. Atributos de todas las colas

307

Atributos - todas las colas


InhibitGet (entero de 10 dgitos con signo) Controla si estn permitidas las operaciones de obtener para esta cola. Este atributo se aplica nicamente a colas locales, modelo y alias. Si la cola es una cola alias, las operaciones de obtener deben estar permitidas para la cola base y la cola alias en el momento de la operacin de obtener para que la llamada MQGET sea satisfactoria. El valor es uno de los siguientes: QAGETI Se inhiben las operaciones de obtener. Las llamadas MQGET fallan con el cdigo de razn RC2016. Esto incluye las llamadas MQGET que especifican GMBRWF o GMBRWN. Nota: Si una llamada MQGET que funcione dentro de una unidad de trabajo se completa satisfactoriamente, cambiar el valor del atributo InhibitGet posteriormente por QAGETI no evitar que la unidad de trabajo quede comprometida. QAGETA Se permiten las operaciones de obtener. Para determinar el valor de este atributo, utilice el selector IAIGET con la llamada MQINQ. Para cambiar el valor de este atributo, utilice la llamada MQSET. InhibitPut (entero de 10 dgitos con signo) Controla si estn permitidas las operaciones de poner para esta cola. Si hay ms de una definicin en la va de resolucin de nombres de cola, las operaciones de poner deben estar permitidas para cada definicin de la va (incluidas todas las definiciones de alias del gestor de colas) en el momento de la operacin de poner para que las llamadas MQPUT o MQPUT1 sean satisfactorias. El valor es uno de los siguientes: QAPUTI Se inhiben las operaciones de poner. Las llamadas MQPUT y MQPUT1 fallan con el cdigo de razn RC2051. Nota: Si una llamada MQPUT que funcione dentro de una unidad de trabajo se completa satisfactoriamente, cambiar el valor del atributo InhibitPut posteriormente por QAPUTI no evitar que la unidad de trabajo quede comprometida. QAPUTA Se permiten las operaciones de poner. Para determinar el valor de este atributo, utilice el selector IAIPUT con la llamada MQINQ. Para cambiar el valor de este atributo, utilice la llamada MQSET. QDesc (serie de caracteres de 64 bytes) Descripcin de la cola.

308

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - todas las colas


Es un campo que puede utilizarse para un comentario descriptivo. El contenido del campo no es significativo para el gestor de colas, aunque dicho gestor puede necesitar que el campo contenga nicamente caracteres que puedan visualizarse. No puede contener caracteres nulos; si es necesario, se rellenar a la derecha con blancos. En una instalacin DBCS, el campo puede contener caracteres DBCS (sujetos a una longitud mxima del campo de 64 bytes). Nota: Si este campo contiene caracteres que no se encuentran en el juego de caracteres del gestor de colas (definido en el atributo de gestor de colas CodedCharSetId), los caracteres pueden convertirse errneamente si el campo se enva a otro gestor de colas. Para determinar el valor de este atributo, utilice el selector CAQD con la llamada MQINQ. La longitud de este atributo la indica LNQD. QName (serie de caracteres de 48 bytes) Nombre de la cola. Es el nombre de una cola definida en el gestor de colas local. Para obtener ms informacin sobres nombres de cola, vea MQSeries Application Programming Guide. Todas las colas definidas en un gestor de colas comparten el mismo espacio de nombre de cola. Por lo tanto, una cola QTLOC y una cola QTALS no pueden tener el mismo nombre. Para determinar el valor de este atributo, utilice el selector CAQN con la llamada MQINQ. La longitud de este atributo la indica LNQN. QType (entero de 10 dgitos con signo) Tipo de cola. Este atributo tiene uno de los valores siguientes: QTALS Definicin de cola alias. QTCLUS Cola de clster. QTLOC Cola local. QTREM Definicin local de una cola remota. Para determinar el valor de este atributo, utilice el selector IAQTYP con la llamada MQINQ. Scope (entero de 10 dgitos con signo) Controla si tambin existe la entrada para esta cola en un directorio de celdas. El directorio de celdas viene proporcionado por el Servicio de nombres instalable. Este atributo se aplica nicamente a colas locales y alias, y a definiciones locales de colas remotas. No es aplicable a las colas modelo. El valor es uno de los siguientes: SCOQM mbito de gestor de colas. La definicin de cola tiene un mbito de gestor de colas. Esto significa que la definicin de la cola no se extiende ms all del gestor de colas
Captulo 37. Atributos de todas las colas

| |

309

Atributos - todas las colas


propietario de la cola. Para abrir la cola para salida desde algn otro gestor de colas, o se especifica el nombre del gestor de colas propietario o el otro gestor de colas debe tener una definicin local de la cola. SCOCEL mbito de celda. La definicin de cola tiene un mbito de celda. Esto significa que la definicin de la cola tambin se encuentra en un directorio de celdas disponible para todos los gestores de colas de la celda. La cola se puede abrir para salida desde cualquiera de los gestores de colas de la celda tan solo con especificar el nombre de la cola; no hace falta especificar el nombre del gestor de colas que es propietario de la cola. No obstante, la definicin de cola no est disponible para ningn gestor de colas de la celda que tambin tenga una definicin local de una cola con ese nombre, ya que la definicin local tiene precedencia. El directorio de celdas lo proporciona un servicio de nombres instalable. Por ejemplo, el servicio de nombres DCE inserta la definicin de cola en el directorio DCE. Las colas modelo y las dinmicas no tienen mbito de celda. Este valor solo es vlido si se ha configurado un servicio de nombres que d soporte a un directorio de celdas. Para determinar el valor de este atributo, utilice el selector IASCOP con la llamada MQINQ. El soporte de este atributo est sujeto a estas restricciones: v En OS/400, el atributo est soportado, pero solo es vlido SCOQM.

310

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 38. Atributos de colas locales y colas modelo


La siguiente tabla resume los atributos que son especficos de las colas locales y las colas modelo (excepto cuando se indique lo contrario). Los atributos se describen en orden alfabtico.
Tabla 50. Atributos de colas locales y modelo
Atributo BackoutRequeueQName BackoutThreshold CreationDate CreationTime CurrentQDepth DefinitionType DefInputOpenOption DistLists HardenGetBackout InitiationQName MaxMsgLength MaxQDepth MsgDeliverySequence OpenInputCount OpenOutputCount ProcessName QDepthHighEvent QDepthHighLimit QDepthLowEvent QDepthLowLimit QDepthMaxEvent QServiceInterval QServiceIntervalEvent RetentionInterval Shareability TriggerControl TriggerData TriggerDepth TriggerMsgPriority Descripcin Nombre de cola de recolocacin en cola de restitucin excesiva Umbral de restitucin Fecha de creacin de la cola Hora de creacin de la cola Profundidad de cola actual Tipo de definicin de cola Opcin de apertura para entrada por omisin Soporte de lista de distribucin Indica si va a mantenerse una cuenta exacta de restitucin Nombre de la cola de inicio Longitud mxima del mensaje en bytes Profundidad mxima de la cola Secuencia de entrega del mensaje Nmero de aperturas para entrada Nmero de aperturas para salida Nombre de proceso Controla si se generan sucesos de profundidad mxima de cola Lmite mximo de profundidad de cola Controla si se generan sucesos de profundidad mnima de cola Lmite mnimo de profundidad de cola Controla si se generan sucesos de cola llena Destino del intervalo de servicio de cola Controla si se generan sucesos del intervalo de servicio alto o del intervalo de servicio correcto Intervalo de retencin Posibilidad de compartir la cola Control de desencadenamiento Datos desencadenantes Profundidad desencadenante Prioridad de mensaje umbral para desencadenantes Pgina 312 312 312 312 313 313 314 314 315 316 316 317 317 318 318 319 319 319 320 320 320 321 321 322 322 322 323 323 323

Copyright IBM Corp. 1994, 2000

311

Atributos - colas locales y modelo


Tabla 50. Atributos de colas locales y modelo (continuacin)
Atributo TriggerType Usage Descripcin Tipo de desencadenante Utilizacin de la cola Pgina 324 324

BackoutRequeueQName (serie de caracteres de 48 bytes) Nombre de cola de recolocacin en cola de restitucin excesiva. Adems de poder consultar su valor, el gestor de colas no realiza ninguna accin basada en el valor de este atributo. Para determinar el valor de este atributo, utilice el selector CABRQN con la llamada MQINQ. La longitud de este atributo la indica LNQN. BackoutThreshold (entero de 10 dgitos con signo) Umbral de restitucin. Adems de poder consultar su valor, el gestor de colas no realiza ninguna accin basada en el valor de este atributo. Para determinar el valor de este atributo, utilice el selector IABTHR con la llamada MQINQ. CreationDate (serie de caracteres de 12 bytes) Fecha en que se cre la cola. El formato es
AAAA-MM-DD

con 2 bytes de blancos como relleno a la derecha para alcanzar la longitud de 12 bytes. Por ejemplo:
1992-09-23bb

es 23 de Septiembre de 1992 (bb representa 2 caracteres en blanco). En OS/400, la fecha de creacin de una cola puede ser distinta de la de entidad del sistema operativo subyacente (archivo o espacio de usuario) que representa la cola. Para determinar el valor de este atributo, utilice el selector CACRTD con la llamada MQINQ. La longitud de este atributo la indica LNCRTD. CreationTime (serie de caracteres de 8 bytes) Hora de creacin de la cola. El formato es
HH.MM.SS

utilizando el reloj de 24 horas, con un cero inicial si la hora es anterior a las 10. Por ejemplo:
21.10.20

Es un serie de 8 caracteres. La hora es la hora local.

312

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - colas locales y modelo


v En OS/400, la hora de creacin de una cola puede ser distinta de la de entidad del sistema operativo subyacente (archivo o espacio de usuario) que representa la cola. Para determinar el valor de este atributo, utilice el selector CACRTT con la llamada MQINQ. La longitud de este atributo la indica LNCRTT. CurrentQDepth (entero de 10 dgitos con signo) Profundidad actual de la cola. Es el nmero de mensajes actuales de la cola. Aumenta durante una llamada MQPUT y durante la restitucin de una llamada MQGET. Disminuye durante una llamada MQGET que no sea de examinar y durante la restitucin de una llamada MQPUT. El efecto de esto es que la cuenta incluye los mensajes que se han puesto en la cola dentro de una unidad de trabajo, pero que an no se han comprometido, incluso si no son elegibles para que la llamada MQGET los recupere. Del mismo modo, la cuenta excluye los mensajes que se hayan recuperado dentro de una unidad de trabajo utilizando la llamada MQGET, pero que an deben comprometerse. La cuenta tambin incluye los mensajes que ya han caducado pero que todava no se han descartado, aunque estos no son elegibles para recuperarse. Vea el campo MDEXP que se describe en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85. El valor de este atributo flucta mientras el gestor de colas opera. Este atributo no se aplica a las colas modelo, pero s a las colas definidas dinmicamente que se crean a partir de las definiciones de cola modelo utilizando la llamada MQOPEN. Para determinar el valor de este atributo, utilice el selector IACDEP con la llamada MQINQ. DefinitionType (entero de 10 dgitos con signo) Tipo de definicin de cola. Indica cmo se ha definido la cola. Es uno de los siguientes: QDPRE Cola permanente predefinida. Es una cola permanente que crea el administrador del sistema; solo l puede suprimirla. Las colas predefinidas se crean mediante el mandato DEFINE y solo pueden suprimirse con el mandato DELETE. No es posible crear colas predefinidas a partir de las colas modelo. Los mandatos pueden emitirlos un operador o una aplicacin autorizada enviando un mensaje de mandato a la cola de entrada de mandatos (vea el atributo CommandInputQName que se describe en el Captulo 43. Atributos del gestor de colas en la pgina 337). QDPERM Cola permanente definida dinmicamente. Es una cola permanente creada por una aplicacin que ha emitido una llamada MQOPEN con el nombre de una cola modelo especificado en el descriptor de objeto. La definicin de la cola modelo tiene el valor
Captulo 38. Atributos de colas locales y colas modelo

313

Atributos - colas locales y modelo


QDPERM para el atributo DefinitionType. Este tipo de cola puede suprimirse con la llamada MQCLOSE. Vea el Captulo 25. MQCLOSE - Cerrar objeto en la pgina 221 para obtener ms detalles. QDTEMP Cola temporal definida dinmicamente. Es una cola temporal creada por una aplicacin que ha emitido una llamada MQOPEN con el nombre de una cola modelo especificado en el descriptor de objeto. La definicin de la cola modelo tiene el valor QDTEMP para el atributo DefinitionType. Este tipo de cola se suprime automticamente mediante la llamada MQCLOSE cuando la aplicacin que la ha creado la cierra. Este atributo de una definicin de cola modelo no indica la forma en que se ha definido la cola modelo, ya que estas siempre estn predefinidas. Por el contrario, este valor se utiliza para determinar el DefinitionType de cada una de las colas dinmicas creadas a partir de la definicin de cola modelo utilizando la llamada MQOPEN. Para determinar el valor de este atributo, utilice el selector IADEFT con la llamada MQINQ. DefInputOpenOption (entero de 10 dgitos con signo) Opcin de apertura para entrada por omisin. Es la forma que se utiliza por omisin para abrir la cola para realizar entrada. Es aplicable si se especifica la opcin OOINPQ en la llamada MQOPEN al abrir la cola. Es uno de los siguientes: OOINPX Abrir la cola para obtener mensajes con acceso exclusivo. La cola se abre para poder utilizarla con llamadas MQGET posteriores. La llamada falla con el cdigo de razn RC2042 si esta u otra aplicacin ya ha abierto actualmente la cola para entrada de cualquier tipo (OOINPS o OOINPX). OOINPS Abrir la cola para obtener mensajes con acceso compartido. La cola se abre para poder utilizarla con llamadas MQGET posteriores. La llamada puede realizarse satisfactoriamente si la cola ya la ha abierto esta u otra aplicacin con OOINPS, pero falla con el cdigo de razn RC2042 si la cola se ha abierto actualmente con OOINPX. Para determinar el valor de este atributo, utilice el selector IADINP con la llamada MQINQ. DistLists (entero de 10 dgitos con signo) Soporte de lista de distribucin. Indica si los mensajes de lista de distribucin se pueden colocar en una cola. El atributo lo establece un MCA (agente de canal de mensajes) para informar al gestor de colas local si el gestor de colas del otro extremo del canal da soporte a las listas de distribucin. Este ltimo gestor de colas (denominado gestor de colas de interlocutor) es el que recibe el mensaje a continuacin, despus de que el MCA emisor lo haya eliminado de la cola de transmisin local.

314

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - colas locales y modelo


El atributo lo establece el MCA emisor siempre que se establece una conexin con el MCA receptor en el gestor de colas de interlocutor. De esta manera, el MCA emisor puede hacer que el gestor de colas local solo pueda colocar en la cola de transmisin aquellos mensajes que el gestor de colas de interlocutor pueda procesar correctamente. Este atributo se usa principalmente con colas de transmisin, pero el proceso descrito se lleva a cabo independientemente de la utilizacin definida para la cola (vea el atributo Usage). El valor es uno de los siguientes: DLSUPP Listas de distribucin soportadas. Indica que los mensajes de lista de distribucin se pueden almacenar en la cola y transmitirse al gestor de colas de interlocutor con ese formato. As se reduce la cantidad de proceso necesaria para enviar el mensaje a varios destinos. DLNSUP Listas de distribucin no soportadas. Indica que los mensajes de lista de distribucin no se pueden almacenar en la cola, ya que el gestor de colas de interlocutor no da soporte a las listas de distribucin. Si una aplicacin transfiere un mensaje de lista de distribucin y ese mensaje se va a colocar en esta cola, el gestor de colas subdivide el mensaje de lista de distribucin, y en su lugar coloca los mensajes individuales en la cola. As se aumenta la cantidad de proceso necesaria para enviar el mensaje a varios destinos, pero se asegura que los mensajes sern procesados correctamente por el gestor de colas del interlocutor. Para determinar el valor de este atributo, utilice el selector IADIST con la llamada MQINQ. Para cambiar el valor de este atributo, utilice la llamada MQSET. HardenGetBackout (entero de 10 dgitos con signo) Indica si va a mantenerse una cuenta exacta de restitucin. Para cada mensaje, se conserva una cuenta del nmero de veces que se ha recuperado el mensaje mediante una llamada MQGET dentro de una unidad de trabajo, as como del nmero de veces que se ha restituido a continuacin la unidad de trabajo. Esta cuenta se encuentra en el campo MDBOC del descriptor de mensaje una vez completada la llamada MQGET. El contador de restitucin de mensaje sigue existiendo tras rearrancar el gestor de colas. Sin embargo, para estar seguro de que la cuenta es exacta, la informacin debe memorizarse (grabarse en disco o en otro dispositivo de almacenamiento permanente) cada vez que un mensaje se recupera mediante una llamada MQGET dentro de una unidad de trabajo para esta cola. Si no lo hace y se produce una anomala del gestor de colas junto con la restitucin de la llamada MQGET, la cuenta puede no aumentar. No obstante, el hecho de memorizar la informacin de cada llamada MQGET dentro de una unidad de trabajo supone un mayor gasto general de rendimiento, por lo que solo debe establecerse el atributo HardenGetBackout en QABH si es absolutamente imprescindible que la cuenta sea exacta.
Captulo 38. Atributos de colas locales y colas modelo

315

Atributos - colas locales y modelo


En OS/400, la cuenta de restitucin de mensaje siempre se memoriza, sea cual sea el valor de este atributo. Son posibles los siguientes valores: QABH Se recuerda la cuenta de restitucin. Se utiliza la memorizacin para asegurar que la cuenta de restitucin de los mensajes de esta cola es exacta. QABNH No es necesario recordar la cuenta de restitucin. No se utiliza la memorizacin para asegurar que la cuenta de restitucin de los mensajes de esta cola sea exacta. Por lo tanto, la cuenta puede ser menos que lo debido. Para determinar el valor de este atributo, utilice el selector IAHGB con la llamada MQINQ. InitiationQName (serie de caracteres de 48 bytes) Nombre de la cola de inicio. Es el nombre de una cola definida en el gestor de colas local; la cola debe ser de tipo QTLOC. El gestor de colas enva un mensaje desencadenante a esta cola cuando se necesita iniciar una aplicacin como resultado de la llegada de un mensaje a la cola a la que pertenece este atributo. La cola de inicio debe estar supervisada por una aplicacin supervisora de desencadenamineto que iniciar la aplicacin adecuada tras la recepcin del mensaje desencadenante. Para determinar el valor de este atributo, utilice el selector CAINIQ con la llamada MQINQ. La longitud de este atributo la indica LNQN. MaxMsgLength (entero de 10 dgitos con signo) Longitud mxima del mensaje en bytes. | | Es el lmite mximo para la longitud del mensaje fsico ms largo que se puede colocar en la cola. No obstante, como el atributo de cola local MaxMsgLength se puede definir independientemente del atributo de gestor de colas MaxMsgLength, el lmite mximo real para la longitud del mensaje fsico ms largo que se puede colocar en la cola es el menor de ambos valores. Si el gestor de colas da soporte a la segmentacin, la aplicacin puede transferir un mensaje lgico que sea mayor que el menor de los dos atributos MaxMsgLength, aunque solo si la aplicacin especifica el distintivo MFSEGA en MQMD. Si se especifica este distintivo, el lmite mximo para la longitud de un mensaje lgico es de 999 999 999 bytes, pero normalmente las restricciones de recurso impuestas por el sistema operativo, o por el entorno de ejecucin de la aplicacin, pueden hacer que el lmite sea inferior. Si se intenta colocar en la cola un mensaje demasiado largo, el intento falla con el cdigo de razn: v RC2030 si el mensaje es demasiado grande para la cola v RC2030 si el mensaje es demasiado grande para el gestor de colas, pero no demasiado para la cola

| | | | | | |

316

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - colas locales y modelo


El lmite mnimo para el atributo MaxMsgLength es igual a cero. El lmite mximo viene determinado por el entorno: v En OS/400, la longitud mxima del mensaje es de 100 MB (104 857 600 bytes). Para ms informacin, vea el parmetro BUFLEN que se describe en el Captulo 33. MQPUT - Poner mensaje en la pgina 277. Para determinar el valor de este atributo, utilice el selector IAMLEN con la llamada MQINQ. MaxQDepth (entero de 10 dgitos con signo) Profundidad mxima de la cola. Es el lmite mximo definido para el nmero de mensajes fsicos que puede haber simultneamente en la cola. Si intenta poner un mensaje en una cola que ya contiene MaxQDepth mensajes, el intento falla con el cdigo de razn RC2053. El proceso de la unidad de trabajo y la segmentacin de los mensajes pueden hacer que el nmero real de mensajes fsicos existentes en la cola sobrepase MaxQDepth. No obstante, esto no afecta a la posibilidad de recuperacin de los mensajes todos los mensajes que hay en la cola pueden recuperarse utilizando la llamada MQGET de manera normal. El valor de este atributo es cero o un valor superior. El lmite mximo viene determinado por el entorno: v En OS/400, el valor no puede exceder de 640 000. Nota: Es posible que el espacio de almacenamiento disponible para la cola se agote aunque haya menos mensajes en la cola que los definidos por MaxQDepth. Para determinar el valor de este atributo, utilice el selector IAMDEP con la llamada MQINQ. MsgDeliverySequence (entero de 10 dgitos con signo) Secuencia de entrega de mensajes. Determina el orden en el que los mensajes se devuelven a la aplicacin mediante la llamada MQGET: MSFIFO Los mensajes se devuelven en orden FIFO (primero en entrar, primero en salir). Esto significa que una llamada MQGET devolver el primer mensaje que satisfaga los criterios de seleccin especificados en la llamada, sea cual sea la prioridad del mensaje. MSPRIO Los mensajes se devuelven por orden de prioridad. Esto significa que una llamada MQGET devolver el mensaje de prioridad ms alta que satisfaga los criterios de seleccin especificados en la llamada. En cada nivel de prioridad, los mensajes se devuelven en orden FIFO (primero en entrar, primero en salir).

Captulo 38. Atributos de colas locales y colas modelo

317

Atributos - colas locales y modelo


Si los atributos pertinentes cambian mientras hay mensajes en la cola, la secuencia de entrega ser la siguiente: El orden en el que la llamada MQGET devuelve los mensajes est determinado por los valores de los atributos MsgDeliverySequence y DefPriority en vigor para la cola en el momento en el que el mensaje llega a ella: Si MsgDeliverySequence es MSFIFO cuando llega el mensaje, este se coloca en la cola como si su prioridad fuera DefPriority. Esto no afecta al valor del campo MDPRI del descriptor del mensaje; este campo retiene el valor que tena el mensaje al transferirlo. Si MsgDeliverySequence es MSPRIO cuando llega el mensaje, el mensaje se coloca en la cola en el lugar correspondiente a la prioridad que indica el campo MDPRI en el descriptor de mensaje. Si el valor del atributo MsgDeliverySequence se modifica mientras hay mensajes en la cola, el orden de los mensajes en la cola no vara. Si el valor del atributo DefPriority se modifica mientras haya mensajes en la cola, los mensajes no se entregarn necesariamente en orden FIFO, incluso si el atributo MsgDeliverySequence tiene el valor MSFIFO; los que se colocaron en la cola con la prioridad ms alta sern entregados primero. Para determinar el valor de este atributo, utilice el selector IAMDS con la llamada MQINQ. OpenInputCount (entero de 10 dgitos con signo) Nmero de aperturas para entrada. Es el nmero de asas actualmente vlidas para eliminar mensajes de la cola mediante la llamada MQGET. Es el nmero total de estas asas que el gestor de colas local conoce. La cuenta incluye las asas en las que una cola alias que se resuelve en esta cola se haya abierto para entrada. La cuenta no incluye las asas en las que la cola se haya abierto para una o varias acciones que no incluyan entrada (por ejemplo, una cola abierta solo para examinar). El valor de este atributo flucta mientras el gestor de colas opera. Este atributo no se aplica a colas modelo, pero s a las colas definidas dinmicamente creadas a partir de las definiciones de cola modelo utilizando la llamada MQOPEN. Para determinar el valor de este atributo, utilice el selector IAOIC con la llamada MQINQ. OpenOutputCount (entero de 10 dgitos con signo) Nmero de aperturas para salida. Es el nmero de asas actualmente vlidas para aadir mensajes a la cola mediante la llamada MQPUT. Es el nmero total de estas asas que el gestor de colas local conoce; no incluye las aperturas para salida realizadas para esta cola en los gestores de colas remotos.

318

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - colas locales y modelo


La cuenta incluye las asas en las que una cola alias que se resuelve en esta cola se haya abierto para salida. La cuenta no incluye las asas en las que la cola se haya abierto para una o varias acciones que no incluyan salida (por ejemplo, una cola abierta solo para consultar). El valor de este atributo flucta mientras el gestor de colas opera. Este atributo no se aplica a colas modelo, pero s a las colas definidas dinmicamente creadas a partir de las definiciones de cola modelo utilizando la llamada MQOPEN. Para determinar el valor de este atributo, utilice el selector IAOOC con la llamada MQINQ. ProcessName (serie de caracteres de 48 bytes) Nombre de proceso. Es el nombre del objeto proceso que se define en el gestor de colas local. El objeto proceso identifica un programa que puede dar servicio a la cola. Para determinar el valor de este atributo, utilice el selector CAPRON con la llamada MQINQ. La longitud de este atributo la indica LNPRON. QDepthHighEvent (entero de 10 dgitos con signo) Controla si se generan sucesos de profundidad mxima de cola. Un suceso de profundidad mxima de cola indica que una aplicacin ha puesto un mensaje en una cola y esto ha provocado que el nmero de mensajes de la cola sea mayor o igual que el umbral de profundidad mxima de cola (vea el atributo QDepthHighLimit). Nota: El valor de este atributo puede cambiar dinmicamente. Vea la descripcin del suceso de profundidad mxima de cola para obtener ms detalles. Es uno de los siguientes: EVRDIS Notificacin de sucesos inhabilitada. EVRENA Notificacin de sucesos habilitada. Para determinar el valor de este atributo, utilice el selector IAQDHE con la llamada MQINQ. QDepthHighLimit (entero de 10 dgitos con signo) Lmite mximo de profundidad de cola. El umbral con el que se compara la profundidad de cola para generar un suceso de profundidad de cola mxima. Este suceso indica que una aplicacin ha puesto un mensaje en una cola y esto ha provocado que el nmero de mensajes de la cola sea mayor o igual que el umbral de profundidad mxima de cola. Vea el atributo QDepthHighEvent.

Captulo 38. Atributos de colas locales y colas modelo

319

Atributos - colas locales y modelo


El valor se expresa como porcentaje de la profundidad mxima de cola (atributo MaxQDepth) y es mayor o igual que 0 y menor o igual que 100. El valor por omisin es 80. Para determinar el valor de este atributo, utilice el selector IAQDHL con la llamada MQINQ. QDepthLowEvent (entero de 10 dgitos con signo) Controla si se generan sucesos de profundidad mnima de cola. Un suceso de profundidad mnima de cola indica que una aplicacin ha recuperado un mensaje de una cola y esto ha provocado que el nmero de mensajes de la cola sea menor o igual que el umbral de profundidad mnima de cola (vea el atributo QDepthLowLimit). Nota: El valor de este atributo puede cambiar dinmicamente. Vea la descripcin del suceso de profundidad mnima de cola para obtener ms detalles. Es uno de los siguientes: EVRDIS Notificacin de sucesos inhabilitada. EVRENA Notificacin de sucesos habilitada. Para determinar el valor de este atributo, utilice el selector IAQDLE con la llamada MQINQ. QDepthLowLimit (entero de 10 dgitos con signo) Lmite mnimo de profundidad de cola. El umbral con el que se compara la profundidad de cola para generar un suceso de profundidad de cola mnima. Este suceso indica que una aplicacin ha recuperado un mensaje de una cola y esto ha provocado que el nmero de mensajes de la misma sea menor o igual que el umbral de profundidad mnimo de cola. Vea el atributo QDepthLowEvent. El valor se expresa como porcentaje de la profundidad mxima de cola (atributo MaxQDepth) y es mayor o igual que 0 y menor o igual que 100. El valor por omisin es 20. Para determinar el valor de este atributo, utilice el selector IAQDLL con la llamada MQINQ. QDepthMaxEvent (entero de 10 dgitos con signo) Controla si se generan sucesos de cola llena. Un suceso de cola llena indica que se ha rechazado una transferencia a una cola porque esta est llena, es decir, la profundidad de cola ha alcanzado su valor mximo. Nota: El valor de este atributo puede cambiar dinmicamente. Vea la descripcin del suceso de cola llena para obtener ms detalles. Es uno de los siguientes:

320

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - colas locales y modelo


EVRDIS Notificacin de sucesos inhabilitada. EVRENA Notificacin de sucesos habilitada. Para determinar el valor de este atributo, utilice el selector IAQDME con la llamada MQINQ. QServiceInterval (entero de 10 dgitos con signo) Destino del intervalo de servicio de cola. El intervalo de servicio utilizado para comparacin con el fin de generar los sucesos de intervalo de servicio alto y de intervalo de servicio correcto. Vea el atributo QServiceIntervalEvent. El valor se expresa en unidades de milsimas de segundo, y es igual o mayor que cero e igual o menor que 999 999 999. Para determinar el valor de este atributo, utilice el selector IAQSI con la llamada MQINQ. QServiceIntervalEvent (entero de 10 dgitos con signo) Controla si se generan sucesos de intervalo de servicio alto o de intervalo de servicio correcto. Se genera un suceso de intervalo de servicio alto cuando una comprobacin indica que, como mnimo, no se han recuperado mensajes de la cola durante el tiempo indicado por el atributo QServiceInterval. Se genera un suceso de intervalo de servicio correcto cuando una comprobacin indica que se han recuperado mensajes de la cola dentro del tiempo indicado por el atributo QServiceInterval. Nota: El valor de este atributo puede cambiar dinmicamente. Vea la descripcin de los sucesos de intervalo de servicio alto y de intervalo de servicio correcto para obtener ms detalles. Es uno de los siguientes: QSIEHI Sucesos de intervalo de servicio alto de cola habilitados. v Los sucesos de intervalo de servicio alto de cola estn habilitados y v Los sucesos de intervalo de servicio correcto de cola estn inhabilitados. QSIEOK Sucesos de intervalo de servicio correcto de cola habilitados. v Los sucesos de intervalo de servicio alto de cola estn inhabilitados y v Los sucesos de intervalo de servicio correcto de cola estn habilitados. QSIENO No hay ningn suceso de intervalo de servicio de cola habilitado. v Los sucesos de intervalo de servicio alto de cola estn inhabilitados y v Los sucesos de intervalo de servicio correcto de cola tambin estn inhabilitados.
Captulo 38. Atributos de colas locales y colas modelo

321

Atributos - colas locales y modelo


Para determinar el valor de este atributo, utilice el selector IAQSIE con la llamada MQINQ. RetentionInterval (entero de 10 dgitos con signo) Intervalo de retencin. Es el perodo de tiempo durante el cual debe retenerse la cola. Cuando ese tiempo ha transcurrido, la cola podr seleccionarse para su supresin. El tiempo se mide en horas, contando a partir de la fecha y hora en que se cre la cola. La fecha y hora de creacin de la cola estn registradas en los atributos CreationDate y CreationTime respectivamente. Esta informacin se facilita para permitir que una aplicacin de mantenimiento o el operador identifiquen y supriman las colas que ya no sean necesarias. Nota: El gestor de colas nunca interviene en la supresin de colas basada en este atributo o en cualquier accin que evite la eliminacin de colas cuyo intervalo de retencin no haya caducado; el usuario es el responsable de emprender las acciones que se consideren necesarias. Debe utilizarse un intervalo de retencin realista que impida la acumulacin de colas dinmicas permanentes (vea DefinitionType). No obstante, este atributo tambin se puede utilizar con colas predefinidas. Para determinar el valor de este atributo, utilice el selector IARINT con la llamada MQINQ. Shareability (entero de 10 dgitos con signo) Posibilidad de compartir la cola. Indica si la cola puede abrirse para entrada varias veces simultneamente. Es uno de los siguientes: QASHR La cola puede compartirse. Se permiten varias aperturas con la opcin OOINPS. QANSHR La cola no puede compartirse. Una llamada MQOPEN con la opcin OOINPS se trata como si tuviese la opcin OOINPX. Para determinar el valor de este atributo, utilice el selector IASHAR con la llamada MQINQ. TriggerControl (entero de 10 dgitos con signo) Control de desencadenamiento. Comprueba si los mensajes desencadenantes se han escrito para una cola de inicio, para que arranque una aplicacin que d servicio a la cola. Es uno de los siguientes: TCOFF Los mensajes desencadenantes no son necesarios.

322

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - colas locales y modelo


No es necesario grabar mensajes desencadenantes para esta cola. El valor de TriggerType ser irrelevante en este caso. TCON Los mensajes desencadenantes son necesarios. Deben grabarse mensajes desencadenantes para esta cola cuando se produzcan las actividades desencadenantes apropiadas. Para determinar el valor de este atributo, utilice el selector IATRGC con la llamada MQINQ. Para cambiar el valor de este atributo, utilice la llamada MQSET. TriggerData (serie de caracteres de 64 bytes) Datos desencadenantes. Son datos con formato libre que el gestor de colas inserta en el mensaje desencadenante cuando la llegada de un mensaje a la cola causa la grabacin de un mensaje desencadenante en la cola de inicio. El contenido de estos datos no es significativo para el gestor de colas. Es significativo para la aplicacin supervisora des desencadenamineto que procesa la cola de inicio o para la aplicacin arrancada por el supervisor de desencadenamiento. La serie de caracteres no puede contener nulos. Se rellena con blancos a la derecha si es necesario. Para determinar el valor de este atributo, utilice el selector CATRGD con la llamada MQINQ. Para cambiar el valor de este atributo, utilice la llamada MQSET. La longitud de este atributo la indica LNTRGD. TriggerDepth (entero de 10 dgitos con signo) Profundidad desencadenante. | Es el nmero de mensajes de prioridad TriggerMsgPriority o superior que debe haber en la cola antes de que se grabe un mensaje desencadenante. Esto es aplicable si TriggerType tiene el valor TTDPTH. El valor de TriggerDepth puede ser uno o un valor superior. De lo contrario, este atributo no se usa. Para determinar el valor de este atributo, utilice el selector IATRGD con la llamada MQINQ. Para cambiar el valor de este atributo, utilice la llamada MQSET. TriggerMsgPriority (entero de 10 dgitos con signo) Prioridad de mensaje umbral para desencadenantes. Los mensajes que tengan una prioridad inferior a esta no contribuyen a que se generen mensajes desencadenantes (es decir, que el gestor de colas ignora estos mensajes cuando decide si debe generar mensajes desencadenantes). TriggerMsgPriority puede estar entre cero (la menor) y MaxPriority (la mayor; vea el Captulo 43. Atributos del gestor de colas en la pgina 337); el valor cero hace que todos los mensajes contribuyan a generar mensajes desencadenantes. Para determinar el valor de este atributo, utilice el selector IATRGP con la llamada MQINQ. Para cambiar el valor de este atributo, utilice la llamada MQSET.
Captulo 38. Atributos de colas locales y colas modelo

323

Atributos - colas locales y modelo


TriggerType (entero de 10 dgitos con signo) Tipo de desencadenante. Controla las condiciones bajo las cuales se graban mensajes desencadenantes a consecuencia de mensajes que llegan a la cola. Es uno de los siguientes: TTNONE No hay ningn mensaje desencadenante. No se graba ningn mensaje desencadenante como consecuencia de los mensajes que hay en esta cola. Tiene el mismo efecto que dar a TriggerControl el valor TCOFF. TTFRST Mensaje desencadenante cuando la profundidad de cola pasa de 0 a 1. | | | Se graba un mensaje desencadenante siempre que cambia de 0 a 1 el nmero de mensajes de prioridad TriggerMsgPriority (o superior) que hay en la cola. TTEVRY Mensaje desencadenante para todos los mensajes. | | Se graba un mensaje desencadenante siempre que llega a la cola un mensaje de prioridad TriggerMsgPriority o superior. TTDPTH Mensaje desencadenante cuando se excede el umbral de profundidad. | | | Se graba un mensaje desencadenante siempre que el nmero de mensajes de prioridad TriggerMsgPriority o superior existentes en la cola se haga igual o mayor que TriggerDepth. Despus de haber grabado el mensaje desencadenante, TriggerControl se establece en TCOFF para evitar ms desencadenamientos hasta que vuelva a activarse explcitamente. Para determinar el valor de este atributo, utilice el selector IATRGT con la llamada MQINQ. Para cambiar el valor de este atributo, utilice la llamada MQSET. Usage (entero de 10 dgitos con signo) Utilizacin de la cola. Indica para qu se utiliza la cola. Es uno de los siguientes: USNORM Utilizacin normal. Es una cola que las aplicaciones normales utilizan cuando ponen y obtienen mensajes; la cola no es una cola de transmisin. USTRAN Cola de transmisin. Es una cola utilizada para conservar los mensajes destinados a los gestores de colas remotos. Cuando una aplicacin normal enva un mensaje a una cola remota, el gestor de colas local lo almacena en la cola de transmisin adecuada con un formato especial. A continuacin, un agente de mensajes de canal lee el mensaje en la cola de

324

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - colas locales y modelo


transmisin y lo transporta al gestor de colas remoto. Para ms informacin sobre colas de transmisin, consulte MQSeries Application Programming Guide. Las aplicaciones privilegiadas son las nicas que pueden abrir una cola de transmisin para que OOOUT ponga mensajes directamente en ella. Normalmente, solo las aplicaciones de utilidad pueden hacerlo. Se debe tener cuidado de que el formato de datos del mensaje sea el correcto (vea el Captulo 21. MQXQH - Cabecera de cola de transmisin en la pgina 203) ya que, de lo contrario, pueden producirse errores en el proceso de transmisin. El contexto no se pasa ni se establece, a menos que se haya especificado una de las opciones de contexto PM*. Para determinar el valor de este atributo, utilice el selector IAUSAG con la llamada MQINQ.

Captulo 38. Atributos de colas locales y colas modelo

325

Atributos - colas locales y modelo

326

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 39. Atributos de definiciones locales de colas remotas


La siguiente tabla resume los atributos que son especficos de las definiciones locales de las colas remotas. Los atributos se describen en orden alfabtico.
Tabla 51. Atributos de definiciones locales de colas remotas
Atributo RemoteQMgrName RemoteQName XmitQName Descripcin Nombre del gestor de colas remoto Nombre de la cola remota Nombre de la cola de transmisin Pgina 327 328 328

Normalmente, una definicin local de una cola remota se utiliza para hacer referencia a una cola que existe en un gestor de colas remoto. Especifica el nombre del gestor de colas en el que existe la cola y, opcionalmente, el nombre de la cola de transmisin que debe utilizarse para transmitir los mensajes destinados para esa cola situada en el gestor de colas. No obstante, el mismo tipo de definicin tambin puede utilizarse con los siguientes fines: v Creacin de alias de una cola de respuestas El nombre de la definicin es el nombre de una cola de respuestas. Para ms informacin, vea el manual MQSeries Intercommunication. v Creacin de alias de un gestor de colas El nombre de la definicin es realmente el nombre alias de un gestor de colas, no el nombre de una cola. Para ms informacin, vea el manual MQSeries Intercommunication. RemoteQMgrName (serie de caracteres de 48 bytes) Nombre del gestor de colas remoto. El nombre del gestor de colas remoto en el que est definida la cola cuyo atributo de nombre es RemoteQName. Si una aplicacin abre la definicin local de una cola remota, RemoteQMgrName no debe estar en blanco ni debe ser el nombre del gestor de colas local. Si XmitQName est en blanco, la cola local cuyo nombre sea el mismo que RemoteQMgrName se utilizar como cola de transmisin. Si no hay ninguna cola con el nombre RemoteQMgrName, se utilizar la cola identificada por el atributo de gestor de colas DefXmitQName. Si la definicin se utiliza para un alias de gestor de colas, RemoteQMgrName es el nombre del gestor de colas al que se va a dar un alias. Puede ser el nombre del gestor de colas local. En caso contrario, si XmitQName est en blanco cuando se produce la apertura, debe haber una cola local cuyo nombre sea igual que RemoteQMgrName; esta cola se utiliza como cola de transmisin. Si esta definicin se utiliza para un alias de respuesta, este ser el nombre del gestor de colas que debe ser el MDRM.

Copyright IBM Corp. 1994, 2000

327

Atributos - colas remotas


Nota: No se efecta ninguna validacin del valor especificado para este atributo cuando se crea o se modifica la definicin de cola. Para determinar el valor de este atributo, utilice el selector CARQMN con la llamada MQINQ. La longitud de este atributo la indica LNQMN. RemoteQName (serie de caracteres de 48 bytes) Nombre de la cola remota. El nombre de la cola con el que est identificada en el atributo RemoteQMgrName del gestor de colas remoto. Si una aplicacin abre la definicin local de una cola remota, cuando se produzca la apertura RemoteQName no debe estar en blanco. Si se utiliza esta definicin para una definicin de alias de gestor de colas, RemoteQName debe estar en blanco cuando se produzca la apertura. Si la definicin se utiliza para un alias de respuesta, este nombre ser el de la cola que deba ser MDRQ. Nota: No se efecta ninguna validacin del valor especificado para este atributo cuando se crea o se modifica la definicin de cola. Para determinar el valor de este atributo, utilice el selector CARQN con la llamada MQINQ. La longitud de este atributo la indica LNQN. XmitQName (serie de caracteres de 48 bytes) Nombre de la cola de transmisin. Este atributo, si no est en blanco cuando se produce la apertura (para una definicin de alias de cola remota o de gestor de colas), especifica el nombre de la cola de transmisin local que debe utilizarse para reenviar el mensaje. Si XmitQName est en blanco, se utilizar como cola de transmisin la cola local cuyo nombre sea igual que RemoteQMgrName. Si no hay ninguna cola que tenga el nombre RemoteQMgrName, se utilizar la cola identificada por el atributo de gestor de colas DefXmitQName. Este atributo se ignora si la definicin se utiliza como alias de gestor de colas y RemoteQMgrName es el nombre del gestor de colas local. Tambin se ignorar si la definicin se utiliza como definicin de alias de cola de respuestas. Para determinar el valor de este atributo, utilice el selector CAXQN con la llamada MQINQ. La longitud de este atributo la indica LNQN.

328

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 40. Atributos de colas alias


El siguiente atributo se asocia con las colas alias: BaseQName (serie de caracteres de 48 bytes) El nombre de la cola a la que se resuelve el alias. Es el nombre de una cola que est definida en el gestor de colas local. (Para obtener ms informacin sobre nombres de cola, vea MQSeries Application Programming Guide). La cola es uno de los tipos siguientes: QTLOC Cola local. QTREM Definicin local de una cola remota. QTCLUS Cola de clster. Para determinar el valor de este atributo, utilice el selector CABASQ con la llamada MQINQ. La longitud de este atributo la indica LNQN.

| |

Copyright IBM Corp. 1994, 2000

329

Atributos - colas alias

330

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 41. Atributos de las listas de nombres


| | Las listas de nombres estn soportadas en los siguientes entornos: AIX, cliente DOS, HP-UX, OS/390, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. La siguiente tabla resume los atributos que son especficos de las listas de nombres. Los atributos se describen por orden alfabtico.
Tabla 52. Atributos de las listas de nombres
Atributo Descripcin Pgina AlterationDate AlterationTime NameCount NamelistDesc NamelistName Names

| | | |

Fecha en la que se cambi la definicin por ltima 331 vez Hora a la que se cambi la definicin por ltima vez Nmero de nombres en la lista de nombres Descripcin de la lista de nombres Nombre de la lista de nombres Lista de los nombres NameCount 331 331 331 332 332

| | | | | | | | | | | | |

AlterationDate (serie de caracteres de 12 bytes) Fecha en la que se cambi la definicin por ltima vez. Es la fecha en la que se cambi la definicin por ltima vez. El formato de la fecha es AAAA-MM-DD, rellenado con dos blancos finales para que la longitud sea igual a 12 bytes. Para determinar el valor de este atributo, utilice el selector CAALTD con la llamada MQINQ. La longitud de este atributo la indica LNDATE. AlterationTime (serie de caracteres de 8 bytes) Hora a la que se cambi la definicin por ltima vez. Es la hora a la que se cambi la definicin por ltima vez. El formato de la hora es HH.MM.SS. Para determinar el valor de este atributo, utilice el selector CAALTT con la llamada MQINQ. La longitud de este atributo la indica LNTIME. NameCount (entero de 10 dgitos con signo) Nmero de nombres en la lista de nombres.

| | |

Es superior o igual a cero. Se ha definido el siguiente valor: NCMXNL Nmero mximo de nombres de una lista de nombres. Para determinar el valor de este atributo, utilice el selector IANAMC con la llamada MQINQ. NamelistDesc (serie de caracteres de 64 bytes) Descripcin de la lista de nombres.

Copyright IBM Corp. 1994, 2000

331

Atributos - listas de nombres


Es un campo que puede utilizarse para un comentario descriptivo; su valor queda establecido por el proceso de definicin. El contenido del campo no es significativo para el gestor de colas, aunque dicho gestor puede necesitar que el campo contenga nicamente caracteres que puedan visualizarse. No puede contener caracteres nulos; si es necesario, se rellenar a la derecha con blancos. En una instalacin DBCS, este campo puede contener caracteres DBCS (con una longitud mxima de campo de 64 bytes). Nota: Si este campo contiene caracteres que no se encuentran en el juego de caracteres del gestor de colas (definido en el atributo de gestor de colas CodedCharSetId), los caracteres pueden convertirse errneamente si el campo se enva a otro gestor de colas. Para determinar el valor de este atributo, utilice el selector CALSTD con la llamada MQINQ. La longitud de este atributo la indica LNNLD. NamelistName (serie de caracteres de 48 bytes) Nombre de la lista de nombres. Es el nombre de una lista de nombres que se define en el gestor de colas local. Para ms informacin sobre nombres de listas de nombres, vea MQSeries Application Programming Guide. Cada lista de nombres tiene un nombre que es diferente de los nombres de las otras listas de nombres que pertenecen al gestor de colas, pero puede duplicar los nombres de otros objetos del gestor de colas de otro tipo (por ejemplo, de colas). Para determinar el valor de este atributo, utilice el selector CALSTN con la llamada MQINQ. La longitud de este atributo la indica LNNLN. Names (serie de caracteres de 48 bytesNameCount) Lista de los nombres NameCount. | | Cada nombre es el nombre de un objeto que est definido en el gestor de colas local. Para ms informacin sobre nombres de objetos, vea MQSeries Application Programming Guide. Para determinar el valor de este atributo, utilice el selector CANAMS con la llamada MQINQ. | La longitud de cada nombre en la lista la indica LNOBJN.

332

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 42. Atributos de las definiciones de proceso


La siguiente tabla resume los atributos que son especficos de las definiciones de proceso. Los atributos se describen por orden alfabtico.
Tabla 53. Atributos de las definiciones de proceso
Atributo Descripcin Pgina AlterationDate AlterationTime ApplId ApplType EnvData ProcessDesc ProcessName UserData

| | | |

Fecha en la que se cambi la definicin por ltima 333 vez Hora a la que se cambi la definicin por ltima vez Identificador de aplicacin Tipo de aplicacin Datos de entorno Descripcin de proceso Nombre de proceso Datos de usuario 333 333 334 334 334 335 335

| | | | | | | | | | | | |

AlterationDate (serie de caracteres de 12 bytes) Fecha en la que se cambi la definicin por ltima vez. Es la fecha en la que se cambi la definicin por ltima vez. El formato de la fecha es AAAA-MM-DD, rellenado con dos blancos finales para que la longitud sea igual a 12 bytes. Para determinar el valor de este atributo, utilice el selector CAALTD con la llamada MQINQ. La longitud de este atributo la indica LNDATE. AlterationTime (serie de caracteres de 8 bytes) Hora a la que se cambi la definicin por ltima vez. Es la hora a la que se cambi la definicin por ltima vez. El formato de la hora es HH.MM.SS. Para determinar el valor de este atributo, utilice el selector CAALTT con la llamada MQINQ. La longitud de este atributo la indica LNTIME. ApplId (serie de caracteres de 256 bytes) Identificador de aplicacin. Es una serie de caracteres que identifica la aplicacin que se ha de arrancar. Esta informacin la utiliza una aplicacin supervisora de desencadenamiento que procesa los mensajes situados en la cola de inicio; la informacin se enva a la cola de inicio como parte del mensaje desencadenante. El significado de ApplId viene determinado por la aplicacin supervisora de desencadenamiento. El supervisor de desencadenamiento proporcionado por MQSeries requiere que ApplId sea el nombre de un programa ejecutable. La serie de caracteres no puede contener nulos. Se rellena con blancos a la derecha si es necesario.
Copyright IBM Corp. 1994, 2000

333

Atributos - definiciones de proceso


Para determinar el valor de este atributo, utilice el selector CAAPPI con la llamada MQINQ. La longitud de este atributo la indica LNPROA. ApplType (entero de 10 dgitos con signo) Tipo de aplicacin. Identifica la naturaleza del programa que debe iniciarse en respuesta a la recepcin de un mensaje desencadenante. Esta informacin la utiliza una aplicacin supervisora de desencadenamiento que procesa los mensajes situados en la cola de inicio; la informacin se enva a la cola de inicio como parte del mensaje desencadenante. ApplType puede tener cualquier valor, pero se recomiendan los valores siguientes para tipos estndar; los tipos de aplicacin definidos por usuario deben estar restringidos a los valores comprendidos entre ATUFST y TULST: ATCICS Transaccin CICS. AT400 Aplicacin OS/400. ATUFST Valor inferior del tipo de aplicacin definido por usuario. ATULST Valor superior del tipo de aplicacin definido por usuario. Para determinar el valor de este atributo, utilice el selector IAAPPT con la llamada MQINQ. EnvData (serie de caracteres de 128 bytes) Datos del entorno. Es una serie de caracteres que contiene informacin relacionada con el entorno concerniente a la aplicacin que se ha de arrancar. Esta informacin la utiliza una aplicacin supervisora de desencadenamiento que procesa los mensajes situados en la cola de inicio; la informacin se enva a la cola de inicio como parte del mensaje desencadenante. El significado de EnvData viene determinado por la aplicacin supervisora de desencadenamiento. El supervisor de desencadenamiento proporcionado por MQSeries aade EnvData a la lista de parmetros que se pasa a la aplicacin arrancada. La lista de parmetros est compuesta por la estructura MQTMC2, seguida de un espacio en blanco, seguido de EnvData sin los blancos finales. La serie de caracteres no puede contener nulos. Se rellena con blancos a la derecha si es necesario. Para determinar el valor de este atributo, utilice el selector CAENVD con la llamada MQINQ. La longitud de este atributo la indica LNPROE. ProcessDesc (serie de caracteres de 64 bytes) Descripcin de proceso. Es un campo que puede utilizarse para un comentario descriptivo. El contenido del campo no es significativo para el gestor de colas, aunque dicho gestor puede necesitar que el campo contenga nicamente caracteres que puedan visualizarse. No puede contener caracteres nulos; si es necesario, se rellenar a la derecha con blancos. En una instalacin DBCS, el campo puede contener caracteres DBCS (sujetos a una longitud mxima del campo de 64 bytes).

334

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - definiciones de proceso


Nota: Si este campo contiene caracteres que no se encuentran en el juego de caracteres del gestor de colas (definido en el atributo de gestor de colas CodedCharSetId), los caracteres pueden convertirse errneamente si el campo se enva a otro gestor de colas. Para determinar el valor de este atributo, utilice el selector CAPROD con la llamada MQINQ. La longitud de este atributo la indica LNPROD. ProcessName (serie de caracteres de 48 bytes) Nombre de proceso. Es el nombre de una definicin de proceso que se define para el gestor de colas local. Cada definicin de proceso tiene un nombre distinto de las dems definiciones de proceso pertenecientes al gestor de colas. Pero el nombre de una definicin de proceso puede ser igual que el de otros objetos de gestor de colas de otros tipos (por ejemplo, colas). Para determinar el valor de este atributo, utilice el selector CAPRON con la llamada MQINQ. La longitud de este atributo la indica LNPRON. UserData (serie de caracteres de 128 bytes) Datos de usuario. Es una serie de caracteres que contiene informacin de usuario concerniente a la aplicacin que se ha de arrancar. Esta informacin la utiliza la aplicacin supervisora de desencadenamiento que procesa los mensajes situados en la cola de inicio o la aplicacin arrancada por el supervisor de desencadenamiento. La informacin se enva a la cola de inicio como parte del mensaje desencadenante. El significado de UserData viene determinado por la aplicacin supervisora de desencadenamiento. El supervisor de desencadenamiento proporcionado por MQSeries tan solo pasa UserData a la aplicacin arrancada como parte de la lista de parmetros. La lista de parmetros est compuesta por la estructura MQTMC2 (que contiene UserData), seguida de un espacio en blanco, seguido de EnvData sin los blancos finales. La serie de caracteres no puede contener nulos. Se rellena con blancos a la derecha si es necesario. Para determinar el valor de este atributo, utilice el selector CAUSRD con la llamada MQINQ. La longitud de este atributo la indica LNPROU.

Captulo 42. Atributos de las definiciones de proceso

335

Atributos - definiciones de proceso

336

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 43. Atributos del gestor de colas


La siguiente tabla resume los atributos que son especficos de los gestores de colas. Los atributos se describen en orden alfabtico.
Tabla 54. Atributos del gestor de colas
Atributo Descripcin Pgina AlterationDate AlterationTime AuthorityEvent ChannelAutoDef ChannelAutoDefEvent ChannelAutoDefExit

| | | |

Fecha en la que se cambi la definicin por ltima 338 vez Hora a la que se cambi la definicin por ltima vez 338

Controla si se generan sucesos de autorizacin (no 338 autorizado) Controla si se permite la definicin automtica de canales Controla si se generan sucesos de definicin automtica de canales Nombre de la rutina de salida de usuario para la definicin automtica de canales 339 339 339

| | | | | | |

ClusterWorkloadData ClusterWorkloadExit ClusterWorkloadLength

Datos de usuario para la rutina de salida de carga 339 de trabajo de clster Nombre de la rutina de salida de usuario para la gestin de carga de trabajo de clster Longitud mxima de los datos de mensaje que se pasan a la rutina de salida de carga de trabajo de clster Identificador de juego de caracteres codificado Nombre de la cola de entrada de mandatos Nivel de mandatos Nombre de la cola de mensajes no entregados Nombre de la cola de transmisin por omisin Soporte de lista de distribucin Controla si se generan sucesos de inhibir (inhibir obtener e inhibir poner) Controla si se generan sucesos de error locales Nmero mximo de asas Longitud mxima de mensaje en bytes Prioridad mxima Nmero mximo de mensajes no comprometidos dentro de una unidad de trabajo 340 340

CodedCharSetId CommandInputQName CommandLevel DeadLetterQName DefXmitQName DistLists InhibitEvent LocalEvent MaxHandles MaxMsgLength MaxPriority MaxUncommittedMsgs PerformanceEvent Platform QMgrDesc

340 340 341 341 343 343 343 343 343 344 344 344

Controla si se generan sucesos relacionados con el 345 rendimiento Plataforma en la que se ejecuta el gestor de colas Descripcin del gestor de colas 346 346

Copyright IBM Corp. 1994, 2000

337

Atributos - gestor de colas


Tabla 54. Atributos del gestor de colas (continuacin)
Atributo Descripcin Pgina QMgrIdentifier QMgrName RemoteEvent RepositoryName RepositoryNamelist

| |

Identificador exclusivo generado internamente del 346 gestor de colas Nombre del gestor de colas Controla si se generan sucesos de error remotos 346 346

| | | | |

Nombre de clster para el que este gestor de colas 347 proporciona servicios de depsito Nombre del objeto lista de nombres que contiene los nombres de los clsteres para los que este gestor de colas proporciona servicios de depsito Controla si se generan sucesos de inicio y de detencin. Disponibilidad del punto de sincronismo Intervalo de mensaje desencadenante 347

StartStopEvent SyncPoint TriggerInterval

347 347 348

| | | | | | | | | | | | | |

Algunos de estos atributos son fijos para determinadas implementaciones, otros pueden modificarse con el mandato ALTER QMGR. Todos pueden consultarse abriendo un objeto especial OTQM y utilizando la llamada MQINQ con el asa devuelta. Tambin pueden visualizarse con el mandato DISPLAY QMGR. AlterationDate (serie de caracteres de 12 bytes) Fecha en la que se cambi la definicin por ltima vez. Es la fecha en la que se cambi la definicin por ltima vez. El formato de la fecha es AAAA-MM-DD, rellenado con dos blancos finales para hacer que longitud sea igual a 12 bytes. Para determinar el valor de este atributo, utilice el selector CAALTD con la llamada MQINQ. La longitud de este atributo la indica LNDATE. AlterationTime (serie de caracteres de 8 bytes) Hora a la que se cambi la definicin por ltima vez. Es la hora a la que se cambi la definicin por ltima vez. El formato de la hora es HH.MM.SS. Para determinar el valor de este atributo, utilice el selector CAALTT con la llamada MQINQ. La longitud de este atributo la indica LNTIME. AuthorityEvent (entero de 10 dgitos con signo) Controla si se generan sucesos de autorizacin (no autorizado). Es uno de los siguientes: EVRDIS Notificacin de sucesos inhabilitada. EVRENA Notificacin de sucesos habilitada. Para determinar el valor de este atributo, utilice el selector IAAUTE con la llamada MQINQ.

338

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - gestor de colas


ChannelAutoDef (entero de 10 dgitos con signo) Controla si se permite la definicin automtica de canales. Este atributo controla la definicin automtica de canales de tipo CTRCVR y CTSVCN. Recuerde que la definicin automtica de los canales CTCLSD est siempre habilitada. El valor es uno de los siguientes: CHADDI Definicin automtica de canal inhabilitada. CHADEN Definicin automtica de canal habilitada. Para determinar el valor de este atributo, utilice el selector IACAD con la llamada MQINQ. ChannelAutoDefEvent (entero de 10 dgitos con signo) Controla si se generan sucesos de definicin automtica de canales. | Es aplicable a los canales de tipo CTRCVR, CTSVCN y CTCLSD. El valor es uno de los siguientes: EVRDIS Notificacin de sucesos inhabilitada. EVRENA Notificacin de sucesos habilitada. Para determinar el valor de este atributo, utilice el selector IACADE con la llamada MQINQ. ChannelAutoDefExit (serie de caracteres de n bytes) Nombre de la rutina de salida de usuario para la definicin automtica de canales. Si el nombre no est en blanco y ChannelAutoDef tiene el valor CHADEN, se llama a la rutina de salida cada vez que el gestor de colas est a punto de crear una definicin de canal. Es aplicable a los canales de tipo CTRCVR, CTSVCN y CTCLSD. A continuacin, la rutina de salida puede realizar una de las operaciones siguientes: v Permitir la creacin de la definicin de canal para continuar sin ningn cambio. v Modificar los atributos de la definicin de canal que se crea. v Suprimir la creacin del canal por completo. Nota: Tanto la longitud como el valor de este atributo son especficos de cada entorno. Vea la introduccin a la estructura MQCD en el manual MQSeries Intercommunication para obtener ms detalles del valor de este atributo en varios entornos. Para determinar el valor de este atributo, utilice el selector CACADX con la llamada MQINQ. La longitud de este atributo la indica LNEXN. | | ClusterWorkloadData (serie de caracteres de 32 bytes) Datos de usuario para la rutina de salida de carga de trabajo de clster.

| |

| |

Captulo 43. Atributos del gestor de colas

339

Atributos - gestor de colas


| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Es una serie de caracteres de 32 bytes definida por el usuario que se pasa a la rutina de salida de carga de trabajo de clster cuando se llama a esta rutina de salida. Si no hay ningn dato que pasar a la rutina de salida, la serie est en blanco. Para determinar el valor de este atributo, utilice el selector CACLWD con la llamada MQINQ. ClusterWorkloadExit (serie de caracteres de n bytes) Nombre de la rutina de salida de usuario para la gestin de carga de trabajo de clster. Si el nombre no est en blanco, se llama a la rutina de salida cada vez que se pone un mensaje en una cola de clster o se mueve un mensaje desde una cola emisora de clster a otra. A continuacin, la rutina de salida puede decidir si acepta la instancia de cola seleccionada por el gestor de colas como destino del mensaje o si elige otra instancia de cola. Nota: Tanto la longitud como el valor de este atributo son especficos de cada entorno. Vea el manual MQSeries Intercommunication para obtener ms detalles del valor de este atributo en varios entornos. Para determinar el valor de este atributo, utilice el selector CACLWX con la llamada MQINQ. La longitud de este atributo la indica LNEXN. ClusterWorkloadLength (entero de 10 dgitos con signo) Longitud mxima de los datos de mensaje que se pasan a la rutina de salida de carga de trabajo de clster. Es la longitud mxima de los datos de mensaje que se pasan a la rutina de salida de carga de trabajo de clster. La longitud real de los datos que se pasan a la rutina de salida es la menor de las siguientes: v La longitud del mensaje. v El atributo MaxMsgLength del gestor de colas. v El atributo ClusterWorkloadLength. Para determinar el valor de este atributo, utilice el selector IACLWL con la llamada MQINQ. CodedCharSetId (entero de 10 dgitos con signo) Identificador de juego de caracteres codificados. Define el juego de caracteres utilizado por el gestor de colas para todos los campos de series de caracteres definidos en la MQI, incluyendo los nombres de objetos y la fecha y hora de creacin de colas. Debe ser el identificador de un juego de caracteres de un solo byte (SBCS). No se aplica a los datos de aplicaciones transportados en el mensaje. El valor depende del entorno: v En OS/400, el valor es el establecido en el entorno la primera vez que se crea el gestor de colas. Para determinar el valor de este atributo, utilice el selector IACCSI con la llamada MQINQ. CommandInputQName (serie de caracteres de 48 bytes) Nombre de la cola de entrada de mandatos.

340

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - gestor de colas


Es el nombre de la cola de entrada de mandatos definida en el gestor de colas local. Es una cola a la que las aplicaciones pueden enviar mandatos, si tienen autorizacin para hacerlo. El nombre de la cola depende del entorno: v En OS/400, el nombre de la cola es SYSTEM.ADMIN.COMMAND.QUEUE y solo se pueden enviar a ella mandatos PCF. No obstante, se puede enviar un mandato MQSC a esta cola si se encierra dentro de un mandato PCF de tipo CMESC. Vea el manual MQSeries Programmable System Management para obtener ms mandatos del mandato Escape. Para determinar el valor de este atributo, utilice el selector CACMDQ con la llamada MQINQ. La longitud de este atributo la indica LNQN. CommandLevel (entero de 10 dgitos con signo) Nivel de mandatos. Indica el nivel de los mandatos de control del sistema soportados por el gestor de colas. El valor es uno de los siguientes: CMLVL1 Nivel 1 de mandatos de control del sistema. Este valor es devuelto por: v MQSeries para OS/400 Versin 2 Release 3 Versin 3 Release 1 Versin 3 Release 6 CML320 Nivel 320 de mandatos de control del sistema. Este valor lo devuelve: v MQSeries para OS/400 Versin 3 Release 2 Versin 3 Release 7 | | | | | | | | | | | CML420 Nivel 420 de mandatos de control del sistema. Este valor lo devuelve: v MQSeries para AS/400 Versin 4 Release 2.0 Versin 4 Release 2.1 CML510 Nivel 510 de mandatos de control del sistema. Este valor lo devuelve: v MQSeries para AS/400 Versin 5 Release 1 El conjunto de mandatos de control del sistema que corresponde a un determinado valor del atributo CommandLevel vara en funcin del valor del atributo Platform; ambos deben usarse para indicar los mandatos de control del sistema a los que se da soporte. Para determinar el valor de este atributo, utilice el selector IACMDL con la llamada MQINQ. DeadLetterQName (serie de caracteres de 48 bytes) Nombre de la cola de mensajes no entregados.

Captulo 43. Atributos del gestor de colas

341

Atributos - gestor de colas


Es el nombre de una cola definida en el gestor de colas local. Los mensajes se envan a esta cola si no pueden direccionarse al destino correcto. Los mensajes se transfieren a esta cola cuando, por ejemplo: v Un mensaje llega a un gestor de colas destinado a una cola que an no se ha definido en el gestor de colas v Un mensaje llega a un gestor de colas, pero la cola a la que est destinado no puede recibirlo debido a que, posiblemente: La cola est llena Estn inhibidas las peticiones de transferencia El nodo emisor no tiene autorizacin para poner mensajes en la cola Las aplicaciones tambin pueden poner mensajes en la cola de mensajes no entregados. Los mensajes de informe se tratan del mismo modo que los mensajes ordinarios; si el mensaje de informe no puede entregarse en la cola destino (normalmente la cola especificada por el campo MDRQ en el descriptor de mensaje original), el mensaje de informe se coloca en la cola de mensajes no entregados. Nota: Los mensajes caducados (vea el campo MDEXP que se describe en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85) no se transfieren a esta cola cuando se descartan. No obstante, s se generar un mensaje de informe de caducidad (ROEXP) y se enviar a la cola MDRQ, si as lo solicita la aplicacin emisora. Los mensajes no se ponen en la cola de mensajes no entregados (mensajes en espera) cuando el problema se notifica sncronamente a la aplicacin que ha emitido la peticin de poner por medio del cdigo de razn devuelto por la llamada MQPUT o MQPUT1 (por ejemplo, como en el caso de poner un mensaje en una cola local en la que estn inhibidas las peticiones de poner). A veces, los mensajes de la cola de mensajes no entregados (mensajes en espera) tienen prefijados los datos del mensaje de aplicacin con una estructura MQDLH. Esta estructura contiene informacin adicional que indica el motivo por el que se coloc el mensaje en la cola de mensajes no entregados. En el Captulo 7. MQDLH - Cabecera de mensaje no entregado en la pgina 43 encontrar ms detalles sobre esta estructura. Esta debe ser una cola local del gestor de colas, con el atributo Usage USNORM. Si una cola de mensajes no entregados (mensajes en espera) no est soportada por un gestor de colas o no est definida, el nombre estar todo en blanco. Todos los gestores de colas de MQSeries soportan una cola de mensajes no entregados, pero la cola de mensajes no entregados no est definida por omisin. Si la cola de mensajes no entregados no est definida o est llena o no se puede utilizar por alguna razn, el mensaje que un agente de canal de mensajes hubiera puesto en ella queda, en cambio, retenido en la cola de transmisin.

342

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - gestor de colas


Para determinar el valor de este atributo, utilice el selector CADLQ con la llamada MQINQ. La longitud de este atributo la indica LNQN. DefXmitQName (serie de caracteres de 48 bytes) Nombre de la cola de transmisin por omisin. Es el nombre de la cola de transmisin que se utiliza para transmitir mensajes a gestores de colas remotos, si no hay ninguna indicacin que mencione otra cola de transmisin. Si no hay ninguna cola de transmisin por omisin, el nombre estar todo en blanco. El valor inicial de este atributo es en blanco. Para determinar el valor de este atributo, utilice el selector CADXQN con la llamada MQINQ. La longitud de este atributo la indica LNQN. DistLists (entero de 10 dgitos con signo) Soporte de lista de distribucin. Indica si el gestor de colas local soporta las listas de distribucin en las llamadas MQPUT y MQPUT1. El valor es uno de los siguientes: DLSUPP Listas de distribucin soportadas. DLNSUP Listas de distribucin no soportadas. Para determinar el valor de este atributo, utilice el selector IADIST con la llamada MQINQ. InhibitEvent (entero de 10 dgitos con signo) Controla si se generan sucesos de inhibir (inhibir obtener e inhibir poner). Es uno de los siguientes: EVRDIS Notificacin de sucesos inhabilitada. EVRENA Notificacin de sucesos habilitada. Para determinar el valor de este atributo, utilice el selector IAINHE con la llamada MQINQ. LocalEvent (entero de 10 dgitos con signo) Controla si se generan sucesos de error locales. Es uno de los siguientes: EVRDIS Notificacin de sucesos inhabilitada. EVRENA Notificacin de sucesos habilitada. Para determinar el valor de este atributo, utilice el selector IALCLE con la llamada MQINQ. MaxHandles (entero de 10 dgitos con signo) Nmero mximo de asas.
Captulo 43. Atributos del gestor de colas

343

Atributos - gestor de colas


Es el nmero mximo de asas abiertas que cualquier tarea puede utilizar concurrentemente. Cada llamada MQOPEN satisfactoria para una sola cola (o para un objeto que no sea una cola) utiliza un asa. Esta asa estar disponible para reutilizacin cuando se cierre el objeto. No obstante, cuando se abre una lista de distribucin, se asigna un asa aparte a cada cola de la lista de distribucin, de manera que la llamada MQOPEN utiliza tantas asas como colas haya en la lista de distribucin. Esto debe tenerse en cuenta cuando se elija un valor apropiado de MaxHandles. La llamada MQPUT1 realiza una llamada MQOPEN como parte de su proceso; como resultado, MQPUT1 utiliza tantas asas como lo hara MQOPEN, aunque solo las utiliza el tiempo que dura la llamada MQPUT1. El valor est comprendido entre 1 y 999.999.999. El valor por omisin viene determinado por el entorno: v En OS/400, el valor por omisin es 256. Para determinar el valor de este atributo, utilice el selector IAMHND con la llamada MQINQ. MaxMsgLength (entero de 10 dgitos con signo) Longitud mxima del mensaje en bytes. Es la longitud del mensaje fsico ms largo que puede manejar el gestor de colas. No obstante, como el atributo de gestor de colas MaxMsgLength se puede establecer independientemente del atributo de cola local MaxMsgLength, el mensaje fsico ms largo que se puede colocar en una es el menor de ambos valores. Si el gestor de colas da soporte a la segmentacin, la aplicacin puede transferir un mensaje lgico que sea mayor que el menor de los dos atributos MaxMsgLength, aunque solo si la aplicacin especifica el distintivo MFSEGA en MQMD. Si se especifica este distintivo, el lmite mximo para la longitud de un mensaje lgico es de 999 999 999 bytes, pero normalmente las restricciones de recurso impuestas por el sistema operativo, o por el entorno de ejecucin de la aplicacin, pueden hacer que el lmite sea inferior. El lmite mnimo para el atributo MaxMsgLength es de 32 KB (32 768 bytes). El lmite mximo viene determinado por el entorno: v En OS/400, la longitud mxima del mensaje es de 100 MB (104 857 600 bytes). Para determinar el valor de este atributo, utilice el selector IAMLEN con la llamada MQINQ. MaxPriority (entero de 10 dgitos con signo) Prioridad mxima. Es la prioridad mxima que soporta el gestor de colas para un mensaje. Las prioridades van de cero (la inferior) a MaxPriority (la ms alta). Para determinar el valor de este atributo, utilice el selector IAMPRI con la llamada MQINQ. MaxUncommittedMsgs (entero de 10 dgitos con signo) Nmero mximo de mensajes no comprometidos dentro de una unidad de trabajo.

| | | | |

344

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - gestor de colas


Es el nmero mximo de mensajes no comprometidos que puede haber dentro de una unidad de trabajo. El nmero de mensajes no comprometidos es la suma de los siguientes mensajes desde el principio de la unidad de trabajo actual: v Mensajes transferidos por la aplicacin con la opcin PMSYP v Mensajes recuperados por la aplicacin con la opcin GMSYP v Mensajes desencadenantes y mensajes de informes COA generados por el gestor de colas para los mensajes transferidos con la opcin PMSYP v Mensajes de informe COD generados por el gestor de colas para los mensajes recuperados con la opcin GMSYP Los siguientes mensajes no se cuentan como mensajes no comprometidos: v Mensajes transferidos o recuperados por la aplicacin fuera de la unidad de trabajo v Mensajes desencadenantes o mensajes de informe COA/COD generados por el gestor de colas como resultado de mensajes transferidos o recuperados fuera de la unidad de trabajo v Mensajes de informe de caducidad generados por el gestor de colas (incluso si la llamada que ha provocado dicho mensaje especificaba GMSYP) v Mensajes de suceso generados por el gestor de colas (incluso si la llamada que ha provocado el mensaje de suceso especificaba PMSYP o GMSYP) Notas: 1. Los mensajes de excepcin los genera el MCA (agente de canal de mensajes) o la aplicacin, por lo que reciben el mismo tratamiento que los mensajes normales puestos o recuperados por la aplicacin. 2. Cuando se transfiere un mensaje o un segmento con la opcin PMSYP, el nmero de mensajes no comprometidos aumenta una unidad sea cual sea el nmero de mensajes fsicos que resulten realmente de la transferencia. (Puede aparecer ms de un mensaje fsico si el gestor de colas necesita subdividir el mensaje o el segmento). 3. Cuando se transfiere una lista de distribucin con la opcin PMSYP, el nmero de mensajes no comprometidos aumenta una unidad por mensaje fsico generado. Este valor oscilar entre uno y el nmero de destinos que hay en la lista de distribucin. El lmite inferior de este atributo es 1 y el lmite superior es 999 999 999. Para determinar el valor de este atributo, utilice el selector IAMUNC con la llamada MQINQ. PerformanceEvent (entero de 10 dgitos con signo) Controla si se generan sucesos relacionados con el rendimiento. Es uno de los siguientes: EVRDIS Notificacin de sucesos inhabilitada. EVRENA Notificacin de sucesos habilitada. Para determinar el valor de este atributo, utilice el selector IAPFME con la llamada MQINQ.

Captulo 43. Atributos del gestor de colas

345

Atributos - gestor de colas


Platform (entero de 10 dgitos con signo) Plataforma en la que se ejecuta el gestor de colas. Indica la arquitectura de la plataforma en la que est ejecutndose el gestor de colas. El valor es: PL400 OS/400. QMgrDesc (serie de caracteres de 64 bytes) Descripcin del gestor de colas. Es un campo que puede utilizarse para un comentario descriptivo. El contenido del campo no es significativo para el gestor de colas, aunque dicho gestor puede necesitar que el campo contenga nicamente caracteres que puedan visualizarse. No puede contener caracteres nulos; si es necesario, se rellenar a la derecha con blancos. En una instalacin DBCS, este campo puede contener caracteres DBCS (con una longitud mxima de campo de 64 bytes). Nota: Si este campo contiene caracteres que no se encuentran en el juego de caracteres del gestor de colas (definido en el atributo de gestor de colas CodedCharSetId), los caracteres pueden convertirse errneamente si el campo se enva a otro gestor de colas. En OS/400, el valor por omisin es en blanco. Para determinar el valor de este atributo, utilice el selector CAQMD con la llamada MQINQ. La longitud de este atributo la indica LNQMD. | | | | | QMgrIdentifier (serie de caracteres de 48 bytes) Identificador exclusivo del gestor de colas generado internamente. Es un nombre exclusivo generado internamente para el gestor de colas. Para determinar el valor de este atributo, utilice el selector CAQMID con la llamada MQINQ. La longitud de este atributo la indica LNQMID. QMgrName (serie de caracteres de 48 bytes) Nombre del gestor de colas. Es el nombre del gestor de colas local, correspondiente al nombre del gestor de colas al que est conectada la aplicacin. Los 12 primeros caracteres del nombre se utilizan para construir un identificador de mensaje exclusivo (vea el campo MDMID que se describe en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85). As pues, los gestores de colas que puedan comunicarse entre s debern tener nombres cuyos 12 primeros caracteres sean distintos, para que as los identificadores de mensaje sean exclusivos en la red de gestores de colas. Para determinar el valor de este atributo, utilice el selector CAQMN con la llamada MQINQ. La longitud de este atributo la indica LNQMN. RemoteEvent (entero de 10 dgitos con signo) Controla si se generan sucesos de error remotos. Es uno de los siguientes: EVRDIS Notificacin de sucesos inhabilitada.

346

Consulta de programacin de aplicaciones (ILE RPG)

Atributos - gestor de colas


EVRENA Notificacin de sucesos habilitada. Para determinar el valor de este atributo, utilice el selector IARMTE con la llamada MQINQ. | | | | | | | | | | | | | | | | | | | | | | | RepositoryName (serie de caracteres de 48 bytes) Nombre de clster para el que este gestor de colas proporciona servicios de depsito. Es el nombre de un clster para el que este gestor de colas proporciona un servicio de gestor de depsito. Si el gestor de colas proporciona este servicio a ms de un clster, RepositoryNamelist especifica el nombre de un objeto lista de nombres que identifica a los clsteres y RepositoryName est en blanco. Al menos uno de los atributos RepositoryName y RepositoryNamelist debe estar en blanco. Para determinar el valor de este atributo, utilice el selector CARPN con la llamada MQINQ. La longitud de este atributo la indica LNQMN. RepositoryNamelist (serie de caracteres de 48 bytes) Nombre del objeto lista de nombres que contiene los nombres de los clsteres para los que este gestor de colas proporciona servicios de depsito. Es el nombre del objeto lista de nombres que contiene los nombres de los clsteres a los que este gestor de colas proporciona un servicio de gestor de depsito. Si el gestor de colas proporciona este servicio a un solo clster, el objeto lista de nombres contiene un solo nombre. Asimismo, se puede utilizar RepositoryName para especificar el nombre del clster, en cuyo caso RepositoryNamelist quedar en blanco. Al menos uno de los atributos RepositoryName y RepositoryNamelist debe estar en blanco. Para determinar el valor de este atributo, utilice el selector CARPNL con la llamada MQINQ. La longitud de este atributo la indica LNNLN. StartStopEvent (entero de 10 dgitos con signo) Controla si se generan sucesos de inicio y detencin. Es uno de los siguientes: EVRDIS Notificacin de sucesos inhabilitada. EVRENA Notificacin de sucesos habilitada. Para determinar el valor de este atributo, utilice el selector IASSE con la llamada MQINQ. SyncPoint (entero de 10 dgitos con signo) Disponibilidad de punto de sincronismo. Indica si el gestor de colas local soporta las unidades de trabajo y el punto de sincronismo con las llamadas MQGET, MQPUT y MQPUT1. SPAVL Estn disponibles unidades de trabajo y punto de sincronismo. SPNAVL No estn disponibles unidades de trabajo ni punto de sincronismo.
Captulo 43. Atributos del gestor de colas

347

Atributos - gestor de colas


Para determinar el valor de este atributo, utilice el selector IASYNC con la llamada MQINQ. TriggerInterval (entero de 10 dgitos con signo) Intervalo de mensaje desencadenante. Es un intervalo de tiempo (en milsimas de segundo) utilizado para restringir el nmero de mensajes desencadenantes. Esto solo es pertinente cuando TriggerType es TTFRST. En este caso, los mensajes desencadenantes solo se generan con normalidad cuando llega un mensaje adecuado a la cola y esta estaba previamente vaca. Bajo ciertas circunstancias, sin embargo, se puede generar un mensaje desencadenante adicional con el desencadenamiento TTFRST aunque la cola no estuviera vaca. Estos mensajes desencadenantes adicionales no se generan con ms frecuencia que cada TriggerInterval milisegundos. Si desea ms informacin sobre el desencadenamiento, consulte MQSeries Application Programming Guide. El valor no es inferior a 0 ni superior a 999 999 999. El valor por omisin es 999 999 999. Para determinar el valor de este atributo, utilice el selector IATRGI con la llamada MQINQ.

348

Consulta de programacin de aplicaciones (ILE RPG)

Parte 4. Aplicaciones
Captulo 44. Creacin de una aplicacin . . Archivos de copia MQSeries . . . . . . . Preparacin de los programas para su ejecucin Interfaces para el gestor de punto de sincronismo externo de AS/400 . . . . . . . . . . Puntos de sincronismo en las aplicaciones CICS para AS/400. . . . . . . . . . . . . . 351 . 351 351 . 352 . 353 355 356 357 357 357 358 358 358 359 359 360 360 361 363 364 364 365 366 366 367 367 367 368 368 368 369

| |

Captulo 45. Programas de ejemplo . . . . . Caractersticas explicadas en los programas de ejemplo . . . . . . . . . . . . . . . Preparacin y ejecucin de los programas de ejemplo . . . . . . . . . . . . . . . Ejecucin de los programas de ejemplo . . . . El programa de ejemplo de poner . . . . . . Diseo del programa de ejemplo de poner . . El programa de ejemplo de examinar . . . . . Diseo del programa de ejemplo de examinar El programa de ejemplo de obtener . . . . . . Diseo del programa de ejemplo de obtener . . El programa de ejemplo de peticin . . . . . . Utilizacin del desencadenamiento con el ejemplo de peticin . . . . . . . . . . Diseo del programa de ejemplo de peticin El programa de ejemplo de eco . . . . . . . Diseo del programa de ejemplo de eco . . . El programa de ejemplo de consultar . . . . . Diseo del programa de ejemplo de consultar El programa de ejemplo de establecer . . . . . Diseo del programa de ejemplo de establecer Los programas de ejemplo de desencadenamiento El supervisor de desencadenamiento de ejemplo AMQ3TRG4 . . . . . . . . . . . . . Diseo del supervisor de desencadenamiento El servidor desencadenante de ejemplo AMQ3SRV4 . . . . . . . . . . . . . Diseo del servidor desencadenante . . . . Finalizacin de los programas de ejemplo de desencadenamiento . . . . . . . . . . Ejecucin de los ejemplos utilizando colas remotas

Copyright IBM Corp. 1994, 2000

349

Aplicaciones

350

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 44. Creacin de una aplicacin


Las publicaciones OS/400 explican cmo crear aplicaciones ejecutables a partir de los programas escritos por el usuario. Este captulo describe las tareas adicionales y los cambios en las tareas estndar que deben realizarse al crear aplicaciones MQSeries para AS/400 que se ejecuten bajo OS/400. Adems de codificar las llamadas MQI en el cdigo fuente, debe aadir las sentencias en el lenguaje adecuado para incluir los archivos de copia MQSeries para AS/400 para el lenguaje RPG. Debe familiarizarse con el contenido de estos archivos: ver sus nombres y una breve descripcin de sus contenido en el siguiente texto.

Archivos de copia MQSeries


MQSeries para AS/400 proporciona archivos de copia para ayudarle a escribir aplicaciones en el lenguaje de programacin RPG. Son los archivos apropiados para utilizarse con el Compilador IBM ILE RPG/400 (5716-RG1). Los archivos de copia proporcionados por MQSeries para AS/400 para ayudarle a escribir rutinas de salida de canal estn descritos en el manual MQSeries Intercommunication. Los nombres de los archivos de copia MQSeries para AS/400 para RPG tienen el prefijo CMQ. Tienen el sufijo G. Hay otros archivos de copia que contienen las constantes con nombre y un archivo para cada una de las estructuras. Los archivos de copia estn listados en la Tabla 2 en la pgina 8. Nota: Para ILE RPG/400, se facilitan como miembros del archivo QRPGLESRC de la biblioteca QMQM. Las declaraciones de estructura no contienen sentencias DS. Esto permite a la aplicacin declarar una estructura de datos (o una estructura de datos que aparezca varias veces) codificando la sentencia DS y utilizando la sentencia /COPY para copiar en el resto de la declaracin: Para ILE RPG/400, la sentencia es:
D*..1....:....2....:....3....:....4....:....5....:....6....:....7 D* Declarar una estructura de datos MQMD D MQMD DS D/COPY CMQMDG

Preparacin de los programas para su ejecucin


Para crear una aplicacin ejecutable MQSeries para AS/400, debe compilar el cdigo fuente que ha escrito. Para hacerlo en ILE RPG/400, puede utilizar los mandatos habituales de OS/400, CRTRPGMOD y CRTPGM. Despus de crear *MODULE, necesitar tambin hacer referencia al programa de servicio QMQM/AMQZSTUB al crear el programa ILE RPG/400 mediante el mandato CRTPGM.
Copyright IBM Corp. 1994, 2000

351

Preparacin de los programas


Asegrese de que la biblioteca que contiene los archivos de copia (QMQM) se encuentre en la lista de bibliotecas cuando lleve a cabo la compilacin. QMQM tambin debe estar en la lista de bibliotecas cuando ejecute la aplicacin.

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Interfaces para el gestor de punto de sincronismo externo de AS/400


MQSeries para AS/400 utiliza el control de compromiso de OS/400 original como coordinador de punto de sincronismo externo. Vea AS/400 Programacin: Gua de copia de seguridad y recuperacin si desea obtener ms informacin acerca de las posibilidades de control de compromiso de OS/400. Para iniciar los servicios de control de compromiso de OS/400, utilice el mandato STRCMTCTL del sistema. Para finalizar el control de compromiso, utilice el mandato ENDCMTCTL del sistema. Nota: El valor por omisin del mbito de definicin de compromiso es *ACTGRP. Esto debe estar definido como *JOB para MQSeries para AS/400 . Por ejemplo:
STRCMTCTL LCKLVL(*ALL) CMTSCOPE(*JOB)

Si llama a MQPUT, MQPUT1 o MQGET, especificando MQPMO_SYNCPOINT o MQGMO_SYNCPOINT, despus de iniciar el control de compromiso, MQSeries para AS/400 se aade como recurso de compromiso de API a la definicin de compromiso. Esta es normalmente la primera de este tipo de llamadas en un trabajo. Mientras haya algn recurso de compromiso de API registrado bajo una definicin de compromiso concreta, no podr finalizar el control de compromiso para dicha definicin. MQSeries para AS/400 elimina su registro como recurso de compromiso de API cuando usted se desconecta del gestor de colas, siempre que no haya operaciones MQI pendientes en la unidad de trabajo actual. Si se desconecta del gestor de colas mientras haya operaciones MQPUT, MQPUT1 o MQGET pendientes en la unidad de trabajo actual, MQSeries para AS/400 permanece registrado como recurso de compromiso de API, por lo que recibe notificacin del siguiente compromiso o retroaccin. Cuando se alcanza el siguiente punto de sincronismo, MQSeries para AS/400 compromete o retrotrae los cambios, segn sea necesario. Una aplicacin puede desconectarse y reconectarse a un gestor de colas durante una unidad de trabajo activa, y realizar ms operaciones MQGET y MQPUT dentro de la misma unidad de trabajo (esto es una desconexin pendiente). Si intenta emitir un mandato del sistema ENDCMTCTL para esta definicin de compromiso, se emite el mensaje CPF8355, lo que indica que haba cambios pendientes activos. Este mensaje tambin aparece en las anotaciones de trabajo cuando el trabajo finaliza. Para evitar que esto ocurra, asegrese de que compromete o retrotrae todas las operaciones MQSeries para AS/400 pendientes, y que se desconecta del gestor de colas. De esta manera, si utiliza los mandatos COMMIT o ROLLBACK antes de ENDCMTCTL, la finalizacin del control de compromiso tendra que completarse satisfactoriamente. Cuando se utiliza el control de compromiso de OS/400 como coordinador de punto de sincronismo externo, puede que no se emitan las llamadas MQCMIT, MQBACK y MQBEGIN. Las llamadas a estas funciones fallan con el cdigo de razn MQRC_ENVIRONMENT_ERROR.

352

Consulta de programacin de aplicaciones (ILE RPG)

punto de sincronismo de MQSeries para AS/400


| | | | | | | | Para comprometer o retrotraer (esto es, restituir) la unidad de trabajo, utilice uno de los siguientes lenguajes de programacin que dan soporte al control de compromiso. Por ejemplo: v v v v Mandatos CL: COMMIT y ROLLBACK Funciones de programacin ILE C: _Rcommit y _Rrollback RPG/400: COMIT y ROLBK COBOL/400: COMMIT y ROLLBACK

Puntos de sincronismo en las aplicaciones CICS para AS/400


MQSeries para AS/400 participa en unidades de trabajo con CICS. MQI se puede utilizar en una aplicacin CICS para transferir y obtener mensajes dentro de la unidad de trabajo actual. El mandato EXEC CICS SYNCPOINT se puede utilizar para establecer un punto de sincronismo que incluya las operaciones de MQSeries para AS/400 . Para restituir todos los cambios hasta el punto de sincronismo anterior, deber utilizar el mandato EXEC CICS SYNCPOINT ROLLBACK. Si utiliza MQPUT, MQPUT1 o MQGET con MQPMO_SYNCPOINT o MQGMO_SYNCPOINT, como opcin definida en una aplicacin CICS, no podr desconectar CICS hasta que MQSeries para AS/400 haya eliminado su registro como recurso de compromiso de API. Por lo tanto, deber comprometer o restituir cualquier operacin de poner o de obtener antes de desconectarse del gestor de colas. Esto le permitir terminar la sesin de CICS.

Captulo 44. Creacin de una aplicacin

353

Aplicaciones

354

Consulta de programacin de aplicaciones (ILE RPG)

Captulo 45. Programas de ejemplo


Este captulo describe los programas de ejemplos entregados junto con MQSeries para AS/400 para RPG. Los ejemplos son demostraciones de utilizaciones habituales de la interfaz de cola de mensajes (MQI). Los ejemplos no intentan demostrar tcnicas generales de programacin, por lo que se ha omitido la comprobacin de errores en un programa de produccin, aunque quiz el usuario quiera incluirlas. No obstante, estos ejemplos resultan adecuados para que los utilice como base para sus propios de programas de gestin de colas de mensajes. El cdigo fuente de todos los ejemplos se facilita con el producto; dicho fuente incluye comentarios que explican las tcnicas de gestin de colas de mensajes mostradas en los programas. Hay dos juegos de programas de ejemplo en ILE: 1. Programas que utilizan la MQI a travs de una llamada a QMQM El fuente existe en QMQMSAMP/QRPGLESRC. Los miembros se denominan AMQ2xxx4, donde xxx indica la funcin de ejemplo. Los miembros existen en QMQM/QRPGLESRC. Cada nombre de miembro tiene el sufijo R. 2. Programas que utilizan llamadas prototipo a la MQI El fuente existe en QMQMSAMP/QRPGLESRC. Los miembros se denominan AMQ3xxx4, donde xxx indica la funcin de ejemplo. Los miembros existen en QMQM/QRPGLESRC. Cada nombre de miembro tiene el sufijo G. Notas: a. En Tabla 55 y Tabla 56 en la pgina 356, se utiliza el carcter n para representar el valor numrico correspondiente. b. Los programas desencadenantes de ejemplo solo existen para los programas que utilizan llamadas prototipo. La Tabla 55 ofrece una lista completa de los programas de ejemplos entregados con MQSeries para AS/400 V3R1 o posterior y muestra los nombres de los programas en cada uno de los lenguajes de programacin soportados. Recuerde que sus nombres empiezan todos por el prefijo AMQ; los cuatro caracteres del nombre indican el lenguaje de programacin. Nota: Este captulo le explica cmo utilizar el compilador ILE RPG/400 con llamadas prototipo a la MQI.
Tabla 55. Nombres de los programas de ejemplo
RPG (ILE) Ejemplos de poner Ejemplos de examinar Ejemplos de obtener Ejemplos de peticin Ejemplos de eco Ejemplos de consultar AMQnPUT4 AMQnGBR4 AMQnGET4 AMQnREQ4 AMQnECH4 AMQnINQ4

Copyright IBM Corp. 1994, 2000

355

Programas de ejemplo
Tabla 55. Nombres de los programas de ejemplo (continuacin)
RPG (ILE) Ejemplos de establecer Ejemplo de supervisor de desencadenamiento Ejemplo de servidor desencadenante AMQnSET4 AMQ3TRG4 AMQ3SRV4

Adems de estos, la opcin de ejemplos de MQSeries para AS/400 incluye un archivo de datos de ejemplo, AMQSDATA, que puede utilizarse como entrada a ciertos programas de ejemplo. Tambin hay programas CL de ejemplo que muestran tareas de administracin. Los ejemplos CL se describen en la publicacin MQSeries for AS/400 V5.1 System Administration. Podra utilizar el programa CL de ejemplo para crear las colas que se vayan a utilizar con los programas de ejemplo descritos en este captulo. Consulte Preparacin y ejecucin de los programas de ejemplo en la pgina 357 para saber cmo ejecutar los programas de ejemplo.

Caractersticas explicadas en los programas de ejemplo


La Tabla 56 muestra las tcnicas presentadas por los programas de ejemplo de MQSeries para AS/400. Algunas tcnicas se utilizan en ms de un programa de ejemplo, pero en la tabla se indica un solo programa. Todos los ejemplos abren y cierran colas utilizando las llamadas MQOPEN y MQCLOSE, por lo que estas tcnicas no se indican por separado en la tabla.
Tabla 56. Programas de ejemplo que explican la utilizacin de la MQI
Tcnica Utilizacin de las llamadas MQCONN y MQDISC Conectar y desconectar implcitamente Poner mensajes mediante la llamada MQPUT Poner un solo mensaje utilizando la llamada MQPUT1 Responder a un mensaje de peticin Obtener mensajes (sin espera) Obtener mensajes (esperar con un lmite de tiempo) Obtener mensajes (con conversin de datos) Examinar una cola Utilizar una cola de entrada compartida Utilizar una cola de entrada exclusiva Utilizar la llamada MQINQ Utilizar la llamada MQSET Utilizar una cola de respuestas Solicitar mensajes de excepcin Aceptar un mensaje truncado Utilizar un nombre de cola resuelto Proceso desencadenante RPG (ILE) AMQnECH4 o AMQnINQ4 AMQnPUT4 AMQnPUT4 AMQnECH4 o bien AMQnINQ4 AMQnINQ4 AMQnGBR4 AMQnGET4 AMQnECH4 AMQnGBR4 AMQnINQ4 AMQnREQ4 AMQnINQ4 AMQnSET4 AMQnREQ4 AMQnREQ4 AMQnGBR4 AMQnGBR4 AMQ3SRV4 o bien AMQ3TRG4

356

Consulta de programacin de aplicaciones (ILE RPG)

Caractersticas

Nota: Todos los programas de ejemplo producen un archivo de spool que contiene los resultados del proceso.

Preparacin y ejecucin de los programas de ejemplo


Para poder ejecutar los programas de ejemplo de MQSeries para AS/400, debe compilarlos del mismo modo que cualquier otra aplicacin MQSeries para AS/400. Para ello, puede utilizar los mandatos del OS/400, CRTRPGMOD y CRTPGM. | | | Cuando se crean los programas AMQ3xxx4, es necesario especificar BNDSRVPGM(QMQM/LIBMQM) en el mandato CRTPGM. Esto incluye los diversos procedimientos de MQ en el programa. Los programas de ejemplo se encuentran en la biblioteca QMQMSAMP como miembros de QRPGLESRC. Utilizan los archivos de copia de la biblioteca QMQM, por tanto, asegrese de que esta biblioteca est en la lista de bibliotecas cuando los compile. El compilador RPG proporciona mensajes informativos porque los ejemplos no utilizan muchas de las variables declaradas en los archivos de copia.

Ejecucin de los programas de ejemplo


Puede ejecutar sus colas cuando ejecute los ejemplos, o puede ejecutar AMQSAMP4 para crear algunas colas de ejemplo. El fuente de este programa se enva en el archivo QCLSRC de la biblioteca QMQMSAMP. Se puede compilar utilizando el mandato CRTCLPGM. Para llamar a uno de los programas de ejemplo, utilice un mandato como:
CALL PGM(QMQMSAMP/AMQ3PUT4) PARM('Nombre de cola')

donde Nombre de cola debe tener 48 caracteres de longitud, que se consigue rellenando el nombre de la cola con el nmero necesario de espacios en blanco. Observe que en los programas de ejemplo de consultar y establecer, las definiciones de ejemplo creadas por AMQSAMP4 hacen que las versiones C de estos ejemplos se desencadenen. Si desea desencadenar las versiones RPG, debe cambiar las definiciones del proceso SYSTEM.SAMPLE.ECHOPROCESS y SYSTEM.SAMPLE.INQPROCESS y SYSTEM.SAMPLE.SETPROCESS. Puede utilizar el mandato CHGMQMPRC (descrito en el manual MQSeries for AS/400 V5.1 System Administration) o editar y ejecutar AMQSAMP4 con la definicin alternativa.

El programa de ejemplo de poner


El programa de ejemplo de poner, AMQnPUT4, pone mensajes en una cola utilizando la llamada MQPUT. Para iniciar el programa, llmelo e indique el nombre de la cola destino como parmetro del programa. El programa pone un conjunto de mensajes fijos en la cola; estos mensajes proceden del bloque de datos que hay al final del cdigo fuente del programa. Un programa de ejemplo de poner es AMQ3PUT4, en la biblioteca QMQMSAMP. Al utilizar este programa de ejemplo, el mandato es:
CALL PGM(QMQMSAMP/AMQ3PUT4) PARM('Nombre de cola')

Captulo 45. Programas de ejemplo

357

ejemplo de poner
donde Nombre de cola debe tener 48 caracteres de longitud, que se consigue rellenando el nombre de la cola con el nmero necesario de espacios en blanco.

Diseo del programa de ejemplo de poner


El programa utiliza la llamada MQOPEN con la opcin OOOUT para abrir la cola destino para poner mensajes. Los resultados se envan como salida a un archivo de spool. Si no puede abrir la cola, el programa graba un mensaje de error que contiene el cdigo de razn devuelto por la llamada MQOPEN. Para que el programa sea sencillo, en esta y en las siguientes llamadas MQI, se utilizarn los valores por omisin para numerosas opciones. En cada lnea de datos contenida en el cdigo fuente, el programa lee el texto en un almacenamiento intermedio y utiliza la llamada MQPUT para crear un mensaje de datagrama que contenga el texto de dicha lnea. El programa contina hasta llegar al final de la entrada o hasta que falla la llamada MQPUT. El programa, si llega al final de la entrada, cierra la cola utilizando la llamada MQCLOSE.

El programa de ejemplo de examinar


El programa de ejemplo de examinar, AMQnGBR4, examina mensajes en una cola utilizando la llamada MQGET. El programa recupera copias de todos los mensajes de la cola especificados al llamar al programa; el mensaje permanece en la cola. Puede utilizar la cola suministrada, SYSTEM.SAMPLE.LOCAL; ejecute antes el programa de ejemplo de poner para poner algunos mensajes en la cola. Puede utilizar la cola SYSTEM.SAMPLE.ALIAS, que es un nombre de alias de la misma cola local. El programa contina hasta que llega al final de la cola o hasta que falla la llamada MQI. Un ejemplo de mandato para llamar al programa RPG es:
CALL PGM(QMQMSAMP/AMQ3GBR4) PARM('Nombre de cola')

donde Nombre de cola debe tener 48 caracteres de longitud, que se consigue rellenando el nombre de la cola con el nmero necesario de espacios en blanco. Por lo tanto, si est utilizando SYSTEM.SAMPLE.LOCAL como cola destino, necesita 29 caracteres en blanco.

Diseo del programa de ejemplo de examinar


El programa abre la cola destino utilizando la llamada MQOPEN con la opcin OOBRW. Si no puede abrir la cola, el programa graba un mensaje de error en su archivo de spool, que contiene el cdigo de razn devuelto por la llamada MQOPEN. Para cada mensaje de la cola, el programa utiliza la llamada MQGET para copiar el mensaje de la cola y despus visualiza los datos contenidos en el mensaje. La llamada MQGET utiliza estas opciones: GMBRWN Tras la llamada MQOPEN, el cursor para examinar se coloca de forma lgica antes del primer mensaje de la cola, por lo que esta opcin hace que se devuelva el primer mensaje la primera vez que se realiza la llamada. GMNWT El programa no espera si no hay mensajes en la cola.

358

Consulta de programacin de aplicaciones (ILE RPG)

ejemplo de examinar
GMATM La llamada MQGET especifica un almacenamiento intermedio de tamao fijo. Si un mensaje es ms largo que el almacenamiento intermedio, el programa visualiza el mensaje truncado junto con un aviso que indica que el mensaje se ha truncado. El programa muestra cmo deben vaciarse los campos MDMID y MDCID de la estructura MQMD tras cada llamada MQGET debido a que la llamada da a estos campos los valores contenidos en el mensaje que recupera. Al vaciar estos campos, las siguientes llamadas MQGET recuperan mensajes en el orden en que estn en la cola. El programa contina hasta el final de la cola; al llegar a ese punto, la llamada MQGET devuelve el cdigo de razn RC2033 (no hay mensajes disponibles) y el programa visualiza un mensaje de aviso. Si la llamada MQGET falla, el programa graba un mensaje de error que contiene el cdigo de razn en su archivo de spool. A continuacin, el programa cierra la cola utilizando la llamada MQCLOSE.

El programa de ejemplo de obtener


El programa de ejemplo de obtener, AMQnGET4, obtiene mensajes de una cola utilizando la llamada MQGET. Cuando se llama al programa, este elimina los mensajes de la cola especificada. Puede utilizar la cola suministrada, SYSTEM.SAMPLE.LOCAL; ejecute antes el programa de ejemplo de poner para poner algunos mensajes en la cola. Puede utilizar la cola SYSTEM.SAMPLE.ALIAS, que es un nombre de alias de la misma cola local. El programa contina hasta que la cola est vaca o hasta que falla una llamada MQI. Un ejemplo de mandato para llamar al programa RPG es:
CALL PGM(QMQMSAMP/AMQ3GET4) PARM('Nombre de cola')

donde Nombre de cola debe tener 48 caracteres de longitud, que se consigue rellenando el nombre de la cola con el nmero necesario de espacios en blanco. Por lo tanto, si est utilizando SYSTEM.SAMPLE.LOCAL como cola destino, necesita 29 caracteres en blanco.

Diseo del programa de ejemplo de obtener


El programa abre la cola destino para obtener mensajes; utiliza la llamada MQOPEN con la opcin OOINPQ. Si no puede abrir la cola, el programa graba un mensaje de error que contiene el cdigo de razn devuelto por la llamada MQOPEN en su archivo de spool. Para cada mensaje de la cola, el programa utiliza la llamada MQGET para eliminar el mensaje de la cola y despus visualiza los datos contenidos en el mensaje. La llamada MQGET utiliza la opcin GMWT especificando un intervalo de espera (GMWI) de 15 segundos, por lo que el programa espera durante ese perodo de tiempo si no hay ningn mensaje en la cola. Si no llega ningn mensaje antes de que transcurra ese intervalo de tiempo, la llamada falla y devuelve el cdigo de razn RC2033 (no hay mensajes disponibles). El programa muestra cmo deben vaciarse los campos MDMID y MDCID de la estructura MQMD tras cada llamada MQGET debido a que la llamada da a estos
Captulo 45. Programas de ejemplo

359

ejemplo de obtener
campos los valores contenidos en el mensaje que recupera. Al vaciar estos campos, las siguientes llamadas MQGET recuperan los mensajes en el orden en que estn en la cola. La llamada MQGET especifica un almacenamiento intermedio de tamao fijo. Si un mensaje es ms largo que el almacenamiento intermedio, la llamada falla y el programa se detiene. El programa contina hasta que la llamada MQGET devuelve el cdigo de razn RC2033 (no hay mensajes disponibles) o hasta que falla la llamada MQGET. Si la llamada falla, el programa visualiza un mensaje de error que contiene el cdigo de razn. A continuacin, el programa cierra la cola utilizando la llamada MQCLOSE.

El programa de ejemplo de peticin


El programa de ejemplo de peticin, AMQnREQ4, muestra el proceso de cliente/servidor. El ejemplo es el cliente que pone mensajes de peticin en una cola procesada por un programa servidor. Espera a que el programa servidor ponga un mensaje de respuesta en una cola de respuestas. El ejemplo de peticin pone una serie de mensajes de peticin en una cola utilizando la llamada MQPUT. Estos mensajes especifican SYSTEM.SAMPLE.REPLY como cola de respuestas. El programa espera mensajes de respuesta y, a continuacin, los visualiza. Las respuestas solo se envan si la cola destino (que llamaremos cola de servidor) la procesa una aplicacin de servidor, o si se desencadena una aplicacin con dicho fin (los programas de ejemplo de consultar y establecer se han diseado para desencadenarse). El ejemplo espera 5 minutos a que llegue la primera respuesta (para que una aplicacin de servidor pueda desencadenarse) y 15 segundos a las siguientes respuestas, pero puede finalizar sin obtener ninguna respuesta. Para iniciar el programa, llmelo e indique el nombre de la cola destino como parmetro del programa. El programa transfiere un grupo de mensajes fijos a la cola; estos mensajes proceden del bloque de datos que hay al final del cdigo fuente del programa.

Utilizacin del desencadenamiento con el ejemplo de peticin


Para ejecutar el ejemplo utilizando el desencadenamineto, inicie el programa servidor desencadenante, AMQ3SRV4, con respecto a la cola de inicicio requerida en un trabajo y, a continuacin, inicie AMQnREQ4 en otro trabajo. Esto significa que el servidor desencadenante estar preparado cuando el programa de ejemplo enva un mensaje. Notas: 1. Los ejemplos utilizan la cola SYSTEM SAMPLE TRIGGER como cola de inicicio para las colas locales SYSTEM.SAMPLE.ECHO, SYSTEM.SAMPLE.INQ o SYSTEM.SAMPLE.SET. Otra posibilidad es que defina su propia cola de inicicio. 2. Las definiciones de ejemplo creadas por AMQSAMP4 hacen que se desencadene la versin C del ejemplo. Si desea desencadenar la versin RPG, debe cambiar las definiciones de proceso SYSTEM.SAMPLE.ECHOPROCESS y SYSTEM.SAMPLE.INQPROCESS y SYSTEM.SAMPLE.SETPROCESS. Puede

360

Consulta de programacin de aplicaciones (ILE RPG)

ejemplo de obtener
utilizar el mandato CHGMQMPRC (descrito en la MQSeries for AS/400 V5.1 System Administration) para hacer esto, o editar y ejecutar su propia versin de AMQSAMP4. 3. Debe compilar el programa servidor desencadenante desde el fuente proporcionado en QMQMSAMP/QRPGLESRC. Dependiendo del proceso desencadenante que desee ejecutar, se debe llamar a AMQ3REQ4 con el parmetro que especifique los mensajes de peticin que van a colocarse en una de estas colas de servidor de ejemplo: v SYSTEM.SAMPLE.ECHO (para los programas de ejemplo de eco) v SYSTEM.SAMPLE.INQ (para los programas de ejemplo de consultar) v SYSTEM.SAMPLE.SET (para los programas de ejemplo de establecer). Ver un diagrama de flujo del programa SYSTEM.SAMPLE.ECHO en la Figura 1 en la pgina 363. Al utilizar el ejemplo, el mandato para emitir la peticin del programa RPG para este servidor es:
CALL PGM(QMQMSAMP/AMQ3REQ4) PARM('SYSTEM.SAMPLE.ECHO + 30 caracteres en blanco')

ya que el nombre de cola debe tener 48 caracteres de longitud. Nota: Esta cola de ejemplo tiene el tipo de desencadenante FIRST, por lo que si hay mensajes en las colas antes de ejecutar el ejemplo de peticin, los mensajes enviados no desencadenarn las aplicaciones de servidor. Si desea intentar otros ejemplos, puede probar las siguientes variaciones: v Utilice AMQ3TRG4 en vez de AMQ3SRV4 para someter el trabajo, pero los posibles retrasos en el sometimiento del trabajo pueden hacer que sea menos fcil seguir lo que est sucediendo. v Utilice las colas de ejemplo SYSTEM.SAMPLE.INQ y SYSTEM.SAMPLE.SET. Al utilizar el archivo de datos de ejemplo, los mandatos para emitir las peticiones del programa RPG para estos servidores son, respectivamente:
CALL + 31 CALL + 31 PGM(QMQMSAMP/AMQ3INQ4) PARM('SYSTEM.SAMPLE.INQ caracteres en blanco') PGM(QMQMSAMP/AMQ3SET4) PARM('SYSTEM.SAMPLE.SET caracteres en blanco')

ya que el nombre de cola debe tener 48 caracteres de longitud. Estas colas de ejemplo tambin tienen el tipo de desencadenante FIRST.

Diseo del programa de ejemplo de peticin


El programa abre la cola del servidor para que pueda transferir mensajes. Utiliza la llamada MQOPEN con la opcin OOOUT. Si no puede abrir la cola, el programa visualiza un mensaje de error que contiene el cdigo de razn devuelto por la llamada MQOPEN. El programa abre entonces la cola de respuestas llamada SYSTEM.SAMPLE.REPLY para que pueda obtener mensajes de respuesta. Para ello, el programa utiliza la llamada MQOPEN con la opcin OOINPX. Si no puede abrir la cola, el programa visualiza un mensaje de error que contiene el cdigo de razn devuelto por la llamada MQOPEN. Para cada lnea de entrada, el programa lee el texto en un almacenamiento intermedio y utiliza la llamada MQPUT para crear un mensaje de peticin que
Captulo 45. Programas de ejemplo

361

ejemplo de obtener
contenga el texto de la lnea. En esta llamada el programa utiliza la opcin de informe ROEXCD para solicitar que cualquier mensaje de informe que se haya enviado acerca del mensaje de peticin incluya los 100 primeros bytes de datos del mensaje. El programa contina hasta llegar al final de la entrada o hasta que falla la llamada MQPUT. A continuacin, el programa utiliza la llamada MQGET para eliminar los mensajes de respuesta de la cola y visualiza los datos contenidos en las respuestas. La llamada MQGET utiliza la opcin GMWT, especificando un intervalo de espera (GMWI) de 5 minutos para la primera respuesta (para que haya tiempo de desencadenar una aplicacin de servidor) y de 15 segundos para las siguientes. El programa espera esos perodos de tiempo si no hay mensajes en la cola. Si no llega ningn mensaje antes de que transcurra ese intervalo de tiempo, la llamada falla y devuelve el cdigo de razn RC2033 (no hay mensajes disponibles). La llamada tambin utiliza la opcin GMATM, por lo que los mensajes cuyo tamao sea ms largo que el declarado para el almacenamiento intermedio se truncarn. El programa muestra cmo deben vaciarse los campos MDMID y MDCOD de la estructura MQMD tras cada llamada MQGET debido a que la llamada da a estos campos los valores contenidos en el mensaje que recupera. Al vaciar estos campos, las siguientes llamadas MQGET recuperan los mensajes en el orden en que estn en la cola. El programa contina hasta que la llamada MQGET devuelve el cdigo de razn RC2033 (no hay mensajes disponibles) o hasta que falla la llamada MQGET. Si la llamada falla, el programa visualiza un mensaje de error que contiene el cdigo de razn. El programa cierra entonces la cola del servidor y la cola de respuestas utilizando la llamada MQCLOSE. La tabla 57 muestra los cambios que han de realizarse en el programa de ejemplo de eco para ejecutar los programas de ejemplo de consultar y establecer. Nota: Los detalles para el programa de ejemplo de eco estn incluidos como referencia.
Tabla 57. Detalles del programa de ejemplo de cliente/servidor
Nombre del programa Eco Consultar Establecer Cola SYSTEM/SAMPLE ECHO INQ SET Programa arrancado AMQ3ECH4 AMQ3INQ4 AMQ3SET4

362

Consulta de programacin de aplicaciones (ILE RPG)

ejemplo de eco
SYSTEM.SAMPLE.ECHO

Programa AMQ3REQ4

Poner en cola

Leer cola

Mensaje desencadenante se escribe en la cola

SYSTEM.SAMPLE.TRIGGER

Visualizar respuestas

Leer cola

Programa AMQ3SRV4
Iniciar programa

AMQ3ECH4
SYSTEM.SAMPLE.REPLY
Leer respuesta Escribir respuesta en cola

Figura 1. Diagrama de flujo del programa (eco) de cliente/servidor de ejemplo

El programa de ejemplo de eco


El programa de ejemplo de eco devuelve el mensaje enviado a una cola de respuestas. El programa se llama AMQnECH4. Estos programas estn pensados para ejecutarse como programas desencadenados, por tanto su nica entrada son los datos ledos de la cola nombrada en la estructura del mensaje desencadenado. Para que el proceso de desencadenamiento funcione, debe asegurarse de que el programa de ejemplo de eco que desea utilizar lo desencadenen los mensajes que llegan a la cola SYSTEM.SAMPLE.ECHO. Para ello, especifique el nombre del programa de ejemplo de eco que desea utilizar en el campo ApplId de la definicin del proceso SYSTEM.SAMPLE.ECHOPROCESS. (Para ello, puede utilizar el mandato CHGMQMPRC, que se describe en MQSeries for AS/400 V5.1 System Administration). La cola de ejemplo tiene el tipo de desencadenante FIRST; por tanto, si ya hay mensajes en la cola antes de que ejecute el ejemplo de peticin, los mensajes que enve no desencadenar el ejemplo de eco. Cuando haya establecido la definicin correctamente, arranque primero AMQ3SRV4 en un trabajo, y despus arranque AMQnREQ4 en otro. Puede utilizar AMQ3TRG4 en vez de AMQ3SRV4, pero las posibles demoras en el sometimiento de trabajos pueden dificultar el seguimiento de lo que est pasando. Utilice los programas de ejemplo de peticin para enviar mensajes a la cola SYSTEM.SAMPLE.ECHO. Los programas de ejemplo de eco envan un mensaje de respuesta que contiene los datos del mensaje de respuesta a la cola de respuestas especificada en el mensaje de peticin.
Captulo 45. Programas de ejemplo

363

ejemplo de eco

Diseo del programa de ejemplo de eco


Cuando se desencadena el programa, este se conecta explcitamente al gestor de colas por omisin utilizando la llamada MQCONN. Aunque esto no es necesario para MQSeries para AS/400, significa que puede utilizar el mismo programa en otras plataformas sin cambiar el cdigo fuente. A continuacin, el programa abre la cola indicada en la estructura del mensaje desencadenante que se pas al arrancarlo. (Para que quede ms claro, esta cola se denominar cola de peticiones). El programa usa la llamada MQOPEN para abrir esta cola para entrada compartida. El programa utiliza la llamada MQGET para eliminar mensajes de la cola. Esta llamada utiliza las opciones GMATM y GMWT, con un intervalo de espera de 5 segundos. El programa prueba el descriptor de cada mensaje para saber si es un mensaje de peticin; si no lo es, descarta el mensaje y visualiza un mensaje de aviso. Para cada mensaje de peticin eliminado de la cola de peticiones, el programa utiliza la llamada MQPUT para transferir un mensaje de respuesta a la cola de respuestas. Este mensaje contiene el contenido del mensaje de peticin. Cuando no quedan mensajes en la cola de peticiones, el programa cierra la cola y se desconecta del gestor de colas. Este programa tambin puede responder a los mensajes enviados a la cola desde otras plataformas que no sean de MQSeries para AS/400, aunque no se facilita ningn ejemplo de esta situacin. Para hacer que funcione el programa ECHO: v Escriba un programa especificando correctamente los campos Formato, Codificacin y CCSID para enviar mensajes de peticin de texto. El programa ECHO solicita al gestor de colas que realice la conversin de datos del mensaje, si es necesario. v Especifique CONVERT(*YES) en el canal emisor de MQSeries para AS/400, si el programa que ha escrito no proporciona una conversin similar para la respuesta.

El programa de ejemplo de consultar


El programa de ejemplo de consultar, AMQnINQ4, realiza consultas sobre algunos de los atributos de una cola utilizando la llamada MQINQ. El programa debe ejecutarse como programa desencadenado, por lo que su nica entrada es una estructura (de mensaje desencadenante) MQTMC que contiene el nombre de una cola destino cuyos atributos deben consultarse. Para que el proceso de desencadenamiento funcione, debe asegurarse de que el programa de ejemplo de consultar se desencadena mediante los mensajes que llegan a la cola SYSTEM.SAMPLE.INQ. Para ello, especifique el nombre del programa de ejemplo de consultar en el campo ApplId de la definicin de proceso SYSTEM.SAMPLE.INQPROCESS. (Para ello, puede utilizar el mandato CHGMQMPRC, que se describe en el manual MQSeries for AS/400 V5.1 System Administration). La cola de ejemplo tiene el tipo desencadenante FIRST; por tanto, si ya hay mensajes en la cola antes de que ejecute el ejemplo de peticin, los mensajes que enve no desencadenarn el ejemplo de consultar.

364

Consulta de programacin de aplicaciones (ILE RPG)

ejemplo de consultar
Cuando haya establecido la definicin correctamente, arranque primero AMQ3SRV4 en un trabajo, y despus arranque AMQnREQ4 en otro. Puede utilizar AMQ3TRG4 en vez de AMQ3SRV4, pero las posibles demoras en el sometimiento del trabajo pueden dificultar el seguimiento de lo que est pasando. Utilice el programa de ejemplo de peticin para enviar mensajes de peticin, cada uno que contenga nicamente un nombre de cola, a la cola SYSTEM.SAMPLE.INQ. Para cada mensaje de peticin, el programa de ejemplo de consultar enva un mensaje de respuesta que contiene informacin acerca de la cola especificada en el mensaje de peticin. Las respuestas se envan a la cola de respuestas especificada en el mensaje de peticin.

Diseo del programa de ejemplo de consultar


Cuando se desencadena el programa, este se conecta explcitamente al gestor de colas por omisin utilizando la llamada MQCONN. Aunque esto no es necesario para MQSeries para AS/400, significa que puede utilizar el mismo programa en otras plataformas sin cambiar el cdigo fuente. A continuacin, el programa abre la cola indicada en la estructura del mensaje desencadenante que se pas al arrancarlo. (Para que quede ms claro, esta cola se denominar cola de peticiones). El programa usa la llamada MQOPEN para abrir la cola para entrada compartida. El programa utiliza la llamada MQGET para eliminar mensajes de la cola. Esta llamada utiliza las opciones GMATM y GMWT, con un intervalo de espera de 5 segundos. El programa prueba el descriptor de cada mensaje para saber si es un mensaje de peticin; si no lo es, descarta el mensaje y visualiza un mensaje de aviso. Para cada mensaje de peticin eliminado de la cola de peticiones, el programa lee el nombre de la cola (que llamaremos cola destino) contenido en los datos y abre dicha cola utilizando la llamada MQOPEN con la opcin OOINQ. Despus, el programa utiliza la llamada MQINQ para consultar los valores de los atributos InhibitGet, CurrentQDepth y OpenInputCount de la cola destino. Si la llamada MQINQ es satisfactoria, el programa usa la llamada MQPUT para poner un mensaje de respuesta en la cola de respuestas. Este mensaje contiene los valores de los 3 atributos. Si la llamada MQOPEN o MQINQ no es satisfactoria, el programa utiliza la llamada MQPUT para poner un mensaje de informe en la cola de respuestas. En el campo MDFB del descriptor de este mensaje de informe se encuentra el cdigo de razn devuelto por la llamada MQOPEN o MQINQ, la que haya finalizado con error. Despus de la llamada MQINQ, el programa cierra la cola destino utilizando la llamada MQCLOSE. Cuando no quedan mensajes en la cola de peticiones, el programa cierra la cola y se desconecta del gestor de colas.

Captulo 45. Programas de ejemplo

365

ejemplo de establecer

El programa de ejemplo de establecer


El programa de ejemplo de establecer, AMQnSET4, inhibe las operaciones de poner en una cola utilizando la llamada MQSET para cambiar el atributo InhibitPut de la cola. El programa debe ejecutarse como programa desencadenado, por lo que su nica entrada es una estructura (de mensaje desencadenante) MQTMC que contiene el nombre de una cola destino cuyos atributos deben consultarse. Para que el proceso de desencadenamiento funcione, debe asegurarse de que el programa de ejemplo de establecer se desencadena mediante los mensajes que llegan a la cola SYSTEM.SAMPLE.SET. Para ello, especifique el nombre del programa de ejemplo de establecer en el campo ApplId de la definicin de proceso SYSTEM.SAMPLE.SETPROCESS. (Para ello, puede utilizar el mandato CHGMQMPRC, que se describe en MQSeries for AS/400 V5.1 System Administration). El ejemplo de cola tiene el tipo de desencadenante FIRST; por tanto, si ya hay mensajes en la cola antes de que ejecute el ejemplo de peticin, los mesnajes que enve no desencadenarn el ejemplo de establecer. Cuando haya establecido la definicin correctamente, arranque primero AMQ3SRV4 en un trabajo, y despus arranque AMQnREQ4 en otro. Puede utilizar AMQ3TRG4 en vez de AMQ3SRV4, pero las posibles demoras en el sometimiento del trabajo pueden dificultar el seguimiento de lo que est pasando. Utilice el programa de ejemplo de peticin para enviar mensajes de peticin, que contengan nicamente un nombre de cola, a la cola SYSTEM.SAMPLE.SET. Para cada mensaje de peticin, el programa de ejemplo de establecer enva un mensaje de respuesta que contiene la confirmacin de que se han inhibido operaciones de poner en la cola especificada. Las respuestas se envan a la cola de respuestas especificada en el mensaje de peticin.

Diseo del programa de ejemplo de establecer


Cuando se desencadena el programa, este se conecta explcitamente al gestor de colas por omisin utilizando la llamada MQCONN. Aunque esto no es necesario para MQSeries para AS/400, significa que puede utilizar el mismo programa en otras plataformas sin cambiar el cdigo fuente. A continuacin, el programa abre la cola indicada en la estructura del mensaje desencadenante que se pas al arrancarlo. (Para que quede ms claro, esta cola se denominar cola de peticiones). El programa utiliza la llamada MQOPEN para abrir la cola para entrada compartida. El programa utiliza la llamada MQGET para eliminar mensajes de la cola. Esta llamada utiliza las opciones GMATM y GMWT, con un intervalo de espera de 5 segundos. El programa prueba el descriptor de cada mensaje para saber si es un mensaje de peticin; si no lo es, descarta el mensaje y visualiza un mensaje de aviso. Para cada mensaje de peticin eliminado de la cola de peticiones, el programa lee el nombre de la cola (que llamaremos cola destino) contenido en los datos y abre dicha cola utilizando la llamada MQOPEN con la opcin OOSET. El programa utiliza entonces la llamada MQSET para dar al atributo InhibitPut de la cola destino el valor QAPUTI.

366

Consulta de programacin de aplicaciones (ILE RPG)

ejemplo de establecer
Si la llamada MQSET es satisfactoria, el programa usa la llamada MQPUT para poner un mensaje de respuesta en la cola de respuestas. El mensaje contiene la serie de caracteres PUT inhibited. Si la llamada MQOPEN o MQSET no es satisfactoria, el programa utiliza la llamada MQPUT para poner un mensaje de informe en la cola de respuestas. En el campo MDFB del descriptor de este mensaje de informe se encuentra el cdigo de razn devuelto por la llamada MQOPEN o MQSET, la que haya finalizado con error. Despus de la llamada MQSET, el programa cierra la cola destino utilizando la llamada MQCLOSE. Cuando no quedan mensajes en la cola de peticiones, el programa cierra la cola y se desconecta del gestor de colas.

Los programas de ejemplo de desencadenamiento


MQSeries para AS/400 facilita dos programas de ejemplo de desencadenamiento escritos en ILE/RPG. Los programas son: AMQ3TRG4 Es un supervisor de desencadenamiento para el entorno OS/400. Somete un trabajo de OS/400 para iniciar la aplicacin, aunque esto significa que hay una actividad general de proceso asociada a cada mensaje desencadenante. AMQ3SRV4 Es un servidor desencadenante para el entorno OS/400. Para cada mensaje desencadenante, este servidor ejecuta el mandato de arranque en su propio trabajo para iniciar la aplicacin especificada. El servidor desencadenante puede llamar a transacciones CICS. Las versiones en lenguaje C de estos ejemplos tambin estn disponibles como programas ejecutables en la biblioteca QMQM, llamados AMQSTRG4 y AMQSERV4.

El supervisor de desencadenamiento de ejemplo AMQ3TRG4


AMQ3TRG4 es un supervisor desencadenamiento. Toma un parmetro: el nombre de la cola de inicio a la que debe servir. AMQSAMP4 define una cola de inicio de ejemplo, SYSTEM.SAMPLE.TRIGGER, que usted podr utilizar cuando intente ejecutar los programas de ejemplo. AMQ3TRG4 somete un trabajo de OS/400 para cada mensaje desencadenante vlido que obtiene de la cola de inicio.

Diseo del supervisor de desencadenamiento


El supervisor de desencadenamiento abre la cola de inicio y obtiene mensajes de la cola especificando un intervalo de espera ilimitado. El supervisor de desencadenamiento somete un trabajo de OS/400 para iniciar la aplicacin especificada en el mensaje desencadenante y pasa una estructura MQTMC (una versin de tipo carcter del mensaje desencadenante). Los datos de entorno del mensaje desencadenante se utilizan como parmetros de sometimiento de trabajo. Finalmente, el programa cierra la cola de inicio.
Captulo 45. Programas de ejemplo

367

ejemplo de desencadenamiento

El servidor desencadenante de ejemplo AMQ3SRV4


AMQ3SRV4 es un servidor desencadenante. Toma un parmetro: el nombre de la cola de inicio a la que debe servir. AMQSAMP4 define un ejemplo de cola de inicio, SYSTEM.SAMPLE.TRIGGER, que usted podr utilizar cuando intente ejecutar los programas de ejemplo. Para cada mensaje desencadenante, AMQ3SRV4 ejecuta un mandato de arranque en su propio trabajo para iniciar la aplicacin especificada. Al utilizar la cola desencadenante de ejemplo, el mandato que se ha de emitir es:
CALL PGM(QMQM/AMQ3SRV4) PARM('Nombre de cola')

donde Nombre de cola debe tener 48 caracteres de longitud, que se consigue rellenando el nombre de la cola con el nmero necesario de espacios en blanco. Por lo tanto, si est utilizando SYSTEM.SAMPLE.TRIGGER como cola destino, necesitar 28 caracteres en blanco.

Diseo del servidor desencadenante


El diseo del servidor desencadenante es parecido al del supervisor de desencadenamiento, excepto en que el servidor desencadenante: v Permite aplicaciones CICS y OS/400. v No utiliza los datos de entorno del mensaje desencadenante. v Llama a aplicaciones OS/400 en su propio trabajo (o usa STRCICSUSR para iniciar aplicaciones CICS) en vez de someter un trabajo de OS/400. v Abre la cola de inicio para entrada compartida, por lo que varios servidores desencadenantes pueden ejecutarse al mismo tiempo. Nota: Los programas iniciados por AMQ3SRV4 no deben utilizar la llamada MQDISC, ya que esta detendra el servidor desencadenante. Si los programas iniciados por AMQ3SRV4 utilizan la llamada MQCONN, obtendrn el cdigo de razn RC2002.

Finalizacin de los programas de ejemplo de desencadenamiento


Un programa de supervisor de desencadenamiento puede finalizarse mediante la opcin 2 de peticin del sistema (ENDRQS) o inhibiendo las obtenciones de la cola desencadenante. Si se utiliza la cola desencadenante de ejemplo, el mandato es:
CHGMQMQ QNAME('SYSTEM.SAMPLE.TRIGGER') GETENBL(*NO)

Nota: Para arrancar de nuevo el desencadenamiento en esta cola, debe entrar el mandato:
CHGMQMQ QNAME('SYSTEM.SAMPLE.TRIGGER') GETENBL(*YES)

368

Consulta de programacin de aplicaciones (ILE RPG)

Ejecucin de los ejemplos

Ejecucin de los ejemplos utilizando colas remotas


Puede comprobar la gestin de colas remotas ejecutando los ejemplos en gestores de colas de mensajes conectados. El programa AMQSAMP4 proporciona una definicin local de cola remota (SYSTEM.SAMPLE.REMOTE) que utiliza un gestor de colas remotas llamado OTRO. Para utilizar esta definicin de ejemplo, cambie OTHER por el nombre del segundo gestor de colas de mensajes que desee utilizar. Tambin deber configurar un canal de mensajes entre los dos gestores de colas de mensajes; en el manual MQSeries Intercommunication encontrar informacin sobre cmo realizar esta operacin. El programa de ejemplo de peticin transfiere el nombre de su propio gestor de colas local al campo MDRM de los mensajes que enva. Los ejemplos de consultar y establecer envan mensajes de respuesta a la cola y al gestor de colas de mensajes nombrados en los campos MDRQ y MDRM de los mensajes de peticin que procesan.

Captulo 45. Programas de ejemplo

369

Aplicaciones

370

Consulta de programacin de aplicaciones (ILE RPG)

Parte 5. Apndices

Copyright IBM Corp. 1994, 2000

371

372

Consulta de programacin de aplicaciones (ILE RPG)

Apndice A. Cdigos de retorno


Para cada llamada, el gestor de colas o una rutina de salida devuelven un cdigo de terminacin y un cdigo de razn para indicar si la llamada se ha realizado o no satisfactoriamente. No se comprobar si hay errores en las aplicaciones en un orden especfico, excepto cuando se indique de forma explcita. Si aparece ms de un cdigo de terminacin o de razn procedentes de una llamada, el error notificado depender de la implementacin.

Cdigos de terminacin
El parmetro cdigo de terminacin (CMPCOD) permite al llamador ver rpidamente si la llamada se ha completado parcial o totalmente o si ha fallado. A continuacin se proporciona una lista de cdigos de terminacin, con informacin ms detallada que la indicada en las descripciones de las llamadas: CCOK La llamada se ha completado satisfactoriamente. La llamada se ha completado del todo; se han establecido todos los parmetros de salida. En este caso, el parmetro REASON tiene siempre el valor RCNONE. CCWARN Aviso (la llamada se ha completado parcialmente). La llamada se ha completado en parte. Pueden haberse establecido algunos parmetros de salida adems de los parmetros de salida CMPCOD y REASON. El parmetro REASON facilita informacin adicional sobre la realizacin parcial. CCFAIL La llamada ha fallado. El proceso de la llamada no se ha completado y el estado del gestor de colas generalmente no vara; en caso contrario, se indicar de forma especfica. Se han establecido los parmetros de salida CMPCOD y REASON; los dems parmetros no han variado, salvo que se indique lo contrario. Puede deberse a un error en el programa de aplicacin o puede ser el resultado de alguna situacin externa al programa; por ejemplo, es posible que se haya revocado la autorizacin de la aplicacin. El parmetro REASON facilita informacin adicional sobre el error.

Cdigos de razn
El parmetro cdigo de razn (REASON) permite calificar el parmetro cdigo de terminacin CMPCOD. Si no hay ninguna razn especial que notificar, se devuelve RCNONE. Si la llamada es satisfactoria, se devuelve CCOK y RCNONE.

Copyright IBM Corp. 1994, 2000

373

Cdigos de retorno
Si el cdigo de terminacin es CCWARN o CCFAIL, el gestor de colas siempre informa de una razn calificadora; los detalles se facilitan en la descripcin de cada llamada. Donde las rutinas de salida del usuario establezcan cdigos de terminacin y de razn, los cdigos debern ajustarse a estas normas. Todos los valores de razn especiales definidos por las rutinas de salida de usuario deben ser menores que cero para garantizar que no entran en conflicto con los valores definidos por el gestor de colas. Las rutinas de salida pueden establecer razones ya definidas por el gestor de colas donde corresponda. Tambin aparecen cdigos de razn en: v El campo DLREA de la estructura MQDLH (para mensajes de la cola de mensajes no entregados) v El campo MDFB de la estructura MQMD (descriptor de mensaje) A continuacin se proporciona una lista de cdigos de razn, por orden alfabtico, con informacin ms detallada que la indicada en las descripciones de las llamadas. RCNONE (0, X'000') No hay ninguna razn que notificar. La llamada se ha completado con normalidad. El cdigo de terminacin (CMPCOD) es CCOK. Accin correctora: ninguna. RC0900 (900, X'384') El valor ms bajo de un cdigo de razn definido por aplicacin y devuelto por una rutina de salida de conversin de datos. Las rutinas de salida de conversin de datos pueden devolver los cdigos de razn comprendidos entre RC0900 y RC0999 con el fin de indicar determinadas condiciones detectadas por la rutina de salida. Accin correctora: la que defina el escritor de la rutina de salida de conversin de datos. RC0999 (999, X'3E7') El valor ms alto de un cdigo de razn definido por aplicacin y devuelto por una rutina de salida de conversin de datos. Las rutinas de salida de conversin de datos pueden devolver los cdigos de razn comprendidos entre RC0900 y RC0999 con el fin de indicar determinadas condiciones detectadas por la rutina de salida. Accin correctora: la que defina el escritor de la rutina de salida de conversin de datos. RC2001 (2001, X'7D1') El tipo de cola alias base no es vlido. Se ha emitido una llamada MQOPEN o MQPUT1 que especifica una cola alias como destino, pero el campo BaseQName de la definicin de cola alias se resuelve en una cola que no es local, en una definicin local de una cola remota o en una cola de clster. Accin correctora: corrija las definiciones de cola.

374

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
RC2002 (2002, X'7D2') Aplicacin ya conectada. Se ha emitido una llamada MQCONN, pero la aplicacin ya estaba conectada al gestor de colas. Accin correctora: ninguna. El parmetro HCONN devuelto tiene un valor igual al devuelto en la llamada MQCONN anterior. Nota: Una llamada MQCONN que devuelva este cdigo de razn no implica que deba emitirse una llamada MQDISC adicional para desconectarse del gestor de colas. Si se devuelve este cdigo de razn porque se ha llamado a la aplicacin (o a parte de ella) en circunstancias en las que ya se ha establecido la conexin, no debe emitirse la correspondiente llamada MQDISC, ya que ello provocara asimismo la desconexin de la aplicacin que emiti la llamada MQCONN original. RC2003 (2003, X'7D3') Una unidad de trabajo ha detectado un error muy grave o se ha restituido. Esto ocurre en los casos siguientes: v En una llamada MQCMIT o MQDISC, cuando la operacin de compromiso ha fallado y la unidad de trabajo se ha restituido. Todos los recursos protegidos han vuelto al estado que tenan al principio de la unidad de trabajo. La llamada MQCMIT devuelve el cdigo de terminacin CCFAIL; la llamada MQDISC devuelve el cdigo de terminacin CCWARN. En OS/390, este cdigo de razn solo aparece en el caso de las aplicaciones por lotes. v En una llamada MQGET, MQPUT o MQPUT1 que est operando en una unidad de trabajo, cuando la unidad de trabajo ya ha detectado un error que impide que esta se comprometa (por ejemplo, cuando se ha agotado el espacio de anotaciones). La aplicacin debe emitir la llamada apropiada para restituir la unidad de trabajo. Para una unidad de trabajo coordinada por el gestor de colas, esta llamada es MQBACK, aunque en estas circunstancias, la llamada MQCMIT tiene el mismo efecto. En OS/390, no se da este caso. Accin correctora: compruebe los cdigos devueltos desde las llamadas anteriores al gestor de colas. Por ejemplo, podra haber fallado una llamada MQPUT anterior. RC2004 (2004, X'7D4') El parmetro almacenamiento intermedio no es vlido. El parmetro BUFFER no es vlido por una de las razones siguientes: v El puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). v El puntero del parmetro seala a un almacenamiento al que no puede acceder toda la longitud especificada por BUFLEN. v Para las llamadas en que BUFFER es un parmetro de salida: el puntero del parmetro seala a un almacenamiento de solo lectura. Accin correctora: corrija el parmetro.
Apndice A. Cdigos de retorno

375

Cdigos de retorno
RC2005 (2005, X'7D5') El parmetro longitud de almacenamiento intermedio no es vlido. No es vlido el parmetro BUFLEN o el puntero del parmetro. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Este cdigo de razn tambin puede devolverse a un programa de cliente MQ en la llamada MQCONN si el tamao mximo de mensaje negociado para el canal es menor que la parte fija de cualquier estructura de llamada. Accin correctora: especifique un valor que sea mayor o igual que cero. Para las llamadas mqAddString y mqSetString, tambin es vlido el valor especial MQBL_NULL_TERMINATED. RC2006 (2006, X'7D6') La longitud de los atributos de tipo carcter no es vlida. CALEN es negativo (para las llamadas MQINQ o MQSET) o su tamao no es suficiente para dar cabida a todos los atributos seleccionados (solo para las llamadas MQSET). Este cdigo de razn se da tambin si el puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: especifique un valor que sea suficiente para dar cabida a las series concatenadas de todos los atributos seleccionados. RC2007 (2007, X'7D7') La serie de atributos de tipo carcter no es vlida. CHRATR no es vlido. El puntero del parmetro no es vlido o seala a un almacenamiento de solo lectura para las llamadas MQINQ o a un almacenamiento cuya longitud es menor que la implcita en CALEN. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: corrija el parmetro. RC2008 (2008, X'7D8') No se ha dado suficiente espacio para los atributos de tipo carcter. Para las llamadas MQINQ, el valor de CALEN no es suficiente para contener todos los atributos de tipo carcter para los que se han especificado selectores CA* en el parmetro SELS. An as, la llamada se completa, con la serie del parmetro CHRATR rellenada con todos los atributos de tipo carcter que quepan. Solo se devuelven series de atributos completas: si no queda espacio suficiente para dar cabida a un atributo completo, se omitirn ese atributo y todos los atributos de tipo carcter que le sigan. Los espacios que haya al final de la serie y que no se utilicen para contener un atributo no varan. Accin correctora: especifique un valor suficientemente grande, a menos que solo necesite un subconjunto de los valores. RC2009 (2009, X'7D9') Se ha perdido la conexin con el gestor de colas.

376

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Se ha perdido la conexin con un gestor de colas. Puede deberse a que haya finalizado el gestor de colas. Si se trata de una llamada MQGET con la opcin GMWT, la espera se ha cancelado. Si se da este cdigo de razn con MQCONN, el gestor de colas puede haberse detenido y rearrancado y estar disponible de nuevo. Todas las asas anteriores han dejado de ser vlidas ahora, pero la aplicacin puede intentar restablecer la conexin emitiendo de nuevo la llamada MQCONN. Tenga en cuenta que, para aplicaciones de cliente MQ, es posible que la llamada se haya completado satisfactoriamente, incluso si este cdigo de razn se devuelve con el cdigo de terminacin CMPCOD igual a CCFAIL. Accin correctora: las aplicaciones pueden intentar restablecer la conexin emitiendo la llamada MQCONN. Puede ser necesario sondear hasta que se reciba una respuesta satisfactoria. Las aplicaciones deben asegurar que se restituyen las actualizaciones que no se hayan comprometido. Las unidades de trabajo que estn coordinadas por el gestor de colas se restituyen automticamente. RC2010 (2010, X'7DA') El parmetro longitud de datos no es vlido. El parmetro DATLEN no es vlido. El puntero del parmetro no es vlido o seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Este cdigo de razn tambin puede devolverse a un programa de cliente MQ que est transfiriendo y obteniendo mensajes, si la longitud de los datos del mensaje de aplicacin es superior al tamao mximo de mensaje negociado para el canal. Accin correctora: corrija el parmetro. Si el error se produce en relacin a un programa de cliente MQ, compruebe tambin que el tamao mximo de mensaje del canal sea suficiente para dar cabida al mensaje que se enva; si no lo es, aumente el tamao mximo de mensaje del canal. RC2011 (2011, X'7DB') El nombre de la cola dinmica no es vlido. En la llamada MQOPEN, se ha especificado una cola modelo en el campo ODON del parmetro OBJDSC, pero el campo ODDN no es vlido por uno de estos motivos: v ODDN est completamente en blanco (o est en blanco hasta el primer carcter nulo del campo). v Hay caracteres que no son vlidos para un nombre de cola. v Aparece un asterisco ms all de la posicin 33 (y antes de un carcter nulo). v Aparece un asterisco seguido de caracteres que no son nulos ni blancos. Este cdigo de razn puede aparecer a veces cuando una aplicacin de servidor abre la cola de respuestas especificada por los campos MDRQ y MDRM de la estructura MQMD de un mensaje que el servidor acaba de recibir. En este caso, el cdigo de razn indica que la aplicacin que envi el mensaje original puso valores incorrectos en los campos MDRQ y MDRM de la estructura MQMD del mensaje original.
Apndice A. Cdigos de retorno

377

Cdigos de retorno
Accin correctora: especifique un nombre vlido. RC2012 (2012, X'7DC') La llamada no es vlida en el entorno. La llamada no es vlida para el entorno actual. v En OS/390, se da una de estas situaciones: Se ha emitido una llamada MQCONN, pero la aplicacin se haba enlazado con un adaptador no soportado en el entorno en el que se est ejecutando la aplicacin. Por ejemplo, esto puede ocurrir cuando la aplicacin est enlazada con el adaptador RRS de MQ, pero la aplicacin se est ejecutando en un espacio de direcciones de un procedimiento almacenado de DB2. En este entorno no se da soporte a RRS. Los procedimientos almacenados que quieran utilizar el adaptador RRS de MQ debern ejecutarse en un espacio de direcciones de un procedimiento almacenado de DB2 gestionado por WLM. Se ha emitido una llamada MQCMIT o MQBACK en el entorno CICS o IMS. v En Compaq (DIGITAL) OpenVMS, OS/2, OS/400, Tandem NonStop Kernel, sistemas UNIX y Windows NT, se da una de estas situaciones: La aplicacin est enlazada con bibliotecas incorrectas (con hebras o sin hebras). Se ha emitido una llamada MQBEGIN, MQCMIT o MQBACK, pero se est utilizando un gestor externo de unidad de trabajo o el gestor de colas no da soporte a las unidades de trabajo. Se ha emitido la llamada MQBEGIN en un entorno de cliente MQ. Accin correctora: realice una de estas acciones (segn corresponda): v En OS/390: Enlace la aplicacin con el adaptador correcto. Para una aplicacin CICS o IMS, emita la llamada CICS o IMS apropiada para comprometer o restituir la unidad de trabajo. v En los otros entornos: Enlace la aplicacin con las bibliotecas correctas (con hebras o sin hebras). Elimine de la aplicacin la llamada no soportada. RC2013 (2013, X'7DD') Fecha de caducidad no vlida. En una llamada MQPUT o MQPUT1, el valor especificado para el campo MDEXP del descriptor de mensaje MQMD no es vlido. Accin correctora: especifique un valor mayor que cero o el valor especial EIULIM. RC2014 (2014, X'7DE') El cdigo de informacin de retorno no es vlido. | | En una llamada MQPUT o MQPUT1, el valor especificado para el campo MDFB del descriptor de mensaje MQMD no es vlido. El valor no es FBNONE y est fuera del rango definido para los cdigos de informacin de retorno del sistema y del definido para los cdigos de informacin de retorno de la aplicacin. Accin correctora: especifique FBNONE o un valor que est comprendido entre FBSFST y FBSLST o entre FBAFST y FBALST.

378

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
RC2016 (2016, X'7E0') Se han inhibido las obtenciones para la cola. Las llamadas MQGET estn actualmente inhibidas para la cola (vea el atributo InhibitGet de la cola descrito en el Captulo 37. Atributos de todas las colas en la pgina 305) o para la cola en la que esta se resuelve (vea el Captulo 40. Atributos de colas alias en la pgina 329). Accin correctora: si el diseo del sistema permite que las aplicaciones inhiban peticiones de obtener durante perodos cortos, repita la operacin ms adelante. RC2017 (2017, X'7E1') No hay ms asas disponibles. Se ha emitido una llamada MQOPEN o MQPUT1, pero ya se ha llegado al nmero mximo de asas abiertas permitido para la tarea actual. Tenga en cuenta que cuando se especifica una lista de distribucin en la llamada MQOPEN o MQPUT1, cada una de las colas de la lista de distribucin utiliza un asa. Accin correctora: compruebe si la aplicacin est emitiendo llamadas MQOPEN sin las correspondientes llamadas MQCLOSE. Si es as, modifique la aplicacin para que emita la llamada MQCLOSE para los objetos abiertos que ya no sean necesarios. Compruebe tambin si la aplicacin est especificando una lista de distribucin que contiene un elevado nmero de colas que consumen todas las asas disponibles. En este caso, aumente el nmero mximo de asas que puede utilizar la tarea o reduzca el tamao de la lista de distribucin. El nmero de asas abiertas que puede utilizar una tarea viene determinado por el atributo MaxHandles del gestor de colas (vea el Captulo 43. Atributos del gestor de colas en la pgina 337). RC2018 (2018, X'7E2') El asa de conexin no es vlida. El asa de conexin HCONN no es vlida. Este cdigo de razn tambin se produce si el puntero del parmetro no es vlido o (para la llamada MQCONN) si seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: asegrese de que se realiza una llamada MQCONN satisfactoria para el gestor de colas y de que an no se haya realizado ninguna llamada MQDISC para l. Asegrese de que el asa se est utilizando en el mbito correcto (vea la llamada MQCONN descrita en el Captulo 27. MQCONN - Conectar gestor de colas en la pgina 231). RC2019 (2019, X'7E3') El asa de objeto no es vlida. El asa de objeto HOBJ no es vlida. Este cdigo de razn tambin se produce si el puntero del parmetro no es vlido o (para la llamada MQOPEN) si seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: asegrese de que se realiza una llamada MQOPEN satisfactoria para este objeto y de que an no se ha realizado ninguna llamada MQCLOSE para l. Para las llamadas MQGET y MQPUT, asegrese asimismo de que el asa representa un objeto cola. Asegrese de
Apndice A. Cdigos de retorno

379

Cdigos de retorno
que el asa se est utilizando en el mbito correcto (vea la llamada MQOPEN descrita en el Captulo 32. MQOPEN - Abrir objeto en la pgina 261). RC2020 (2020, X'7E4') No es vlido el valor del atributo de cola de inhibir obtener o de inhibir poner. En una llamada MQSET, el valor especificado para el atributo IAIGET o para el atributo IAIPUT no es vlido. Accin correctora: especifique un valor vlido. Vea los atributos InhibitGet o InhibitPut que se describen en el Captulo 37. Atributos de todas las colas en la pgina 305. RC2021 (2021, X'7E5') La cuenta de atributos de tipo entero no es vlida. En una llamada MQINQ o MQSET, el parmetro IACNT es negativo (MQINQ o MQSET) o es menor que el nmero de selectores de atributos de tipo entero (IA*) especificado en el parmetro SELS (solo MQSET). Este cdigo de razn se produce tambin si el puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: especifique un valor suficientemente grande para todos los atributos de tipo entero seleccionados. RC2022 (2022, X'7E6') No se ha dado suficiente espacio para los atributos de tipo entero. En una llamada MQINQ, el parmetro IACNT es menor que el nmero de selectores de atributos de tipo entero (IA*) especificado en el parmetro SELS. La llamada se completa con CCWARN y con la matriz INTATR rellenada con todos los atributos de tipo entero que quepan en ella. Accin correctora: especifique un valor suficientemente grande, a menos que solo necesite un subconjunto de los valores. RC2023 (2023, X'7E7') La matriz de atributos de tipo entero no es vlida. En una llamada MQINQ o MQSET, el parmetro INTATR no es vlido. El puntero del parmetro no es vlido (MQINQ y MQSET) o seala a un almacenamiento de solo lectura o a un almacenamiento cuya longitud es menor que la indicada por el parmetro IACNT (solo MQINQ). (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: corrija el parmetro. RC2024 (2024, X'7E8') No pueden manejarse ms mensajes dentro de la unidad de trabajo actual. Una llamada MQGET, MQPUT o MQPUT1 es errnea debido a que ha provocado que el nmero de mensajes no comprometidos en la unidad de trabajo actual haya superado el lmite definido por el gestor de colas (vea

380

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
el atributo MaxUncommittedMsgs del gestor de colas). El nmero de mensajes no comprometidos es la suma de los mensajes siguientes desde el principio de la unidad de trabajo actual: v Los mensajes transferidos por la aplicacin con la opcin PMSYP v Los mensajes recuperados por la aplicacin con la opcin GMSYP v Los mensajes desencadenantes y los mensajes de informe COA generados por el gestor de colas para los mensajes transferidos con la opcin PMSYP v Los mensajes de informe COD generados por el gestor de colas para los mensajes recuperados con la opcin GMSYP Accin correctora: compruebe si la aplicacin se est repitiendo en bucle. Si no es as, intente reducir la complejidad de la aplicacin. Opcionalmente, aumente para el gestor de colas el lmite del nmero mximo de mensajes no comprometidos que puede haber dentro de una unidad de trabajo. v En OS/400, el lmite del nmero mximo de mensajes no comprometidos puede cambiarse utilizando el mandato CHGMQM. RC2026 (2026, X'7EA') El descriptor de mensaje no es vlido. La estructura MQMD no es vlida. El nemotcnico de atencin MDSID no es correcto o MDVER no se ha reconocido. Esta razn tambin se produce si: v El puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). v El gestor de colas no puede copiar la estructura cambiada en el almacenamiento de la aplicacin, aunque la llamada sea satisfactoria. Esto puede producirse, por ejemplo, si el puntero seala a un almacenamiento de solo lectura. Accin correctora: corrija la definicin del descriptor de mensaje. Asegrese de que se han establecido correctamente los campos de entrada obligatorios. RC2027 (2027, X'7EB') Falta la cola de respuestas. En una llamada MQPUT o MQPUT1, el campo MDRQ del descriptor de mensaje MQMD est en blanco, pero se da una de las siguientes circunstancias: v Se ha solicitado una respuesta (es decir, que se ha especificado MTRQST en el campo MDMT del descriptor de mensaje). v Se ha solicitado un mensaje de informe en el campo MDREP del descriptor de mensaje. Accin correctora: especifique el nombre de la cola a la que debe enviarse el mensaje de respuesta o el mensaje de informe. RC2029 (2029, X'7ED') El tipo de mensaje del descriptor de mensaje no es vlido. En una llamada MQPUT o MQPUT1, el valor especificado para el campo MDMT del descriptor de mensaje (MQMD) no es vlido.

Apndice A. Cdigos de retorno

381

Cdigos de retorno
Accin correctora: especifique un valor vlido. Vea el campo MDMT descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para obtener ms detalles. RC2030 (2030, X'7EE') La longitud del mensaje es superior a la longitud mxima de la cola. Se ha emitido una llamada MQPUT o MQPUT1 para poner un mensaje en una cola, pero el mensaje era demasiado largo para la cola y no se haba especificado MFSEGA en el campo MDMFL de MQMD. Si no se permite la segmentacin, la longitud del mensaje no puede superar el menor de los atributos MaxMsgLength de la cola y del gestor de colas. Este cdigo de razn tambin puede darse cuando MFSEGA s se especifica, pero la naturaleza de los datos del mensaje es tal que impide que el gestor de colas los divida en segmentos lo suficientemente pequeos como para colocarlos en la cola: v Para un formato definido por el usuario, el segmento ms pequeo que puede crear el gestor de colas es de 16 bytes. v Para un formato incorporado, el segmento ms pequeo que puede crear el gestor de colas depende del tipo de formato, pero en todos los casos es mayor que 16 bytes excepto en el de FMSTR (para FMSTR, el tamao mnimo del segmento es de 16 bytes). RC2030 tambin puede darse en el campo MDFB del descriptor de un mensaje de informe; en este caso indica que el error lo detect un agente de canal de mensajes cuando intentaba poner el mensaje en una cola remota. Accin correctora: compruebe si el parmetro BUFLEN se ha especificado correctamente; en tal caso, lleve a cabo una de las tareas siguientes: v Aumente el valor del atributo MaxMsgLength de la cola; tambin puede ser necesario aumentar el valor del atributo MaxMsgLength del gestor de colas. v Divida el mensaje en varios mensajes ms cortos. v Especifique MFSEGA en el campo MDMFL de MQMD; esto permitir que el gestor de colas divida el mensaje en segmentos. RC2031 (2031, X'7EF') La longitud del mensaje es superior al mximo permitido por el gestor de colas. Se ha emitido una llamada MQPUT o MQPUT1 para poner un mensaje en una cola, pero el mensaje era demasiado largo para el gestor de colas y no se haba especificado MFSEGA en el campo MDMFL de MQMD. Si no se permite la segmentacin, la longitud del mensaje no puede superar el menor de los atributos MaxMsgLength de la cola y del gestor de colas. Este cdigo de razn tambin puede darse cuando MFSEGA s se especifica, pero la naturaleza de los datos del mensaje es tal que impide que el gestor de colas los pueda dividir en segmentos que sean lo suficientemente pequeos para satisfacer el lmite del gestor de colas: v Para un formato definido por el usuario, el segmento ms pequeo que puede crear el gestor de colas es de 16 bytes. v Para un formato incorporado, el segmento ms pequeo que puede crear el gestor de colas depende del tipo de formato, pero en todos los casos

382

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
es mayor que 16 bytes excepto en el de FMSTR (para FMSTR, el tamao mnimo del segmento es de 16 bytes). RC2031 tambin puede darse en el campo MDFB del descriptor de un mensaje de informe; en este caso indica que un agente de canal de mensajes detect el error cuando intentaba poner el mensaje en una cola remota. Esta razn tambin se produce si un canal, a travs del cual debe pasar el mensaje, ha limitado la longitud mxima de mensaje a un valor que en realidad es menor que el soportado por el gestor de colas, y la longitud del mensaje es superior a ese valor. Accin correctora: compruebe si el parmetro BUFLEN se ha especificado correctamente; en tal caso, lleve a cabo una de las tareas siguientes: v Aumente el valor del atributo MaxMsgLength del gestor de colas; tambin puede ser necesario aumentar el valor del atributo MaxMsgLength de la cola. v Divida el mensaje en varios mensajes ms cortos. v Especifique MFSEGA en el campo MDMFL de MQMD; esto permitir que el gestor de colas divida el mensaje en segmentos. v Compruebe las definiciones del canal. RC2033 (2033, X'7F1') No hay ningn mensaje disponible. Se ha emitido una llamada MQGET, pero no hay ningn mensaje en la cola que cumpla los criterios de seleccin especificados en MQMD (los campos MDMID y MDCID) ni en MQGMO (los campos GMOPT y GMMO). O no se ha especificado la opcin GMWT o ha transcurrido el intervalo de tiempo especificado por el campo GMWI en MQGMO. Esta razn tambin se devuelve para una llamada MQGET de examinar, si se ha llegado al final de la cola. Este cdigo de razn tambin pueden devolverlo las llamadas mqGetBag y mqExecute. mqGetBag es parecida a MQGET. Para la llamada mqExecute, el cdigo de terminacin puede ser MQCC_WARNING o MQCC_FAILED: v Si el cdigo de terminacin es MQCC_WARNING, significa que se han recibido algunos mensajes de respuesta durante el intervalo de espera especificado, pero no todos. El paquete de respuesta contiene paquetes generados por el sistema para los mensajes que se han recibido. v Si el cdigo de terminacin es MQCC_FAILED, significa que no se ha recibido ningn mensaje de respuesta durante el intervalo de tiempo especificado. Accin correctora: si esta es la condicin prevista, no es necesario realizar ninguna accin correctora. Si no estaba prevista, compruebe que el mensaje se haya puesto en la cola y si las opciones que controlan los criterios de seleccin se han especificado correctamente. A continuacin se muestra todo lo que puede afectar a la elegibilidad de un mensaje para devolverlo en la llamada MQGET: GMLOGO GMAMSA GMASGA GMCMPM
Apndice A. Cdigos de retorno

383

Cdigos de retorno
MOMSGI MOCORI MOGRPI MOSEQN MOOFFS Campo MDMID Campo MDCID Considere la posibilidad de esperar ms tiempo a que se devuelva el mensaje. RC2034 (2034, X'7F2') El cursor para examinar no est situado en el mensaje. Se ha emitido una llamada MQGET con la opcin GMMUC o GMBRWC. No obstante, el cursor para examinar no est situado en un mensaje recuperable. Esto puede deberse a una de estas condiciones: v El cursor se ha situado de forma lgica antes del primer mensaje (tal y como est antes de haber realizado satisfactoriamente la primera llamada MQGET con una opcin de examinar), o v El mensaje en el que estaba situado el cursor para examinar se ha bloqueado o eliminado de la cola (probablemente lo haya hecho otra aplicacin) una vez efectuada la operacin de examinar. v El mensaje en el que estaba situado el cursor para examinar ha caducado. Accin correctora: compruebe la lgica de la aplicacin. Esta puede ser una razn esperada si el diseo de la aplicacin permite que varios servidores compitan para obtener los mensajes despus de examinar. Si lo desea, tambin puede utilizar la opcin GMLK con la llamada MQGET de examinar anterior. RC2035 (2035, X'7F3') Acceso no autorizado. El usuario no tiene autorizacin para realizar la operacin que se ha intentado: v En una llamada MQCONN, el usuario no est autorizado a conectarse al gestor de colas. v En una llamada MQOPEN o MQPUT1, el usuario no est autorizado a abrir el objeto para la opcin o las opciones especificadas. v En una llamada MQCLOSE, el usuario no est autorizado a suprimir el objeto, que es una cola dinmica permanente, y el parmetro HOBJ especificado en la llamada MQCLOSE no es el asa devuelta por la llamada MQOPEN que ha creado la cola. Este cdigo de razn tambin puede darse en el campo MDFB del descriptor de un mensaje de informe; en este caso indica que un agente de canal de mensajes detect el error cuando intentaba poner el mensaje en una cola remota. Accin correctora: asegrese de que se ha especificado el gestor de colas o el objeto correctos y de que existe la autorizacin adecuada. RC2036 (2036, X'7F4') La cola no se ha abierto para examen. Se ha emitido una llamada MQGET con una de las opciones siguientes:

384

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
GMBRWF GMBRWN GMBRWC GMMUC pero la cola no se ha abierto para examen. Accin correctora: especifique OOBRW cuando se abra la cola. RC2037 (2037, X'7F5') La cola no se ha abierto para entrada. Se ha emitido una llamada MQGET para recuperar un mensaje de una cola, pero la cola no se ha abierto para entrada. Accin correctora: especifique una de las opciones siguientes cuando se abra la cola: OOINPS OOINPX OOINPQ RC2038 (2038, X'7F6') La cola no se ha abierto para consulta. Se ha emitido una llamada MQINQ para consultar los atributos de un objeto, pero el objeto no se ha abierto para consulta. Accin correctora: especifique OOINQ cuando se abra el objeto. RC2039 (2039, X'7F7') La cola no se ha abierto para salida. Se ha emitido una llamada MQPUT para poner un mensaje en una cola, pero la cola no se ha abierto para salida. Accin correctora: especifique OOOUT cuando se abra la cola. RC2040 (2040, X'7F8') La cola no se ha abierto para establecer. Se ha emitido una llamada MQSET para establecer los atributos de cola, pero la cola no se ha abierto para establecer. Accin correctora: especifique OOSET cuando se abra la cola. RC2041 (2041, X'7F9') La definicin de un objeto ha cambiado desde su apertura. Debido a que el asa HOBJ utilizada en esta llamada se ha devuelto en la llamada MQOPEN, han cambiado las definiciones de objeto que afectan a este objeto. Consulte el Captulo 32. MQOPEN - Abrir objeto en la pgina 261 para obtener ms informacin. Este cdigo de razn no se da si el asa del objeto se especifica en el campo PMCT del parmetro PMO de la llamada MQPUT o MQPUT1. Accin correctora: emita una llamada MQCLOSE para devolver el asa del sistema. Normalmente, despus basta con volver a abrir el objeto y repetir la operacin. No obstante, si las definiciones de objeto son crticas para la lgica de la aplicacin, puede utilizarse una llamada MQINQ despus de volver a abrir el objeto para averiguar qu es lo que ha variado. RC2042 (2042, X'7FA') El objeto ya est abierto con opciones en conflicto.

Apndice A. Cdigos de retorno

385

Cdigos de retorno
Se ha emitido una llamada MQOPEN, pero el objeto en cuestin ya haba sido abierto por esta o por otra aplicacin con opciones que estn en conflicto con las especificadas en el parmetro OPTS. Esto sucede si la peticin es para entrada compartida y el objeto est abierto para entrada exclusiva; y tambin si la peticin es para entrada exclusiva y el objeto ya se ha abierto para entrada (de cualquier tipo). Nota: Los MCA de los canales receptores pueden mantener abiertas las colas destino incluso si no se estn transmitiendo mensajes; esto da la impresin de que las colas se estn utilizando. Accin correctora: el diseo del sistema debe especificar si la aplicacin espera y reintenta o si realiza otra accin. RC2043 (2043, X'7FB') Tipo de objeto no vlido. En la llamada MQOPEN o MQPUT1, el campo ODOT del descriptor de objeto MQOD especifica un valor que no es vlido. Para la llamada MQPUT1, el tipo de objeto debe ser OTQ. Accin correctora: especifique un tipo de objeto vlido. RC2044 (2044, X'7FC') La estructura del descriptor de objeto no es vlida. En la llamada MQOPEN o MQPUT1, el descriptor de objeto MQOD no es vlido. El nemotcnico de atencin ODSID no es correcto o ODVER no se ha reconocido. Esta razn tambin se produce si: v El puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). v El gestor de colas no puede copiar la estructura cambiada en el almacenamiento de la aplicacin, aunque la llamada sea satisfactoria. Esto puede producirse, por ejemplo, si el puntero seala a un almacenamiento de solo lectura. Accin correctora: corrija la definicin del descriptor de objeto. Asegrese de que se han establecido correctamente los campos de entrada obligatorios. RC2045 (2045, X'7FD') La opcin no es vlida para este tipo de objeto. En una llamada MQOPEN o MQCLOSE, se ha especificado una opcin que no es vlida para el tipo de objeto o de cola que se est abriendo o cerrando. Para la llamada MQOPEN, puede deberse a uno de los casos siguientes: v Una opcin que no es la adecuada para el tipo de objeto (por ejemplo OOOUT para un objeto OTPRO). v Una opcin que no est soportada por el tipo de cola (por ejemplo, OOINQ para una cola remota que no tiene ninguna definicin local). v Una o ms de estas opciones: OOINPQ OOINPS OOINPX

386

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
OOBRW OOINQ OOSET cuando: el nombre de la cola se resuelve mediante un directorio de celdas, o el campo ODMN del descriptor de objeto especifica el nombre de la definicin local de una cola remota (con el fin de especificar un alias de gestor de colas) y la cola indicada en el atributo RemoteQMgrName de la definicin es el nombre del gestor de colas local. Para la llamada MQCLOSE puede deberse a uno de los casos siguientes: v La opcin CODEL o COPURG cuando la cola no es una cola dinmica. Este cdigo de razn tambin se puede dar en la llamada MQOPEN cuando el objeto que se va a abrir es de tipo OTNLST, OTPRO u OTQM, pero el campo ODMN en MQOD no est en blanco ni es el nombre del gestor de colas local. Accin correctora: especifique la opcin correcta; vea en la Tabla 48 en la pgina 267 las opciones de abrir y en la Tabla 47 en la pgina 222 las de cerrar. Para la llamada MQOPEN, asegrese de que el campo ODMN se ha establecido correctamente. Para la llamada MQCLOSE, corrija la opcin o cambie el tipo de definicin de la cola modelo utilizada para crear la cola nueva. RC2046 (2046, X'7FE') Las opciones no son vlidas o no son coherentes. El parmetro o el campo OPTS contiene opciones que no son vlidas, o una combinacin de opciones que no es vlida. v Para las llamadas MQOPEN, MQCLOSE, MQXCNVC, mqBagToBuffer, mqBufferToBag, mqCreateBag y mqExecute, GMOPT es un parmetro aparte en la llamada. Esta razn se produce tambin si el puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). v Para las llamadas MQCONNX, MQGET, MQPUT y MQPUT1, GMOPT es un campo que est en la estructura de opciones relevantes (MQGMO o MQPMO). Accin correctora: especifique opciones vlidas. Compruebe la descripcin del parmetro o del campo OPTS para determinar las opciones o las combinaciones de opciones que son vlidas. Si se estn estableciendo varias opciones a base de combinar opciones individuales, asegrese de no aadir dos veces la misma opcin. RC2047 (2047, X'7FF') La permanencia no es vlida. En una llamada MQPUT o MQPUT1, el valor especificado para el campo MDPER del descriptor de mensaje MQMD no es vlido. Accin correctora: especifique uno de los valores siguientes: PEPER PENPER PEQDEF
Apndice A. Cdigos de retorno

387

Cdigos de retorno
RC2048 (2048, X'800') Un mensaje situado en una cola dinmica temporal no puede ser permanente. En una llamada MQPUT o MQPUT1, el valor especificado para el campo MDPER del descriptor de mensaje MQMD especifica PEPER, pero la cola en la que se est colocando el mensaje es una cola dinmica temporal. Los mensajes permanentes no se pueden poner en colas temporales. Este cdigo de razn tambin puede darse en el campo MDFB del descriptor de un mensaje de informe; en este caso indica que un agente de canal de mensajes detect el error cuando intentaba poner el mensaje en una cola remota. Accin correctora: especifique PENPER si el mensaje se ha de colocar en una cola dinmica temporal. Si se requiere la permanencia, utilice una cola dinmica permanente o una cola predefinida. Tenga presente que es aconsejable que las aplicaciones de servidor enven mensajes de respuesta (tipo de mensaje MTRPLY) con la misma permanencia que el mensaje de peticin original (tipo de mensaje MTRQST). Si el mensaje de peticin es permanente, la cola de respuestas especificada en el campo MDRQ del descriptor de mensaje MQMD no puede ser una cola dinmica temporal; en esta situacin debe utilizarse una cola dinmica o predefinida como cola de respuestas. RC2049 (2049, X'801') La prioridad del mensaje supera el valor mximo soportado. En una llamada MQPUT o MQPUT1, el valor del campo MDPRI del descriptor de mensaje MQMD supera la prioridad mxima soportada por el gestor de colas local (vea el atributo MaxPriority de gestor de colas descrito en el Captulo 43. Atributos del gestor de colas en la pgina 337). El gestor de colas acepta el mensaje, pero este se coloca en la cola con la prioridad mxima del gestor de colas. El campo MDPRI del descriptor de mensaje conserva el valor especificado por la aplicacin que transfiri el mensaje. Accin correctora: ninguna, a menos que la aplicacin que transfiri el mensaje no esperara este cdigo de razn. RC2050 (2050, X'802') La prioridad del mensaje no es vlida. En una llamada MQPUT o MQPUT1, el valor del campo MDPRI del descriptor de mensaje MQMD no es vlido. Accin correctora: especifique un valor mayor o igual que cero, o el valor especial PRQDEF. RC2051 (2051, X'803') Las llamadas de poner estn inhibidas para la cola. Las llamadas MQPUT y MQPUT1 estn actualmente inhibidas para la cola (vea el atributo InhibitPut de la cola descrito en el Captulo 37. Atributos de todas las colas en la pgina 305) o para la cola en la que esta se resuelve (vea el Captulo 40. Atributos de colas alias en la pgina 329). Este cdigo de razn tambin puede darse en el campo MDFB del descriptor de un mensaje de informe; en este caso indica que un agente de canal de mensajes detect el error cuando intentaba poner el mensaje en una cola remota.

388

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Accin correctora: si el diseo del sistema permite que se inhiban peticiones de poner durante perodos cortos, reintente la operacin ms adelante. RC2052 (2052, X'804') La cola se ha suprimido. Un asa de cola HOBJ especificada en una llamada hace referencia a una cola dinmica que se ha suprimido despus de abrir la cola. (Vea el Captulo 25. MQCLOSE - Cerrar objeto en la pgina 221 para obtener ms informacin sobre la supresin de colas dinmicas). Accin correctora: emita una llamada MQCLOSE para devolver el asa y los recursos asociados al sistema (en este caso, la llamada MQCLOSE se realizar satisfactoriamente). Compruebe el diseo de la aplicacin que ha originado el error. RC2053 (2053, X'805') La cola ya contiene el nmero mximo de mensajes. En una llamada MQPUT o MQPUT1, la llamada ha fallado porque la cola est llena, es decir, ya contiene el nmero mximo de mensajes posible (vea el atributo MaxQDepth de cola local descrito en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311). Este cdigo de razn tambin puede darse en el campo MDFB del descriptor de un mensaje de informe; en este caso indica que un agente de canal de mensajes detect el error cuando intentaba poner el mensaje en una cola remota. Accin correctora: reintente la opcin ms adelante. Considere la posibilidad de aumentar la profundidad mxima de la cola o de tomar medidas para que la aplicacin d servicio a la cola en ms casos. RC2055 (2055, X'807') La cola contiene uno o ms mensajes o peticiones de poner o de obtener no comprometidas. Se ha emitido una llamada MQCLOSE para una cola dinmica permanente con: v La opcin CODEL especificada, pero todava quedan mensajes en la cola o bien v Las opciones CODEL o COPURG especificadas, pero en la cola todava quedan llamadas de obtener o de poner no comprometidas pendientes. Para obtener ms informacin, consulte las notas de utilizacin relacionadas con las colas dinmicas para la llamada MQCLOSE. Este cdigo de razn tambin se devuelve desde un mandato PCF (formato de mandato programable) de vaciar o suprimir una cola, si esta contiene mensajes no comprometidos (o mensajes comprometidos en el caso de suprimir la cola sin la opcin de purgar). Accin correctora: compruebe por qu todava hay mensajes en la cola. Tenga presente que el atributo CurrentQDepth de cola local puede ser cero aunque haya uno o ms mensajes en la cola; esta situacin puede darse si se han recuperado mensajes como parte de una unidad de trabajo que an no se ha comprometido. Si los mensajes se pueden descartar, intente utilizar la llamada MQCLOSE con la opcin COPURG. Considere la posibilidad de repetir la llamada ms adelante.
Apndice A. Cdigos de retorno

389

Cdigos de retorno
RC2056 (2056, X'808') No hay espacio disponible para la cola en el disco. Se ha emitido una llamada MQPUT o MQPUT1, pero no hay espacio disponible para la cola en el disco o en otro dispositivo de almacenamiento. Este cdigo de razn tambin puede darse en el campo MDFB del descriptor de un mensaje de informe; en este caso indica que un agente de canal de mensajes detect el error cuando intentaba poner el mensaje en una cola remota. Accin correctora: compruebe si alguna aplicacin est poniendo mensajes en un bucle infinito. Si no es as, deje ms espacio en disco disponible para la cola. RC2057 (2057, X'809') Tipo de cola no vlido. Se ha dado una de las siguientes situaciones: v En una llamada MQOPEN, el campo ODMN del descriptor de objeto MQOD o del registro de objeto MQOR especifica el nombre de una definicin local de una cola remota (con el fin de especificar un alias de gestor de colas) y en dicha definicin local, el atributo RemoteQMgrName es el nombre del gestor de colas local. Sin embargo, el campo ODON de MQOD o MQOR especifica el nombre de una cola modelo del gestor de colas local y esto no est permitido. Puede obtener ms informacin en la publicacin MQSeries Application Programming Guide. v En una llamada MQPUT1, el descriptor de objeto MQOD o el registro de objeto MQOR, especifican el nombre de una cola modelo. v En una llamada MQPUT o MQPUT1 anterior, el campo MDRQ del descriptor de mensaje especificaba el nombre de una cola modelo, pero no se puede especificar una cola modelo como destino de los mensajes de respuesta o de informe. El destino solo puede ser el nombre de una cola predefinida o el nombre de la cola dinmica creada a partir de la cola modelo. En esta situacin, se devuelve el cdigo de razn RC2057 en el campo DLREA de la estructura MQDLH cuando el mensaje de respuesta o de informe se coloca en la cola de mensajes no entregados. Accin correctora: especifique una cola vlida. RC2058 (2058, X'80A') El nombre del gestor de colas no es vlido o es desconocido. En una llamada MQCONN, el valor especificado por el parmetro QMNAME no es vlido. Esta razn se produce tambin si el puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Este cdigo de razn tambin se da si una aplicacin intenta conectarse a un gestor de colas de un grupo (vea el parmetro QMNAME de MQCONN) y: v No estn soportados los grupos de gestores de colas (solo estn soportados para las aplicaciones de cliente MQ), o v No existe ningn grupo de gestores de colas que tenga el nombre especificado Accin correctora: utilice, si es posible, un nombre que solo tenga blancos o verifique si el nombre utilizado es vlido.

390

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
RC2059 (2059, X'80B') El gestor de colas no est disponible para conexin. En una llamada MQCONN, el gestor de colas identificado por el parmetro QMNAME no est disponible para conexin en este momento. v En OS/400, este cdigo de razn tambin lo pueden devolver las llamadas MQOPEN y MQPUT1 si una aplicacin que se est ejecutando en modalidad de compatibilidad especifica HCDEFH para el parmetro HCONN. Si la conexin procede de una aplicacin de cliente MQ, este cdigo de razn puede darse si se produce un error en la conexin de cliente o en las correspondientes definiciones del canal de conexin de servidor. Este cdigo de razn tambin se da si una aplicacin intenta conectarse a un gestor de colas de un grupo (vea el parmetro QMNAME de MQCONN), cuando ninguno de los gestores de colas del grupo est disponible para conexin en ese momento. Accin correctora: asegrese de que se ha arrancado el gestor de colas. Si la conexin procede de una aplicacin de cliente, compruebe las definiciones de canal. RC2061 (2061, X'80D') Las opciones de informe del descriptor de mensaje no son vlidas. Se ha emitido una llamada MQPUT o MQPUT1, pero el campo MDREP del descriptor de mensaje MQMD contiene una o ms opciones que el gestor de colas local no reconoce. Las opciones que pueden provocar que se devuelva este cdigo de razn dependen del destino del mensaje; vea el Apndice E. Opciones de informe en la pgina 481 para obtener ms detalles. Este cdigo de razn tambin puede darse en el campo MDFB de MQMD de un mensaje de informe o en el campo DLREA de la estructura MQDLH de un mensaje de la cola de mensajes no entregados; en ambos casos, indica que el gestor de colas destino no soporta una o ms de las opciones de informe especificadas por el emisor del mensaje. Accin correctora: realice lo siguiente: 1. Asegrese de que el campo MDREP del descriptor de mensaje se inicializa con un valor cuando se declara o de que se le ha asignado un valor antes de realizar la llamada MQPUT o MQPUT1. Especifique RONONE si no se necesitan opciones de informe. 2. Asegrese de que las opciones de informe especificadas son las que estn documentadas en este manual; consulte el campo MDREP descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para conocer las opciones de informe vlidas. Elimine las opciones de informe que no estn documentadas en este manual. 3. Si se establecen mltiples opciones de informe a base de combinar opciones de informe individuales, asegrese de que no se aada dos veces la misma opcin de informe. 4. Compruebe tambin que no se especifiquen opciones de informe en conflicto. Por ejemplo, no aada las dos opciones ROEXC y ROEXCD al campo MDREP; solo puede especificarse una de ellas.

Apndice A. Cdigos de retorno

391

Cdigos de retorno
RC2063 (2063, X'80F') Se ha producido un error de seguridad. Se ha emitido una llamada MQOPEN, MQPUT1 o MQCLOSE, pero no se ha realizado satisfactoriamente debido a un error de seguridad. Accin correctora: anote el error del gestor de seguridad y pngase en contacto con el programador del sistema o con el administrador de seguridad. v En OS/400, las anotaciones de FFST contendrn la informacin de error. RC2065 (2065, X'811') La cuenta de selectores no es vlida. En una llamada MQINQ o MQSET, el parmetro SELCNT especifica un valor que no es vlido. Esta razn se produce tambin si el puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: especifique un valor comprendido entre 0 y 256. RC2066 (2066, X'812') La cuenta de selectores es demasiado grande. En una llamada MQINQ o MQSET, el parmetro SELCNT especifica un valor que es mayor que el mximo soportado (256). Accin correctora: reduzca el nmero de selectores especificado en la llamada; los valores vlidos son los comprendidos entre 0 y 256. RC2067 (2067, X'813') El selector de atributo no es vlido. En una llamada MQINQ o MQSET, un selector de la matriz SELS: v no es vlido, o v no se puede aplicar al tipo de objeto cuyos atributos se estn consultando o estableciendo, o bien v (solo MQSET) no se trata de un atributo que pueda establecerse. Esta razn se produce tambin si el puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: asegrese de que el valor especificado para el selector es vlido para el tipo de objeto representado por HOBJ. Para la llamada MQSET, asegrese tambin de que el selector representa un atributo de tipo entero que pueda establecerse. RC2068 (2068, X'814') Selector no aplicable a este tipo de cola. En la llamada MQINQ, uno o varios selectores de la matriz SELS no son aplicables al tipo de cola cuyos atributos se estn consultando. Este cdigo de razn tambin se da cuando se trata de una cola de clster que se resolvi en una instancia remota de la cola. En este caso solo puede consultarse un subconjunto de los atributos que son vlidos para las colas locales. Para obtener ms detalles, consulte las notas de utilizacin que hay en el Captulo 31. MQINQ - Consultar los atributos de objeto en la pgina 251.

392

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
La llamada se completa con CCWARN y con los valores de los atributos de los selectores no aplicables establecidos del modo siguiente: v Para los atributos de tipo entero, los correspondientes elementos de INTATR se establecen en IAVNA. v Para los atributos de tipo carcter, las partes adecuadas de la serie CHRATR se establecen en una serie de caracteres que consta nicamente de asteriscos (*). Accin correctora: compruebe si el selector especificado es el que se deseaba. Si la cola es de un clster y se especifica una de las opciones OOBRW, OOINP* u OOSET junto con OOINQ, se forzar a la cola a resolverse en la instancia local de la cola. Sin embargo, si no existe ninguna instancia local de la cola, la llamada MQOPEN fallar. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. La llamada no se ha ejecutado correctamente porque no hay suficiente almacenamiento principal disponible. Accin correctora: asegrese de que las aplicaciones activas tienen un comportamiento correcto; por ejemplo, que no se estn repitiendo en bucle de forma imprevista. Si no se encuentra ningn problema, obtenga ms almacenamiento principal. RC2072 (2072, X'818') El soporte de punto de sincronismo no est disponible. Se ha especificado GMSYP en una llamada MQGET o se ha especificado PMSYP en una llamada MQPUT o MQPUT1, pero el gestor de colas local no ha podido responder a la peticin. Si el gestor de colas no da soporte a unidades de trabajo, el atributo SyncPoint del gestor de colas tendr el valor SPNAVL. Este cdigo de razn tambin se puede dar en las llamadas MQGET, MQPUT y MQPUT1 cuando se est utilizando un coordinador externo de una unidad de trabajo. Si este coordinador precisa que se haga una llamada explcita para arrancar la unidad de trabajo, pero la aplicacin no ha emitido dicha llamada antes de realizar la llamada MQGET, MQPUT o MQPUT1, se devolver el cdigo de razn RC2072. v En OS/400, este cdigo de razn significa que el control de compromiso de OS/400 no se ha iniciado o no est disponible para que lo utilice el gestor de colas. Accin correctora: elimine la especificacin de GMSYP o de PMSYP, segn convenga. v En OS/400, si el control de compromiso no se ha iniciado, incielo. Si este cdigo de razn aparece despus de haber iniciado el control de compromiso, pngase en contacto con el programador del sistema. RC2075 (2075, X'81B') El valor del atributo de control de desencadenamiento no es vlido. En una llamada MQSET, el valor especificado por el selector de atributos IATRGC no es vlido.

Apndice A. Cdigos de retorno

393

Cdigos de retorno
Accin correctora: especifique un valor vlido. Vea el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311. RC2076 (2076, X'81C') El valor del atributo de profundidad desencadenante no es vlido. En una llamada MQSET, el valor especificado por el selector de atributos IATRGD no es vlido. Accin correctora: especifique un valor mayor que cero. Vea el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311. RC2077 (2077, X'81D') El valor del atributo de prioridad de mensajes desencadenantes no es vlido. En una llamada MQSET, el valor especificado por el selector de atributos IATRGP no es vlido. Accin correctora: especifique un valor comprendido entre 0 y el valor del atributo MaxPriority del gestor de colas. Vea el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311. RC2078 (2078, X'81E') El valor del atributo de tipo de desencadenante no es vlido. En una llamada MQSET, el valor especificado por el selector de atributos IATRGT no es vlido. Accin correctora: especifique un valor vlido. Vea el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311. RC2079 (2079, X'81F') Se ha devuelto un mensaje truncado (el proceso se ha completado). En una llamada MQGET, la longitud del mensaje era demasiado grande para caber en el almacenamiento intermedio proporcionado. Se ha especificado la opcin GMATM, por lo que la llamada se completa. El mensaje se elimina de la cola (sujeto a las consideraciones de la unidad de trabajo) o, si se trataba de una operacin de examinar, el cursor para examinar avanza hasta este mensaje. El parmetro DATLEN se establece en la longitud del mensaje antes del truncamiento, el parmetro BUFFER contiene la mayor cantidad posible del mensaje y la estructura MQMD se rellena. Accin correctora: ninguna, ya que la aplicacin esperaba esta situacin. RC2080 (2080, X'820') Se ha devuelto un mensaje truncado (el proceso no se ha completado). En una llamada MQGET, la longitud del mensaje era demasiado grande para caber en el almacenamiento intermedio proporcionado. No se ha especificado la opcin GMATM , por lo que el mensaje no se ha eliminado de la cola. Si se trata de una operacin de examinar, el cursor para examinar permanecer donde estaba antes de la llamada, pero si se ha especificado GMBRWF, el cursor para examinar se situar de forma lgica antes del mensaje que tenga la prioridad ms alta de la cola.

394

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
El campo DATLEN se establece en la longitud del mensaje antes del truncamiento, el parmetro BUFFER contiene la mayor cantidad posible del mensaje y la estructura MQMD se rellena. Accin correctora: facilite un almacenamiento intermedio cuya longitud sea al menos igual que DATLEN o especifique GMATM si no se necesitan todos los datos del mensaje. RC2082 (2082, X'822') Cola alias base desconocida. Se ha emitido una llamada MQOPEN o MQPUT1 que especificaba una cola alias como destino, pero el nombre BaseQName de los atributos de la cola alias no se reconoce como nombre de cola. Este cdigo de razn tambin se da si BaseQName es el nombre de una cola de clster que no se puede resolver satisfactoriamente. Accin correctora: corrija las definiciones de cola. RC2085 (2085, X'825') Nombre de objeto desconocido. En una llamada MQOPEN o MQPUT1, el campo ODMN del descriptor de objeto MQOD se establece en uno de estos valores: v En blanco v El nombre del gestor de colas local v El nombre de una definicin local de una cola remota (un alias de gestor de colas) en el que el atributo RemoteQMgrName es el nombre del gestor de colas local Sin embargo, el campo ODON del descriptor de objeto no se reconoce para el tipo de objeto especificado. Este cdigo de razn tambin se da si la cola es una cola de clster alojada en un gestor de colas remoto, pero el gestor de colas local no tiene definida una ruta de acceso al gestor de colas remoto. Vea tambin el cdigo de razn RC2052. Accin correctora: especifique un nombre de objeto vlido. Asegrese de que el nombre se rellena con blancos a la derecha si es necesario. Si esto es correcto, compruebe las definiciones de cola. RC2086 (2086, X'826') Gestor de colas de objeto desconocido. En una llamada MQOPEN o MQPUT1, el campo ODMN del descriptor de objeto MQOD no satisface las normas de denominacin de los objetos. Para obtener ms informacin, consulte la publicacin MQSeries Application Programming Guide. Este cdigo de razn tambin se da si el campo ODOT del descriptor de objeto tiene el valor OTQM, y el campo ODMN no est en blanco, pero el nombre especificado no es el del gestor de colas local. Accin correctora: especifique un nombre de gestor de colas vlido (o todo blancos o un carcter inicial nulo para hacer referencia al gestor de colas local). Asegrese de que el nombre se rellena con blancos a la derecha o termina con un carcter nulo si es necesario.

Apndice A. Cdigos de retorno

395

Cdigos de retorno
RC2087 (2087, X'827') Gestor de colas remoto desconocido. En una llamada MQOPEN o MQPUT1, se ha producido un error en la resolucin de nombre de cola, por una de estas causas: v El campo ODMN est en blanco o es el nombre del gestor de colas local, el campo ODON es el nombre de una definicin local de una cola remota (o un alias de una cola remota), y se cumple una de las condiciones siguientes: RemoteQMgrName est en blanco o es el nombre del gestor de colas local. Recuerde que este error se produce incluso si XmitQName no est en blanco. XmitQName est en blanco, pero no se ha definido ninguna cola de transmisin con el nombre RemoteQMgrName, y el atributo DefXmitQName de gestor de colas est en blanco. RemoteQMgrName y RemoteQName especifican una cola de clster que no se puede resolver satisfactoriamente y el atributo DefXmitQName de gestor de colas est en blanco. v El campo ODMN es el nombre de una definicin local de una cola remota (que contiene una definicin de alias de gestor de colas), y se cumple una de las condiciones siguientes: RemoteQName no est en blanco. XmitQName est en blanco, pero no se ha definido ninguna cola de transmisin con el nombre RemoteQMgrName, y el atributo DefXmitQName de gestor de colas est en blanco. v El campo ODMN no: Est en blanco Es el nombre del gestor de colas local Es el nombre de una cola de transmisin Es el nombre de una definicin de alias de gestor de colas (es decir, una definicin local de una cola remota con un atributo RemoteQName en blanco) pero el atributo DefXmitQName de gestor de colas est en blanco. v El campo ODMN es el nombre de una cola modelo. v El nombre de la cola se resuelve mediante un directorio de celdas. No obstante, no se ha definido ninguna cola con el nombre del gestor de colas remoto obtenido del directorio de celdas y el atributo DefXmitQName de gestor de colas est en blanco. Accin correctora: compruebe los valores especificados para ODMN y ODON. Si son correctos, compruebe las definiciones de cola. RC2090 (2090, X'82A') El intervalo de espera de MQGMO no es vlido. En la llamada MQGET, el valor especificado para el campo GMWI del parmetro GMO no es vlido. Accin correctora: especifique un valor mayor o igual que cero, o el valor especial WIULIM si se requiere una espera indefinida. RC2091 (2091, X'82B') La cola de transmisin no es local. En una llamada MQOPEN o MQPUT1, debe enviarse un mensaje a un gestor de colas remoto. Los campos ODON o ODMN del descriptor de objeto

396

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
especifican el nombre de una definicin local de una cola remota, pero el atributo XmitQName de la definicin cumple una de las condiciones siguientes: v XmitQName no est en blanco, sino que especifica una cola que no es local. v XmitQName est en blanco, pero RemoteQMgrName especifica una cola que no es local. Este cdigo de razn tambin se da si el nombre de la cola se resuelve mediante un directorio de celdas y el nombre del gestor de colas remoto obtenido de dicho directorio es el nombre de una cola, pero no el de una cola local. Accin correctora: compruebe los valores especificados para ODON y ODMN. Si son correctos, compruebe las definiciones de cola. Para obtener ms informacin sobre las colas de transmisin, consulte el manual MQSeries Application Programming Guide. RC2092 (2092, X'82C') Utilizacin incorrecta de la cola de transmisin. En una llamada MQOPEN o MQPUT1, se debe enviar un mensaje a un gestor de colas remoto, pero se ha dado una de estas situaciones: v El campo ODMN especifica el nombre de una cola local, pero no tiene un atributo Usage igual a USTRAN. v Los campos ODON o ODMN del descriptor de objeto especifican el nombre de una definicin local de una cola remota, pero el atributo XmitQName de la definicin cumple una de las condiciones siguientes: XmitQName no est en blanco, pero especifica una cola que no tiene un atributo Usage igual a USTRAN XmitQName est en blanco, pero RemoteQMgrName especifica una cola que no tiene un atributo Usage igual a USTRAN v El nombre de la cola se resuelve mediante un directorio de celdas y el nombre del gestor de colas remoto obtenido de dicho directorio es el de una cola local, pero no tiene un atributo Usage igual a USTRAN. Accin correctora: compruebe los valores especificados para ODON y ODMN. Si son correctos, compruebe las definiciones de cola. Para obtener ms informacin sobre las colas de transmisin, consulte el manual MQSeries Application Programming Guide. RC2093 (2093, X'82D') Cola no abierta para pasar todo el contexto. Se ha emitido una llamada MQPUT con la opcin PMPASA especificada en el parmetro PMO, pero la cola no se ha abierto con la opcin OOPASA. Accin correctora: especifique OOPASA (u otra opcin que la implique) al abrir la cola. RC2094 (2094, X'82E') Cola no abierta para pasar el contexto de identidad. Se ha emitido una llamada MQPUT con la opcin PMPASI especificada en el parmetro PMO, pero la cola no se ha abierto con la opcin OOPASI. Accin correctora: especifique OOPASI (u otra opcin que la implique) al abrir la cola.
Apndice A. Cdigos de retorno

397

Cdigos de retorno
RC2095 (2095, X'82F') Cola no abierta para establecer todo el contexto. Se ha emitido una llamada MQPUT con la opcin PMSETA especificada en el parmetro PMO, pero la cola no se ha abierto con la opcin OOSETA. Accin correctora: especifique OOSETA cuando se abra la cola. RC2096 (2096, X'830') Cola no abierta para establecer el contexto de identidad. Se ha emitido una llamada MQPUT con la opcin PMSETI especificada en el parmetro PMO, pero la cola no se ha abierto con la opcin OOSETI. Accin correctora: especifique OOSETI (u otra opcin que la implique) al abrir la cola. RC2097 (2097, X'831') El asa de cola a la que se hace referencia no salva el contexto. En una llamada MQPUT o MQPUT1, se ha especificado PMPASI o PMPASA, pero el asa especificada en el campo PMCT del parmetro PMO no es un asa de cola vlida, o s que lo es pero la cola no se ha abierto con OOSAVA. Accin correctora: especifique OOSAVA cuando se abra la cola a la que se hace referencia. RC2098 (2098, X'832') Contexto no disponible para el asa de cola a la que se hace referencia. En una llamada MQPUT o MQPUT1, se ha especificado PMPASI o PMPASA, pero el asa de cola especificada en el campo PMCT del parmetro PMO no tiene ningn contexto asociado a ella. Esto sucede si an no se ha recuperado correctamente ningn mensaje con el asa de cola a la que se hace referencia o si la ltima llamada MQGET satisfactoria era para examinar. Esta condicin no se produce si el ltimo mensaje recuperado no tena contexto asociado a l. Accin correctora: asegrese de que se ha emitido una llamada correcta de obtener que no sea para examinar con el asa de cola a la que se hace referencia. RC2100 (2100, X'834') El objeto ya existe. Se ha emitido una llamada MQOPEN para crear una cola dinmica, pero ya existe una que tiene el mismo nombre. Accin correctora: si facilita un nombre completo de cola dinmica, asegrese de que cumple los convenios de los nombres de colas dinmicas; de ser as, suministre otro nombre o suprima la cola existente si ya no la necesita. Otra posibilidad es permitir que el gestor de colas genere el nombre. Si el gestor de colas es el que est generando el nombre (parcial o completo), vuelva a emitir la llamada MQOPEN. RC2101 (2101, X'835') Objeto daado.

398

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
El objeto al que ha accedido la llamada est daado y no puede utilizarse. Por ejemplo, esto puede deberse a que la definicin del objeto en el almacenamiento principal no es coherente o a que difiere de la definicin del objeto en disco, o a que la definicin en disco no puede leerse. El objeto no podr utilizarse hasta que el problema se corrija. El objeto se puede suprimir, aunque tal vez no sea posible suprimir el espacio de usuario asociado. Accin correctora: quiz deba detener y rearrancar el gestor de colas, o restaurar los datos del gestor de colas a partir del almacenamiento de copia de seguridad. En el registro de FFST obtendr ms informacin sobre el problema. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. Los recursos del sistema son insuficientes para realizar la llamada correctamente. Accin correctora: ejecute la aplicacin cuando la carga de la mquina sea menor. En el registro de FFST encontrar ms informacin sobre el problema. RC2104 (2104, X'838') Las opciones de informe del descriptor de mensaje no se reconocen. Se ha emitido una llamada MQPUT o MQPUT1, pero el campo MDREP del descriptor de mensaje MQMD contiene una o ms opciones que el gestor de colas local no reconoce. Se aceptan las opciones. Las opciones que pueden provocar que se devuelva este cdigo de razn dependen del destino del mensaje; vea el Apndice E. Opciones de informe en la pgina 481 para obtener ms detalles. Accin correctora: si se espera este cdigo de razn, no es necesaria ninguna accin correctora. Si no se espera este cdigo de razn, haga lo siguiente: 1. Asegrese de que el campo MDREP del descriptor de mensaje se inicializa con un valor cuando se declara, o de que se le ha asignado un valor antes de realizar la llamada MQPUT o MQPUT1. 2. Asegrese de que las opciones de informe especificadas son las que estn documentadas en este manual; consulte el campo MDREP descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 para conocer las opciones de informe vlidas. Elimine las opciones de informe que no estn documentadas en este manual. 3. Si se establecen mltiples opciones de informe a base de combinar opciones de informe individuales, asegrese de que no se aade dos veces una misma opcin de informe. 4. Compruebe tambin que no se especifican opciones de informe en conflicto. Por ejemplo, no aada las dos opciones ROEXC y ROEXCD al campo MDREP; solo puede especificarse una de ellas. RC2110 (2110, X'83E') Formato de mensaje no vlido. En una llamada MQGET con la opcin GMCONV incluida en el parmetro GMO, uno o los dos campos MDCSI o MDENC del mensaje son distintos del
Apndice A. Cdigos de retorno

399

Cdigos de retorno
correspondiente campo del parmetro MSGDSC, pero el mensaje no puede convertirse satisfactoriamente debido a un error asociado al formato del mensaje. Entre los posibles errores se cuentan los siguientes: v No puede encontrarse una rutina de salida escrita por usuario que tenga el nombre especificado por el campo MDFMT del mensaje. v El nombre de formato del mensaje es FMNONE. v El mensaje contiene datos que no son coherentes con la definicin del formato. El mensaje se devuelve sin convertir a la aplicacin que emite la llamada MQGET, los valores de los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los del mensaje devuelto, y la llamada se completa con CCWARN. Si el mensaje consta de varias partes, cada una de ellas descrita por sus propios campos de juego de caracteres y de codificacin (por ejemplo, un mensaje con el nombre de formato FMDLH), puede ser que se conviertan algunas partes y otras no. No obstante, los valores devueltos en los distintos campos de juego de caracteres y de codificacin siempre describen correctamente los datos de mensaje relevantes. Accin correctora: compruebe el nombre de formato que se especific al poner el mensaje. Si este no es uno de los formatos incorporados, compruebe que est disponible una rutina de salida adecuada que tenga el mismo nombre que el formato para que la cargue el gestor de colas. Compruebe que los datos del mensaje corresponden al formato que espera la rutina de salida. RC2111 (2111, X'83F') El identificador de juego de caracteres codificado origen no es vlido. El identificador de juego de caracteres codificado a partir del cual se van a convertir los datos de tipo carcter no es vlido o no est soportado. Esto se puede producir en la llamada MQGET cuando la opcin GMCONV est incluida en el parmetro GMO; el identificador de juego de caracteres codificado que tiene el error es el campo MDCSI del mensaje que se est recuperando. Es este caso, los datos del mensaje se devuelven sin convertir, los valores de los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los del mensaje devuelto y la llamada se completa con CCWARN. Esta razn tambin se puede dar en la llamada MQGET cuando el mensaje consta de una o ms de las estructuras de cabecera MQ relacionadas con los datos (MQCIH, MQDLH, MQIIH, MQRMH), y el campo MDCSI del mensaje especifica un juego de caracteres que no tiene caracteres SBCS para los caracteres que son vlidos como nombres de cola. Las estructuras de cabecera MQ que contienen tales caracteres no son vlidas por lo que el mensaje se devuelve sin convertir. El juego de caracteres Unicode UCS-2 es un ejemplo de dichos juegos de caracteres. Si el mensaje consta de varias partes, cada una de ellas descrita por sus propios campos de juego de caracteres y de codificacin (por ejemplo, un mensaje con el nombre de formato FMDLH), puede ser que se conviertan algunas partes y otras no. No obstante, los valores devueltos en los distintos campos de juego de caracteres y de codificacin siempre describen correctamente los datos de mensaje relevantes.

400

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Este cdigo de razn tambin puede darse en la llamada MQXCNVC; el identificador de juego de caracteres codificado que tiene el error es el parmetro SRCCSI. El parmetro SRCCSI especifica un valor que no es vlido o no est soportado, o bien el puntero del parmetro SRCCSI no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: compruebe el identificador de juego de caracteres que se especific cuando se transfiri el mensaje, o que se especific para el parmetro SRCCSI en la llamada MQXCNVC. Si fuera correcto, compruebe que es tal que para l est soportada la conversin del gestor de colas. Si la conversin del gestor de colas no est soportada para el juego de caracteres especificado, ser la aplicacin la que deba llevar a cabo la conversin. RC2112 (2112, X'840') Codificacin de entero origen no reconocida. En una llamada MQGET, con la opcin GMCONV incluida en el parmetro GMO, el valor MDENC del mensaje que se est recuperando especifica una codificacin de entero que no se reconoce. Los datos del mensaje se devuelven sin convertir, los valores de los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los del mensaje devuelto y la llamada se completa con CCWARN. Si el mensaje consta de varias partes, cada una de ellas descrita por sus propios campos de juego de caracteres y de codificacin (por ejemplo, un mensaje con el nombre de formato FMDLH), puede ser que se conviertan algunas partes y otras no. No obstante, los valores devueltos en los distintos campos de juego de caracteres y de codificacin siempre describen correctamente los datos de mensaje relevantes. Este cdigo de razn tambin puede darse en la llamada MQXCNVC, cuando el parmetro OPTS contiene un valor DCCS* no soportado, o cuando se especifica DCCSUN para una pgina de cdigos UCS2. Accin correctora: compruebe la codificacin de entero que se especific cuando se transfiri el mensaje. Si fuera correcta, compruebe que es tal que para ella est soportada la conversin del gestor de colas. Si la conversin del gestor de colas no est soportada para la codificacin de entero necesaria, ser la aplicacin la que deba llevar a cabo la conversin. RC2113 (2113, X'841') Codificacin de decimal empaquetado del mensaje no reconocida. En una llamada MQGET con la opcin GMCONV incluida en el parmetro GMO, el valor MDENC del mensaje que se est recuperando especifica una codificacin de decimal que no se reconoce. Los datos del mensaje se devuelven sin convertir, los valores de los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los del mensaje devuelto y la llamada se completa con CCWARN. Si el mensaje consta de varias partes, cada una de ellas descrita por sus propios campos de juego de caracteres y de codificacin (por ejemplo, un mensaje con el nombre de formato FMDLH), puede ser que se conviertan algunas partes y otras no. No obstante, los valores devueltos en los distintos campos de juego de caracteres y de codificacin siempre describen correctamente los datos de mensaje relevantes. Accin correctora: compruebe la codificacin de decimal que se especific cuando se transfiri el mensaje. Si fuera correcta, compruebe que es tal que
Apndice A. Cdigos de retorno

401

Cdigos de retorno
para ella est soportada la conversin del gestor de colas. Si la conversin del gestor de colas no est soportada para la codificacin de decimal necesaria, ser la aplicacin la que deba llevar a cabo la conversin. RC2114 (2114, X'842') Codificacin de coma flotante del mensaje no reconocida. En una llamada MQGET, con la opcin GMCONV incluida en el parmetro GMO, el valor MDENC del mensaje que se est recuperando especifica una codificacin de coma flotante que no se reconoce. Los datos del mensaje se devuelven sin convertir, los valores de los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los del mensaje devuelto y la llamada se completa con CCWARN. Si el mensaje consta de varias partes, cada una de ellas descrita por sus propios campos de juego de caracteres y de codificacin (por ejemplo, un mensaje con el nombre de formato FMDLH), puede ser que se conviertan algunas partes y otras no. No obstante, los valores devueltos en los distintos campos de juego de caracteres y de codificacin siempre describen correctamente los datos de mensaje relevantes. Accin correctora: compruebe la codificacin de coma flotante que se especific cuando se transfiri el mensaje. Si fuera correcta, compruebe que es tal que para ella est soportada la conversin del gestor de colas. Si la conversin del gestor de colas no est soportada para la codificacin de coma flotante necesaria, ser la aplicacin la que deba llevar a cabo la conversin. RC2115 (2115, X'843') El identificador de juego de caracteres codificado destino no es vlido. El identificador de juego de caracteres codificado al que se van a convertir los datos de tipo carcter no es vlido o no est soportado. Esto se puede producir en la llamada MQGET, cuando se incluye la opcin GMCONV en el parmetro GMO; el identificador de juego de caracteres codificado que tiene el error es el campo MDCSI del parmetro MSGDSC. En este caso, los datos del mensaje se devuelven sin convertir, los valores de los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los del mensaje devuelto y la llamada se completa con CCWARN. Este cdigo de razn tambin se pueda dar en la llamada MQGET cuando el mensaje contiene una o ms de las estructuras de cabecera MQ relacionadas con los datos (MQCIH, MQDLH, MQIIH, MQRMH), y el campo MDCSI del parmetro MSGDSC especifica un juego de caracteres que no tiene caracteres SBCS para los caracteres que son vlidos como nombres de cola. El juego de caracteres Unicode UCS-2 es un ejemplo de dichos juegos de caracteres. Este cdigo de razn tambin puede darse en la llamada MQXCNVC; el identificador de juego de caracteres codificado que tiene el error es el parmetro TGTCSI. El parmetro TGTCSI especifica un valor que no es vlido o no est soportado, o bien el puntero del parmetro TGTCSI no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: compruebe el identificador de juego de caracteres especificado para el campo MDCSI del parmetro MSGDSC de la llamada MQGET o el especificado para el parmetro SRCCSI de la llamada MQXCNVC. Si fuera correcto, compruebe que es tal que para l est

402

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
soportada la conversin del gestor de colas. Si la conversin del gestor de colas no est soportada para el juego de caracteres especificado, ser la aplicacin la que deba llevar a cabo la conversin. RC2116 (2116, X'844') Codificacin de entero destino no reconocida. En una llamada MQGET con la opcin GMCONV incluida en el parmetro GMO, el valor MDENC del parmetro MSGDSC especifica una codificacin de entero que no se reconoce. Los datos del mensaje no se convierten, los valores de los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los del mensaje que se est recuperando y la llamada se completa con CCWARN. Este cdigo de razn tambin puede darse en la llamada MQXCNVC, cuando el parmetro OPTS contiene un valor DCCT* no soportado o cuando se especifica DCCTUN para una pgina de cdigos UCS2. Accin correctora: compruebe la codificacin de entero que se especific. Si fuera correcta, compruebe que es tal que para ella est soportada la conversin del gestor de colas. Si la conversin del gestor de colas no est soportada para la codificacin de entero necesaria, ser la aplicacin la que deba llevar a cabo la conversin. RC2117 (2117, X'845') Codificacin de decimal empaquetado especificada por receptor no reconocida. En una llamada MQGET con la opcin GMCONV incluida en el parmetro GMO, el valor MDENC del parmetro MSGDSC especifica una codificacin de decimal que no se reconoce. Los datos del mensaje se devuelven sin convertir, los valores de los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los del mensaje devuelto y la llamada se completa con CCWARN. Accin correctora: compruebe la codificacin de decimal que se especific. Si fuera correcta, compruebe que es tal que para ella est soportada la conversin del gestor de colas. Si la conversin del gestor de colas no est soportada para la codificacin de decimal necesaria, ser la aplicacin la que deba llevar a cabo la conversin. RC2118 (2118, X'846') Codificacin de coma flotante especificada por receptor no reconocida. En una llamada MQGET con la opcin GMCONV incluida en el parmetro GMO, el valor MDENC del parmetro MSGDSC especifica una codificacin de coma flotante que no se reconoce. Los datos del mensaje se devuelven sin convertir, los valores de los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los del mensaje devuelto y la llamada se completa con CCWARN. Accin correctora: compruebe la codificacin de coma flotante que se especific. Si fuera correcta, compruebe que es tal que para ella est soportada la conversin del gestor de colas. Si la conversin del gestor de colas no est soportada para la codificacin de coma flotante necesaria, ser la aplicacin la que deba llevar a cabo la conversin. RC2119 (2119, X'847') Los datos del mensaje no se han convertido.

Apndice A. Cdigos de retorno

403

Cdigos de retorno
En una llamada MQGET con la opcin GMCONV incluida en el parmetro GMO, se produjo un error durante la conversin de los datos del mensaje. Los datos del mensaje se devuelven sin convertir, los valores de los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los del mensaje devuelto y la llamada se completa con CCWARN. Si el mensaje consta de varias partes, cada una de ellas descrita por sus propios campos de juego de caracteres y de codificacin (por ejemplo, un mensaje con el nombre de formato FMDLH), puede ser que se conviertan algunas partes y otras no. No obstante, los valores devueltos en los distintos campos de juego de caracteres y de codificacin siempre describen correctamente los datos de mensaje relevantes. Este error puede indicar tambin que un parmetro del servicio de conversin de datos no est soportado. Accin correctora: compruebe que los datos del mensaje estn descritos correctamente por los parmetros MDFMT, MDCSI y MDENC que se especificaron cuando se transfiri el mensaje. Compruebe tambin que estos valores y los campos MDCSI y MDENC especificados en el parmetro MSGDSC de la llamada MQGET estn soportados por la conversin del gestor de colas. Si la conversin solicitada no est soportada, esta debera llevarla a cabo la aplicacin. RC2120 (2120, X'848') Los datos convertidos son demasiado grandes para el almacenamiento intermedio. En una llamada MQGET con la opcin GMCONV incluida en el parmetro GMO, los datos del mensaje se expandieron al convertirse y superaron el tamao del almacenamiento intermedio proporcionado por la aplicacin. No obstante, el mensaje ya se haba eliminado de la cola porque antes de que se produjera la conversin, los datos pudieron acomodarse en el almacenamiento intermedio de la aplicacin sin truncarse. El mensaje se devuelve sin convertir, con el parmetro CMPCOD de la llamada MQGET establecido en CCWARN. Si el mensaje consta de varias partes, cada una de ellas descrita por sus propios campos de juego de caracteres y de codificacin (por ejemplo, un mensaje con el nombre de formato FMDLH), puede ser que se conviertan algunas partes y otras no. No obstante, los valores devueltos en los distintos campos de juego de caracteres y de codificacin siempre describen correctamente los datos de mensaje relevantes. Este cdigo de razn tambin se puede producir en la llamada MQXCNVC, cuando el parmetro TGTBUF es demasiado pequeo para dar cabida a la serie convertida y esta ha sido truncada para que quepa en el almacenamiento intermedio. La longitud de datos vlidos devueltos viene dada por el parmetro DATLEN; en el caso de una serie DBCS o mixta SBCS/DBCS, esta longitud puede ser menor que la longitud de TGTBUF. Accin correctora: para la llamada MQGET, compruebe que la rutina de salida convierte los datos del mensaje correctamente y que establece la longitud de salida DATLEN en el valor adecuado. Si es as, la aplicacin que emite la llamada MQGET debe facilitar un almacenamiento intermedio mayor para el parmetro BUFFER. Para la llamada MQXCNVC, si la serie debe convertirse sin truncar, facilite un almacenamiento intermedio de salida mayor.

404

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
RC2121 (2121, X'849') No se han registrado gestores de recursos participantes. Se ha emitido una llamada MQBEGIN para iniciar una unidad de trabajo coordinada por el gestor de colas, pero no se ha registrado ningn gestor de recursos participante en el gestor de colas. Por lo tanto, el gestor de colas solo podr coordinar los cambios que se realicen en los recursos MQ en la unidad de trabajo. | Este cdigo de razn se da en los entornos siguientes: AIX, HP-UX, OS/2, OS/400, Sun Solaris, Windows NT. Accin correctora: si la aplicacin no necesita recursos que no sean MQ para participar en la unidad de trabajo, puede hacerse caso omiso de este cdigo de razn o se puede eliminar la llamada MQBEGIN. En caso contrario, consulte con el programador de soporte del sistema la razn de que no se hayan registrado los gestores de recursos necesarios en el gestor de colas; es posible que el error est en el archivo de configuracin del gestor de colas. RC2122 (2122, X'84A') El gestor de recursos participante no est disponible. Se ha emitido una llamada MQBEGIN para arrancar una unidad de trabajo coordinada por el gestor de colas, pero uno o ms de los gestores de recursos participantes registrados en el gestor de colas no estn disponibles. Por lo tanto, los cambios realizados en estos recursos no puede coordinarlos el gestor de colas en la unidad de trabajo. | Este cdigo de razn se da en los entornos siguientes: AIX, HP-UX, OS/2, OS/400, Sun Solaris, Windows NT. Accin correctora: si la aplicacin no necesita recursos que no sean MQ para participar en la unidad de trabajo, puede hacerse caso omiso de este cdigo de razn. En caso contrario, consulte con el programador de soporte del sistema la razn de que no estn disponibles los gestores de recursos necesarios. Puede ser que el gestor de recursos se haya detenido temporalmente o que haya un error en el archivo de configuracin del gestor de colas. RC2123 (2123, X'84B') Hay una mezcla en el resultado de una operacin de compromiso o de restitucin. El gestor de colas hace de coordinador de una unidad de trabajo en la que estn implicados otros gestores de recursos, pero se ha producido una de estas situaciones: v Se ha emitido una llamada MQCMIT o MQDISC para comprometer la unidad de trabajo, pero uno o varios de los gestores de recursos participantes restituyeron la unidad de trabajo en lugar de comprometerla. Por ello, el resultado de la unidad de trabajo es mixto. v Se ha emitido una llamada MQBACK para restituir una unidad de trabajo, pero uno o varios de los gestores de recursos participantes ya la haban comprometido. Este cdigo de razn se da en los entornos siguientes: AIX, HP-UX, OS/2, Sun Solaris, Windows NT. Accin correctora: vea si en las anotaciones de error del gestor de colas hay mensajes que estn relacionados con el resultado mixto; esos mensajes
Apndice A. Cdigos de retorno

405

Cdigos de retorno
identifican los gestores de recursos afectados. Utilice procedimientos locales en los gestores de recursos afectados para resincronizar los recursos. Nota: Este cdigo de razn no impide que la aplicacin pueda iniciar ms unidades de trabajo. RC2124 (2124, X'84C') El resultado de una operacin de compromiso est pendiente. El gestor de colas hace de coordinador de una unidad de trabajo en la que estn implicados otros gestores de recursos y se ha emitido una llamada MQCMIT o MQDISC para comprometer la unidad de trabajo, pero a uno o a varios de los gestores de recursos participantes no se les ha confirmado que la unidad de trabajo se ha comprometido satisfactoriamente. La conclusin de la operacin de compromiso se producir ms adelante, pero existe la posibilidad de que el resultado sea mixto. Este cdigo de razn se da en los entornos siguientes: AIX, HP-UX, OS/2, Sun Solaris, Windows NT. Accin correctora: utilice los mecanismos normales de notificacin de errores para determinar si el resultado ha sido mixto. Si lo ha sido, realice la accin adecuada para resincronizar los recursos. Nota: Este cdigo de razn no impide que la aplicacin pueda iniciar ms unidades de trabajo. RC2125 (2125, X'84D') Puente iniciado. Se ha iniciado el puente IMS. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2126 (2126, X'84E') Puente detenido. Se ha detenido el puente IMS. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2128 (2128, X'850') Unidad de trabajo ya iniciada. Se ha emitido una llamada MQBEGIN para iniciar una unidad de trabajo coordinada por el gestor de colas, pero ya existe una unidad de trabajo para el asa de conexin especificada. Puede tratarse de una unidad de trabajo global iniciada por una llamada MQBEGIN anterior o de una unidad de trabajo local del gestor de colas o de los gestores de recursos que cooperan. Para un asa de conexin solo puede existir concurrentemente una unidad de trabajo. | Este cdigo de razn se da en los entornos siguientes: AIX, HP-UX, OS/2, OS/400, Sun Solaris, Windows NT. Accin correctora: revise la lgica de la aplicacin para averiguar por qu ya existe una unidad de trabajo. Traslade la llamada MQBEGIN al lugar que le corresponda en la aplicacin.

406

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
RC2134 (2134, X'856') La estructura de las opciones de empezar no es vlida. En una llamada MQBEGIN, la estructura de las opciones de empezar MQBO no es vlida por una de estas razones: v El nemotcnico de atencin BOSID no es BOSIDV. v El campo BOVER no es BOVER1. v El puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). v El gestor de colas no puede copiar la estructura cambiada en el almacenamiento de la aplicacin, aunque la llamada sea satisfactoria. Esto puede producirse, por ejemplo, si el puntero seala a un almacenamiento de solo lectura. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: corrija la definicin de la estructura MQBO. Asegrese de que se han establecido correctamente los campos de entrada obligatorios. RC2135 (2135, X'857') La estructura de cabecera de distribucin no es vlida. En una llamada MQPUT o MQPUT1, no es vlida la estructura de cabecera de distribucin MQDH de los datos del mensaje. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: corrija la definicin de la estructura MQDH. Asegrese de que los campos estn correctamente establecidos. RC2136 (2136, X'858') Se han devuelto mltiples cdigos de razn. Se ha emitido una llamada MQOPEN, MQPUT o MQPUT1 para abrir una lista de distribucin o para poner un mensaje en una lista de distribucin, pero el resultado de la llamada no ha sido el mismo para todos los destinos de la lista. Se ha producido una de las siguientes condiciones: v La llamada ha sido satisfactoria para algunos destinos pero no para otros. En este caso, el cdigo de terminacin es CCWARN. v La llamada ha fallado para todos los destinos, pero por distintos motivos. En este caso, el cdigo de terminacin es CCFAIL. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: examine los registros de respuesta MQRR para identificar los destinos en los que ha fallado la llamada y la razn de la anomala. Asegrese de que la aplicacin proporciona suficientes registros de respuesta en la llamada para permitir determinar los errores. En el caso de la llamada MQPUT1, los registros de respuesta se han de especificar con la estructura MQOD, no con la estructura MQPMO. RC2137 (2137, X'859') El objeto no se ha abierto satisfactoriamente.
Apndice A. Cdigos de retorno

407

Cdigos de retorno
No se ha podido abrir satisfactoriamente una cola u otro objeto de MQ, y el motivo ha sido uno de los siguientes: v Se ha emitido una llamada MQCONN o MQCONNX, pero al gestor de colas le ha sido imposible abrir un objeto utilizado internamente por el gestor de colas. Por lo tanto, el proceso no puede continuar. En las anotaciones de error debe figurar el nombre del objeto que no se ha podido abrir. v Se ha emitido una llamada MQPUT para poner un mensaje en una lista de distribucin, pero no se pudo enviar el mensaje al destino indicado por este cdigo de razn, pues la llamada MQOPEN no pudo abrir satisfactoriamente el destino. Esta razn solo aparece en el campo RRREA del registro de respuesta MQRR. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: v Si el error se produjo en la llamada MQCONN o MQCONNX, debe estar seguro de que existen los objetos necesarios; para ello, ejecute el siguiente mandato y luego reintente la aplicacin:
STRMQM -c qmgr

siendo qmgr el nombre del gestor de colas. v Si el error se produjo en la llamada MQPUT, examine los registros de respuesta MQRR especificados en la llamada MQOPEN para averiguar por qu razn no se abri la cola. Asegrese de que la aplicacin proporciona suficientes registros de respuesta en la llamada para permitir determinar los errores. RC2139 (2139, X'85B') La estructura de las opciones de conectar no es vlida. En una llamada MQCONNX, la estructura de las opciones de conectar MQCNO no es vlida por una de estas razones: v El nemotcnico de atencin CNSID no es CNSIDV. v El campo CNVER no es CNVER1. v El puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). v El gestor de colas no puede copiar la estructura cambiada en el almacenamiento de la aplicacin, aunque la llamada sea satisfactoria. Esto puede producirse, por ejemplo, si el puntero del parmetro seala a un almacenamiento de solo lectura. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: corrija la definicin de la estructura MQCNO. Asegrese de que se han establecido correctamente los campos de entrada obligatorios. RC2141 (2141, X'85D') La estructura de cabecera de mensajes no entregados no es vlida.

408

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
En una llamada MQPUT o MQPUT1, no es vlida la estructura de cabecera de mensajes no entregados MQDLH de los datos del mensaje. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: corrija la definicin de la estructura MQDLH. Asegrese de que los campos estn correctamente establecidos. RC2142 (2142, X'85E') La estructura de cabecera de MQ no es vlida. Se ha empleado la llamada MQPUT o MQPUT1 para transferir un mensaje que contiene una estructura de cabecera de MQ, pero la estructura no es vlida. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: corrija la definicin de la estructura de cabecera de MQ. Asegrese de que los campos estn correctamente establecidos. RC2143 (2143, X'85F') Parmetro longitud origen no vlido. En la llamada MQXCNVC, el parmetro SRCLEN especifica una longitud menor que cero o que no es coherente con el juego de caracteres de la serie o con el contenido (por ejemplo, el juego de caracteres es de doble byte, pero la longitud no es un mltiplo de dos). Esta razn se produce tambin si el puntero del parmetro SRCLEN no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Este cdigo de razn tambin se puede producir en la llamada MQGET cuando se especifica la opcin GMCONV. En este caso, indica que una llamada MQXCNVC emitida por la rutina de salida de conversin de datos devolvi la razn RC2143. Accin correctora: especifique una longitud que sea mayor o igual que cero. Si el cdigo de razn se produce en la llamada MQGET, vea si es correcta la lgica de la rutina de salida de conversin de datos. RC2144 (2144, X'860') Parmetro longitud destino no vlido. En la llamada MQXCNVC, el parmetro TGTLEN no es vlido debido a una de estas razones: v TGTLEN es menor que cero. v El puntero del parmetro TGTLEN no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). v Se ha especificado la opcin DCCFIL, pero TGTLEN tiene un valor tal que el almacenamiento intermedio destino no se puede llenar completamente con caracteres vlidos. Esto se puede producir cuando TGTCSI es un juego de caracteres totalmente DBCS (como UCS-2), pero TGTLEN especifica una longitud que es un nmero impar de bytes.

Apndice A. Cdigos de retorno

409

Cdigos de retorno
Este cdigo de razn tambin se puede producir en la llamada MQGET cuando se especifica la opcin GMCONV. En este caso, indica que una llamada MQXCNVC emitida por la rutina de salida de conversin de datos devolvi la razn RC2144. Accin correctora: especifique una longitud que sea mayor o igual que cero. Si se especifica la opcin DCCFIL, y TGTCSI es un juego de caracteres totalmente DBCS, asegrese de que TGTLEN indica una longitud que sea mltiplo de dos. Si el cdigo de razn se produce en la llamada MQGET, vea si es correcta la lgica de la rutina de salida de conversin de datos. RC2145 (2145, X'861') Parmetro almacenamiento intermedio origen no vlido. En la llamada MQXCNVC, el puntero de parmetro SRCBUF no es vlido o seala a un almacenamiento al que no puede acceder toda la longitud especificada por SRCLEN. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Este cdigo de razn tambin se puede producir en la llamada MQGET cuando se especifica la opcin GMCONV. En este caso, indica que una llamada MQXCNVC emitida por la rutina de salida de conversin de datos devolvi la razn RC2145. Accin correctora: especifique un almacenamiento intermedio vlido. Si el cdigo de razn se produce en la llamada MQGET, vea si es correcta la lgica de la rutina de salida de conversin de datos. RC2146 (2146, X'862') Parmetro almacenamiento intermedio destino no vlido. En la llamada MQXCNVC, el puntero de parmetro TGTBUF no es vlido o seala a un almacenamiento de solo lectura o bien a un almacenamiento al que no puede acceder toda la longitud especificada por TGTLEN. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Este cdigo de razn tambin se puede producir en la llamada MQGET cuando se especifica la opcin GMCONV. En este caso, indica que una llamada MQXCNVC emitida por la rutina de salida de conversin de datos devolvi la razn RC2146. Accin correctora: especifique un almacenamiento intermedio vlido. Si el cdigo de razn se produce en la llamada MQGET, vea si es correcta la lgica de la rutina de salida de conversin de datos. RC2148 (2148, X'864') La estructura de cabecera de informacin de IMS no es vlida. En una llamada MQPUT o MQPUT1, no es vlida la estructura MQIIH de cabecera de informacin de IMS de los datos del mensaje. Accin correctora: corrija la definicin de la estructura MQIIH. Asegrese de que los campos estn correctamente establecidos. RC2149 (2149, X'865') Las estructuras PCF no son vlidas.

410

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Se ha emitido una llamada MQPUT o MQPUT1 para transferir un mensaje que contena datos PCF, pero la longitud del mensaje no es igual a la suma de las longitudes de las estructuras PCF que hay en el mensaje. Esto puede producirse en los mensajes que tengan los siguientes nombres de formato: FMADMN FMEVNT FMPCF Accin correctora: asegrese de que la longitud del mensaje especificado en la llamada MQPUT o MQPUT1 sea igual a la suma de las longitudes de las estructuras que hay en los datos del mensaje. RC2150 (2150, X'866') La serie DBCS no es vlida. En la llamada MQXCNVC, el parmetro SRCCSI especifica el identificador de un juego de caracteres de doble byte (DBCS), pero el parmetro SRCBUF no contiene una serie DBCS vlida. Esto puede ocurrir porque la serie contenga caracteres que no son caracteres DBCS vlidos, o porque sea una serie mixta SBCS/DBCS y los caracteres de desplazamiento a teclado ideolgico/desplazamiento a teclado estndar no estn emparejados correctamente. Este cdigo de razn tambin se puede producir en la llamada MQGET cuando se especifica la opcin GMCONV. En este caso, indica que una llamada MQXCNVC emitida por la rutina de salida de conversin de datos devolvi la razn RC2150. Accin correctora: especifique una serie vlida. Si el cdigo de razn se produce en la llamada MQGET, vea si son vlidos los datos del mensaje y si es correcta la lgica de la rutina de salida de conversin de datos. RC2152 (2152, X'868') El nombre de objeto no es vlido. Se ha emitido una llamada MQOPEN o MQPUT1 para abrir una lista de distribucin (es decir, el campo ODREC de MQOD es mayor que cero), pero el campo ODON no es ni un blanco ni la serie nula. Accin correctora: si lo que se pretende es abrir una lista de distribucin, establezca el campo ODON en blancos o en la serie nula. En caso contrario, establezca el campo ODREC en cero. RC2153 (2153, X'869') El nombre de gestor de colas de objeto no es vlido. Se ha emitido una llamada MQOPEN o MQPUT1 para abrir una lista de distribucin (es decir, el campo ODREC de MQOD es mayor que cero), pero el campo ODMN no es ni blancos ni la serie nula. Accin correctora: si lo que se pretende es abrir una lista de distribucin, establezca el campo ODMN en blancos o en la serie nula. En caso contrario, establezca el campo ODREC en cero. RC2154 (2154, X'86A') El nmero de registros presentes no es vlido. Se ha emitido una llamada MQOPEN o MQPUT1, pero la llamada ha fallado por uno de estos motivos: v ODREC de MQOD es menor que cero.
Apndice A. Cdigos de retorno

411

Cdigos de retorno
v ODOT de MQOD no es OTQ, y ODREC no es cero. ODREC debe ser cero si el objeto que se va a abrir no es una cola. Accin correctora: si lo que se pretende es abrir una lista de distribucin, establezca el campo ODOT en OTQ y ODREC en el nmero de destinos de la lista. En caso contrario, establezca el campo ODREC en cero. RC2155 (2155, X'86B') Los registros de objeto no son vlidos. Se ha emitido una llamada MQOPEN o MQPUT1 para abrir una lista de distribucin (es decir, el campo ODREC de MQOD es mayor que cero), pero los registros de objeto MQOR no se han especificado correctamente. Se ha producido una de las siguientes condiciones: v ODORO es cero y ODORP es el puntero nulo o cero. v ODORO no es cero y ODORP no es ni el puntero nulo ni cero. v ODORP no es un puntero vlido. v ODORP o ODORO seala a un almacenamiento no accesible. Accin correctora: asegrese de que uno de los valores ODORO y ODORP sea cero y el otro distinto de cero. Asegrese de que el campo utilizado seala a un almacenamiento accesible. RC2156 (2156, X'86C') Los registros de respuesta no son vlidos. Se ha emitido una llamada MQOPEN o MQPUT1 para abrir una lista de distribucin (es decir, el campo ODREC de MQOD es mayor que cero), pero los registros de respuesta MQRR no se han especificado correctamente. Se ha producido una de las siguientes condiciones: v ODRRO no es cero y ODRRP no es ni el puntero nulo ni cero. v ODRRP no es un puntero vlido. v ODRRP o ODRRO seala a un almacenamiento no accesible. Accin correctora: asegrese de que sea cero al menos uno de los valores ODRRO y ODRRP. Asegrese de que el campo utilizado seala a un almacenamiento accesible. RC2158 (2158, X'86E') No son vlidos los distintivos de los registros para poner mensaje. Se ha emitido una llamada MQPUT o MQPUT1 para poner un mensaje, pero el campo PMPRF de la estructura MQPMO no es vlido debido a una de estas razones: v El campo contiene distintivos que no son vlidos. v El mensaje se va a poner en una lista de distribucin, y se han proporcionado registros para poner el mensaje (es decir, PMREC es mayor que cero, y uno de los valores PMPRO o PMPRP es distinto de cero), pero PMPRF tiene el valor PFNONE. v Se ha especificado PFACC sin PMSETI o PMSETA. Accin correctora: asegrese de que PMPRF se establece con los distintivos PF* adecuados para indicar qu campos estn presentes en los registros

412

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
para poner el mensaje. Si se especifica PFACC, se debe especificar asimismo PMSETI o PMSETA. Alternativamente, establezca PMPRO y PMPRP en cero. RC2159 (2159, X'86F') No son vlidos los registros para poner mensaje. Se ha emitido una llamada MQPUT o MQPUT1 para poner un mensaje en una lista de distribucin, pero no se han especificado correctamente los registros para poner mensaje MQPMR. Se ha producido una de las siguientes condiciones: v PMPRO no es cero y PMPRP no es ni el puntero nulo ni cero. v PMPRP no es un puntero vlido. v PMPRP o PMPRO seala a un almacenamiento no accesible. Accin correctora: asegrese de que sea cero al menos uno de los valores PMPRO y PMPRP. Asegrese de que el campo utilizado seala a un almacenamiento accesible. RC2161 (2161, X'871') El gestor de colas est en reposo. La aplicacin ha intentado conectarse al gestor de colas, pero este est en estado de reposo. v En OS/400, la aplicacin ha emitido la llamada MQCONN, o bien ha emitido la llamada MQOPEN cuando no se haba establecido ninguna conexin. Este cdigo de razn tambin se produce si el gestor de colas est en estado de reposo y la aplicacin emite una de estas llamadas: v MQOPEN, con OOFIQ incluido en el parmetro OPTS v MQGET, con GMFIQ incluido en el campo GMOPT del parmetro GMO v MQPUT o MQPUT1, con PMFIQ incluido en el campo PMOPT del parmetro PMO Accin correctora: la aplicacin debe ponerlo todo en orden y detenerse. Si no se utilizan las opciones OOFIQ, PMFIQ ni GMFIQ, la aplicacin tal vez siga trabajando para completar y comprometer la unidad de trabajo actual; pero no debe empezar otra unidad de trabajo. RC2162 (2162, X'872') Se est cerrando el gestor de colas. Se ha emitido una llamada cuando el gestor de colas se estaba cerrando. Si la llamada es MQGET con la opcin GMWT, la espera se ha cancelado. No pueden emitirse ms llamadas de gestin de colas de mensajes. Accin correctora: la aplicacin debe ponerlo todo en orden y detenerse. Las aplicaciones deben asegurar que se restituyen todas las actualizaciones que no se hayan comprometido; las unidades de trabajo coordinadas por el gestor de colas se restituyen automticamente. RC2173 (2173, X'87D') La estructura de las opciones de poner mensaje no es vlida. En una llamada MQPUT o MQPUT1, la estructura MQPMO no es vlida. No es correcto el nemotcnico de atencin PMSID o no se ha reconocido el valor de PMVER.

Apndice A. Cdigos de retorno

413

Cdigos de retorno
Esta razn tambin se produce si: v El puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). v El gestor de colas no puede copiar la estructura cambiada en el almacenamiento de la aplicacin, aunque la llamada sea satisfactoria. Esto puede producirse, por ejemplo, si el puntero seala a un almacenamiento de solo lectura. Accin correctora: corrija la definicin de la estructura MQPMO. Asegrese de que se han establecido correctamente los campos de entrada obligatorios. RC2184 (2184, X'888') El nombre de la cola remota no es vlido. En una llamada MQOPEN o MQPUT1, se ha producido una de estas situaciones: v Se ha especificado una definicin local (o un alias) de una cola remota, pero el atributo RemoteQName de la definicin de cola remota est completamente en blanco. Recuerde que este error se produce incluso si el atributo XmitQName de la definicin no est en blanco. v El campo ODMN del descriptor de objeto no estaba en blanco ni era el nombre del gestor de colas local, pero el campo ODON est en blanco. Accin correctora: modifique la definicin local de la cola remota y facilite un nombre de cola remota vlido, o facilite un valor de ODON que no sea en blanco en el descriptor de objeto, segn corresponda. RC2185 (2185, X'889') Especificacin de permanencia incoherente. Se ha emitido la llamada MQPUT para poner un mensaje que, en el campo MDPER de MQMD, tiene un valor distinto del que tena la llamada anterior de poner mensaje utilizando esa asa de cola. Esto no est permitido cuando se especifica la opcin PMLOGO y ya hay un grupo de mensajes actual o un mensaje lgico. Los mensajes de un grupo y los segmentos de un mensaje lgico deben ser o todos permanentes o todos no permanentes. Accin correctora: modifique la aplicacin para asegurar que todos los mensajes de un grupo o de un mensaje lgico se pongan con el mismo valor del campo MDPER de MQMD. RC2186 (2186, X'88A') No es vlida la estructura de las opciones de obtener mensaje. En una llamada MQGET, no es vlida la estructura MQGMO. O no es vlido el nemotcnico de atencin GMSID o no se ha reconocido el valor de GMVER. Esta razn tambin se produce si: v El puntero del parmetro no es vlido. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible).

414

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
v El gestor de colas no puede copiar la estructura cambiada en el almacenamiento de la aplicacin, aunque la llamada sea satisfactoria. Esto puede producirse, por ejemplo, si el puntero seala a un almacenamiento de solo lectura. Accin correctora: corrija la definicin de la estructura MQGMO. Asegrese de que se han establecido correctamente los campos de entrada obligatorios. RC2187 (2187, X'88B') La funcin solicitada no est soportada por el puente CICS. No est permitido usar la MQI desde las transacciones de usuario que se ejecutan en un entorno de puente MQSeries-CICS, cuando la rutina de salida del puente tambin utiliza la MQI. Falla la peticin de la MQI. Si esto se produce en la rutina de salida del puente, la transaccin terminar de forma anmala (abend). Si esto se produce en la transaccin de usuario, la transaccin podra terminar de forma anmala (abend). Accin correctora: no se puede ejecutar la transaccin utilizando el puente MQSeries-CICS. En el correspondiente manual CICS hallar informacin acerca de las restricciones del entorno del puente MQSeries-CICS. RC2188 (2188, X'88C') Llamada rechazada por la rutina de salida de carga de trabajo de clster. Se ha emitido una llamada MQOPEN, MQPUT o MQPUT1 para abrir una cola de clster o poner un mensaje en ella, pero la rutina de salida de carga de trabajo del clster ha rechazado la llamada. | Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/390, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: compruebe la rutina de salida de carga de trabajo del clster para ver si est bien escrita. Averige por qu rechaz la llamada y corrija el problema. RC2189 (2189, X'88D') Ha fallado la resolucin del nombre de clster. Se ha emitido una llamada MQOPEN, MQPUT o MQPUT1 para abrir una cola de clster o poner un mensaje en ella, pero no se pudo resolver correctamente la definicin de cola, porque se requera una respuesta del gestor del depsito y no haba ninguna. | Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/390, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: vea si est funcionando el gestor del depsito y si son correctas las definiciones de cola y de canal. RC2190 (2190, X'88E') La serie convertida es demasiado grande para el campo. En una llamada MQGET con la opcin GMCONV incluida en el parmetro GMO, haba una serie en un campo de longitud fija del mensaje; pero la serie se expandi durante la conversin de datos y su tamao super el del campo. Cuando sucede esto, el gestor de colas intenta descartar los blancos

Apndice A. Cdigos de retorno

415

Cdigos de retorno
finales y los caracteres que siguen al primer carcter nulo, con el objeto de lograr que quepa la serie; pero en este caso no haba suficientes caracteres que descartar. Este cdigo de razn tambin se puede producir en los mensajes cuyo nombre de formato es FMIMVS. Cuando ello sucede, indica que la serie variable de IMS se expande de tal forma que su longitud supera la capacidad del campo de longitud binaria de 2 bytes contenido dentro de la estructura de la serie variable de IMS. (El gestor de colas no descarta nunca los blancos finales de una serie variable de IMS). El mensaje se devuelve sin convertir, con el parmetro CMPCOD de la llamada MQGET establecido en CCWARN. Si el mensaje consta de varias partes, cada una de ellas descrita por sus propios campos de juego de caracteres y de codificacin (por ejemplo, un mensaje con el nombre de formato FMDLH), puede ser que se conviertan algunas partes y otras no. No obstante, los valores devueltos en los distintos campos de juego de caracteres y de codificacin siempre describen correctamente los datos de mensaje relevantes. Este cdigo de razn no aparece si es posible hacer que la serie quepa a base de descartar los caracteres blancos finales. Accin correctora: compruebe si los campos del mensaje contienen los valores correctos y si son correctos los identificadores de juego de caracteres especificados por el emisor y el receptor del mensaje. Si lo son, es preciso modificar el diseo de los datos del mensaje, aumentando las longitudes de los campos para que as haya espacio suficiente para permitir que las series se expandan al convertirse. RC2191 (2191, X'88F') La estructura de mensaje desencadenante de tipo carcter no es vlida. En una llamada MQPUT o MQPUT1, no es vlida la estructura de mensaje desencadenante de tipo carcter MQTMC de los datos del mensaje. Accin correctora: corrija la definicin de la estructura MQTMC. Asegrese de que los campos estn correctamente establecidos. RC2194 (2194, X'892') El nombre de objeto no es vlido para el tipo de objeto. Se ha emitido una llamada MQOPEN para abrir la definicin de gestor de colas, pero el campo ODON del parmetro OBJDSC no est en blanco. Accin correctora: asegrese de que el campo ODON se establece en blancos. RC2195 (2195, X'893') Se ha producido un error inesperado. La llamada ha sido rechazada porque se ha producido un error inesperado. Accin correctora: compruebe la lista de parmetros de la aplicacin para asegurarse de que, por ejemplo, se ha pasado el nmero correcto de parmetros y de que son vlidos los punteros de datos y las claves de almacenamiento. Si el problema no se puede resolver, pngase en contacto con el programador del sistema. En el registro de FFST encontrar ms informacin sobre el problema. RC2196 (2196, X'894') Cola de transmisin desconocida.

416

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
En una llamada MQOPEN o MQPUT1, se debe enviar un mensaje a un gestor de colas remoto. ODON o ODMN del descriptor de objeto especifica el nombre de una definicin local de una cola remota (en el ltimo caso se utiliza la creacin de alias de gestor de colas), pero el atributo XmitQName de la definicin no est en blanco o no es el nombre de una cola definida localmente. Accin correctora: compruebe los valores especificados para ODON y ODMN. Si son correctos, compruebe las definiciones de cola. Para obtener ms informacin sobre las colas de transmisin, consulte la publicacin MQSeries Application Programming Guide. RC2197 (2197, X'895') Cola de transmisin por omisin desconocida. Se ha emitido una llamada MQOPEN o MQPUT1 que especificaba una cola remota como destino. Si se ha especificado una definicin local de la cola remota o se est resolviendo un alias de gestor de colas, el atributo XmitQName de la definicin local est en blanco. Debido a que no hay ninguna cola definida que tenga el mismo nombre que el gestor de colas destino, el gestor de colas ha intentado utilizar la cola de transmisin por omisin. No obstante, el nombre definido por el atributo DefXmitQName del gestor de colas no es el nombre de una cola definida localmente. Accin correctora: corrija las definiciones de cola o el atributo del gestor de colas. Puede obtener ms informacin en el manual MQSeries Application Programming Guide. RC2198 (2198, X'896') La cola de transmisin por omisin no es local. Se ha emitido una llamada MQOPEN o MQPUT1 que especificaba una cola remota como destino. Se ha especificado una definicin local de la cola remota o se est resolviendo un alias de gestor de colas, pero en los dos casos el atributo XmitQName de la definicin local est en blanco. Debido a que no hay ninguna cola de transmisin definida que tenga el mismo nombre que el gestor de colas destino, el gestor de colas local ha intentado utilizar la cola de transmisin por omisin. Sin embargo, aunque hay una cola definida por el atributo DefXmitQName del gestor de colas, esa cola no es local. Accin correctora: realice una de estas acciones: v Especifique una cola de transmisin local como valor del atributo XmitQName en la definicin local de la cola remota. v Defina una cola de transmisin local cuyo nombre sea el del gestor de colas remoto. v Especifique una cola de transmisin local como valor del atributo DefXmitQName del gestor de colas. Puede obtener ms informacin en el manual MQSeries Application Programming Guide. RC2199 (2199, X'897') Error de utilizacin de la cola de transmisin por omisin. Se ha emitido una llamada MQOPEN o MQPUT1 que especificaba una cola remota como destino. Se ha especificado una definicin local de la

Apndice A. Cdigos de retorno

417

Cdigos de retorno
cola remota o se est resolviendo un alias de gestor de colas, pero en los dos casos el atributo XmitQName de la definicin local est en blanco. Debido a que no hay definida ninguna cola de transmisin cuyo nombre sea el del gestor de colas destino, el gestor de colas local ha intentado utilizar la cola de transmisin por omisin. Sin embargo, la cola definida por el atributo DefXmitQName del gestor de colas no tiene un atributo Usage que sea igual a USTRAN. Accin correctora: realice una de estas acciones: v Especifique una cola de transmisin local como valor del atributo XmitQName en la definicin local de la cola remota. v Defina una cola de transmisin local que tenga el nombre del gestor de colas remoto. v Especifique otra cola de transmisin local como valor del atributo DefXmitQName del gestor de colas. v Cambie el atributo Usage de la cola DefXmitQName por USTRAN. Puede obtener ms informacin en el manual MQSeries Application Programming Guide. RC2206 (2206, X'89E') Error de identificador de mensaje. En una llamada MQGET, el campo MDMID no es cero. No est soportada la recuperacin selectiva por identificador de mensaje. Accin correctora: asegrese de que el valor del campo MDMID es cero. RC2207 (2207, X'89F') Error de identificador de correlacin. En una llamada MQGET, el campo MDCID no es cero. No est soportada la recuperacin selectiva por identificador de correlacin. Accin correctora: asegrese de que el valor del campo MDCID es cero. RC2208 (2208, X'8A0') Error de sistema de archivos. Se ha recibido un retorno inesperado desde el sistema de archivos, al intentar una operacin en una cola. Este cdigo de razn solo se produce en VSE/ESA. Accin correctora: vea si en la definicin del sistema de archivos se encuentra la cola a la que se estaba accediendo. Si se trata de un archivo VSAM, compruebe si el intervalo de control es suficiente para la longitud mxima de mensaje permitida en la cola. RC2209 (2209, X'8A1') No hay ningn mensaje bloqueado. Se ha emitido una llamada MQGET con la opcin GMUNLK, pero en ese momento no haba ningn mensaje bloqueado. Accin correctora: compruebe que una llamada MQGET anterior con la opcin GMLK bloque un mensaje para la misma asa y que no ha habido ninguna llamada intermedia que haya desbloqueado el mensaje. RC2218 (2218, X'8AA') La longitud del mensaje es mayor que la longitud mxima del canal.

418

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Se ha puesto un mensaje en una cola remota, pero es ms largo que la longitud mxima permitida por el canal. Este cdigo de razn se devuelve en el campo MDFB del descriptor de un mensaje de informe. Accin correctora: compruebe las definiciones de canal. Aumente la longitud mxima de mensaje que pueda aceptar el canal o desglose el mensaje en varios mensajes ms cortos. RC2219 (2219, X'8AB') La llamada MQI ha reentrado antes de que se completara la llamada anterior. La aplicacin ha emitido una llamada MQI mientras ya se estaba procesando otra llamada MQI para esa conexin. Solo se puede procesar una llamada por conexin de aplicacin al mismo tiempo. Las llamadas concurrentes solo pueden aparecer en ciertas situaciones especializadas, como en una rutina de salida invocada como parte del proceso de una llamada MQI. Por ejemplo, se puede invocar la rutina de salida de conversin de datos como parte del proceso de la llamada MQGET. Accin correctora: asegrese de que no sea posible emitir una llamada MQI mientras haya otra que est activa. No emita llamadas MQI desde dentro de una rutina de salida de conversin de datos. RC2220 (2220, X'8AC') La estructura de cabecera de mensaje de referencia no es vlida. En una llamada MQPUT o MQPUT1, no es vlida la estructura de la cabecera de mensaje de referencia MQRMH de los datos del mensaje. Accin correctora: corrija la definicin de la estructura MQRMH. Asegrese de que los campos estn correctamente establecidos. RC2222 (2222, X'8AE') Se ha creado el gestor de colas. Se detecta esta condicin cuando se activa un gestor de colas. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2223 (2223, X'8AE') Gestor de colas no disponible. Esta condicin se detecta cuando se solicita a un gestor de colas que se detenga o que adquiera el estado de reposo. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2224 (2224, X'8B0') Se ha alcanzado o se ha excedido el lmite de profundidad mxima de cola. Debido a una llamada MQPUT o MQPUT1, la profundidad de cola ha aumentado hasta igualar o superar el lmite especificado en el atributo QDepthHighLimit. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso.

Apndice A. Cdigos de retorno

419

Cdigos de retorno
RC2225 (2225, X'8B1') Se ha alcanzado o se ha excedido el lmite de profundidad mnimo de cola. Debido a una llamada MQGET, la profundidad de cola ha disminuido hasta igualar o situarse por debajo del lmite especificado en el atributo QDepthLowLimit. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2226 (2226, X'8B2') El intervalo de servicio de cola es alto. No se han detectado llamadas de obtener ni de poner satisfactorias durante un intervalo que supera el lmite especificado en el atributo QServiceInterval. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2227 (2227, X'8B3') El intervalo de servicio de cola es correcto. Se ha detectado una obtencin satisfactoria durante un intervalo que es inferior o igual al lmite especificado en el atributo QServiceInterval. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2232 (2232, X'8B8') La unidad de trabajo no se ha iniciado. Se ha emitido una llamada MQGET, MQPUT o MQPUT1 para obtener o poner un mensaje dentro de una unidad de trabajo, pero no se ha iniciado ninguna transaccin TM/MP. Si no se ha especificado GMNSYP en MQGET, o si no se ha especificado PMNSYP en MQPUT o MQPUT1 (el valor por omisin), la llamada requiere una unidad de trabajo. Accin correctora: asegrese de que est disponible una transaccin TM/MP o emita la llamada MQGET con la opcin GMNSYP, o bien la llamada MQPUT o MQPUT1 con la opcin PMNSYP, para que as se inicie automticamente una transaccin. RC2233 (2233, X'8B9') Definicin automtica de canal satisfactoria. Se detecta esta condicin cuando es satisfactoria la definicin automtica de un canal. El MCA (agente de canal de mensajes) es el que define el canal. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2234 (2234, X'8BA') Ha fallado la definicin automtica de canal. Esta condicin se detecta cuando falla la definicin automtica de un canal; puede suceder por haberse producido un error durante el proceso de definicin o porque la rutina de salida de definicin automtica de canal haya inhibido la definicin. En el mensaje de suceso se devuelve informacin adicional que indica el motivo de la anomala.

420

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Accin correctora: examine la informacin adicional devuelta en el mensaje de suceso para averiguar la razn de la anomala. RC2235 (2235, X'8BB') La estructura de cabecera de PCF no es vlida. En una llamada MQPUT o MQPUT1, no es vlida la estructura de cabecera de PCF (que se llama MQCFH) de los datos del mensaje. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: corrija la definicin de la estructura MQCFH. Asegrese de que los campos estn correctamente establecidos. RC2236 (2236, X'8BC') No es vlida la estructura de parmetro lista de tipo entero PCF. En una llamada MQPUT o MQPUT1, no es vlida la estructura de parmetro lista de tipo entero PCF (que se llama MQCFIL) de los datos del mensaje. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: corrija la definicin de la estructura MQCFIL. Asegrese de que los campos estn correctamente establecidos. RC2237 (2237, X'8BD') No es vlida la estructura de parmetro de tipo entero PCF. En una llamada MQPUT o MQPUT1, no es vlida la estructura de parmetro de tipo entero PCF (que se llama MQCFIN) de los datos del mensaje. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: corrija la definicin de la estructura MQCFIN. Asegrese de que los campos estn correctamente establecidos. RC2238 (2238, X'8BE') No es vlida la estructura de parmetro lista de tipo serie PCF. En una llamada MQPUT o MQPUT1, no es vlida la estructura de parmetro lista de tipo serie de PCF (que se llama MQCFSL) de los datos del mensaje. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: corrija la definicin de la estructura MQCFSL. Asegrese de que los campos estn correctamente establecidos. RC2239 (2239, X'8BF') No es vlida la estructura de parmetro de tipo serie de PCF. En una llamada MQPUT o MQPUT1, no es vlida la estructura de parmetro de tipo serie de PCF (que se llama MQCFST) de los datos del mensaje. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT.
Apndice A. Cdigos de retorno

421

Cdigos de retorno
Accin correctora: corrija la definicin de la estructura MQCFST. Asegrese de que los campos estn correctamente establecidos. RC2241 (2241, X'8C1') El grupo de mensajes no est completo. Se ha intentado una operacin en una cola utilizando un asa de cola que tena un grupo de mensajes incompleto. Las situaciones que pueden dar lugar a este cdigo de razn son las siguientes: v En la llamada MQPUT, cuando la aplicacin intenta poner un mensaje que no est en el grupo y especifica PMLOGO. La llamada falla en este caso. v En la llamada MQPUT, cuando la aplicacin intenta poner un mensaje que no es el siguiente del grupo, no especifica PMLOGO, pero la llamada MQPUT anterior del asa de cola s especificaba PMLOGO. En este caso, la llamada es satisfactoria y devuelve el cdigo de terminacin CCWARN. v En la llamada MQGET, cuando la aplicacin intenta obtener un mensaje que no es el siguiente del grupo, no especifica GMLOGO, pero la llamada MQGET anterior del asa de cola s especificaba GMLOGO. En este caso, la llamada es satisfactoria y devuelve el cdigo de terminacin CCWARN. v En la llamada MQCLOSE, cuando la aplicacin intenta cerrar la cola cuyo grupo de mensajes es incompleto. La llamada es satisfactoria y devuelve el cdigo de terminacin CCWARN. Si, adems del grupo de mensajes incompleto, hay un mensaje lgico incompleto, se devuelve el cdigo de razn RC2242 en lugar del cdigo de razn RC2241. Accin correctora: si este cdigo de razn es el que se esperaba, no es necesaria ninguna accin correctora. En caso contrario, asegrese de que la llamada MQPUT del ltimo mensaje del grupo especifica MFLMIG. RC2242 (2242, X'8C2') El mensaje lgico no est completo. Se ha intentado una operacin en una cola utilizando un asa de cola que tena un mensaje lgico incompleto. Las situaciones que pueden dar lugar a este cdigo de razn son las siguientes: v En la llamada MQPUT, cuando la aplicacin intenta poner un mensaje que no es un segmento y especifica PMLOGO. La llamada falla en este caso. v En la llamada MQPUT, cuando la aplicacin intenta poner un mensaje que no es el siguiente segmento, no especifica PMLOGO, pero la llamada MQPUT anterior del asa de cola s especificaba PMLOGO. En este caso, la llamada es satisfactoria y devuelve el cdigo de terminacin CCWARN. v En la llamada MQGET, cuando la aplicacin intenta obtener un mensaje que no es el siguiente segmento, no especifica GMLOGO, pero la llamada MQGET anterior del asa de cola s especificaba GMLOGO. En este caso, la llamada es satisfactoria y devuelve el cdigo de terminacin CCWARN. v En la llamada MQCLOSE, cuando la aplicacin intenta cerrar la cola cuyo mensaje lgico est incompleto. La llamada es satisfactoria y devuelve el cdigo de terminacin CCWARN.

422

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Accin correctora: si este cdigo de razn es el que se esperaba, no es necesaria ninguna accin correctora. En caso contrario, asegrese de que la llamada MQPUT del ltimo segmento especifica MFLSEG. RC2243 (2243, X'8C3') Los segmentos del mensaje tienen distintos CCSID. Se ha emitido una llamada MQGET que especificaba la opcin GMCMPM, pero el mensaje que se ha de recuperar consta de dos o ms segmentos que tienen distintos valores en el campo MDCSI de MQMD. Esto puede suceder cuando los segmentos toman distintas vas a travs de la red y algunas de ellas tienen habilitada la conversin de emisor de MCA. La llamada es satisfactoria y devuelve el cdigo de terminacin CCWARN, pero solo se devuelven los primeros segmentos cuyos identificadores de juego de caracteres sean idnticos. Accin correctora: elimine la opcin GMCMPM de la llamada MQGET y recupere los dems segmentos del mensaje uno por uno. RC2244 (2244, X'8C4') Los segmentos del mensaje tienen distintas codificaciones. Se ha emitido una llamada MQGET que especificaba la opcin GMCMPM, pero el mensaje que se ha de recuperar consta de dos o ms segmentos que tienen distintos valores en el campo MDENC de MQMD. Esto puede suceder cuando los segmentos toman distintas vas a travs de la red y algunas de ellas tienen habilitada la conversin de emisor de MCA. La llamada es satisfactoria y devuelve el cdigo de terminacin CCWARN, pero solo se devuelven los primeros segmentos cuyas codificaciones sean idnticas. Accin correctora: elimine la opcin GMCMPM de la llamada MQGET y recupere los dems segmentos del mensaje uno por uno. RC2245 (2245, X'8C5') Especificacin incoherente de unidad de trabajo. Se ha producido una de las siguientes condiciones: v Se ha emitido una llamada MQPUT para poner un mensaje en un grupo o en un segmento de un mensaje lgico, pero el valor que se ha especificado o tomado por omisin en la opcin PMSYP no es coherente con el grupo actual ni con la informacin de segmento retenida por el gestor de colas del asa de cola. La llamada falla si la llamada actual especifica PMLOGO. Si la llamada actual no especifica PMLOGO, pero s lo hizo la llamada MQPUT anterior del asa de cola, la llamada es satisfactoria y devuelve el cdigo de terminacin CCWARN. v Se ha emitido una llamada MQGET para eliminar de la cola un mensaje del grupo o un segmento de un mensaje lgico, pero el valor especificado o tomado por omisin en la opcin GMSYP no es coherente con el grupo actual ni con la informacin de segmento retenido por el gestor de colas del asa de cola. La llamada falla si la llamada actual especifica GMLOGO. Si la llamada actual no especifica GMLOGO, pero s lo hizo la llamada MQGET anterior del asa de cola, la llamada es satisfactoria y devuelve el cdigo de terminacin CCWARN. Accin correctora: modifique la aplicacin para asegurarse de que se utiliza la misma especificacin de unidad de trabajo para todos los mensajes del grupo o para todos los segmentos del mensaje lgico.
Apndice A. Cdigos de retorno

423

Cdigos de retorno
RC2246 (2246, X'8C6') El mensaje bajo cursor no es vlido para recuperacin. Se ha emitido una llamada MQGET que especificaba la opcin GMCMPM con GMMUC o GMBRWC, pero el mensaje que est bajo el cursor tiene una estructura MQMD con un campo MDOFF que es mayor que cero. Debido a que se ha especificado GMCMPM, el mensaje no es vlido para recuperacin. Accin correctora: vuelva a situar el cursor de examinar para que se coloque en un mensaje cuyo campo MDOFF de MQMD sea cero. Otra solucin sera eliminar la opcin GMCMPM. RC2247 (2247, X'8C7') Las opciones de emparejar no son vlidas. Se ha emitido una llamada MQGET, pero no es vlido el valor del campo GMMO del parmetro GMO. Se ha especificado ya sea una opcin no definida o bien una opcin definida que no es vlida en las circunstancias actuales. En este ltimo caso, se cumplen todas estas condiciones: v Se ha especificado GMLOGO. v Hay un grupo de mensajes o un mensaje lgico actual para el asa de cola. v No se ha especificado ninguna de estas opciones: GMBRWC GMMUC v Se ha especificado una o varias de las opciones de tipo MO*. v Los valores de los campos del parmetro MSGDSC que se corresponden con las opciones de tipo MO* especificadas son distintos de los valores que tienen esos mismos campos en la estructura MQMD del siguiente mensaje que se ha de devolver. Accin correctora: asegrese de que solo se especifican opciones vlidas para el campo. RC2248 (2248, X'8C8') La extensin de descriptor de mensaje no es vlida. La estructura MQMDE que hay al principio de los datos del mensaje de aplicacin no es vlida por una de estas razones: v El nemotcnico de atencin MESID no es MESIDV. v El campo MEVER es menor que MEVER2. v El campo MELEN es menor que MELEN2 o (solo para MEVER igual a MEVER2) mayor que MELEN2. Accin correctora: corrija la definicin de la extensin del descriptor de mensaje. Asegrese de que se han establecido correctamente los campos de entrada obligatorios. RC2249 (2249, X'8C9') Los distintivos de mensaje no son vlidos. Se ha emitido una llamada MQPUT o MQPUT1, pero el campo MDMFL del descriptor de mensaje MQMD contiene uno o varios distintivos de mensaje no reconocidos por el gestor de colas local. Los distintivos de mensaje que pueden provocar que se devuelva este cdigo de razn dependen del destino del mensaje; en el Apndice E. Opciones de informe en la pgina 481 encontrar ms detalles.

424

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Este cdigo de razn tambin aparece en el campo MDFB del MQMD de un mensaje de informe o en el campo DLREA de la estructura MQDLH de un mensaje de la cola de mensajes no entregados; en los dos casos, indica que el gestor de colas destino no da soporte a uno o a varios de los distintivos de mensaje especificados por el emisor del mensaje. Accin correctora: realice lo siguiente: 1. Asegrese de que el campo MDMFL del descriptor de mensaje se inicializa con un valor al declarar el descriptor de mensaje o que se le asigna un valor antes de la llamada MQPUT o MQPUT1. Especifique MFNONE si no se necesita ningn distintivo de mensaje. 2. Asegrese de que los distintivos de mensaje especificados estn documentados en este manual; en el campo MDMFL descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 hallar los distintivos vlidos para los mensajes. Elimine los distintivos de mensaje que no estn documentados en este manual. 3. Si se van a establecer mltiples distintivos de mensaje a base de combinar los distintivos de mensaje individuales, asegrese de que no se aade dos veces un mismo distintivo de mensaje. RC2250 (2250, X'8CA') El nmero de secuencia de mensaje no es vlido. Se ha emitido una llamada MQGET, MQPUT o MQPUT1, pero el valor del campo MDSEQ de la estructura MQMD o MQMDE es menor que uno o mayor que 999.999.999. Este error tambin se puede producir en la llamada MQPUT si, a consecuencia de la llamada, el campo MDSEQ se hiciera mayor que 999.999.999. Accin correctora: especifique un valor que est comprendido entre 1 y 999.999.999. No intente crear un grupo de mensajes que contenga ms de 999.999.999 mensajes. RC2251 (2251, X'8CB') El desplazamiento de segmento del mensaje no es vlido. Se ha emitido una llamada MQPUT o MQPUT1, pero el valor del campo MDOFF de la estructura MQMD o MQMDE es menor que cero o mayor que 999.999.999. Este error tambin se puede producir en la llamada MQPUT si, a consecuencia de la llamada, el campo MDOFF se hiciera mayor que 999.999.999. Accin correctora: especifique un valor que est comprendido entre 0 y 999.999.999. No intente crear un segmento de mensaje cuyo desplazamiento sea mayor que 999.999.999. RC2252 (2252, X'8CC') La longitud original no es vlida. Se ha emitido una llamada MQPUT o MQPUT1 para poner un mensaje de informe que notifica sobre un segmento, pero el campo MDOLN de la estructura MQMD o MQMDE es: v Menor que uno (para un segmento que no sea el ltimo) o bien v Menor que cero (para un segmento que sea el ltimo)

Apndice A. Cdigos de retorno

425

Cdigos de retorno
Accin correctora: especifique un valor mayor que cero. Solo es vlido especificar cero para el ltimo segmento. RC2253 (2253, X'8CD') La longitud de los datos del segmento de mensaje es cero. Se ha emitido una llamada MQPUT o MQPUT1 para transferir el primer segmento o un segmento intermedio de un mensaje lgico, pero la longitud de los datos de mensaje de aplicacin que hay en el segmento (excluidas las cabeceras MQ que pueda haber) es cero. La longitud debe ser al menos uno para el primer segmento o para un segmento intermedio. Accin correctora: compruebe la lgica de la aplicacin para asegurar que los segmentos se transfieren con una longitud igual o mayor que uno. El ltimo segmento de un mensaje lgico es el nico que puede tener la longitud igual a cero. RC2255 (2255, X'8CF') La unidad de trabajo no est disponible para que la utilice el gestor de colas. Se ha emitido una llamada MQGET, MQPUT o MQPUT1 para obtener o transferir un mensaje fuera de la unidad de trabajo, pero las opciones especificadas en la llamada requeran que el gestor de colas procesase la llamada dentro de una unidad de trabajo. Debido a que ya existe una unidad de trabajo definida por el usuario, el gestor de colas no ha podido crear una unidad de trabajo temporal mientras durase la llamada. Las circunstancias que dan lugar a esta razn son las siguientes: v En una llamada MQGET, cuando se especifica la opcin GMCMPM en MQGMO y el mensaje lgico que se ha de recuperar es permanente y consta de dos o ms segmentos. v En una llamada MQPUT o MQPUT1, cuando se especifica el distintivo MFSEGA en MQMD y el mensaje requiere segmentacin. Accin correctora: emita la llamada MQGET, MQPUT o MQPUT1 dentro de la unidad de trabajo definida por el usuario. Alternativamente, para la llamada MQPUT o MQPUT1, reduzca el tamao del mensaje de tal forma que el gestor de colas no tenga que segmentarlo. RC2256 (2256, X'8D0') Se ha suministrado una versin equivocada de MQGMO. Se ha emitido una llamada MQGET que especificaba opciones que requeran una estructura MQGMO cuyo nmero de versin no fuese menor que GMVER2, pero la estructura MQGMO suministrada no satisfaca esta condicin. Accin correctora: modifique la aplicacin para que pase una estructura MQGMO de la versin 2. Compruebe la lgica de la aplicacin para asegurar que el campo GMVER de la estructura MQGMO se ha establecido en GMVER2. Otra solucin sera eliminar la opcin que requiere la estructura MQGMO de la versin 2. RC2257 (2257, X'8D1') Se ha suministrado una versin equivocada de MQMD. Se ha emitido una llamada MQGET, MQPUT o MQPUT1 que especificaba opciones que requeran una estructura MQMD cuyo nmero de versin no fuese menor que MDVER2, pero la estructura MQMD suministrada no satisfaca esta condicin.

426

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Accin correctora: modifique la aplicacin para que pase una estructura MQMD de la versin 2. Compruebe la lgica de la aplicacin para asegurar que el campo MDVER de la estructura MQMD se ha establecido en MDVER2. Otra solucin sera eliminar la opcin que requiere la estructura MQMD de la versin 2. RC2258 (2258, X'8D2') El identificador de grupo no es vlido. Se ha emitido una llamada MQPUT o MQPUT1 para poner un mensaje de lista de distribucin que es adems un mensaje de un grupo, un segmento de mensaje o cuya segmentacin est permitida, pero se ha especificado una combinacin no vlida de opciones y valores. Se cumplen todas estas condiciones: v No se ha especificado PMLOGO en el campo PMOPT de MQPMO. v La estructura MQPMO ha proporcionado un nmero demasiado pequeo de registros MQPMR o bien el campo PRGID no est presente en los registros MQPMR. v Se ha especificado uno o ms de estos distintivos en el campo MDMFL de MQMD o MQMDE: MFSEGA MF*MIG MF*SEG v El campo MDGID de MQMD o MQMDE no es GINONE. Esta combinacin de opciones y valores hara que se utilizase un mismo identificador de grupo para todos los destinos de la lista de distribucin; el gestor de colas no permite que esto ocurra. Accin correctora: especifique GINONE para el campo MDGID de MQMD o MQMDE. Otra solucin consiste en que, si la llamada es MQPUT, especifique PMLOGO en el campo PMOPT de MQPMO. RC2259 (2259, X'8D3') La especificacin de examinar es incoherente. Se ha emitido una llamada MQGET que especificaba la opcin GMBRWN, pero la especificacin de la opcin GMLOGO en la llamada es distinta de la especificacin de esa misma opcin en la llamada anterior del asa de cola. Las dos llamadas deben especificar GMLOGO o ninguna de ellas debe especificar GMLOGO. Accin correctora: aada o elimine la opcin GMLOGO segn convenga. Otra solucin es que, para conmutar entre el orden lgico y el orden fsico, especifique la opcin GMBRWF para reiniciar la exploracin desde el principio de la cola y que omita o especifique GMLOGO segn desee. RC2260 (2260, X'8D4') La estructura de cabecera de cola de transmisin no es vlida. En una llamada MQPUT o MQPUT1, no es vlida la estructura de cabecera de cola de transmisin MQXQH de los datos del mensaje. Accin correctora: corrija la definicin de la estructura MQXQH. Asegrese de que los campos estn correctamente establecidos. RC2261 (2261, X'8D5') Error de datos de entorno origen.

Apndice A. Cdigos de retorno

427

Cdigos de retorno
Se da esta razn cuando una rutina de salida de canal que procesa mensajes de referencia detecta un error en los datos de entorno origen de una cabecera de mensaje de referencia (MQRMH). Se ha producido una de las siguientes condiciones: v RMSEL es menor que cero. v RMSEL es mayor que cero, pero no hay datos de entorno origen. | | | v RMSEL es mayor que cero, pero RMSEO es negativo, cero o menor que la longitud de la parte fija de MQRMH. v RMSEL es mayor que cero, pero RMSEO ms RMSEL es mayor que RMLEN. La rutina de salida devuelve esta razn en el campo CXFB de la estructura MQCXP. Si se solicita un informe de excepcin, este se copia en el campo CXFB de la estructura MQMD asociada al informe. Accin correctora: especifique correctamente los datos de entorno origen. RC2262 (2262, X'8D6') Error de datos de nombre origen. Se da esta razn cuando una rutina de salida de canal que procesa mensajes de referencia detecta un error en los datos de nombre origen de una cabecera de mensaje de referencia (MQRMH). Se ha producido una de las siguientes condiciones: v RMSNL es menor que cero. v RMSNL es mayor que cero, pero no hay datos de nombre origen. | | | v RMSNL es mayor que cero, pero RMSNO es negativo, cero o menor que la longitud de la parte fija de MQRMH. v RMSNL es mayor que cero, pero RMSNO ms RMSNL es mayor que RMLEN. La rutina de salida devuelve esta razn en el campo CXFB de la estructura MQCXP. Si se solicita un informe de excepcin, este se copia en el campo CXFB de la estructura MQMD asociada al informe. Accin correctora: especifique correctamente los datos de nombre origen. RC2263 (2263, X'8D7') Error de datos de entorno destino. Se da esta razn cuando una rutina de salida de canal que procesa mensajes de referencia detecta un error en los datos de entorno destino de una cabecera de mensaje de referencia (MQRMH). Se ha producido una de las siguientes condiciones: v RMDEL es menor que cero. v RMDEL es mayor que cero, pero no hay datos de entorno destino. v RMDEL es mayor que cero, pero RMDEO es negativo, cero o menor que la longitud de la parte fija de MQRMH. v RMDEL es mayor que cero, pero RMDEO ms RMDEL es mayor que RMLEN. La rutina de salida devuelve esta razn en el campo CXFB de la estructura MQCXP. Si se solicita un informe de excepcin, este se copia en el campo CXFB de la estructura MQMD asociada al informe. Accin correctora: especifique correctamente datos de entorno destino. RC2264 (2264, X'8D8') Error de datos de nombre destino.

| | |

428

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Se da esta razn cuando una rutina de salida de canal que procesa mensajes de referencia detecta un error en los datos de nombre destino de una cabecera de mensaje de referencia (MQRMH). Se ha producido una de las siguientes condiciones: v RMDNL es menor que cero. v RMDNL es mayor que cero, pero no hay datos de nombre destino. | | | v RMDNL es mayor que cero, pero RMDNO es negativo, cero o menor que la longitud de la parte fija de MQRMH. v RMDNL es mayor que cero, pero RMDNO ms RMDNL es mayor que RMLEN. La rutina de salida devuelve esta razn en el campo CXFB de la estructura MQCXP. Si se solicita un informe de excepcin, este se copia en el campo CXFB de la estructura MQMD asociada al informe. Accin correctora: especifique correctamente los datos de nombre destino. RC2265 (2265, X'8D9') La estructura de mensaje desencadenante no es vlida. En una llamada MQPUT o MQPUT1, no es vlida la estructura de mensaje desencadenante MQTM de los datos del mensaje. Accin correctora: corrija la definicin de la estructura MQTM. Asegrese de que los campos estn correctamente establecidos. RC2266 (2266, X'8DA') Ha fallado la rutina de salida de carga de trabajo de clster. Se ha emitido una llamada MQOPEN, MQPUT o MQPUT1 para abrir una cola de clster o para poner un mensaje en ella, pero la rutina de salida de carga de trabajo de clster definida por el atributo ClusterWorkloadExit del gestor de colas sufri una anomala inesperada o no respondi a tiempo. Las llamadas MQOPEN, MQPUT y MQPUT1 ulteriores de esta asa de cola se procesan como si el atributo ClusterWorkloadExit estuviese en blanco. v En OS/390, se graba en las anotaciones del sistema un mensaje que facilita ms informacin; por ejemplo, el mensaje CSQV455E o CSQV456E. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/390, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: compruebe la rutina de salida de carga de trabajo del clster para ver si est bien escrita. RC2267 (2267, X'8DB') No se ha podido cargar la rutina de salida de carga de trabajo de clster. Se ha emitido una llamada MQCONN para establecer conexin con un gestor de colas, pero la llamada no ha sido satisfactoria porque no se pudo cargar la rutina de salida de carga de trabajo de clster definida por el atributo ClusterWorkloadExit del gestor de colas. | Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT.

| | | |

Apndice A. Cdigos de retorno

429

Cdigos de retorno
Accin correctora: asegrese de que la rutina de salida de carga de trabajo del clster se ha instalado en la ubicacin correcta. RC2268 (2268, X'8DC') Las llamadas de poner estn inhibidas para todas las colas del clster. Se ha emitido para una cola de clster una llamada MQOPEN que tena en vigor las opciones OOOUT y OOBNDO, pero todas las instancias de la cola del clster estn actualmente inhibidas para poner; es decir, todas las instancias de cola tienen el atributo InhibitPut establecido en QAPUTI. Debido a que no hay ninguna instancia de cola que est disponible para recibir mensajes, la llamada MQOPEN no se puede llevar a cabo. Nota: Solo se da este cdigo de razn cuando se cumplen estas dos condiciones: v No hay ninguna instancia local de la cola. (Si hay una instancia local, la llamada MQOPEN es satisfactoria, aunque la instancia local est inhibida para poner). v No hay ninguna rutina de salida de carga de trabajo de clster para la cola o, la hay, pero no eligi una instancia de cola. (Si la rutina de salida de carga de trabajo de clster elige una instancia de cola, la llamada MQOPEN es satisfactoria, aunque esa instancia est inhibida para poner). Si se especifica la opcin OOBNDN en la llamada MQOPEN, la llamada puede realizarse satisfactoriamente aunque todas las colas del clster estn inhibidas para poner. Sin embargo, podra fallar una llamada MQPUT ulterior si todas las colas todava estuviesen inhibidas para poner en el momento de la llamada MQPUT. Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/390, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: si el diseo del sistema permite que se inhiban peticiones de poner durante perodos cortos, reintente la operacin ms adelante. Si el problema sigue producindose, averige por qu estn inhibidas para poner todas las colas del clster. RC2269 (2269, X'8DD') Error de recurso de clster. Se ha emitido una llamada MQOPEN, MQPUT o MQPUT1 dirigida a una cola del clster, pero se produjo un error mientras se intentaba utilizar un recurso necesario para la gestin de clsteres. | Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/390, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: realice lo siguiente: v Compruebe que las colas de tipo SYSTEM.CLUSTER.* no estn inhibidas para poner ni llenas. v Vea si en las colas de sucesos hay alguno que est relacionado con las colas de tipo SYSTEM.CLUSTER.*, ya que esos sucesos podran darle una orientacin sobre la naturaleza de la anomala. v Compruebe que el gestor de colas del depsito est disponible.

430

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
RC2270 (2270, X'8DE') No hay ninguna cola destino que est disponible. Se ha emitido una llamada MQPUT o MQPUT1 para poner un mensaje en una cola de clster, pero en el momento de la llamada ya no haba ninguna instancia de la cola en el clster. Por eso no se pudo enviar el mensaje. Puede darse esta situacin cuando se especifica OOBNDN en la llamada MQOPEN que abre la cola o cuando se utiliza MQPUT1 para poner el mensaje. | Este cdigo de razn se da en los entornos siguientes: AIX, cliente DOS, HP-UX, OS/390, OS/2, OS/400, Sun Solaris, cliente Windows, Windows NT. Accin correctora: compruebe la definicin de cola y el estado de la cola para averiguar por qu se eliminaron del clster todas las instancias de la cola. Corrija el problema y vuelva a ejecutar la aplicacin. RC2273 (2273, X'8E1') Error al procesar la llamada MQCONN. La llamada MQCONN no fue satisfactoria por una de estas razones: v El mdulo de parmetros del sistema no tiene el mismo nivel de release que el gestor de colas. v El gestor de colas detect un error interno. Este cdigo de razn solo se produce en OS/390. Accin correctora: vuelva a editar los enlaces del mdulo de parmetros del sistema (CSQZPARM) para asegurar que su nivel es correcto. Si el problema sigue producindose, pngase en contacto con el centro de soporte de IBM. RC2277 (2277, X'8E5') La definicin de canal no es vlida. Se ha emitido una llamada MQCONNX para establecer conexin con un gestor de colas, pero la estructura de definicin de canal MQCD a la que haca referencia el campo CNCCO o CNCCP de MQCNO contiene datos que no son vlidos. En las anotaciones de error de MQSeries hallar ms informacin sobre la naturaleza del error. Accin correctora: asegrese de que se han establecido correctamente los campos de entrada obligatorios de la estructura MQCD. RC2278 (2278, X'8E6') Los campos de conexin de cliente no son vlidos. Se ha emitido una llamada MQCONNX para establecer conexin con un gestor de colas, pero no se ha especificado correctamente la estructura de definicin de canal MQCD. Se ha producido una de las siguientes condiciones: v CNCCO no es cero y CNCCP no es ni el puntero nulo ni cero. v CNCCP no es un puntero vlido. v CNCCP o CNCCO seala a un almacenamiento no accesible. Accin correctora: asegrese de que sea cero al menos uno de los valores CNCCO y CNCCP. Asegrese de que el campo utilizado seala a un almacenamiento accesible.
Apndice A. Cdigos de retorno

431

Cdigos de retorno
RC2279 (2279, X'8E7') Canal detenido por el usuario. Se detecta esta condicin cuando un operador detiene el canal. El calificador de la razn identifica los motivos de la detencin. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2282 (2282, X'8EA') Canal iniciado. Se ha producido una de las siguientes condiciones: v Un operador ha emitido un mandato Start Channel (iniciar canal). v Se ha establecido satisfactoriamente una instancia de un canal. Se detecta esta condicin cuando se completa la negociacin de datos iniciales y se efecta la resincronizacin donde sea necesario para que la transferencia del mensaje pueda continuar. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2283 (2283, X'8EB') Canal detenido. Se detecta esta condicin cuando se ha detenido el canal. El calificador de la razn identifica los motivos de la detencin. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2284 (2284, X'8EC') Error de conversin de canal. Se detecta esta condicin cuando un canal no puede hacer la conversin de datos y se produce un error de conversin de datos en la llamada MQGET para obtener un mensaje de la cola de transmisin. El cdigo de razn de la conversin identifica la causa de la anomala. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2295 (2295, X'8F7') Canal activado. Se detecta esta condicin cuando un canal ha estado en espera de activarse y para l se ha generado el suceso canal no activado, pero ahora ya se puede activar porque otro canal ha liberado una ranura activa. Este suceso no se genera si un canal puede activarse sin esperar a que se libere una ranura activa. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2296 (2296, X'8F8') El canal no se puede activar. Se detecta esta condicin cuando es preciso que se active un canal, ya sea porque se est iniciando o porque est a punto de realizar otro intento de establecer conexin con su interlocutor. No obstante, no lo logra porque se ha llegado al lmite de nmero de canales activos. El canal espera hasta

432

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
que puede ocupar una ranura activa liberada cuando otro canal deja de estar activo. En ese momento se genera un suceso canal activado. Accin correctora: ninguna. Este cdigo de razn solo se utiliza para identificar el correspondiente mensaje de suceso. RC2299 (2299, X'8FB') El tipo de datos del selector no es vlido. El parmetro Selector tiene un tipo de datos equivocado; debe ser de tipo Long. Accin correctora: declare el parmetro Selector como Long. RC2300 (2300, X'8FC') El tipo de mandato no es vlido. Se ha emitido la llamada mqExecute, pero el valor del elemento de datos MQIASY_TYPE del paquete de administracin no es MQCFT_COMMAND. Accin correctora: asegrese de que el elemento de datos MQIASY_TYPE del paquete de administracin tiene el valor MQCFT_COMMAND. RC2301 (2301, X'8FD') No es vlido especificar varias instancias del elemento de datos del sistema. El parmetro Selector especifica un selector del sistema (uno de los valores de tipo MQIASY_*), pero el valor del parmetro ItemIndex no es MQIND_NONE. En el paquete solo puede haber una instancia de cada selector del sistema. Accin correctora: especifique MQIND_NONE para el parmetro ItemIndex. RC2302 (2302, X'8FE') El elemento de datos del sistema es de solo lectura y no puede modificarse. Se ha emitido una llamada para modificar un elemento de datos del sistema que est en un paquete (un elemento de datos con uno de los selectores de tipo MQIASY_*), pero la llamada ha fallado porque la aplicacin no puede modificar ese elemento de datos. Accin correctora: especifique el selector de un elemento de datos definido por el usuario o elimine la llamada. RC2303 (2303, X'8FF') No se han podido convertir los datos en un paquete. Se ha emitido la llamada mqBufferToBag o mqGetBag, pero los datos del almacenamiento intermedio o del mensaje no se han podido convertir en un paquete. Esto sucede cuando los datos que deben convertirse no son un PCF vlido. Accin correctora: compruebe la lgica de la aplicacin que ha creado el almacenamiento intermedio o el mensaje para asegurarse de que el almacenamiento intermedio o el mensaje contiene un PCF vlido. Si el mensaje contiene un PCF que no es vlido, ese mensaje no se puede recuperar con la llamada mqGetBag: v Si se ha especificado una de las opciones de tipo GMBRW*, el mensaje se queda en la cola y se puede recuperar con la llamada MQGET.
Apndice A. Cdigos de retorno

433

Cdigos de retorno
v En los dems casos, el mensaje ya se ha eliminado de la cola y se ha descartado. Si el mensaje se ha recuperado dentro de una unidad de trabajo, se puede restituir la unidad de trabajo y recuperar el mensaje con la llamada MQGET. RC2304 (2304, X'900') El selector no est comprendido en el rango vlido de la llamada. El parmetro Selector tiene un valor que no est comprendido en el rango vlido de la llamada. Si el paquete se ha creado con la opcin MQCBO_CHECK_SELECTORS: v Para la llamada mqAddInteger, el valor debe estar comprendido entre MQIA_FIRST y MQIA_LAST. v Para la llamada mqAddString, el valor debe estar comprendido entre MQCA_FIRST y MQCA_LAST. Si el paquete no se ha creado con la opcin MQCBO_CHECK_SELECTORS: v El valor debe ser mayor o igual que cero. Accin correctora: especifique un valor vlido. RC2305 (2305, X'901') Hay ms de una aparicin del selector en el paquete. El parmetro ItemIndex tiene el valor MQIND_NONE, pero el paquete contiene ms de un elemento de datos con el valor de selector especificado por el parmetro Selector. MQIND_NONE requiere que el paquete solo contenga una aparicin del selector especificado. Este cdigo de razn tambin se produce en la llamada mqExecute cuando el paquete de administracin contiene dos o ms apariciones de un selector para un parmetro obligatorio que solo permite una aparicin. Accin correctora: compruebe la lgica de la aplicacin que ha creado el paquete. Si es correcta, especifique para el parmetro ItemIndex un valor que sea igual o mayor que cero y aada la lgica de aplicacin necesaria para procesar todas las apariciones del selector en el paquete. Revise la descripcin del mandato de administracin que se est emitiendo y asegrese de que todos los parmetros obligatorios estn bien definidos en el paquete. RC2306 (2306, X'902') No se ha encontrado el ndice. El ndice especificado no est presente: v Si se trata de un paquete, esto significa que el paquete contiene uno o ms elementos de datos que tienen el valor de selector especificado por el parmetro Selector, pero ninguno de ellos tiene el valor de ndice especificado por el parmetro ItemIndex. El elemento de datos identificado por los parmetros Selector e ItemIndex debe existir en el paquete. v Si se trata de una lista de nombres, esto significa que el valor del parmetro ndice es demasiado grande y no est comprendido en el rango de valores vlidos.

434

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Accin correctora: especifique el ndice de un elemento de datos que exista en el paquete o en la lista de nombres. Utilice la llamada mqCountItems para averiguar cuntos elementos de datos del paquete tienen el selector especificado o utilice el mtodo nameCount para averiguar la cantidad de nombres de la lista. RC2307 (2307, X'903') El parmetro de tipo serie no es vlido. El parmetro String no es vlido. El puntero del parmetro no es vlido o seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: corrija el parmetro. RC2308 (2308, X'904') Codificacin no soportada. El campo MDENC del descriptor de mensaje MQMD contiene un valor no soportado: v Para la llamada mqPutBag, el campo no vlido reside en el parmetro MsgDesc de la llamada. v Para la llamada mqGetBag, el campo no vlido reside en: El parmetro MsgDesc de la llamada, si se ha especificado la opcin GMCONV. El descriptor de mensaje que se va a recuperar, si no se ha especificado GMCONV. Accin correctora: el valor debe ser ENNAT. Si no es vlido el valor del campo MDENC del mensaje, este no se puede recuperar utilizando la llamada mqGetBag: v Si se ha especificado una de las opciones de tipo GMBRW*, el mensaje se queda en la cola y se puede recuperar con la llamada MQGET. v En los dems casos, el mensaje ya se ha eliminado de la cola y se ha descartado. Si el mensaje se ha recuperado dentro de una unidad de trabajo, se puede restituir la unidad de trabajo y recuperar el mensaje con la llamada MQGET. RC2309 (2309, X'905') El selector no est en el paquete. El parmetro Selector especifica un selector que no existe en el paquete. Accin correctora: especifique un selector que s exista en el paquete. RC2310 (2310, X'906') El parmetro OutSelector no es vlido. El parmetro OutSelector no es vlido. El puntero del parmetro no es vlido o seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: corrija el parmetro. RC2311 (2311, X'907') La serie se ha truncado (demasiado larga para el almacenamiento intermedio de salida).

Apndice A. Cdigos de retorno

435

Cdigos de retorno
La serie devuelta por la llamada es demasiado larga y no cabe en el almacenamiento intermedio proporcionado. La serie se ha truncado de forma que quepa en el almacenamiento intermedio. Accin correctora: si es necesaria toda la serie, proporcione un almacenamiento intermedio ms grande. En la llamada mqInquireString, la llamada establece el parmetro StringLength de manera que indique el tamao del almacenamiento intermedio necesario para dar cabida a la serie sin que se trunque. RC2312 (2312, X'908') El selector toma un tipo de datos que no es vlido para la llamada. En el paquete hay un elemento de datos que tiene el selector especificado, pero su tipo de datos est en conflicto con el tipo de datos implcito en la llamada que se est utilizando. Por ejemplo, el elemento de datos puede tener datos de tipo entero, pero la llamada que se utiliza puede ser mqSetString, que implica datos de tipo carcter. Este cdigo de razn tambin se produce con las llamadas mqBagToBuffer, mqExecute y mqPutBag cuando se ha utilizado mqAddString o mqSetString para aadir el elemento de datos MQIACF_INQUIRY al paquete. Accin correctora: para las llamadas mqSetInteger y mqSetString, especifique MQIND_ALL para el parmetro ItemIndex con el fin de suprimir del paquete todas las apariciones existentes del selector especificado, antes de crear la nueva aparicin con el tipo de datos necesario. Para las llamadas mqInquireBag, mqInquireInteger y mqInquireString, utilice la llamada mqInquireItemInfo para averiguar el tipo de datos del elemento que tiene el selector especificado, y despus utilice la llamada adecuada para averiguar el valor del elemento de datos. Para las llamadas mqBagToBuffer, mqExecute y mqPutBag, asegrese de aadir el elemento de datos MQIACF_INQUIRY al paquete utilizando las llamadas mqAddInteger o mqSetInteger. RC2313 (2313, X'909') El tipo de datos del elemento no concuerda con el de la aparicin anterior del selector. Se ha emitido la llamada mqAddInteger o mqAddString para aadir al paquete otra aparicin del selector especificado, pero el tipo de datos de esta aparicin es distinto del tipo de datos de la primera. Este cdigo de razn tambin se puede producir en las llamadas mqBufferToBag y mqGetBag, donde indica que el PCF del almacenamiento intermedio o del mensaje contiene un selector que aparece ms de una vez, pero con tipos de datos incoherentes. Accin correctora: para las llamadas mqAddInteger y mqAddString, utilice la llamada que corresponda al tipo de datos de la primera aparicin de ese selector en el paquete. Para las llamadas mqBufferToBag y mqGetBag, compruebe la lgica de la aplicacin que ha creado el almacenamiento intermedio o ha enviado el mensaje para asegurar que los selectores que aparecen mltiples veces lo

436

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
hagan con un solo tipo de datos. Un mensaje que contenga una combinacin de tipos de datos para un selector no se puede recuperar utilizando la llamada mqGetBag: v Si se ha especificado una de las opciones de tipo GMBRW*, el mensaje se queda en la cola y se puede recuperar con la llamada MQGET. v En los dems casos, el mensaje ya se ha eliminado de la cola y se ha descartado. Si el mensaje se ha recuperado dentro de una unidad de trabajo, se puede restituir la unidad de trabajo y recuperar el mensaje con la llamada MQGET. RC2314 (2314, X'90A') El ndice no es vlido. Un parmetro ndice de una llamada o de un mtodo tiene un valor que no es vlido. El valor debe ser mayor o igual que cero. Para las llamadas de paquete, tambin se pueden especificar ciertos valores de tipo MQIND_*: v Para las llamadas mqDeleteItem, mqSetInteger y mqSetString, son vlidos los valores MQIND_ALL y MQIND_NONE. v Para las llamadas mqInquireBag, mqInquireInteger, mqInquireString y mqInquireItemInfo, es vlido el valor MQIND_NONE. Accin correctora: especifique un valor vlido. RC2315 (2315, X'90B') El paquete del sistema es de solo lectura y no puede modificarse. Se ha emitido una llamada para aadir un elemento de datos a un paquete, modificar el valor de un elemento de datos existente en un paquete o recuperar un mensaje de un paquete, pero la llamada ha fallado porque se trata de un paquete creado por el sistema como resultado de una llamada mqExecute anterior. La aplicacin no puede modificar paquetes del sistema. Accin correctora: especifique el asa de un paquete creado por la aplicacin o elimine la llamada. RC2316 (2316, X'90C') El parmetro ItemCount no es vlido. Se ha emitido la llamada mqTruncateBag, pero el parmetro ItemCount especifica un valor que no es vlido. El valor es menor que cero o mayor que el nmero de elementos de datos definidos por usuario que hay en el paquete. Esto tambin sucede en la llamada mqCountItems si el puntero del parmetro no es vlido o seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: especifique un valor vlido. Utilice la llamada mqCountItems para averiguar el nmero de datos definidos por usuario que hay en el paquete. RC2317 (2317, X'90D') Formato no soportado. El campo MDFMT del descriptor de mensaje MQMD contiene un valor no soportado:
Apndice A. Cdigos de retorno

437

Cdigos de retorno
v Para la llamada mqPutBag, el campo no vlido reside en el parmetro MsgDesc de la llamada. v Para la llamada mqGetBag, el campo no vlido reside en el descriptor de mensaje que se va a recuperar. Accin correctora: el valor debe ser uno de los siguientes: FMADMN FMEVNT FMPCF Si el valor del campo MDFMT del mensaje no es ninguno de estos valores, no se puede recuperar el mensaje utilizando la llamada mqGetBag: v Si se ha especificado una de las opciones de tipo GMBRW*, el mensaje se queda en la cola y se puede recuperar con la llamada MQGET. v En los dems casos, el mensaje ya se ha eliminado de la cola y se ha descartado. Si el mensaje se ha recuperado dentro de una unidad de trabajo, se puede restituir la unidad de trabajo y recuperar el mensaje con la llamada MQGET. RC2318 (2318, X'90E') El selector del sistema no est soportado. El parmetro Selector especifica un valor que es un selector del sistema (un valor que es negativo), pero el selector del sistema no es ninguno de los soportados por la llamada. Accin correctora: especifique un valor de selector que est soportado. RC2319 (2319, X'90F') El parmetro ItemValue no es vlido. Se ha emitido la llamada mqInquireBag o mqInquireInteger, pero el parmetro ItemValue no es vlido. El puntero del parmetro no es vlido o seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: corrija el parmetro. RC2320 (2320, X'910') El asa de paquete no es vlida. Se ha emitido una llamada con un parmetro que es un asa de paquete, pero el asa no es vlida. Para parmetros de salida, esta razn solo se produce si el puntero de parmetro no es vlido o seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: corrija el parmetro. RC2321 (2321, X'911') Falta un parmetro. Un mensaje de administracin requiere un parmetro que no est en el paquete de administracin. Este cdigo de razn solo se produce con los paquetes creados con las opciones MQCBO_ADMIN_BAG o MQCBO_REORDER_AS_REQUIRED.

438

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
Accin correctora: revise la descripcin del mandato de administracin que se est emitiendo y asegrese de que todos los parmetros obligatorios estn en el paquete. RC2322 (2322, X'912') El servidor de mandatos no est disponible. El servidor de mandatos que procesa los mandatos de administracin no est disponible. Accin correctora: arranque el servidor de mandatos. RC2323 (2323, X'913') El parmetro StringLength no es vlido. El parmetro StringLength no es vlido. El puntero del parmetro no es vlido o seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: corrija el parmetro. RC2324 (2324, X'914') El cdigo de mandato no es un mandato de consulta reconocido. Se ha utilizado anteriormente la llamada mqAddInquiry para aadir selectores de atributos al paquete, pero no se reconoce el cdigo de mandato que se ha de utilizar para las llamadas mqBagToBuffer, mqExecute o mqPutBag. Como resultado, no se puede generar el mensaje PCF correcto. Accin correctora: elimine las llamadas mqAddInquiry y en su lugar utilice la llamada mqAddInteger con los selectores MQIACF_*_ATTRS o MQIACH_*_ATTRS adecuados. RC2325 (2325, X'915') El paquete de entrada contiene uno o ms paquetes anidados. Un paquete de entrada de la llamada contiene paquetes anidados. Los paquetes anidados solo estn soportados en los paquetes de salida de la llamada. Accin correctora: utilice otro paquete como entrada de la llamada. RC2326 (2326, X'916') El tipo de paquete no es vlido para el uso previsto. El parmetro Bag especifica el asa de un paquete cuyo tipo no es vlido para la llamada. El paquete debe ser un paquete de administracin, es decir, debe haberse creado con la opcin MQCBO_ADMIN_BAG especificada en la llamada mqCreateBag. Accin correctora: especifique la opcin MQCBO_ADMIN_BAG al crear el paquete. RC2327 (2327, X'917') El parmetro ItemType no es vlido. Se ha emitido la llamada mqInquireItemInfo, pero el parmetro ItemType no es vlido. El puntero del parmetro no es vlido o seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible).
Apndice A. Cdigos de retorno

439

Cdigos de retorno
Accin correctora: corrija el parmetro. RC2328 (2328, X'918') El paquete del sistema es de solo lectura y no puede suprimirse. Se ha emitido una llamada mqDeleteBag para suprimir un paquete, pero la llamada ha fallado porque se trata de un paquete creado por el sistema como resultado de una llamada mqExecute anterior. La aplicacin no puede suprimir paquetes del sistema. Accin correctora: especifique el asa de un paquete creado por la aplicacin o elimine la llamada. RC2329 (2329, X'919') El elemento de datos del sistema es de solo lectura y no puede suprimirse. Se ha emitido una llamada para suprimir de un paquete un elemento de datos del sistema (un elemento de datos con uno de los selectores de tipo MQIASY_*), pero la llamada ha fallado debido a que la aplicacin no puede suprimir ese elemento de datos. Accin correctora: especifique el selector de un elemento de datos definido por el usuario o elimine la llamada. RC2330 (2330, X'91A') El parmetro identificador de juego de caracteres codificado no es vlido. El parmetro CodedCharSetId no es vlido. El puntero del parmetro no es vlido o seala a un almacenamiento de solo lectura. (No siempre es posible detectar los punteros de parmetro que no son vlidos; si no se detectan, el resultado es imprevisible). Accin correctora: corrija el parmetro. RC2334 (2334, X'91E') La estructura MQRFH no es vlida. El mensaje contiene una estructura MQRFH que no es vlida. Accin correctora: modifique la aplicacin que gener el mensaje para asegurar que coloque una estructura MQRFH vlida en los datos del mensaje. RC2335 (2335, X'91F') El campo RFNVS no es vlido. No es vlido el contenido del campo RFNVS de la estructura MQRFH. El campo RFNVS debe ajustarse a estas normas: v La serie debe constar de cero o ms pares de nombre/valor separados entre s mediante uno o varios blancos; los blancos no son significativos. v Un nombre o un valor, si contiene blancos que son significativos, debe encerrarse entre comillas dobles. v Si el nombre o el valor contiene l mismo uno o varios caracteres que sean comillas dobles, ese nombre o valor debe estar entre comillas dobles y cada carcter de comillas dobles intercalado debe estar repetido. v Un nombre o un valor puede contener cualquier carcter, salvo el nulo, que hace de delimitador. No se tienen en cuenta el nulo ni los caracteres que le siguen hasta completar la longitud definida de RFNVS.

440

Consulta de programacin de aplicaciones (ILE RPG)

Cdigos de retorno
A continuacin figura un ejemplo vlido de RFNVS:
Famous_Words "El programa visualiz ""Hola a todos"""

Accin correctora: modifique la aplicacin que gener el mensaje para asegurar que coloque en el campo RFNVS datos que se ajusten a las normas antes indicadas. Compruebe si el campo RFLEN se ha establecido en el valor correcto. RC2336 (2336, X'920') Mandato no vlido. El mensaje contiene una estructura MQRFH, pero no es vlido el nombre de mandato que est en el campo RFNVS. Accin correctora: modifique la aplicacin que gener el mensaje para asegurar que coloque un nombre de mandato vlido en el campo RFNVS. RC2337 (2337, X'921') El parmetro no es vlido. El mensaje contiene una estructura MQRFH, pero el nombre de parmetro que hay en el campo RFNVS no es vlido para el mandato especificado. Accin correctora: modifique la aplicacin que gener el mensaje para asegurar que solo coloque en el campo RFNVS parmetros que sean vlidos para el mandato especificado. RC2338 (2338, X'922') Parmetro duplicado. El mensaje contiene una estructura MQRFH, pero hay un parmetro que aparece ms de una vez en el campo RFNVS y el mandato especificado solo permite que aparezca una vez. Accin correctora: modifique la aplicacin que gener el mensaje para asegurar que coloque el parmetro una sola vez en el campo RFNVS. RC2339 (2339, X'923') Falta un parmetro. El mensaje contiene una estructura MQRFH, pero al mandato especificado en el campo RFNVS le falta un parmetro obligatorio. Accin correctora: modifique la aplicacin que gener el mensaje para asegurar que coloque en el campo RFNVS todos los parmetros necesarios para el mandato especificado.

Apndice A. Cdigos de retorno

441

Cdigos de retorno

442

Consulta de programacin de aplicaciones (ILE RPG)

Apndice B. Constantes de MQSeries


Nota Los nombres de las constantes de MQI se listan en este captulo en la forma en que aparecen en el archivo RPG COPY. El archivo de copia se llama CMQR. En este captulo se especifican los valores de todas las constantes con nombre utilizadas en la MQI, exceptuando las utilizadas por C++. Puede encontrar los cdigos de retorno de C++ en el manual MQSeries Using C++. Las constantes se han agrupado segn el parmetro o el campo con el que estn relacionadas. Todos los nombres de las constantes de un grupo empiezan por un prefijo comn que tiene la forma XX y que indica el parmetro o el campo con el que estn relacionados los valores. Las constantes estn ordenadas alfabticamente por este prefijo. Notas: 1. Las constantes que tienen valores numricos se indican en formato decimal y hexadecimal. 2. Los valores hexadecimales se representan mediante la notacin X'hhhh', donde cada h indica un solo dgito hexadecimal. 3. Los valores de tipo carcter aparecen delimitados por apstrofos que no forman parte del valor. 4. Los blancos de los valores de tipo carcter se representan mediante una o varias apariciones del smbolo b. | | 5. Si el valor se muestra como (variable), ello indica que el valor de la constante depende del entorno en el que se est ejecutando la aplicacin.

Lista de constantes
En la siguiente seccin se muestra una lista de todas las constantes con nombre mencionadas en este manual y de sus valores.

LN* (Longitudes de campos de tipo serie de caracteres y de tipo byte)


Vea el parmetro CHRATR descrito en el Captulo 31. MQINQ - Consultar los atributos de objeto en la pgina 251 y en el Captulo 35. MQSET - Establecer atributos de objeto en la pgina 295.
LNABNC LNACCT LNAIDD LNAORD LNATID LNAUTH LNCID LNCLUN LNCNCL LNCRTD 4 32 32 4 4 8 24 48 4 12 X'00000004' X'00000020' X'00000020' X'00000004' X'00000004' X'00000008' X'00000018' X'00000030' X'00000004' X'0000000C'

Copyright IBM Corp. 1994, 2000

443

Constantes de MQSeries
|
LNCRTT LNDATE LNEXN LNFAC LNFACL LNFMT LNFUNC LNGID LNLTOV LNMFMN LNMHD LNMID LNMTOK LNNLD LNNLN LNOBJN LNOIID LNPAN LNPDAT LNPROA LNPROD LNPROE LNPRON LNPROU LNPTIM LNQD LNQMD LNQMID LNQMN LNQN LNRSID LNSTCO LNSTGC LNSVNM LNSVST LNTIID LNTIME LNTRGD LNTRID LNUID 8 12 20 8 4 8 4 24 8 8 4000 24 16 64 48 48 24 28 8 256 64 128 48 128 8 64 64 48 48 48 4 4 8 32 8 16 8 64 4 12 X'00000008' X'0000000C' X'00000014' X'00000008' X'00000004' X'00000008' X'00000004' X'00000018' X'00000008' X'00000008' X'00000FA0' X'00000018' X'00000010' X'00000040' X'00000030' X'00000030' X'00000018' X'0000001C' X'00000008' X'00000100' X'00000040' X'00000080' X'00000030' X'00000080' X'00000008' X'00000040' X'00000040' X'00000030' X'00000030' X'00000030' X'00000004' X'00000004' X'00000008' X'00000020' X'00000008' X'00000010' X'00000008' X'00000040' X'00000004' X'0000000C'

| |

| | |

AC* (Smbolo de contabilidad)


Vea el campo MDACC descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
ACNONE X'00...00' (32 nulos)

| | | | | | | |
ATTUNK ATTCIC ATTOS2 ATTDOS ATTUNX

ATT* (Tipo de smbolo de contabilidad)


Vea el campo MDACC descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
X'00' X'01' X'04' X'05' X'06'

444

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
| | | | | |
ATT400 ATTWIN ATTWNT ATTUSR X'08' X'09' X'0B' X'19'

AT* (Tipo de aplicacin)


Vea el campo MDPAT descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85, y el atributo ApplType descrito en el Captulo 42. Atributos de las definiciones de proceso en la pgina 333.
ATUNK ATNCON ATCICS ATMVS AT390 ATIMS ATOS2 ATDOS ATAIX ATUNIX ATQM AT400 ATDEF ATWIN ATVSE ATWINT ATVMS ATGUAR ATNSK ATVOS ATIMSB ATXCF ATCICB ATNOTE ATBRKR ATJAVA ATUFST ATULST -1 0 1 2 2 3 4 5 6 6 7 8 8 9 10 11 12 13 13 14 19 20 21 22 26 28 65536 999999999 X'FFFFFFFF' X'00000000' X'00000001' X'00000002' X'00000002' X'00000003' X'00000004' X'00000005' X'00000006' X'00000006' X'00000007' X'00000008' X'00000008' X'00000009' X'0000000A' X'0000000B' X'0000000C' X'0000000D' X'0000000D' X'0000000E' X'00000013' X'00000014' X'00000015' X'00000016' X'0000001A' X'0000001C' X'00010000' X'3B9AC9FF'

BND* (Enlace)
Vea el atributo DefBind descrito en el Captulo 37. Atributos de todas las colas en la pgina 305. | | | |
BNDOPN BNDNOT 0 1 X'00000000' X'00000001'

BO* (Opciones de empezar)


Vea el campo BOOPT descrito en el Captulo 3. MQBO - Opciones de empezar en la pgina 15.
BONONE 0 X'00000000'

Apndice B. Constantes de MQSeries

445

Constantes de MQSeries

BO* (Identificador de estructura de opciones de empezar)


Vea el campo BOSID descrito en el Captulo 3. MQBO - Opciones de empezar en la pgina 15.
BOSIDV 'BObb'

BO* (Versin de opciones de empezar)


Vea el campo BOVER descrito en el Captulo 3. MQBO - Opciones de empezar en la pgina 15.
BOVER1 BOVERC 1 1 X'00000001' X'00000001'

CA* (Selector de atributo de tipo carcter)


Vea el parmetro SELS descrito en el Captulo 31. MQINQ - Consultar los atributos de objeto en la pgina 251 y en el Captulo 35. MQSET - Establecer atributos de objeto en la pgina 295.
CAFRST CAAPPI CABASQ CACMDQ CACRTD CACRTT CADLQ CAENVD CAINIQ CALSTD CALSTN CAPROD CAPRON CAQD CAQMD CAQMN CAQN CARQMN CARQN CABRQN CANAMS CAUSRD CASTGC CATRGD CAXQN CADXQN CACADX CAALTD CAALTT CACLN CACLNL CACLQM CAQMID CACLWX CACLWD CARPN CARPNL CACLD 2001 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 X'000007D1' X'000007D1' X'000007D2' X'000007D3' X'000007D4' X'000007D5' X'000007D6' X'000007D7' X'000007D8' X'000007D9' X'000007DA' X'000007DB' X'000007DC' X'000007DD' X'000007DE' X'000007DF' X'000007E0' X'000007E1' X'000007E2' X'000007E3' X'000007E4' X'000007E5' X'000007E6' X'000007E7' X'000007E8' X'000007E9' X'000007EA' X'000007EB' X'000007EC' X'000007ED' X'000007EE' X'000007EF' X'000007F0' X'000007F1' X'000007F2' X'000007F3' X'000007F4' X'000007F5'

| | | | | | | | | | |

446

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
| |
CACLT CAUSER CALAST CALSTU 2038 4000 4000 (variable) X'000007F6' X'00000FA0' X'00000FA0'

AD* (Descriptor ADS de cabecera CICS)


Vea el campo CIADS descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
ADNONE ADSEND ADRECV ADMSGF 0 1 16 256 X'00000000' X'00000001' X'00000010' X'00000100'

CC* (Cdigo de terminacin)


Vea el parmetro CMPCOD descrito en cada una de las llamadas MQI.
CCOK CCWARN CCFAIL 0 1 2 X'00000000' X'00000001' X'00000002'

CS* (Identificador de juego de caracteres codificado)


Vea el campo MDCSI descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 y en otras estructuras.

CT* (Tarea conversacional de cabecera CICS)


Vea el campo CICT descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
CTNO CTYES 0 1 X'00000000' X'00000001'

FC* (Recurso de cabecera CICS)


Vea el campo CIFAC descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
FCNONE X'00...00' (8 nulos)

CF* (Nombre de funcin de cabecera CICS)


Vea el campo CIFNC descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
CFCONN CFGET CFINQ CFOPEN CFPUT CFPUT1 CFNONE 'CONN' 'GETb' 'INQb' 'OPEN' 'PUTb' 'PUT1' 'bbbb'

Apndice B. Constantes de MQSeries

447

Constantes de MQSeries

WI* (Intervalo de espera de obtener de cabecera CICS)


Vea el campo CIGWI descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
WIDFLT -2 X'FFFFFFFE'

CI* (Identificador de correlacin)


Vea el campo MDCID descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
CINONE CINEWS X'00...00' (24 nulos) X'414D51214E45575F534553...'

MQ* (Identificador de llamada)


MQCONN MQDISC MQOPEN MQCLOS MQGET MQPUT MQPUT1 MQINQ MQSET MQXCVC 1 2 3 4 5 6 7 8 9 12 X'00000001' X'00000002' X'00000003' X'00000004' X'00000005' X'00000006' X'00000007' X'00000008' X'00000009' X'0000000C'

CIF* (Distintivos de cabecera CICS)


Vea el campo CIFLG descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
CIFNON 0 X'00000000'

CI* (Longitud de cabecera CICS)


Vea el campo CILEN descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17. | |
CILEN1 CILEN2 CILENC 164 180 180 X'000000A4' X'000000B4' X'000000B4'

CI* (Identificador de estructura de cabecera CICS)


Vea el campo CISID descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
CISIDV 'CIHb'

CI* (Versin de cabecera CICS)


Vea el campo CIVER descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
CIVER1 1 X'00000001'

448

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
|
CIVER2 CIVERC 2 2 X'00000002' X'00000002'

LT* (Tipo de enlace de cabecera CICS)


Vea el campo CILT descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17. |
LTPROG LTTRAN 1 2 X'00000001' X'00000002'

CMLV* (Nivel de mandato)


Vea el atributo CommandLevel descrito en el Captulo 43. Atributos del gestor de colas en la pgina 337.
CMLVL1 CML320 CML420 CML510 100 320 420 510 X'00000064' X'00000140' X'000001A4' X'000001FE'

| |

CN* (Opciones de conectar)


Vea el campo CNOPT descrito en el Captulo 5. MQCNO - Opciones de conectar en la pgina 31.
CNSBND CNFBND CNNONE 0 1 0 X'00000000' X'00000001' X'00000000'

CN* (Identificador de estructura de opciones de conectar)


Vea el campo CNSID descrito en el Captulo 5. MQCNO - Opciones de conectar en la pgina 31.
CNSIDV 'CNOb'

CN* (Versin de opciones de conectar)


Vea el campo CNVER descrito en el Captulo 5. MQCNO - Opciones de conectar en la pgina 31. |
CNVER1 CNVER2 CNVERC 1 2 2 X'00000001' X'00000002' X'00000002'

CO* (Opciones de cerrar)


Vea el parmetro OPTS descrito en el Captulo 25. MQCLOSE - Cerrar objeto en la pgina 221.
CONONE CODEL COPURG 0 1 2 X'00000000' X'00000001' X'00000002'

Apndice B. Constantes de MQSeries

449

Constantes de MQSeries

OL* (Longitud de datos de salida de cabecera CICS)


Vea el campo CIODL descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
OLINPT -1 X'FFFFFFFF'

CRC* (Cdigo de retorno de cabecera CICS)


Vea el campo CIRET descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
CRC000 CRC001 CRC002 CRC003 CRC004 CRC005 CRC006 CRC007 CRC008 CRC009 0 1 2 3 4 5 6 7 8 9 X'00000000' X'00000001' X'00000002' X'00000003' X'00000004' X'00000005' X'00000006' X'00000007' X'00000008' X'00000009'

SC* (Cdigo de inicio de transaccin de cabecera CICS)


Vea el campo CISC descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
SCSTRT SCDATA SCTERM SCNONE 'Sbbb' 'SDbb' 'TDbb' 'bbbb'

TE* (Estado de final de tarea de cabecera CICS)


Vea el campo CITES descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
TENOSY TECMIT TEBACK TEENDT 0 256 4352 65536 X'00000000' X'00000100' X'00001100' X'00010000'

CU* (Control de unidad de trabajo de cabecera CICS)


Vea el campo CIUOW descrito en el Captulo 4. MQCIH - Cabecera de puente CICS en la pgina 17.
CUMIDL CUFRST CUCMIT CULAST CUONLY CUBACK CUCONT 16 17 256 272 273 4352 65536 X'00000010' X'00000011' X'00000100' X'00000110' X'00000111' X'00001100' X'00010000'

450

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries

DCC* (Mscaras y factores de convertir caracteres)


Vea el parmetro OPTS descrito en MQXCNVC - Convertir caracteres en la pgina 499.
DCCSMA DCCTMA DCCSFA DCCTFA 240 3840 16 256 X'000000F0' X'00000F00' X'00000010' X'00000100'

DCC* (Opciones de convertir caracteres)


Vea el parmetro OPTS descrito en MQXCNVC - Convertir caracteres en la pgina 499.
DCCSUN DCCTUN DCCNON DCCDEF DCCFIL DCCSNA DCCSNO DCCSRE DCCTNA DCCTNO DCCTRE 0 0 0 1 2 16 16 32 256 256 512 X'00000000' X'00000000' X'00000000' X'00000001' X'00000002' X'00000010' X'00000010' X'00000020' X'00000100' X'00000100' X'00000200'

DH* (Identificador de estructura de cabecera de distribucin)


Vea el campo DHSID descrito en el Captulo 6. MQDH - Cabecera de distribucin en la pgina 37.
DHSIDV 'DHbb'

DH* (Versin de cabecera de distribucin)


Vea el campo DHVER descrito en el Captulo 6. MQDH - Cabecera de distribucin en la pgina 37.
DHVER1 DHVERC 1 1 X'00000001' X'00000001'

DHF* (Distintivos de cabecera de distribucin)


Vea el campo DHFLG descrito en el Captulo 6. MQDH - Cabecera de distribucin en la pgina 37.
DHFNON DHFNEW 0 1 X'00000000' X'00000001'

DL* (Soporte de lista de distribucin)


Vea los atributos DistLists descritos en el Captulo 43. Atributos del gestor de colas en la pgina 337 y en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311.
DLNSUP DLSUPP 0 1 X'00000000' X'00000001'

Apndice B. Constantes de MQSeries

451

Constantes de MQSeries

DL* (Identificador de estructura de cabecera de mensaje no entregado)


Vea el campo DLSID descrito en el Captulo 7. MQDLH - Cabecera de mensaje no entregado en la pgina 43.
DLSIDV 'DLHb'

DL* (Versin de cabecera de mensaje no entregado)


Vea el campo DLVER descrito en el Captulo 7. MQDLH - Cabecera de mensaje no entregado en la pgina 43.
DLVER1 DLVERC 1 1 X'00000001' X'00000001'

DX* (Identificador de estructura de parmetro de rutina de salida de conversin de datos)


Vea el campo DXSID descrito en MQDXP Parmetro de rutina de salida de conversin de datos en la pgina 493.
DXSIDV 'DXPb'

DX* (Versin de estructura de parmetro de rutina de salida de conversin de datos)


Vea el campo DXVER descrito en MQDXP Parmetro de rutina de salida de conversin de datos en la pgina 493.
DXVER1 DXVERC 1 1 X'00000001' X'00000001'

EI* (Intervalo de caducidad)


Vea el campo MDEXP descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
EIULIM -1 X'FFFFFFFF'

EN* (Codificacin)
Vea el campo MDENC descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
ENNAT 273 X'00000111'

EN* (Mscaras de codificacin)


Vea el Apndice D. Codificaciones de mquina en la pgina 477.
ENIMSK ENDMSK ENFMSK 15 240 3840 X'0000000F' X'000000F0' X'00000F00'

452

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
ENRMSK -4096 X'FFFFF000'

EN* (Codificacin para enteros decimales empaquetados)


Vea el Apndice D. Codificaciones de mquina en la pgina 477.
ENDUND ENDNOR ENDREV 0 16 32 X'00000000' X'00000010' X'00000020'

EN* (Codificacin para nmeros de coma flotante)


Vea el Apndice D. Codificaciones de mquina en la pgina 477.
ENFUND ENFNOR ENFREV ENF390 0 256 512 768 X'00000000' X'00000100' X'00000200' X'00000300'

EN* (Codificacin para enteros binarios)


Vea el Apndice D. Codificaciones de mquina en la pgina 477.
ENIUND ENINOR ENIREV 0 1 2 X'00000000' X'00000001' X'00000002'

EV* (Notificacin de sucesos)


Vea los atributos QDepthHighEvent, QDepthLowEvent y QDepthMaxEvent descritos en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311 y los atributos AuthorityEvent, ChannelAutoDefEvent, InhibitEvent, LocalEvent, PerformanceEvent, RemoteEvent y StartStopEvent descritos en el Captulo 43. Atributos del gestor de colas en la pgina 337.
EVRDIS EVRENA 0 1 X'00000000' X'00000001'

FB* (Informacin de retorno)


Vea el campo MDFB descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 y el campo DLREA descrito en el Captulo 7. MQDLH - Cabecera de mensaje no entregado en la pgina 43; vea asimismo los valores de RC*.
FBNONE FBSFST FBQUIT FBEXP FBCOA FBCOD FBABEG FBTM FBATYP FBSBMX FBXQME FBPAN FBNAN 0 1 256 258 259 260 265 266 267 268 271 275 276 X'00000000' X'00000001' X'00000100' X'00000102' X'00000103' X'00000104' X'00000109' X'0000010A' X'0000010B' X'0000010C' X'0000010F' X'00000113' X'00000114'

Apndice B. Constantes de MQSeries

453

Constantes de MQSeries
| | |
FBSBCX FBSBPS FBNARM FBDLZ FBDLN FBDLTB FBBUFO FBLOB1 FBIIH FBNAFI FBIERR FBIFST FBILST FBCINE FBCNTA FBCBRF FBCCIE FBCCSE FBCENE FBCIHE FBCUWE FBCCAE FBCANS FBCAAB FBCDLQ FBCUBO FBSLST FBAFST FBALST 277 279 280 291 292 293 294 295 296 298 300 301 399 401 402 403 404 405 406 407 408 409 410 411 412 413 65535 65536 999999999 X'00000115' X'00000117' X'00000118' X'00000123' X'00000124' X'00000125' X'00000126' X'00000127' X'00000128' X'0000012A' X'0000012C' X'0000012D' X'0000018F' X'00000191' X'00000192' X'00000193' X'00000194' X'00000195' X'00000196' X'00000197' X'00000198' X'00000199' X'0000019A' X'0000019B' X'0000019C' X'0000019D' X'0000FFFF' X'00010000' X'3B9AC9FF'

FM* (Formato)
Vea el campo MDFMT descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 y en otras estructuras.
FMNONE FMADMN FMCICS FMCMD1 FMCMD2 FMDLH FMDH FMEVNT FMIMS FMIMVS FMMDE FMPCF FMRMH FMRFH FMSTR FMTM FMWIH FMXQH 'bbbbbbbb' 'MQADMINb' 'MQCICSbb' 'MQCMD1bb' 'MQCMD2bb' 'MQDEADbb' 'MQHDISTb' 'MQEVENTb' 'MQIMSbbb' 'MQIMSVSb' 'MQHMDEbb' 'MQPCFbbb' 'MQHREFbb' 'MQHRFbbb' 'MQSTRbbb' 'MQTRIGbb' 'MQHWIHbb' 'MQXMITbb'

| |

GI* (Identificador de grupo)


Vea el campo MDGID descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.

454

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
GINONE X'00...00' (24 nulos)

GM* (Opciones de obtener mensaje)


Vea el campo GMOPT descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51.
GMNWT GMNONE GMWT GMSYP GMNSYP GMBRWF GMBRWN GMATM GMMUC GMLK GMUNLK GMBRWC GMPSYP GMFIQ GMCONV GMLOGO GMCMPM GMAMSA GMASGA 0 0 1 2 4 16 32 64 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 X'00000000' X'00000000' X'00000001' X'00000002' X'00000004' X'00000010' X'00000020' X'00000040' X'00000100' X'00000200' X'00000400' X'00000800' X'00001000' X'00002000' X'00004000' X'00008000' X'00010000' X'00020000' X'00040000'

GM* (Identificador de estructura de opciones de obtener mensaje)


Vea el campo GMSID descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51.
GMSIDV 'GMOb'

GM* (Versin de opciones de obtener mensaje)


Vea el campo GMVER descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51.
GMVER1 GMVER2 GMVER3 GMVERC 1 2 3 (variable) X'00000001' X'00000002' X'00000003'

GS* (Estado de grupo)


Vea el campo GMGST descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51.
GSNIG GSMIG GSLMIG 'b' 'G' 'L'

Apndice B. Constantes de MQSeries

455

Constantes de MQSeries

HC* (Asa de conexin)


Vea el parmetro HCONN descrito en el Captulo 27. MQCONN - Conectar gestor de colas en la pgina 231 y en el Captulo 29. MQDISC - Desconectar gestor de colas en la pgina 239.
HCUNUH HCDEFH -1 0 X'FFFFFFFF' X'00000000'

HO* (Asa de objeto)


Vea el parmetro HOBJ descrito en el Captulo 25. MQCLOSE - Cerrar objeto en la pgina 221.

IA* (Selector de atributo de tipo entero)


Vea el parmetro SELS descrito en el Captulo 31. MQINQ - Consultar los atributos de objeto en la pgina 251 y en el Captulo 35. MQSET - Establecer atributos de objeto en la pgina 295.
IAFRST IAAPPT IACCSI IACDEP IADINP IADPER IADPRI IADEFT IAHGB IAIGET IAIPUT IAMHND IAUSAG IAMLEN IAMPRI IAMDEP IAMDS IAOIC IAOOC IANAMC IAQTYP IARINT IABTHR IASHAR IATRGC IATRGI IATRGP IATRGT IATRGD IASYNC IACMDL IAPLAT IAMUNC IADIST IATSR IAHQD IAMEC IAMDC IAQDHL 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 38 40 X'00000001' X'00000001' X'00000002' X'00000003' X'00000004' X'00000005' X'00000006' X'00000007' X'00000008' X'00000009' X'0000000A' X'0000000B' X'0000000C' X'0000000D' X'0000000E' X'0000000F' X'00000010' X'00000011' X'00000012' X'00000013' X'00000014' X'00000015' X'00000016' X'00000017' X'00000018' X'00000019' X'0000001A' X'0000001C' X'0000001D' X'0000001E' X'0000001F' X'00000020' X'00000021' X'00000022' X'00000023' X'00000024' X'00000025' X'00000026' X'00000028'

456

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
IAQDLL IAQDME IAQDHE IAQDLE IASCOP IAQSIE IAAUTE IAINHE IALCLE IARMTE IASSE IAPFME IAQSI IACAD IACADE IAINDT IACLWL IACLQT IAARCH IADBND IAUSER IALAST IALSTU 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 59 60 61 2000 2000 (variable) X'00000029' X'0000002A' X'0000002B' X'0000002C' X'0000002D' X'0000002E' X'0000002F' X'00000030' X'00000031' X'00000032' X'00000034' X'00000035' X'00000036' X'00000037' X'00000038' X'00000039' X'0000003A' X'0000003B' X'0000003C' X'0000003D' X'000007D0' X'000007D0'

| | | | |

IAU* (Autenticador IMS)


Vea el campo IIAUT descrito en el Captulo 9. MQIIH - Cabecera de puente IMS en la pgina 79.
IAUNON 'bbbbbbbb'

IAV* (Valor de atributo de tipo entero)


Vea el parmetro INTATR descrito en el Captulo 31. MQINQ - Consultar los atributos de objeto en la pgina 251.
IAVUND IAVNA -2 -1 X'FFFFFFFE' X'FFFFFFFF'

ICM* (Modalidad de compromiso IMS)


Vea el campo IICMT descrito en el Captulo 9. MQIIH - Cabecera de puente IMS en la pgina 79.
ICMCTS ICMSTC '0' '1'

II* (Distintivos de cabecera IMS)


Vea el campo IIFLG descrito en el Captulo 9. MQIIH - Cabecera de puente IMS en la pgina 79.
IINONE 0 X'00000000'

Apndice B. Constantes de MQSeries

457

Constantes de MQSeries

II* (Longitud de cabecera IMS)


Vea el campo IILEN descrito en el Captulo 9. MQIIH - Cabecera de puente IMS en la pgina 79.
IILEN1 84 X'00000054'

II* (Identificador de estructura de cabecera IMS)


Vea el campo IISID descrito en el Captulo 9. MQIIH - Cabecera de puente IMS en la pgina 79.
IISIDV 'IIHb'

II* (Versin de cabecera IMS)


Vea el campo IIVER descrito en el Captulo 9. MQIIH - Cabecera de puente IMS en la pgina 79.
IIVER1 IIVERC 1 1 X'00000001' X'00000001'

ISS* (mbito de seguridad IMS)


Vea el campo IISEC descrito en el Captulo 9. MQIIH - Cabecera de puente IMS en la pgina 79.
ISSCHK ISSFUL 'C' 'F'

ITI* (Identificador de instancia de transaccin IMS)


Vea el campo IITID descrito en el Captulo 9. MQIIH - Cabecera de puente IMS en la pgina 79.
ITINON X'00...00' (16 nulos)

ITS* (Estado de transaccin IMS)


Vea el campo IITST descrito en el Captulo 9. MQIIH - Cabecera de puente IMS en la pgina 79.
ITSIC ITSNIC ITSARC 'C' ' ' 'A'

MD* (Identificador de estructura de descriptor de mensaje)


Vea el campo MDSID descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
MDSIDV 'MDbb'

MD* (Versin de descriptor de mensaje)


Vea el campo MDVER descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.

458

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
MDVER1 MDVER2 MDVERC 1 2 (variable) X'00000001' X'00000002'

ME* (Longitud de extensin de descriptor de mensaje)


Vea el campo MELEN descrito en el Captulo 11. MQMDE - Extensin de descriptor de mensaje en la pgina 137.
MELEN2 72 X'00000048'

ME* (Identificador de estructura de extensin de descriptor de mensaje)


Vea el campo MESID descrito en el Captulo 11. MQMDE - Extensin de descriptor de mensaje en la pgina 137.
MESIDV 'MDEb'

ME* (Versin de extensin de descriptor de mensaje)


Vea el campo MEVER descrito en el Captulo 11. MQMDE - Extensin de descriptor de mensaje en la pgina 137.
MEVER2 MEVERC 2 2 X'00000002' X'00000002'

MEF* (Distintivos de extensin de descriptor de mensaje)


Vea el campo MEFLG descrito en el Captulo 11. MQMDE - Extensin de descriptor de mensaje en la pgina 137.
MEFNON 0 X'00000000'

MS* (Secuencia de entrega de mensajes)


Vea el atributo MsgDeliverySequence descrito en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311.
MSPRIO MSFIFO 0 1 X'00000000' X'00000001'

MF* (Distintivos de mensaje)


Vea el campo MDMFL descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
MFSEGI MFNONE MFSEGA MFSEG MFLSEG MFMIG MFLMIG 0 0 1 2 4 8 16 X'00000000' X'00000000' X'00000001' X'00000002' X'00000004' X'00000008' X'00000010'

Apndice B. Constantes de MQSeries

459

Constantes de MQSeries

MF* (Mscaras de distintivos de mensaje)


Vea el Apndice E. Opciones de informe en la pgina 481.
MFAUM MFAUXM MFRUM -1048576 1044480 4095 X'FFF00000' X'000FF000' X'00000FFF'

MI* (Identificador de mensaje)


Vea el campo MDMID descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
MINONE X'00...00' (24 nulos)

MO* (Opciones de emparejar)


Vea el campo GMMO descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51.
MONONE MOMSGI MOCORI MOGRPI MOSEQN MOOFFS 0 1 2 4 8 16 X'00000000' X'00000001' X'00000002' X'00000004' X'00000008' X'00000010'

MT* (Tipo de mensaje)


Vea el campo MDMT descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
MTSFST MTRQST MTRPLY MTRPRT MTDGRM MTSLST MTAFST MTALST 1 1 2 4 8 65535 65536 999999999 X'00000001' X'00000001' X'00000002' X'00000004' X'00000008' X'0000FFFF' X'00010000' X'3B9AC9FF'

| | | | | | | | | | |
NCMXNL MTKNON

MTK* (Smbolo de mensaje)


Vea los campos GMTOK descritos en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51 y en el Captulo 20. MQWIH - Cabecera de informacin de trabajo en la pgina 199.
X'00...00' (16 nulos)

NC* (Cuenta de nombres)


Vea el atributo NameCount descrito en el Captulo 41. Atributos de las listas de nombres en la pgina 331.
256 X'00000100'

460

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
|

OD* (Longitud de descriptor de objeto)


Vea el Captulo 12. MQOD - Descriptor de objeto en la pgina 143.
ODLENC 336 X'00000150'

OD* (Identificador de estructura de descriptor de objeto)


Vea el campo ODSID descrito en el Captulo 12. MQOD - Descriptor de objeto en la pgina 143.
ODSIDV 'ODbb'

OD* (Versin de descriptor de objeto)


Vea el campo ODVER descrito en el Captulo 12. MQOD - Descriptor de objeto en la pgina 143.
ODVER1 ODVER2 ODVER3 ODVERC 1 2 3 (variable) X'00000001' X'00000002' X'00000003'

OII* (Identificador de instancia de objeto)


Vea el campo RMOII descrito en el Captulo 16. MQRMH - Cabecera de mensaje de referencia en la pgina 177.
OIINON X'00...00' (24 nulos)

OL* (Longitud original)


Vea el campo MDOLN descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
OLUNDF -1 X'FFFFFFFF'

OO* (Opciones de abrir)


Vea el parmetro OPTS descrito en el Captulo 32. MQOPEN - Abrir objeto en la pgina 261.
OOBNDQ OOINPQ OOINPS OOINPX OOBRW OOOUT OOINQ OOSET OOSAVA OOPASI OOPASA OOSETI OOSETA OOALTU OOFIQ OOBNDO 0 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 X'00000000' X'00000001' X'00000002' X'00000004' X'00000008' X'00000010' X'00000020' X'00000040' X'00000080' X'00000100' X'00000200' X'00000400' X'00000800' X'00001000' X'00002000' X'00004000'

Apndice B. Constantes de MQSeries

461

Constantes de MQSeries
|
OOBNDN 32768 X'00008000'

OT* (Tipo de objeto)


Vea el campo ODOT descrito en el Captulo 12. MQOD - Descriptor de objeto en la pgina 143.
OTQ OTNLST OTPRO OTQM 1 2 3 5 X'00000001' X'00000002' X'00000003' X'00000005'

PE* (Permanencia)
Vea el campo MDPER descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85 y el atributo DefPersistence descrito en el Captulo 37. Atributos de todas las colas en la pgina 305.
PENPER PEPER 0 1 X'00000000' X'00000001'

PL* (Plataforma)
Vea el atributo Platform descrito en el Captulo 43. Atributos del gestor de colas en la pgina 337. |
PLMVS PL390 PLOS2 PLAIX PLUNIX PL400 PLWIN PLWINT PLVMS PLNSK 1 1 2 3 3 4 5 11 12 13 X'00000001' X'00000001' X'00000002' X'00000003' X'00000003' X'00000004' X'00000005' X'0000000B' X'0000000C' X'0000000D'

PM* (Opciones de poner mensaje)


Vea el campo PMOPT descrito en el Captulo 14. MQPMO - Opciones de poner mensaje en la pgina 155.
PMNONE PMSYP PMNSYP PMDEFC PMNMID PMNCID PMPASI PMPASA PMSETI PMSETA PMALTU PMFIQ PMNOC PMLOGO 0 2 4 32 64 128 256 512 1024 2048 4096 8192 16384 32768 X'00000000' X'00000002' X'00000004' X'00000020' X'00000040' X'00000080' X'00000100' X'00000200' X'00000400' X'00000800' X'00001000' X'00002000' X'00004000' X'00008000'

462

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries

PM* (Longitud de estructura de opciones de poner mensaje)


Vea el Captulo 14. MQPMO - Opciones de poner mensaje en la pgina 155.
PMLENC 152 X'00000098'

PM* (Identificador de estructura de opciones de poner mensaje)


Vea el campo PMSID descrito en el Captulo 14. MQPMO - Opciones de poner mensaje en la pgina 155.
PMSIDV 'PMOb'

PM* (Versin de opciones de poner mensaje)


Vea el campo PMVER descrito en el Captulo 14. MQPMO - Opciones de poner mensaje en la pgina 155.
PMVER1 PMVER2 PMVERC 1 2 (variable) X'00000001' X'00000002'

PF* (Distintivos de campo de registro de poner mensaje)


Vea el campo DHPRF descrito en el Captulo 6. MQDH - Cabecera de distribucin en la pgina 37.
PFNONE PFMID PFCID PFGID PFFB PFACC 0 1 2 4 8 16 X'00000000' X'00000001' X'00000002' X'00000004' X'00000008' X'00000010'

PR* (Prioridad)
Vea el campo MDPRI descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
PRQDEF -1 X'FFFFFFFF'

QA* (Inhibir obtener)


Vea el atributo InhibitGet descrito en el Captulo 37. Atributos de todas las colas en la pgina 305.
QAGETA QAGETI 0 1 X'00000000' X'00000001'

QA* (Inhibir poner)


Vea el atributo InhibitPut descrito en el Captulo 37. Atributos de todas las colas en la pgina 305.
QAPUTA QAPUTI 0 1 X'00000000' X'00000001'

Apndice B. Constantes de MQSeries

463

Constantes de MQSeries

QA* (Memorizacin de restitucin)


Vea el atributo HardenGetBackout descrito en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311.
QABNH QABH 0 1 X'00000000' X'00000001'

QA* (Compartibilidad de cola)


Vea el atributo Shareability descrito en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311.
QANSHR QASHR 0 1 X'00000000' X'00000001'

QD* (Tipo de definicin de cola)


Vea el atributo DefinitionType descrito en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311.
QDPRE QDPERM QDTEMP 1 2 3 X'00000001' X'00000002' X'00000003'

QSIE* (Sucesos de intervalo de servicio)


Vea el atributo QServiceIntervalEvent descrito en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311.
QSIENO QSIEHI QSIEOK 0 1 2 X'00000000' X'00000001' X'00000002'

QT* (Tipo de cola)


Vea el atributo QType descrito en el Captulo 37. Atributos de todas las colas en la pgina 305.
QTLOC QTMOD QTALS QTREM QTCLUS 1 2 3 6 7 X'00000001' X'00000002' X'00000003' X'00000006' X'00000007'

RC* (Cdigo de razn)


Vea el Apndice A. Cdigos de retorno en la pgina 373 y el campo MDFB descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85. Nota: la siguiente lista est por orden numrico. | |
RCNONE RC0900 RC0999 RC2001 RC2002 RC2003 RC2004 0 900 999 2001 2002 2003 2004 X'00000000' X'00000384' X'000003E7' X'000007D1' X'000007D2' X'000007D3' X'000007D4'

464

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
RC2005 RC2006 RC2007 RC2008 RC2009 RC2010 RC2011 RC2013 RC2014 RC2016 RC2017 RC2018 RC2019 RC2020 RC2021 RC2022 RC2023 RC2024 RC2026 RC2027 RC2029 RC2030 RC2031 RC2033 RC2034 RC2035 RC2036 RC2037 RC2038 RC2039 RC2040 RC2041 RC2042 RC2043 RC2044 RC2045 RC2046 RC2047 RC2048 RC2049 RC2050 RC2051 RC2052 RC2053 RC2055 RC2056 RC2057 RC2058 RC2059 RC2061 RC2063 RC2065 RC2066 RC2067 RC2068 RC2071 RC2072 RC2075 RC2076 2005 2006 2007 2008 2009 2010 2011 2013 2014 2016 2017 2018 2019 2020 2021 2022 2023 2024 2026 2027 2029 2030 2031 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2055 2056 2057 2058 2059 2061 2063 2065 2066 2067 2068 2071 2072 2075 2076 X'000007D5' X'000007D6' X'000007D7' X'000007D8' X'000007D9' X'000007DA' X'000007DB' X'000007DD' X'000007DE' X'000007E0' X'000007E1' X'000007E2' X'000007E3' X'000007E4' X'000007E5' X'000007E6' X'000007E7' X'000007E8' X'000007EA' X'000007EB' X'000007ED' X'000007EE' X'000007EF' X'000007F1' X'000007F2' X'000007F3' X'000007F4' X'000007F5' X'000007F6' X'000007F7' X'000007F8' X'000007F9' X'000007FA' X'000007FB' X'000007FC' X'000007FD' X'000007FE' X'000007FF' X'00000800' X'00000801' X'00000802' X'00000803' X'00000804' X'00000805' X'00000807' X'00000808' X'00000809' X'0000080A' X'0000080B' X'0000080D' X'0000080F' X'00000811' X'00000812' X'00000813' X'00000814' X'00000817' X'00000818' X'0000081B' X'0000081C'

Apndice B. Constantes de MQSeries

465

Constantes de MQSeries
RC2077 RC2078 RC2079 RC2080 RC2082 RC2085 RC2086 RC2087 RC2090 RC2091 RC2092 RC2093 RC2094 RC2095 RC2096 RC2097 RC2098 RC2100 RC2101 RC2102 RC2104 RC2110 RC2111 RC2112 RC2113 RC2114 RC2115 RC2116 RC2117 RC2118 RC2119 RC2120 RC2123 RC2124 RC2125 RC2126 RC2135 RC2136 RC2137 RC2139 RC2141 RC2142 RC2143 RC2144 RC2145 RC2146 RC2148 RC2149 RC2150 RC2152 RC2153 RC2154 RC2155 RC2156 RC2158 RC2159 RC2161 RC2162 RC2173 2077 2078 2079 2080 2082 2085 2086 2087 2090 2091 2092 2093 2094 2095 2096 2097 2098 2100 2101 2102 2104 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2123 2124 2125 2126 2135 2136 2137 2139 2141 2142 2143 2144 2145 2146 2148 2149 2150 2152 2153 2154 2155 2156 2158 2159 2161 2162 2173 X'0000081D' X'0000081E' X'0000081F' X'00000820' X'00000822' X'00000825' X'00000826' X'00000827' X'0000082A' X'0000082B' X'0000082C' X'0000082D' X'0000082E' X'0000082F' X'00000830' X'00000831' X'00000832' X'00000834' X'00000835' X'00000836' X'00000838' X'0000083E' X'0000083F' X'00000840' X'00000841' X'00000842' X'00000843' X'00000844' X'00000845' X'00000846' X'00000847' X'00000848' X'0000084B' X'0000084C' X'0000084D' X'0000084E' X'00000857' X'00000858' X'00000859' X'0000085B' X'0000085D' X'0000085E' X'0000085F' X'00000860' X'00000861' X'00000862' X'00000864' X'00000865' X'00000866' X'00000868' X'00000869' X'0000086A' X'0000086B' X'0000086C' X'0000086E' X'0000086F' X'00000871' X'00000872' X'0000087D'

466

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
RC2184 RC2185 RC2186 RC2187 RC2188 RC2189 RC2190 RC2191 RC2194 RC2195 RC2196 RC2197 RC2198 RC2199 RC2206 RC2207 RC2208 RC2209 RC2218 RC2219 RC2220 RC2222 RC2223 RC2224 RC2225 RC2226 RC2227 RC2232 RC2233 RC2234 RC2235 RC2236 RC2237 RC2238 RC2239 RC2241 RC2242 RC2243 RC2244 RC2245 RC2246 RC2247 RC2248 RC2249 RC2250 RC2251 RC2252 RC2253 RC2255 RC2256 RC2257 RC2258 RC2259 RC2260 RC2261 RC2262 RC2263 RC2264 RC2265 2184 2185 2186 2187 2188 2189 2190 2191 2194 2195 2196 2197 2198 2199 2206 2207 2208 2209 2218 2219 2220 2222 2223 2224 2225 2226 2227 2232 2233 2234 2235 2236 2237 2238 2239 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 X'00000888' X'00000889' X'0000088A' X'0000088B' X'0000088C' X'0000088D' X'0000088E' X'0000088F' X'00000892' X'00000893' X'00000894' X'00000895' X'00000896' X'00000897' X'0000089E' X'0000089F' X'000008A0' X'000008A1' X'000008AA' X'000008AB' X'000008AC' X'000008AE' X'000008AF' X'000008B0' X'000008B1' X'000008B2' X'000008B3' X'000008B8' X'000008B9' X'000008BA' X'000008BB' X'000008BC' X'000008BD' X'000008BE' X'000008BF' X'000008C1' X'000008C2' X'000008C3' X'000008C4' X'000008C5' X'000008C6' X'000008C7' X'000008C8' X'000008C9' X'000008CA' X'000008CB' X'000008CC' X'000008CD' X'000008CF' X'000008D0' X'000008D1' X'000008D2' X'000008D3' X'000008D4' X'000008D5' X'000008D6' X'000008D7' X'000008D8' X'000008D9'

| | |

| | |

Apndice B. Constantes de MQSeries

467

Constantes de MQSeries
| | | | | | |
RC2266 RC2267 RC2268 RC2269 RC2270 RC2273 RC2277 RC2278 RC2279 RC2282 RC2283 RC2284 RC2295 RC2296 RC2299 RC2300 RC2301 RC2302 RC2303 RC2304 RC2305 RC2306 RC2307 RC2308 RC2309 RC2310 RC2311 RC2312 RC2313 RC2314 RC2315 RC2316 RC2317 RC2318 RC2319 RC2320 RC2321 RC2322 RC2323 RC2324 RC2325 RC2326 RC2327 RC2328 RC2329 RC2330 RC2334 RC2335 RC2336 RC2337 RC2338 RC2339 2266 2267 2268 2269 2270 2273 2277 2278 2279 2282 2283 2284 2295 2296 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2334 2335 2336 2337 2338 2339 X'000008DA' X'000008DB' X'000008DC' X'000008DD' X'000008DE' X'000008E1' X'000008E5' X'000008E6' X'000008E7' X'000008EA' X'000008EB' X'000008EC' X'000008F7' X'000008F8' X'000008FB' X'000008FC' X'000008FD' X'000008FE' X'000008FF' X'00000900' X'00000901' X'00000902' X'00000903' X'00000904' X'00000905' X'00000906' X'00000907' X'00000908' X'00000909' X'0000090A' X'0000090B' X'0000090C' X'0000090D' X'0000090E' X'0000090F' X'00000910' X'00000911' X'00000912' X'00000913' X'00000914' X'00000915' X'00000916' X'00000917' X'00000918' X'00000919' X'0000091A' X'0000091E' X'0000091F' X'00000920' X'00000921' X'00000922' X'00000923'

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

| | | |
RLUNDF

RL* (Longitud devuelta)


Vea el campo GMRL descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51.
-1 X'FFFFFFFF'

468

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
| |

RM* (Identificador de estructura de cabecera de mensaje de referencia)


Vea el campo RMSID descrito en el Captulo 16. MQRMH - Cabecera de mensaje de referencia en la pgina 177.
RMSIDV 'RMHb'

RM* (Versin de cabecera de mensaje de referencia)


Vea el campo RMVER descrito en el Captulo 16. MQRMH - Cabecera de mensaje de referencia en la pgina 177.
RMVER1 RMVERC 1 1 X'00000001' X'00000001'

RM* (Distintivos de cabecera de mensaje de referencia)


Vea el campo RMFLG descrito en el Captulo 16. MQRMH - Cabecera de mensaje de referencia en la pgina 177.
RMNLST RMLAST 0 1 X'00000000' X'00000001'

RO* (Opciones de informe)


Vea el campo MDREP descrito en el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85.
RONMI ROCMTC RODLQ RONONE ROPAN RONAN ROPCI ROPMI ROCOA ROCOAD ROCOAF ROCOD ROCODD ROCODF ROEXP ROEXPD ROEXPF ROEXC ROEXCD ROEXCF RODISC 0 0 0 0 1 2 64 128 256 768 1792 2048 6144 14336 2097152 6291456 14680064 16777216 50331648 117440512 134217728 X'00000000' X'00000000' X'00000000' X'00000000' X'00000001' X'00000002' X'00000040' X'00000080' X'00000100' X'00000300' X'00000700' X'00000800' X'00001800' X'00003800' X'00200000' X'00600000' X'00E00000' X'01000000' X'03000000' X'07000000' X'08000000'

RO* (Mscaras de opciones de informe)


Vea el Apndice E. Opciones de informe en la pgina 481.
RORUM 270270464 X'101C0000'

Apndice B. Constantes de MQSeries

469

Constantes de MQSeries
ROAUM ROAUXM -270532353 261888 X'EFE000FF' X'0003FF00'

SCO* (mbito de cola)


Vea el atributo Scope descrito en el Captulo 37. Atributos de todas las colas en la pgina 305.
SCOQM SCOCEL 1 2 X'00000001' X'00000002'

SEG* (Segmentacin)
Vea el campo GMSEG descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51.
SEGIHB SEGALW 'b' 'A'

| | | | | | | | | | | |
SITNON SITWNT SINONE

SI* (Identificador de seguridad)


Vea el campo ODASI descrito en el Captulo 12. MQOD - Descriptor de objeto en la pgina 143.
X'00...00' (40 nulos)

SIT* (Tipo de identificador de seguridad)


Vea el campo ODASI descrito en el Captulo 12. MQOD - Descriptor de objeto en la pgina 143.
X'00' X'01'

SP* (Punto de sincronismo)


Vea el atributo SyncPoint descrito en el Captulo 43. Atributos del gestor de colas en la pgina 337.
SPNAVL SPAVL 0 1 X'00000000' X'00000001'

SS* (Estado de segmento)


Vea el campo GMSST descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51.
SSNSEG SSLSEG SSSEG 'b' 'L' 'S'

TC* (Control de desencadenamiento)


Vea el atributo TriggerControl descrito en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311.

470

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries
TCOFF TCON 0 1 X'00000000' X'00000001'

TM* (Identificador de estructura de mensaje desencadenante)


Vea el campo TMSID descrito en el Captulo 18. MQTM - Mensaje desencadenante en la pgina 189.
TMSIDV 'TMbb'

TM* (Versin de mensaje desencadenante)


Vea el campo TMVER descrito en el Captulo 18. MQTM - Mensaje desencadenante en la pgina 189.
TMVER1 TMVERC 1 1 X'00000001' X'00000001'

TC* (Identificador de estructura de formato de tipo carcter de mensaje desencadenante)


Vea el campo TC2SID descrito en el Captulo 19. MQTMC2 - Mensaje desencadenante (formato de caracteres) en la pgina 195.
TCSIDV 'TMCb'

TC* (Versin de formato de tipo carcter de mensaje desencadenante)


Vea el campo TC2VER descrito en el Captulo 19. MQTMC2 - Mensaje desencadenante (formato de caracteres) en la pgina 195.

TT* (Tipo de desencadenante)


Vea el atributo TriggerType descrito en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311.
TTNONE TTFRST TTEVRY TTDPTH 0 1 2 3 X'00000000' X'00000001' X'00000002' X'00000003'

US* (Utilizacin)
Vea el atributo Usage descrito en el Captulo 38. Atributos de colas locales y colas modelo en la pgina 311.
USNORM USTRAN 0 1 X'00000000' X'00000001'

WI* (Intervalo de espera)


Vea el campo GMWI descrito en el Captulo 8. MQGMO - Opciones de obtener mensaje en la pgina 51.
WIULIM -1 X'FFFFFFFF'

Apndice B. Constantes de MQSeries

471

Constantes de MQSeries
| | | | | | | | | | | | | | | | | | | | | | | | | |
WIVER1 WIVERC WISIDV WILEN1 WILENC WINONE

WI* (Distintivos de cabecera de informacin de carga de trabajo)


Vea el campo WIFLG descrito en el Captulo 20. MQWIH - Cabecera de informacin de trabajo en la pgina 199.
0 X'00000000'

WI* (Longitud de estructura de cabecera de informacin de carga de trabajo)


Vea el campo WILEN descrito en el Captulo 20. MQWIH - Cabecera de informacin de trabajo en la pgina 199.
120 120 X'00000078' X'00000078'

WI* (Identificador de estructura de cabecera de informacin de carga de trabajo)


Vea el campo WISID descrito en el Captulo 20. MQWIH - Cabecera de informacin de trabajo en la pgina 199.
'WIHb'

WI* (Versin de cabecera de informacin de carga de trabajo)


Vea el campo WIVER descrito en el Captulo 20. MQWIH - Cabecera de informacin de trabajo en la pgina 199.
1 1 X'00000001' X'00000001'

XR* (Respuesta de rutina de salida de conversin de datos)


Vea el campo DXRES descrito en MQDXP Parmetro de rutina de salida de conversin de datos en la pgina 493.
XROK XRFAIL 0 1 X'00000000' X'00000001'

XQ* (Identificador de estructura de cabecera de cola de transmisin)


Vea el campo XQSID descrito en el Captulo 21. MQXQH - Cabecera de cola de transmisin en la pgina 203.
XQSIDV 'XQHb'

472

Consulta de programacin de aplicaciones (ILE RPG)

Constantes de MQSeries

XQ* (Versin de cabecera de cola de transmisin)


Vea el campo XQVER descrito en el Captulo 21. MQXQH - Cabecera de cola de transmisin en la pgina 203.
XQVER1 XQVERC 1 1 X'00000001' X'00000001'

Apndice B. Constantes de MQSeries

473

Constantes de MQSeries

474

Consulta de programacin de aplicaciones (ILE RPG)

Apndice C. Normas para validar las opciones de la MQI


Este apndice facilita una lista de las situaciones que dan lugar al cdigo de razn RC2046 procedente de una llamada MQOPEN, MQPUT, MQPUT1, MQGET o MQCLOSE.

Llamada MQOPEN
Para las opciones de la llamada MQOPEN: v Debe especificarse uno de los siguientes valores como mnimo: OOBRW OOINPQ OOINPX OOINPS OOINQ OOOUT OOSET v Solo se permite uno de los siguientes valores: OOINPQ OOINPX OOINPS | | | | | | | | | | v Solo se permite uno de los siguientes valores: OOBNDO OOBNDN OOBNDQ Nota: Las opciones listadas ms arriba se excluyen mutuamente. Sin embargo, debido a que el valor de OOBNDQ es cero, si se especifica este valor con una de las otras dos opciones de enlazar, no se devuelve el cdigo de razn RC2046. Se proporciona la opcin OOBNDQ como ayuda para la documentacin del programa. v Si se especifica OOSAVA, debe especificarse asimismo una de las opciones OOINP*. v Si se especifica una de las opciones OOSET* o OOPAS*, tambin es preciso especificar OOOUT.

Llamada MQPUT
Para las opciones de poner mensaje: v No est permitida la combinacin formada por PMSYP y PMNSYP. v Solo se permite uno de los siguientes valores: PMDEFC PMNOC PMPASA PMPASI PMSETA PMSETI v La opcin PMALTU no est permitida (solo es vlida en la llamada MQPUT1).

Copyright IBM Corp. 1994, 2000

475

Opciones de la MQI

Llamada MQPUT1
En el caso de las opciones de poner mensaje, las normas son iguales que para la llamada MQPUT, salvo que: v Est permitida la opcin PMALTU. v No est permitida la opcin PMLOGO.

Llamada MQGET
Para las opciones de obtener mensaje: v Solo se permite uno de los siguientes valores: GMNSYP GMSYP GMPSYP v Solo se permite uno de los siguientes valores: GMBRWF GMBRWC GMBRWN GMMUC v La opcin GMSYP no est permitida con ninguna de las siguientes opciones: GMBRWF GMBRWC GMBRWN GMLK GMUNLK v La opcin GMPSYP no est permitida con ninguna de las siguientes opciones: GMBRWF GMBRWC GMBRWN GMCMPM GMUNLK v Si se especifica GMLK, es preciso especificar asimismo una de estas opciones: GMBRWF GMBRWC GMBRWN v Si se especifica GMUNLK, solo estn permitidas las siguientes opciones: GMNSYP GMNWT

Llamada MQCLOSE
Para las opciones de la llamada MQCLOSE: v No est permitida la combinacin formada por CODEL y COPURG.

476

Consulta de programacin de aplicaciones (ILE RPG)

Apndice D. Codificaciones de mquina


En este apndice se describe la estructura del campo MDENC del descriptor de mensaje (vea el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85). El campo MDENC es un entero de 32 bits dividido en cuatro subcampos distintos, cada uno de los cuales identifica: v La codificacin utilizada para enteros binarios v La codificacin utilizada para enteros decimales empaquetados v La codificacin utilizada para nmeros de coma flotante v Bits reservados Cada subcampo se identifica mediante una mscara de bits que tiene bits 1 en las posiciones que corresponden al subcampo y bits 0 en los dems lugares. Los bits estn numerados de modo que el bit 0 sea el ms significativo y el bit 31 el menos significativo. Estn definidas las mscaras siguientes: ENIMSK Mscara para codificacin de entero binario. Este subcampo ocupa las posiciones de bit de 28 a 31 dentro del campo MDENC. ENDMSK Mscara para codificacin de entero decimal empaquetado. Este subcampo ocupa las posiciones de bit de 24 a 27 dentro del campo MDENC. ENFMSK Mscara para codificacin de coma flotante. Este subcampo ocupa las posiciones de bit de 20 a 23 dentro del campo MDENC. ENRMSK Mscara para bits reservados. Este subcampo ocupa las posiciones de bit de 0 a 19 dentro del campo MDENC.

Codificacin de entero binario


Los valores vlidos para la codificacin de enteros binarios son los siguientes: ENIUND Codificacin de entero no definida. Los enteros se representan utilizando una codificacin que no est definida. ENINOR Codificacin normal de entero. Los enteros binarios se representan de forma convencional: v El byte menos significativo del nmero tiene la direccin ms alta de todos los bytes del nmero; el byte ms significativo tiene la direccin ms baja.
Copyright IBM Corp. 1994, 2000

477

Codificaciones de mquina
v El bit menos significativo de cada byte es el adyacente al byte que tiene la siguiente direccin ms alta; el bit ms significativo de cada byte es el adyacente al byte que tiene la siguiente direccin ms baja. ENIREV Codificacin inversa de entero. Los enteros binarios se representan igual que ENINOR, pero con los bytes dispuestos en orden inverso. Los bits de cada byte estn ordenados igual que ENINOR.

Codificacin de entero decimal empaquetado


Los valores vlidos para la codificacin de enteros decimales empaquetados son los siguientes: ENDUND Codificacin no definida de decimal empaquetado. Los enteros decimales empaquetados se representan utilizando una codificacin no definida. ENDNOR Codificacin normal de decimal empaquetado. Los enteros decimales empaquetados se representan de forma convencional: v Cada dgito decimal del formato imprimible del nmero se representa como decimal empaquetado mediante un solo dgito hexadecimal del X'0' al X'9'. Cada dgito hexadecimal ocupa cuatro bits, y cada byte del nmero decimal empaquetado representa dos dgitos decimales en el formato imprimible del nmero. v El byte menos significativo del nmero decimal empaquetado es el byte que contiene el dgito decimal menos significativo. Dentro de dicho byte, los cuatro bits ms significativos contienen el dgito decimal menos significativo, y los cuatro bits menos significativos contienen el signo. El signo es X'C' (positivo), X'D' (negativo) o X'F' (sin signo). v El byte menos significativo del nmero tiene la direccin ms alta de todos los bytes del nmero; el byte ms significativo tiene la direccin ms baja. v El bit menos significativo de cada byte es el adyacente al byte que tiene la siguiente direccin ms alta; el bit ms significativo de cada byte es el adyacente al byte que tiene la siguiente direccin ms baja. ENDREV Codificacin inversa de decimal empaquetado. Los enteros decimales empaquetados se representan del mismo modo que en ENDNOR, pero con los bytes dispuestos en orden inverso. Los bits de cada byte estn ordenados igual que en ENDNOR.

Codificacin de coma flotante


Los valores vlidos para la codificacin de coma flotante son los siguientes: ENFUND Codificacin no definida de nmeros de coma flotante. Los nmeros de coma flotante se representan utilizando una codificacin no definida.

478

Consulta de programacin de aplicaciones (ILE RPG)

Codificaciones de mquina
ENFNOR Codificacin normal de nmeros de coma flotante del IEEE. Los nmeros de coma flotante se representan utilizando el formato estndar de nmeros de coma flotante del IEEE 2, con los bytes ordenados de esta forma: v El byte menos significativo de la mantisa tiene la direccin ms alta de todos los bytes del nmero; el byte que contiene el exponente es aquel cuya direccin es ms baja v El bit menos significativo de cada byte es el adyacente al byte que tiene la siguiente direccin ms alta; el bit ms significativo de cada byte es el adyacente al byte que tiene la siguiente direccin ms baja. En el estndar 754 del IEEE encontrar ms detalles sobre la codificacin de coma flotante del IEEE. ENFREV Codificacin inversa de nmeros de coma flotante del IEEE. Los nmeros de coma flotante se representan de la misma forma que en ENFNOR, pero con los bytes en orden inverso. Los bits de cada byte estn ordenados igual que en ENFNOR. ENF390 Codificacin de nmeros de coma flotante de la arquitectura System/390. Los nmeros de coma flotante se representan utilizando el formato estndar de nmeros de coma flotante de System/390; esto tambin es vlido para System/370.

Construccin de codificaciones
Para construir un valor para el campo MDENC de la estructura MQMD, se han de aadir las constantes pertinentes que describen las codificaciones requeridas. Es preciso combinar nicamente una de las codificaciones ENI* con una de las codificaciones END* y una de las codificaciones ENF*.

Anlisis de codificaciones
El campo MDENC contiene subcampos; por ello, las aplicaciones que tengan que examinar la codificacin de entero, de decimal empaquetado o de coma flotante, deben utilizar la tcnica descrita a continuacin.

Utilizacin de la aritmtica
Los pasos que siguen se realizan con la aritmtica de los nmeros enteros: 1. Seleccione un valor en la tabla siguiente, de acuerdo con la codificacin necesaria: Codificacin necesaria Valor que se ha de usar Entero binario 1 Entero decimal empaquetado 16

2. Institute of Electrical and Electronics Engineers Apndice D. Codificaciones de mquina

479

Codificaciones de mquina
Nmero de coma flotante 256 Llame al valor A. 2. Divida el valor del campo MDENC por A y llame a este resultado B. 3. Divida B por 16 y llame al resultado C. 4. Multiplique C por 16 y reste el resultado a B; llame a este resultado D. 5. Multiplique D por A y llame al resultado E. 6. E es la codificacin necesaria; se puede probar para saber si es igual que cada uno de los valores vlidos para ese tipo de codificacin.

Resumen de las codificaciones de arquitectura de mquina


Las codificaciones correspondientes a las arquitecturas de mquina estn indicadas en la Tabla 58.
Tabla 58. Resumen de codificaciones de arquitecturas de mquina
Arquitectura de mquina AS/400 Intel x86 PowerPC System/390

Codificacin de entero binario normal inverso normal normal

Codificacin de entero decimal empaquetado normal inverso normal normal

Codificacin de coma flotante IEEE normal IEEE inverso IEEE normal System/390

480

Consulta de programacin de aplicaciones (ILE RPG)

Apndice E. Opciones de informe


Este apndice trata sobre los campos MDREP y MDMFL que forman parte del descriptor de mensaje MQMD especificado en las llamadas MQGET, MQPUT y MQPUT1 (vea el Captulo 10. MQMD - Descriptor de mensaje en la pgina 85). Este apndice describe: v La estructura del campo de informe y cmo lo procesa el gestor de colas v De qu manera debe la aplicacin analizar el campo de informe v La estructura del campo de distintivos de mensaje

Estructura del campo de informe


El campo MDREP es un entero de 32 bits que se divide en tres subcampos aparte. Estos subcampos identifican: v Las opciones de informe que se rechazan si el gestor de colas local no las reconoce v Las opciones de informe que se aceptan siempre, incluso si el gestor de colas local no las reconoce v Las opciones de informe que solo se aceptan si se satisfacen ciertas condiciones Cada subcampo se identifica mediante una mscara de bits que tiene bits 1 en las posiciones que corresponden al subcampo y bits 0 en los dems lugares. Observe que los bits de un subcampo no son necesariamente adyacentes. Los bits estn numerados de tal modo que el bit 0 es el ms significativo y el bit 31, el menos significativo. Para identificar los subcampos, se definen estas mscaras: RORUM Mscara de las opciones de informe no soportadas que se rechazan. Esta mscara identifica las posiciones de bit dentro del campo MDREP en las que las opciones de informe no soportadas por el gestor de colas local harn que falle la llamada MQPUT o MQPUT1 con el cdigo de terminacin CCFAIL y el cdigo de razn RC2061. Este subcampo ocupa las posiciones de bit 3 y de la 11 a la 13. ROAUM Mscara de las opciones de informe no soportadas que se aceptan. Esta mscara identifica las posiciones de bit dentro del campo MDREP en las que las opciones no soportadas por el gestor de colas local s se aceptarn en las llamadas MQPUT o MQPUT1. En este caso, se devuelve el cdigo de terminacin CCWARN junto con el cdigo de razn RC2104. Este subcampo ocupa las posiciones de bit de la 0 a la 2, de la 4 a la 10 y de la 24 a la 31. En este subcampo se incluyen las siguientes opciones de informe: ROCMTC RODLQ RODISC ROEXC ROEXCD ROEXCF ROEXP
Copyright IBM Corp. 1994, 2000

481

Opciones de informe
ROEXPD ROEXPF RONAN RONMI RONONE ROPAN ROPCI ROPMI ROAUXM Mscara de las opciones de informe no soportadas que solo se aceptan en ciertas circunstancias. Esta mscara identifica las posiciones de bit dentro del campo MDREP en las que las opciones de informe no soportadas por el gestor de colas local s se aceptarn en las llamadas MQPUT o MQPUT1, siempre y cuando se satisfagan estas dos condiciones: v El mensaje est destinado a un gestor de colas remoto. v La aplicacin no va a poner el mensaje directamente en una cola de transmisin local (es decir, la cola identificada por los campos ODMN y ODON del descriptor de objeto especificado en la llamada MQOPEN o MQPUT1 no es una cola de transmisin local). Se devuelve el cdigo de terminacin CCWARN junto con el cdigo de razn RC2104 si se satisfacen estas condiciones; si no se satisfacen, se devuelve el cdigo de terminacin CCFAIL junto con el cdigo de razn RC2061. Este subcampo ocupa las posiciones de bit de la 14 a la 23. En este subcampo se incluyen las siguientes opciones de informe: ROCOA ROCOAD ROCOAF ROCOD ROCODD ROCODF Si hubiera alguna opcin especificada en el campo MDREP que el gestor de colas no reconociera, este comprobar cada subcampo por turno, utilizando la operacin AND a nivel de bit para combinar el campo MDREP con la mscara de ese subcampo. Si el resultado de esa operacin no es cero, se devuelven el cdigo de terminacin y los cdigos de razn antes descritos. Si se devuelve CCWARN, no queda definido qu cdigo de razn se ha de devolver si se dan otras condiciones de aviso. La capacidad para especificar y lograr que se acepten las opciones de informe no reconocidas por el gestor de colas local resulta til cuando se desea enviar un mensaje con una opcin de informe que un gestor de colas remoto reconocer y procesar.

Anlisis del campo de informe


El campo MDREP consta de subcampos; por ello, las aplicaciones que tienen que comprobar si el emisor del mensaje solicit un determinado informe deben utilizar la tcnica descrita ms abajo.

482

Consulta de programacin de aplicaciones (ILE RPG)

Opciones de informe

Utilizacin de la aritmtica
Los pasos que siguen se realizan con la aritmtica de los nmeros enteros: 1. Seleccione uno de los valores siguientes, segn sea el tipo de informe que se ha de comprobar: Tipo de informe Valor que se ha de usar COA ROCOA COD ROCOD De excepcin ROEXC De caducidad ROEXP Llame al valor A. Divida el campo MDREP por A; llame B al resultado. Divida B por 8 y llame al resultado C. Multiplique C por 8 y reste el resultado de B; llame a este resultado D. Multiplique D por A y llame al resultado E. Pruebe E para saber si es igual que los valores vlidos para ese tipo de informe. Por ejemplo, si A es ROEXC, pruebe si E es igual a cada uno de los valores siguientes para averiguar qu especific el emisor del mensaje: RONONE ROEXC ROEXCD ROEXCF Las pruebas pueden realizarse en el orden que sea ms apropiado para la lgica de la aplicacin. El seudocdigo siguiente ilustra esta tcnica para los mensajes de informe de excepcin:
A B C D E = = = = = MQRO_EXCEPTION Report/A B/8 B - C*8 D*A

2. 3. 4. 5. 6.

Se puede utilizar un mtodo parecido para probar las opciones ROPMI o ROPCI; seleccione como valor A la constante, de entre estas dos, que le parezca apropiada y luego contine tal como se ha descrito anteriormente, solo que sustituya el valor 8 de los pasos anteriores por el valor 2.

Estructura del campo de distintivos de mensaje


El campo MDMFL es un entero de 32 bits que se divide en tres subcampos aparte. Estos subcampos identifican: v Los distintivos de mensaje que se rechazan si el gestor de colas local no los reconoce v Los distintivos de mensaje que se aceptan siempre, incluso si el gestor de colas local no los reconoce v Los distintivos de mensaje que solo se aceptan si se satisfacen ciertas condiciones

Apndice E. Opciones de informe

483

Opciones de informe
Nota: Todos los subcampos de MDMFL estn reservados para que los utilice el gestor de colas. Cada subcampo se identifica mediante una mscara de bits que tiene bits 1 en las posiciones que corresponden al subcampo y bits 0 en los dems lugares. Los bits estn numerados de tal modo que el bit 0 es el ms significativo y el bit 31, el menos significativo. Para identificar los subcampos, se definen estas mscaras: MFRUM Mscara de los distintivos de mensaje no soportados que se rechazan. Esta mscara identifica las posiciones de bit dentro del campo MDMFL en las que los distintivos de mensaje que no estn soportados por el gestor de colas local harn que falle la llamada MQPUT o MQPUT1 con el cdigo de terminacin CCFAIL y el cdigo de razn RC2249. Este subcampo ocupa las posiciones de bit de la 20 a la 31. En este subcampo se incluyen los siguientes distintivos de mensaje: MFLMIG MFLSEG MFMIG MFSEG MFSEGA MFAUM Mscara de los distintivos de mensaje no soportados que se aceptan. Esta mscara identifica las posiciones de bit dentro del campo MDMFL en las que los distintivos de mensaje que no estn soportados por el gestor de colas local s se aceptarn en las llamadas MQPUT o MQPUT1. El cdigo de terminacin es CCOK. Este subcampo ocupa las posiciones de bit de la 0 a la 11. MFAUXM Mscara de los distintivos de mensaje no soportados que solo se aceptan en ciertas circunstancias. Esta mscara identifica las posiciones de bit dentro del campo MDMFL en las que los distintivos de mensaje que no estn soportados por el gestor de colas local s se aceptarn en las llamadas MQPUT o MQPUT1 siempre y cuando se satisfagan las dos siguientes condiciones: v El mensaje est destinado a un gestor de colas remoto. v La aplicacin no est poniendo los mensajes directamente en una cola de transmisin local (es decir, la cola identificada por los campos ODMN y ODON del descriptor de objeto especificado en la llamada MQOPEN o MQPUT1 no es una cola de transmisin local). Se devuelve el cdigo de terminacin CCOK si se satisfacen estas condiciones, y se devuelve CCFAIL con el cdigo de razn RC2249 si no se satisfacen. Este subcampo ocupa las posiciones de bit de la 12 a la 19. Si en el campo MDMFL se han especificado distintivos que el gestor de colas no reconoce, este comprueba cada subcampo por turno utilizando la operacin AND a nivel de bit para combinar el campo MDMFL con la mscara de ese subcampo. Si el resultado de esa operacin no es cero, se devuelven el cdigo de terminacin y los cdigos de razn antes descritos.

484

Consulta de programacin de aplicaciones (ILE RPG)

Apndice F. Conversin de datos


En este apndice se describe la interfaz de la rutina de salida de conversin de datos y el proceso realizado por el gestor de colas cuando es preciso efectuar la conversin de datos. La rutina de salida de conversin de datos se invoca como parte del proceso de la llamada MQGET, con el fin de convertir los datos del mensaje de aplicacin a la representacin que requiere la aplicacin receptora. La conversin de los datos del mensaje de aplicacin es opcional (en la llamada MQGET debe especificarse la opcin GMCONV). Se describen los siguientes puntos: v El proceso realizado por el gestor de colas como respuesta a la opcin GMCONV; vea Proceso de conversin. v Los convenios de proceso empleados por el gestor de colas al procesar un formato incorporado; estos convenios se recomiendan asimismo para las rutinas de salida escritas por el usuario. Vea Convenios de proceso en la pgina 487. v Consideraciones especiales sobre la conversin de los mensajes de informe; vea Conversin de los mensajes de informe en la pgina 491. v Los parmetros que se pasan a la rutina de salida de conversin de datos; vea MQCONVX - Rutina de salida de conversin de datos en la pgina 504. v Una llamada que se puede usar desde la rutina de salida para convertir los datos de tipo carcter entre las distintas representaciones; vea MQXCNVC Convertir caracteres en la pgina 499. v El parmetro estructura de datos especfico de la rutina de salida; vea MQDXP Parmetro de rutina de salida de conversin de datos en la pgina 493.

Proceso de conversin
Si se especifica la opcin GMCONV en la llamada MQGET y hay un mensaje que deba devolverse a la aplicacin, el gestor de colas realiza estas acciones: 1. No es preciso hacer ninguna conversin si se cumple una o varias de estas condiciones: v Los valores de MDCSI y MDENC de la informacin de control del mensaje son idnticos a los que hay en el parmetro MSGDSC. v La longitud de los datos del mensaje de aplicacin es cero. v La longitud del parmetro BUFFER es cero. En estos casos, el mensaje se devuelve sin convertir a la aplicacin que emiti la llamada MQGET; los valores de MDCSI y MDENC del parmetro MSGDSC se establecen en los valores de la informacin de control del mensaje; la llamada se completa con una de las siguientes combinaciones de cdigo de terminacin y cdigo de razn: Cdigo de terminacin Cdigo de razn CCOK RCNONE CCWARN RC2079
Copyright IBM Corp. 1994, 2000

485

Proceso de conversin
CCWARN RC2080 Si resulta que el valor de MDCSI o de MDENC de la informacin de control del mensaje es distinto del valor que hay en el parmetro MSGDSC y adems hay datos que convertir, se realizan estos pasos: 2. Si el campo MDFMT de la informacin de control del mensaje tiene el valor FMNONE, el mensaje se devuelve sin convertir, con el cdigo de terminacin CCWARN y el cdigo de razn RC2110. En los dems casos, se sigue realizando el proceso de conversin. 3. El mensaje se elimina de la cola y se coloca en un almacenamiento intermedio temporal cuyo tamao es el del parmetro BUFFER. En las operaciones de examinar, el mensaje se copia en el almacenamiento intermedio, pero no se elimina de la cola. 4. Si es necesario truncar el mensaje para que quepa en el almacenamiento intermedio, se realizan estas acciones: v Si no se ha especificado la opcin GMATM, el mensaje se devuelve sin convertir, con el cdigo de terminacin CCWARN y el cdigo de razn RC2080. v Si la opcin GMATM s se ha especificado, el cdigo de terminacin adquiere el valor CCWARN, el cdigo de razn adquiere el valor RC2079 y el proceso de conversin contina. 5. Si el mensaje cabe en el almacenamiento intermedio sin truncarse o si se ha especificado la opcin GMATM, se llevan a cabo estas acciones: v Si el formato es incorporado, se pasa el almacenamiento intermedio al servicio de conversin de datos del gestor de colas. v Si el formato no es incorporado, se pasa el almacenamiento intermedio a una rutina de salida escrita por usuario cuyo nombre coincide con el del formato. Si no se puede localizar la rutina de salida, el mensaje se devuelve sin convertir, con el cdigo de terminacin CCWARN y el cdigo de razn RC2110. Si no se produce ningn error, la salida del servicio de conversin de datos o de la rutina de salida escrita por usuario es el mensaje convertido ms el cdigo de terminacin y el cdigo de razn que se han de devolver a la aplicacin que emiti la llamada MQGET. 6. Si la conversin resulta satisfactoria, el gestor de colas devuelve el mensaje convertido a la aplicacin. En tal caso, el cdigo de terminacin y el cdigo de razn devueltos por la llamada MQGET suelen formar una de estas combinaciones: Cdigo de terminacin Cdigo de razn CCOK RCNONE CCWARN RC2079 | | | Sin embargo, si la conversin la realiza una rutina de salida escrita por usuario, puede ser que se devuelvan otros cdigos de razn, aunque la conversin haya resultado satisfactoria. Si (por cualquier motivo) falla la conversin, el gestor de colas devuelve el mensaje sin convertir a la aplicacin, con los campos MDCSI y MDENC del

486

Consulta de programacin de aplicaciones (ILE RPG)

Proceso de conversin
parmetro MSGDSC establecidos en los valores de la informacin de control del mensaje y con el cdigo de terminacin CCWARN. Ms adelante figuran los posibles cdigos de razn.

Convenios de proceso
Cuando se convierte un formato incorporado, el gestor de colas sigue los convenios de proceso descritos ms abajo. Conviene que las rutinas de salida escritas por usuario tambin se ajusten a estos convenios, aunque el gestor de colas no los impone. Los formatos incorporados convertidos por el gestor de colas son: FMADMN FMCICS FMCMD1 FMCMD2 FMDLH FMDH FMEVNT FMIMS FMIMVS FMMDE FMPCF FMRMH FMSTR FMTM FMXQH 1. Si el mensaje se expande durante la conversin y sobrepasa el tamao del parmetro BUFFER, se realizan estas acciones: v Si no se ha especificado la opcin GMATM, el mensaje se devuelve sin convertir, con el cdigo de terminacin CCWARN y el cdigo de razn RC2120. v Si la opcin GMATM s se ha especificado, el mensaje se trunca, el cdigo de terminacin adquiere el valor CCWARN, el cdigo de razn adquiere el valor RC2079 y el proceso de conversin contina. 2. Si se produce truncamiento (ya sea antes o durante la conversin), es posible que el nmero de bytes vlidos devueltos en el parmetro BUFFER sea menor que la longitud del almacenamiento intermedio. Podra ocurrir esto si, por ejemplo, un entero de 4 bytes o un carcter DBCS no cabe por completo al final del almacenamiento intermedio. El elemento de informacin incompleto no se convierte, por lo que esos bytes del mensaje devuelto no contienen informacin vlida. Tambin podra suceder esto si un mensaje truncado antes de la conversin encogiera durante ella. Si el nmero de bytes vlidos devueltos es menor que la longitud del almacenamiento intermedio, los bytes no utilizados al final del almacenamiento intermedio se establecen en nulos. 3. Si una matriz o una serie no cabe por completo al final del almacenamiento intermedio, se convierte la mayor cantidad posible de datos; lo nico que no se convierte es el elemento de matriz o el carcter DBCS que se qued incompleto; los elementos de matriz o los caracteres anteriores s se convierten. 4. Si se produce truncamiento (ya sea antes o durante la conversin), la longitud del parmetro DATLEN que se devuelve es la longitud del mensaje no convertido antes del truncamiento.

Apndice F. Conversin de datos

487

Convenios de proceso
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5. Cuando las series se convierten entre los juegos de caracteres de un solo byte (SBCS), los de doble byte (DBCS) o los de mltiples bytes (MBCS), es posible que las series se expandan o se contraigan. v En los formatos PCF FMADMN, FMEVNT y FMPCF, las series de las estructuras MQCFST y MQCFSL se expanden o se contraen lo que sea necesario para dar cabida a la serie despus de la conversin. En el caso de la estructura de lista de series MQCFSL, las series de la lista se pueden expandir o contraer en distintas cantidades. Si as fuera, el gestor de colas rellena con blancos las series ms cortas para que adquieran la longitud de la serie ms larga una vez realizada la conversin. v En el formato FMRMH, las series a las que se aplican los campos RMSEO, RMSNO, RMDEO y RMDNO se expanden o se contraen lo que sea necesario para dar cabida a las series despus de la conversin. v En el formato FMRFH, el campo RFNVS se expande o se contrae lo que sea preciso para dar cabida a los pares nombre/valor despus de la conversin. v En las estructuras cuyos campos tienen un tamao fijo, el gestor de colas permite a las series expandirse o contraerse dentro de los campos fijos, siempre y cuando no se pierda informacin significativa. Con respecto a esto, los blancos finales y los caracteres que siguen al primer carcter nulo del campo se consideran no significativos. Si la serie se expande, pero solo es necesario descartar caracteres no significativos para que la serie convertida quepa en el campo, las conversin resulta satisfactoria y la llamada se completa con el cdigo de terminacin CCOK y el cdigo de razn RCNONE (presuponiendo que no haya otros errores). Si la serie se expande, pero es preciso descartar caracteres significativos de la serie convertida para que esta quepa en el campo, el mensaje se devuelve sin convertir y la llamada se completa con CCWARN y el cdigo de razn RC2190. Si la serie se contrae, el gestor de colas la rellena con blancos hasta que adquiere la longitud del campo. 6. En el caso de los mensajes que constan de una o varias estructuras de cabecera MQ seguidas de datos de usuario, es posible que se conviertan una o varias de las estructuras de cabecera, mientras el resto del mensaje se queda sin convertir. Sin embargo, (con dos excepciones) los campos MDCSI y MDENC de cada estructura de cabecera siempre indican correctamente el juego de caracteres y la codificacin de los datos que siguen a la estructura de cabecera. Las dos excepciones son las estructuras MQCIH y MQIIH, donde los valores de los campos MDCSI y MDENC de esas estructuras no son significativos. En el caso de esas estructuras, los datos que siguen a la estructura tienen el mismo juego de caracteres y la misma codificacin que la propia estructura MQCIH o MQIIH. 7. Si los campos MDCSI o MDENC de la informacin de control del mensaje que se est recuperando o del parmetro MSGDSC especifican valores que no estn definidos o soportados, el gestor de colas puede hacer caso omiso del error si el valor no definido o no soportado no se tiene que usar al convertir el mensaje. Por ejemplo, si el campo MDENC del mensaje especifica una codificacin de coma flotante no soportada, pero el mensaje solo contiene datos de tipo entero o contiene datos de tipo coma flotante que no es preciso convertir (porque las codificaciones de coma flotante origen y destino son idnticas), puede ser que el error se diagnostique o que no.

488

Consulta de programacin de aplicaciones (ILE RPG)

Convenios de proceso
Si el error se diagnostica, el mensaje se devuelve sin convertir, con el cdigo de terminacin CCWARN y uno de estos cdigos de razn: RC2111, RC2112, RC2113, RC2114 o bien RC2115, RC2116, RC2117, RC2118 (segn corresponda); los campos MDCSI y MDENC del parmetro MSGDSC adquieren los valores de la informacin de control que hay en el mensaje. Si el error no se diagnostica y la conversin se completa satisfactoriamente, los valores devueltos en los campos MDCSI y MDENC del parmetro MSGDSC son los especificados por la aplicacin que emite la llamada MQGET. 8. En todos los casos, si el mensaje se devuelve a la aplicacin sin convertir, el cdigo de terminacin adquiere el valor CCWARN y los campos MDCSI y MDENC del parmetro MSGDSC se establecen en los valores apropiados de los datos sin convertir. Esto tambin se realiza para FMNONE. El parmetro REASON se establece en un cdigo que indica por qu no se pudo llevar a cabo la conversin, a menos que el mensaje tambin se haya tenido que truncar; los cdigos de razn relacionados con el truncamiento tienen prioridad sobre los cdigos de razn relacionados con la conversin. (Para averiguar si se ha convertido un mensaje truncado, compruebe los valores devueltos en los campos MDCSI y MDENC del parmetro MSGDSC). Cuando se diagnostica un error, se devuelve ya sea el cdigo de razn especfico o el cdigo de razn general, que es RC2119. El cdigo de razn devuelto depende de las posibilidades de diagnstico del servicio de conversin de datos subyacente. 9. Si se devuelve el cdigo de terminacin CCWARN y hay ms de un cdigo de razn relevante, el orden de prioridad es el que figura a continuacin. a. Las siguientes razones tienen prioridad sobre todas las dems: RC2079 b. Por orden de prioridad, la siguiente razn es: RC2110 c. El orden de prioridad de los dems cdigos de razn no est definido. 10. Al completarse la llamada MQGET: v El siguiente cdigo de razn indica que el mensaje se ha convertido satisfactoriamente: RCNONE v El siguiente cdigo de razn indica que el mensaje puede haberse convertido satisfactoriamente (compruebe los campos MDCSI y MDENC del parmetro MSGDSC para averiguarlo): RC2079 v Todos los dems cdigos de razn indican que el mensaje no se ha convertido. El proceso siguiente es especfico de los formatos incorporados; no es aplicable a los formatos definidos por el usuario: 11. Con la excepcin de los formatos siguientes: FMADMN FMEVNT FMIMVS FMPCF FMSTR Ninguno de los formatos incorporados se puede convertir a juegos de caracteres (ni desde ellos) que no tengan caracteres SBCS para los caracteres que son vlidos para los nombres de cola. Si se intenta hacer una conversin

| | | | | | | | |

Apndice F. Conversin de datos

489

Convenios de proceso
| | | | | as, se devuelve el mensaje sin convertir, con el cdigo de terminacin CCWARN y el cdigo de razn RC2111 o RC2115, segn corresponda. El juego de caracteres Unicode UCS-2 es un ejemplo de juego de caracteres que no tiene caracteres SBCS para los caracteres vlidos de los nombres de cola. 12. Si, en el caso de un formato incorporado, se truncan los datos del mensaje, los campos del mensaje que contienen longitudes de series o cuentas de elementos o de estructuras no se ajustan para reflejar la longitud de los datos que realmente se han devuelto a la aplicacin; los valores de esos campos de los datos del mensaje que se devuelven son los valores aplicables al mensaje antes del truncamiento. Cuando se procesan mensajes como un mensaje FMADMN truncado, hay que tener la precaucin de asegurar que la aplicacin no intente acceder a los datos ms all del final de los datos devueltos. 13. Si el nombre del formato es FMDLH, los datos del mensaje empiezan por una estructura MQDLH, que puede ir seguida de cero o ms bytes de datos del mensaje de aplicacin. Los campos DLFMT, DLCSI y DLENC de la estructura MQDLH son los que definen el formato, la codificacin y los datos del mensaje de aplicacin al principio del mensaje. Debido a que la estructura MQDLH y los datos del mensaje de aplicacin tienen distintas codificaciones y distintos juegos de caracteres, es posible que sea preciso convertir la estructura MQDLH y/o los datos del mensaje de aplicacin. El gestor de colas convierte la estructura MQDLH en primer lugar, si es necesario. Si la conversin es satisfactoria o si no es necesario convertir la estructura MQDLH, el gestor de colas comprueba los campos DLCSI y DLENC de la estructura MQDLH para ver si es preciso convertir los datos del mensaje de aplicacin. Si es preciso convertirlos, el gestor de colas invoca la rutina de salida escrita por usuario que tiene el nombre dado por el campo DLFMT de la estructura MQDLH, o bien l mismo realiza la conversin (si el campo DLFMT es el nombre de un formato incorporado). Si la llamada MQGET devuelve el cdigo de terminacin CCWARN y el cdigo de razn es uno de los que indican que no se ha podido hacer la conversin, es que se ha dado una de las siguientes situaciones: v No se ha podido convertir la estructura MQDLH. En este caso, tampoco se habrn convertido los datos del mensaje de aplicacin. v Se ha convertido la estructura MQDLH, pero no as los datos del mensaje de aplicacin. La aplicacin puede examinar los valores devueltos en los campos MDCSI y MDENC del parmetro MSGDSC, as como los de la estructura MQDLH, para averiguar cul de las dos situaciones anteriores se ha dado. 14. Si el nombre del formato es FMXQH, los datos del mensaje empiezan por una estructura MQXQH, que puede ir seguida de cero o ms bytes de datos adicionales. Estos datos adicionales suelen ser los datos del mensaje de aplicacin (cuya longitud puede ser cero), pero tambin puede haber una o varias estructuras de cabecera MQ ms situadas al principio de los datos adicionales. La estructura MQXQH debe tener el juego de caracteres y la codificacin del gestor de colas. Los campos MDFMT, MDCSI y MDENC de la estructura MQMD que estn dentro de la estructura MQXQH son los que proporcionan el formato, el juego de caracteres y la codificacin de los datos que siguen a la estructura MQXQH. Para cada estructura de cabecera MQ ulterior que est presente, los

490

Consulta de programacin de aplicaciones (ILE RPG)

Convenios de proceso
campos MDFMT, MDCSI y MDENC de la estructura describen los datos que siguen a esa estructura; esos datos pueden ser otra estructura de cabecera MQ o bien los datos del mensaje de aplicacin. Si se especifica la opcin GMCONV para un mensaje FMXQH, se convierten los datos del mensaje de aplicacin y algunas de las estructuras de cabecera MQ, pero no as los datos que hay en la estructura MQXQH. Por lo tanto, en la devolucin de la llamada MQGET: v Los valores de los campos MDFMT, MDCSI y MDENC del parmetro MSGDSC describen los datos de la estructura MQXQH, no los datos del mensaje de aplicacin; por ello, los valores no coincidirn con los especificados por la aplicacin que emiti la llamada MQGET. Como consecuencia de ello, la aplicacin que obtiene repetidamente mensajes de una cola de transmisin teniendo especificada la opcin GMCONV debe restablecer, antes de cada llamada MQGET, los campos MDCSI y MDENC del parmetro MSGDSC, dndoles los valores deseados para los datos del mensaje de aplicacin. v Los valores de los campos MDFMT, MDCSI y MDENC de la ltima estructura de cabecera MQ que estaba presente describen los datos del mensaje de aplicacin. Si no hay ninguna otra estructura de cabecera MQ, los datos del mensaje de aplicacin los describen estos campos de la estructura MQMD que hay dentro de la estructura MQXQH. Si la conversin es satisfactoria, los valores sern idnticos a los especificados en el parmetro MSGDSC por la aplicacin que emiti la llamada MQGET. Si se trata de un mensaje de lista de distribucin, la estructura MQXQH va seguida de una estructura MQDH (ms las correspondientes matrices de registros MQOR y MQPMR), que a su vez puede ir seguida de cero o ms estructuras de cabecera MQ adicionales y de cero o ms bytes de datos del mensaje de aplicacin. Al igual que la estructura MQXQH, la estructura MQDH debe tener el juego de caracteres y la codificacin del gestor de colas, y no se convierte en la llamada MQGET, ni siquiera si se especifica la opcin GMCONV. El proceso de las estructuras MQXQH y MQDH antes descrito est pensado principalmente para que lo utilicen los agentes de canal de mensajes (MCA) cuando obtienen mensajes de la cola de transmisin.

Conversin de los mensajes de informe


Un mensaje de informe puede contener cantidades variables de datos de mensaje de aplicacin, en funcin de las opciones especificadas por el emisor del mensaje original. En concreto, un mensaje de informe puede: 1. No contener ningn dato de mensaje de aplicacin 2. Contener algunos de los datos de mensaje de aplicacin del mensaje original Esto ocurre cuando el emisor del mensaje original especifica RO*D y el mensaje tiene ms de 100 bytes. 3. Contener todos los datos de mensaje de aplicacin del mensaje original Esto ocurre cuando el emisor del mensaje original especifica RO*F o bien especifica RO*D y la longitud del mensaje es menor o igual que 100 bytes. El gestor de colas o el agente de canal de mensajes, cuando generan un mensaje de informe, copian el nombre de formato del mensaje original en el campo MDFMT que hay en la informacin de control del mensaje de informe. Por lo tanto, el nombre

Apndice F. Conversin de datos

491

Conversin de los mensajes de informe


de formato del mensaje de informe puede tener implcita una longitud de datos que sea distinta de la longitud que est realmente presente en el mensaje de informe (los casos 1 y 2, ms arriba). Si se especifica la opcin GMCONV al recuperar el mensaje de informe: v En el caso 1 anterior, no se invocar la rutina de salida de conversin de datos (porque el mensaje de informe no tiene datos). v En el caso 3 anterior, la longitud de los datos del mensaje est correctamente implcita en el nombre del formato. v Pero en el caso 2 anterior, se invocar la rutina de salida de conversin de datos con el fin de convertir un mensaje cuya longitud es menor que la longitud implcita en el nombre del formato. Adems, el cdigo de razn que se pasa a la rutina de salida ser habitualmente RCNONE (es decir, el cdigo de razn no indicar que se ha truncado el mensaje). Ello se debe a que ha sido el emisor del mensaje de informe el que ha truncado los datos del mensaje, en vez de hacerlo el gestor de colas del receptor al responder a la llamada MQGET. A causa de estas posibilidades, la rutina de salida de conversin de datos no debe usar el nombre de formato para deducir la longitud de los datos que le han pasado; por el contrario, la rutina de salida debe comprobar la longitud de los datos proporcionados y estar preparada para convertir menos datos que los que estn implcitos en la longitud del nombre de formato. Si los datos se pueden convertir satisfactoriamente, la rutina de salida debe devolver el cdigo de terminacin CCOK y el cdigo de razn RCNONE. La longitud de los datos de mensaje que se tienen que convertir se pasa a la rutina de salida como parmetro INLEN.

492

Consulta de programacin de aplicaciones (ILE RPG)

MQDXP - Parmetro de rutina de salida de conversin de datos


Interfaz de programacin sensible al producto

MQDXP Parmetro de rutina de salida de conversin de datos


La siguiente tabla resume los campos de la estructura.
Tabla 59. Campos de MQDXP
Campo DXSID DXVER DXAOP DXENC DXCSI DXLEN DXCC DXREA DXRES DXHCN Descripcin Identificador de estructura Nmero de versin de estructura Opciones de aplicacin Codificacin de tipo numrico requerida por la aplicacin Juego de caracteres requerido por la aplicacin Longitud en bytes de los datos del mensaje Cdigo de terminacin Cdigo de razn que califica a DXCC Respuesta de la rutina de salida Asa de conexin Pgina 493 494 494 494 494 495 495 496 497 498

La estructura MQDXP es un parmetro que se pasa a la rutina de salida de conversin de datos. En la descripcin de la llamada MQCONVX encontrar detalles de la rutina de salida de conversin de datos. Los campos DXLEN, DXCC, DXREA y DXRES de MQDXP son los nicos que la rutina de salida puede cambiar; los cambios realizados en los dems campos no se tienen en cuenta. Sin embargo, el campo DXLEN no se puede cambiar si el mensaje que se est convirtiendo es un segmento que solo contiene parte del mensaje lgico. Cuando la rutina de salida devuelve el control al gestor de colas, este comprueba los valores devueltos en MQDXP. Si no son vlidos, el gestor de colas contina el proceso como si la rutina de salida hubiese devuelto XRFAIL en DXRES; sin embargo, el gestor de colas hace caso omiso de los valores de los campos DXCC y DXREA devueltos por la rutina de salida en este caso y utiliza en su lugar los valores que estos campos tenan como entrada de la rutina de salida. Los valores de MQDXP que dan lugar a este proceso son los siguientes: v El campo DXRES no es XROK ni XRFAIL v El campo DXCC no es CCOK ni CCWARN v El campo DXLEN es menor que cero o bien el campo DXLEN ha cambiado, pero el mensaje que se est convirtiendo es un segmento que solo contiene parte del mensaje lgico.

Campos
DXSID (serie de caracteres de 4 bytes) Identificador de estructura. El valor debe ser: DXSIDV Identificador de la estructura de parmetro de la rutina de salida de conversin de datos.
Apndice F. Conversin de datos

493

MQDXP - Parmetro de rutina de salida de conversin de datos


Es un campo de entrada de la rutina de salida. DXVER (entero con signo de 10 dgitos) Nmero de versin de la estructura. El valor debe ser: DXVER1 Nmero de versin de la estructura de parmetro de la rutina de salida de conversin de datos. La siguiente constante especifica el nmero de la versin actual: DXVERC Versin actual de la estructura de parmetro de la rutina de salida de conversin de datos. Nota: Cuando se introduce una versin nueva de esta estructura, el diseo de la parte existente no vara. Por lo tanto, la rutina de salida debe comprobar que el campo DXVER es igual o mayor que la versin inferior que contiene los campos que la rutina de salida necesita utilizar. Es un campo de entrada de la rutina de salida. DXXOP (entero con signo de 10 dgitos) Reservado. Es un campo reservado; su valor es 0. DXAOP (entero con signo de 10 dgitos) Opciones de la aplicacin. Es una copia del campo GMOPT de la estructura MQGMO especificada por la aplicacin que emite la llamada MQGET. La rutina de salida puede tener que examinarlas para averiguar si se ha especificado la opcin GMATM. Es un campo de entrada de la rutina de salida. DXENC (entero con signo de 10 dgitos) Codificacin de tipo numrico requerida por la aplicacin. Es la codificacin de tipo numrico requerida por la aplicacin que emite la llamada MQGET; en el campo MDENC de la estructura MQMD hallar ms detalles. Si la conversin resulta satisfactoria, la rutina de salida debe copiar este campo en el campo MDENC del descriptor de mensaje. Es un campo de entrada de la rutina de salida. DXCSI (entero con signo de 10 dgitos) Juego de caracteres requerido por la aplicacin. Es el identificador del juego de caracteres codificado requerido por la aplicacin que emite la llamada MQGET; hallar ms detalles en el campo MDCSI de la estructura MQMD. Si la aplicacin especifica el valor especial CSQM en la llamada MQGET, el gestor de colas, antes de invocar la rutina de salida, cambia este valor por el identificador real del juego de caracteres utilizado por el gestor de colas.

494

Consulta de programacin de aplicaciones (ILE RPG)

MQDXP - Parmetro de rutina de salida de conversin de datos


Si la conversin resulta satisfactoria, la rutina de salida debe copiar este valor en el campo MDCSI del descriptor de mensaje. Es un campo de entrada de la rutina de salida. DXLEN (entero con signo de 10 dgitos) Longitud en bytes de los datos del mensaje. Cuando se invoca la rutina de salida, este campo contiene la longitud original de los datos del mensaje de aplicacin. Si se ha truncado el mensaje para que quepa en el almacenamiento intermedio proporcionado por la aplicacin, el tamao del mensaje suministrado a la rutina de salida ser menor que el valor de DXLEN. El tamao del mensaje suministrado realmente a la rutina de salida siempre lo proporciona el parmetro INLEN de la rutina de salida, sin tener en cuenta el truncamiento que pueda haberse producido. El truncamiento lo indica el campo DXREA que tiene el valor RC2079 como entrada de la rutina de salida. La mayora de las conversiones no tendrn que cambiar esta longitud, pero una rutina de salida lo puede hacer si fuese necesario; el valor establecido por la rutina de salida se devuelve a la aplicacin en el parmetro DATLEN de la llamada MQGET. Sin embargo, no se puede cambiar esta longitud si el mensaje que se est convirtiendo es un segmento que solo contiene parte de un mensaje lgico. Ello se debe a que, si se cambia la longitud, podran ser incorrectos los desplazamientos de los segmentos posteriores del mensaje lgico. Tenga presente que, si la rutina de salida quiere cambiar la longitud de los datos, el gestor de colas ya habr decidido si los datos del mensaje caben en el almacenamiento intermedio de la aplicacin, basndose en los datos no convertidos. Esta decisin determina si el mensaje se elimina de la cola (o si se mueve el cursor de examinar, en el caso de una peticin de examinar) y si no resulta afectado por los cambios que haya podido sufrir la longitud de los datos como consecuencia de la conversin. Por ello, se recomienda que las rutinas de salida de conversin no provoquen cambios en la longitud de los datos del mensaje de aplicacin. Si la conversin de caracteres implica un cambio de longitud, una serie se puede convertir en otra que tenga la misma longitud en bytes, truncando los blancos finales o rellenando con blancos segn convenga. No se invocar la rutina de salida si el mensaje no contiene datos de mensaje de aplicacin; por lo que DXLEN siempre es mayor que cero. Es un campo de entrada/salida de la rutina de salida. DXCC (entero con signo de 10 dgitos) Cdigo de terminacin. Cuando se invoca la rutina de salida, este campo contiene el cdigo de terminacin que se devolver a la aplicacin que emiti la llamada MQGET, si la rutina de salida opta por no hacer nada. Siempre es CCWARN, ya sea porque el mensaje se ha truncado o porque necesita convertirse y an no se ha realizado la conversin. En la salida de la rutina de salida, este campo contiene el cdigo de terminacin que se ha de devolver a la aplicacin en el parmetro CMPCOD de la
Apndice F. Conversin de datos

495

MQDXP - Parmetro de rutina de salida de conversin de datos


llamada MQGET; solo son vlidos los cdigos CCOK y CCWARN. Vea la descripcin del campo DXREA para obtener recomendaciones sobre cmo debe la rutina de salida establecer este campo en la salida. Es un campo de entrada/salida de la rutina de salida. DXREA (entero con signo de 10 dgitos) Cdigo de razn que califica a DXCC. Cuando se invoca la rutina de salida, este campo contiene el cdigo de razn que se devolver a la aplicacin que emiti la llamada MQGET, si la rutina de salida opta por no hacer nada. Entre los valores posibles se encuentra RC2079, que indica que el mensaje se ha truncado para que quepa en el almacenamiento intermedio proporcionado por la aplicacin, y RC2119, que indica que es preciso convertir el mensaje pero que la conversin an no se ha realizado. En la salida de la rutina de salida, este campo contiene la razn que se ha de devolver a la aplicacin en el parmetro REASON de la llamada MQGET; tenga en cuenta estas recomendaciones: v Si DXREA tena el valor RC2079 en la entrada de la rutina de salida, no deben alterarse los campos DXREA y DXCC, tanto si la conversin es satisfactoria como si falla. (Si el campo DXCC no es CCOK, la aplicacin que recupera el mensaje puede identificar si la conversin ha sido anmala comparando los valores de MDENC y MDCSI devueltos en el descriptor de mensaje con los valores solicitados; en cambio, la aplicacin no puede distinguir entre un mensaje truncado y un mensaje que ha cabido en el almacenamiento intermedio. Por ello, es preferible devolver RC2079 que cualquier otra razn que indique una anomala de conversin). v Si DXREA tena cualquier otro valor en la entrada de la rutina de salida: Si la conversin resulta satisfactoria, DXCC debe establecerse en CCOK y DXREA en RCNONE. Si falla la conversin o si el mensaje aumenta de longitud y debe truncarse para caber en el almacenamiento intermedio, DXCC debe establecerse en CCWARN (o no variar) y DXREA debe establecerse en uno de los valores que se indican en la lista siguiente, para mostrar la naturaleza del error. Tenga presente que si, tras la conversin, el mensaje es demasiado grande para el almacenamiento intermedio, solo se truncar si la aplicacin que emiti la llamada MQGET especificaba la opcin GMATM: - Si especificaba esta opcin, se devolver la razn RC2079. - Si no especificaba esa opcin, se devolver el mensaje sin convertir, con el cdigo de razn RC2120. Conviene que la rutina de salida utilice los cdigos de razn listados ms abajo para indicar por qu razn fue anmala la conversin, pero la rutina de salida puede devolver otros valores del conjunto de cdigos RC* si se considera conveniente. Adems, los valores comprendidos entre RC0900 y RC0999 se asignan a la rutina de salida para que los utilice con el fin de indicar las condiciones que quiere comunicar a la aplicacin que emite la llamada MQGET.

| | | |

496

Consulta de programacin de aplicaciones (ILE RPG)

MQDXP - Parmetro de rutina de salida de conversin de datos


Nota: Si no se puede convertir el mensaje satisfactoriamente, la rutina de salida debe devolver XRFAIL en el campo DXRES para que as el gestor de colas devuelva el mensaje sin convertir. Esto es vlido en todos los casos, sea cual sea el cdigo de razn devuelto en el campo DXREA. RC0900 (900, X'384') El valor ms bajo de un cdigo de razn definido por aplicacin y devuelto por una rutina de salida de conversin de datos. RC0999 (999, X'3E7') El valor ms alto de un cdigo de razn definido por aplicacin y devuelto por una rutina de salida de conversin de datos. RC2120 (2120, X'848') Los datos convertidos son demasiado grandes para el almacenamiento intermedio. RC2119 (2119, X'847') Los datos del mensaje no se han convertido. RC2111 (2111, X'83F') El identificador de juego de caracteres codificado origen no es vlido. RC2113 (2113, X'841') Codificacin de decimal empaquetado del mensaje no reconocida. RC2114 (2114, X'842') Codificacin de coma flotante del mensaje no reconocida. RC2112 (2112, X'840') Codificacin de entero origen no reconocida. RC2115 (2115, X'843') El identificador de juego de caracteres codificado destino no es vlido. RC2117 (2117, X'845') Codificacin de decimal empaquetado especificada por receptor no reconocida. RC2118 (2118, X'846') Codificacin de coma flotante especificada por receptor no reconocida. RC2116 (2116, X'844') Codificacin de entero destino no reconocida. RC2079 (2079, X'81F') Se ha devuelto un mensaje truncado (el proceso se ha completado). Es un campo de entrada/salida de la rutina de salida. DXRES (entero con signo de 10 dgitos) Respuesta de la rutina de salida. La rutina de salida establece este campo para indicar si la conversin ha sido o no satisfactoria. Debe tener uno de estos valores: XROK Conversin satisfactoria. Si la rutina de salida especifica este valor, el gestor de colas devuelve lo siguiente a la aplicacin que emiti la llamada MQGET: v El valor del campo DXCC en la salida de la rutina de salida. v El valor del campo DXREA en la salida de la rutina de salida. v El valor del campo DXLEN en la salida de la rutina de salida.

| | | | | |

Apndice F. Conversin de datos

497

MQDXP - Parmetro de rutina de salida de conversin de datos


v El contenido del almacenamiento intermedio de salida OUTBUF de la rutina de salida; el nmero de bytes devueltos es el menor de estos dos valores: el del parmetro OUTLEN de la rutina de salida y el valor del campo DXLEN en la salida de la rutina de salida. v El valor del campo MDENC del parmetro descriptor de mensaje de la rutina de salida en la salida de la rutina de salida. v El valor del campo MDCSI del parmetro descriptor de mensaje de la rutina de salida en la salida de la rutina de salida. XRFAIL Conversin no satisfactoria. Si la rutina de salida especifica este valor, el gestor de colas devuelve lo siguiente a la aplicacin que emiti la llamada MQGET: v El valor del campo DXCC en la salida de la rutina de salida. v El valor del campo DXREA en la salida de la rutina de salida. v El valor del campo DXLEN en la entrada de la rutina de salida. v El contenido del almacenamiento intermedio de entrada INBUF de la rutina de salida; el nmero de bytes devueltos los da el parmetro INLEN. Si la rutina de salida ha alterado INBUF, los resultados son imprevisibles. DXRES es un campo de salida de la rutina de salida. DXHCN (entero con signo de 10 dgitos) Asa de conexin. Este campo es un asa de conexin que se puede emplear en la llamada MQXCNVC. Esta asa no tiene por qu coincidir con el asa especificada por la aplicacin que emiti la llamada MQGET.

Declaracin RPG (ILE)


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* Estructura MQDXP D* D* Identificador de estructura D DXSID 1 4 D* Nmero de versin de estructura D DXVER 5 8I 0 D* Reservado D DXXOP 9 12I 0 D* Opciones de la aplicacin D DXAOP 13 16I 0 D* Codificacin de tipo numrico requirida por la aplicacin D DXENC 17 20I 0 D* Juego de caracteres requerido por la aplicacin D DXCSI 21 24I 0 D* Longitud en bytes de los datos del mensaje D DXLEN 25 28I 0 D* Cdigo de terminacin D DXCC 29 32I 0 D* Cdigo de razn que califica a CompCode D DXREA 33 36I 0 D* Respuesta de la rutina de salida D DXRES 37 40I 0 D* Asa de conexin D DXHCN 41 44I 0

498

Consulta de programacin de aplicaciones (ILE RPG)

MQDXP - Parmetro de rutina de salida de conversin de datos

MQXCNVC - Convertir caracteres


La llamada MQXCNVC convierte los caracteres de un juego de caracteres a otro. Esta llamada forma parte de la DCI (interfaz de conversin de datos) de MQSeries, que es una de las interfaces de la Infraestructura MQSeries. Nota: esta llamada solo se puede usar desde una rutina de salida de conversin de datos.

Sintaxis
MQXCNVC (HCONN, OPTS, SRCCSI, SRCLEN, SRCBUF, TGTCSI, TGTLEN, TGTBUF, DATLEN, CMPCOD, REASON)

Parmetros
HCONN (entero con signo de 10 dgitos) entrada Asa de conexin. Esta asa representa la conexin con el gestor de colas. Debe ser normalmente el asa que se pasa a la rutina de salida de conversin de datos en el campo DXHCN de la estructura MQDXP; esta asa no tiene por qu coincidir con la especificada por la aplicacin que emiti la llamada MQGET. En OS/400, se puede especificar para HCONN el siguiente valor especial: HCDEFH Asa de conexin por omisin. OPTS (entero con signo de 10 dgitos) entrada Opciones que controlan la accin de MQXCNVC. Se pueden especificar cero o ms de las opciones descritas ms abajo. Si se requiere ms de una, los valores se pueden aadir al mismo tiempo (pero no se puede aadir una misma constante ms de una vez). Opcin de conversin por omisin: la siguiente opcin controla el uso de la conversin de caracteres por omisin: DCCDEF Conversin por omisin. Esta opcin especifica que se puede utilizar la conversin de caracteres por omisin si no est soportado uno o ninguno de los juegos de caracteres especificados en la llamada. Ello permite que el gestor de colas, cuando convierta la serie, emplee un juego de caracteres por omisin especificado por la instalacin y que se aproxima al juego de caracteres real. Nota: El resultado de utilizar un juego de caracteres aproximado para convertir la serie es que algunos caracteres tal vez no se conviertan como es debido. Para evitarlo, solo se utilizan los caracteres de la serie que son comunes a los dos juegos de caracteres, el real, especificado en la llamada, y el que se toma por omisin. Para especificar el juego de caracteres por omisin, se utiliza una opcin de configuracin en el momento de instalar o reiniciar el gestor de colas.
Apndice F. Conversin de datos

499

MQDXP - Parmetro de rutina de salida de conversin de datos


Si no se especifica DCCDEF, el gestor de colas solo emplea los juegos de caracteres especificados para convertir la serie, y la llamada falla si uno o ninguno de ellos est soportado. | Opcin de rellenar: la siguiente opcin permite al gestor de colas rellenar con blancos la serie convertida o descartar los caracteres finales no significativos, para que as la serie convertida quepa en el almacenamiento intermedio destino: DCCFIL Llenar el almacenamiento intermedio destino. Esta opcin solicita que la conversin se realice de tal forma que el almacenamiento intermedio destino quede completamente lleno: v Si la serie se contrae tras la conversin, se aaden blancos finales para llenar el almacenamiento intermedio destino. v Si la serie se expande al convertirse, se descartan los caracteres finales no significativos para que as la serie convertida quepa en el almacenamiento intermedio destino. Si esto se puede llevar a cabo satisfactoriamente, la llamada se completa con el cdigo de terminacin CCOK y el cdigo de razn RCNONE. Si no es suficiente el nmero de caracteres finales no significativos que se puedan descartar, se coloca en el almacenamiento intermedio destino todo lo que quepa de la serie y la llamada se completa con CCWARN y el cdigo de razn RC2120. Los caracteres no significativos son estos: Los blancos finales Los caracteres que siguen al primer carcter nulo de la serie (sin contar el primer carcter nulo) v Si la serie, TGTCSI y TGTLEN son tales que el almacenamiento intermedio destino no se puede establecer completamente con caracteres vlidos, la llamada falla con CCFAIL y con el cdigo de razn RC2144. Esto puede ocurrir cuando TGTCSI es un juego de caracteres totalmente DBCS (como UCS-2), pero TGTLEN especifica una longitud que es un nmero impar de bytes. v TGTLEN puede ser menor o mayor que SRCLEN. En la devolucin de MQXCNVC, DATLEN tiene el mismo valor que TGTLEN. Si esta opcin no se especifica: v La serie puede contraerse o expandirse dentro del almacenamiento intermedio destino segn sea necesario. Los caracteres finales no significativos no se aaden ni se descartan. Si la serie convertida cabe en el almacenamiento intermedio destino, la llamada se completa con CCOK y con el cdigo de razn RCNONE. Si la serie convertida es demasiado grande para el almacenamiento intermedio destino, se coloca en este todo lo que quepa de la serie y la llamada se completa con CCWARN y con el cdigo de razn RC2120. Fjese que en este caso puede ser que se devuelvan menos bytes que el indicado por TGTLEN. v TGTLEN puede ser menor o mayor que SRCLEN. En la devolucin de MQXCNVC, DATLEN es igual o menor que TGTLEN.

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

500

Consulta de programacin de aplicaciones (ILE RPG)

MQDXP - Parmetro de rutina de salida de conversin de datos


| Opciones de codificacin: las opciones que se describen ms abajo permiten especificar las codificaciones de entero de la serie origen y de la serie destino. Solo se utiliza la codificacin pertinente cuando el correspondiente identificador de juego de caracteres indica que la representacin del juego de caracteres existente en el almacenamiento principal depende de la codificacin utilizada para los enteros binarios. Ello solo afecta a ciertos juegos de caracteres multibyte (por ejemplo, a los juegos de caracteres UCS-2). Se hace caso omiso de la codificacin si el juego de caracteres es de un solo byte (SBCS) o si es un juego de caracteres multibyte cuya representacin en el almacenamiento principal no depende de la codificacin de entero. Solo debe especificarse uno de los valores de tipo DCCS* en combinacin con uno de los valores de tipo DCCT*: DCCSNA La codificacin origen es el valor por omisin del entorno y del lenguaje de programacin. DCCSNO La codificacin origen es normal. DCCSRE La codificacin origen es inversa. DCCSUN La codificacin origen no est definida. DCCTNA La codificacin destino es el valor por omisin del entorno y del lenguaje de programacin. DCCTNO La codificacin destino es normal. DCCTRE La codificacin destino es inversa. DCCTUN La codificacin destino no est definida. Los valores de codificacin antes definidos se pueden aadir directamente al campo OPTS. Sin embargo, si la codificacin origen o destino se obtiene del campo MDENC de MQMD o de otra estructura, es preciso realizar este proceso: 1. La codificacin de entero se debe extraer del campo MDENC eliminando las codificaciones de coma flotante y decimal empaquetado; en Anlisis de codificaciones en la pgina 479 hallar los detalles de cmo puede hacerlo. 2. La codificacin de entero obtenida del paso 1 se debe multiplicar por el factor adecuado antes de aadirla al campo OPTS. Los factores son estos: DCCSFA Factor de codificacin origen DCCTFA Factor de codificacin destino Si no se especifican, las opciones de codificacin toman por omisin el valor que indica que no estn definidas (DCC*UN). En la mayora de los casos, ello no afecta a la conclusin satisfactoria de la llamada MQXCNVC. Sin embargo, si el correspondiente juego de caracteres es un juego de caracteres multibyte

Apndice F. Conversin de datos

501

MQDXP - Parmetro de rutina de salida de conversin de datos


cuya representacin depende de la codificacin (por ejemplo, un juego de caracteres UCS-2), la llamada falla con el cdigo de razn RC2112 o RC2116, segn corresponda. Opcin por omisin: si no se especifica ninguna de las opciones antes descritas, se puede utilizar la siguiente opcin: DCCNON No se ha especificado ninguna opcin. Se ha definido la opcin DCCNON como ayuda para la documentacin del programa. Esta opcin no est destinada a utilizarse con ninguna otra, pero como su valor es cero, no es posible detectarla en el caso de que se utilice. SRCCSI (entero con signo de 10 dgitos) entrada Identificador de juego de caracteres codificado de la serie antes de la conversin. Es el identificador de juego de caracteres codificado de la serie de entrada de SRCBUF. SRCLEN (entero con signo de 10 dgitos) entrada Longitud de la serie antes de la conversin. Es la longitud en bytes de la serie de entrada de SRCBUF; debe ser igual o mayor que cero. SRCBUF (serie de caracteres de 1 byteSRCLEN) entrada La serie que se ha de convertir. Es el almacenamiento intermedio que contiene la serie que se ha de convertir de un juego de caracteres a otro. TGTCSI (entero con signo de 10 dgitos) entrada Identificador de juego de caracteres codificado de la serie despus de la conversin. Es el identificador del juego de caracteres codificado al que se ha de convertir SRCBUF. TGTLEN (entero con signo de 10 dgitos) entrada Longitud del almacenamiento intermedio de salida. Es la longitud en bytes del almacenamiento intermedio de salida TGTBUF; debe ser igual o mayor que cero. Puede ser menor o mayor que SRCLEN. TGTBUF (serie de caracteres de 1 byteTGTLEN) salida La serie despus de la conversin. Es la serie despus de haberse convertido al juego de caracteres definido por TGTCSI. La serie convertida puede ser ms corta o ms larga que la serie sin convertir. El parmetro DATLEN indica el nmero de bytes vlidos devueltos. DATLEN (entero con signo de 10 dgitos) salida Longitud de la serie de salida. Es la longitud de la serie devuelta en el almacenamiento intermedio de salida TGTBUF. La serie convertida puede ser ms corta o ms larga que la serie sin convertir.

502

Consulta de programacin de aplicaciones (ILE RPG)

MQDXP - Parmetro de rutina de salida de conversin de datos


CMPCOD (entero con signo de 10 dgitos) salida Cdigo de terminacin. Es uno de los siguientes: CCOK Conclusin satisfactoria. CCWARN Aviso (conclusin parcial). CCFAIL La llamada ha fallado. REASON (entero con signo de 10 dgitos) salida Cdigo de razn que califica a CMPCOD. Si CMPCOD es CCOK: RCNONE (0, X'000') No hay ninguna razn que notificar. Si CMPCOD es CCWARN: RC2120 (2120, X'848') Los datos convertidos son demasiado grandes para el almacenamiento intermedio. Si CMPCOD es CCFAIL: RC2010 (2010, X'7DA') El parmetro longitud de datos no es vlido. RC2150 (2150, X'866') La serie DBCS no es vlida. RC2018 (2018, X'7E2') El asa de conexin no es vlida. RC2046 (2046, X'7FE') Las opciones no son vlidas o no son coherentes. RC2102 (2102, X'836') No hay suficientes recursos del sistema disponibles. RC2145 (2145, X'861') Parmetro almacenamiento intermedio origen no vlido. RC2111 (2111, X'83F') El identificador de juego de caracteres codificado origen no es vlido. RC2112 (2112, X'840') Codificacin de entero origen no reconocida. RC2143 (2143, X'85F') Parmetro longitud origen no vlido. RC2071 (2071, X'817') No hay suficiente almacenamiento disponible. RC2146 (2146, X'862') Parmetro almacenamiento intermedio destino no vlido. RC2115 (2115, X'843') El identificador de juego de caracteres codificado destino no es vlido. RC2116 (2116, X'844') Codificacin de entero destino no reconocida. RC2144 (2144, X'860') Parmetro longitud destino no vlido. RC2195 (2195, X'893') Se ha producido un error inesperado.
Apndice F. Conversin de datos

503

MQDXP - Parmetro de rutina de salida de conversin de datos


Si desea ms informacin sobre estos cdigos de razn, vea el Apndice A. Cdigos de retorno en la pgina 373.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP MQXCNVC(HCONN : OPTS : SRCCSI : C SRCLEN : SRCBUF : TGTCSI : C TGTLEN : TGTBUF : DATLEN : C CMPCOD : REASON)

La definicin prototipo de la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. DMQXCNVC PR EXTPROC('MQXCNVC') D* Asa de conexin D HCONN 10I 0 VALUE D* Opciones que controlan la accin de MQXCNVC D OPTS 10I 0 VALUE D* Identificador de juego de caracteres codificado de la serie antes de la conversin D SRCCSI 10I 0 VALUE D* Longitud de la serie antes de la conversin D SRCLEN 10I 0 VALUE D* La serie que se ha de convertir D SRCBUF * VALUE D* Identificador de juego de caracteres codificado de la serie tras la conversin D TGTCSI 10I 0 VALUE D* Longitud del almacenamiento intermedio de salida D TGTLEN 10I 0 VALUE D* La serie despus de la conversin D TGTBUF * VALUE D* Longitud de la serie de salida D DATLEN 10I 0 D* Cdigo de terminacin D CMPCOD 10I 0 D* Cdigo de razn que califica a CMPCOD D REASON 10I 0

MQCONVX - Rutina de salida de conversin de datos


Esta definicin de llamada describe los parmetros que se pasan a la rutina de salida de conversin de datos. El gestor de colas no proporciona realmente ningn punto de entrada llamado MQCONVX (vea la nota de utilizacin 11 en la pgina 508). Esta definicin forma parte de la interfaz de conversin de datos (DCI) de MQSeries, que es una de las interfaces de la Infraestructura MQSeries.

Sintaxis
MQCONVX (MQDXP, MQMD, INLEN, INBUF, OUTLEN, OUTBUF)

Parmetros
MQDXP (MQDXP) entrada/salida Bloque de parmetro de rutina de salida de conversin de datos. Esta estructura contiene informacin relacionada con la invocacin de la rutina de salida. La rutina de salida establece informacin en esta estructura para

504

Consulta de programacin de aplicaciones (ILE RPG)

MQDXP - Parmetro de rutina de salida de conversin de datos


indicar el resultado de la conversin. En MQDXP Parmetro de rutina de salida de conversin de datos en la pgina 493 hallar los detalles de los campos de esta estructura. MQMD (MQMD) entrada/salida Descriptor de mensaje. En la entrada de la rutina de salida, este parmetro es el descriptor de mensaje que se devolvera a la aplicacin si no se efectuara ninguna conversin. As pues, contiene los campos MDFMT, MDENC y MDCSI del mensaje no convertido que hay en INBUF. Nota: El parmetro MQMD que se pasa a la rutina de salida siempre es la versin ms reciente de MQMD soportada por el gestor de colas que invoca la rutina de salida. La rutina de salida, si se pretende que sea portable entre distintos entornos, debe comprobar el campo MDVER de MQMD para verificar que los campos a los que ella necesita acceder estn presentes en la estructura. En OS/400, a la rutina de salida se le pasa una MQMD de la versin 2. En la salida, la rutina de salida debe cambiar los campos MDENC y MDCSI por los valores solicitados por la aplicacin, si la conversin ha sido satisfactoria; estos cambios se reflejarn de nuevo en la aplicacin. Se hace caso omiso de los otros cambios que la rutina de salida haga en la estructura; estos no quedan reflejados en la aplicacin. INLEN (entero con signo de 10 dgitos) entrada Longitud en bytes de INBUF. Es la longitud del almacenamiento intermedio de entrada INBUF y especifica el nmero de bytes que debe procesar la rutina de salida. INLEN es la menor de estas dos longitudes: la longitud de los datos del mensaje antes de la conversin y la longitud del almacenamiento intermedio proporcionado por la aplicacin en la llamada MQGET. El valor siempre es mayor que cero. INBUF (serie de bits de 1 byteINLEN) entrada Almacenamiento intermedio que contiene el mensaje sin convertir. Contiene los datos del mensaje antes de la conversin. Si la rutina de salida no logra convertir los datos, el gestor de colas devuelve el contenido de este almacenamiento intermedio a la aplicacin despus de que se haya completado la rutina de salida. Nota: La rutina de salida no debe modificar el parmetro INBUF; de lo contrario, los resultados son imprevisibles. OUTLEN (entero con signo de 10 dgitos) entrada Longitud en bytes de OUTBUF. Es la longitud del almacenamiento intermedio de salida OUTBUF y es igual que la longitud del almacenamiento intermedio proporcionado por la aplicacin en la llamada MQGET. El valor siempre es mayor que cero.

Apndice F. Conversin de datos

505

MQDXP - Parmetro de rutina de salida de conversin de datos


OUTBUF (serie de bits de 1 byteOUTLEN) salida Almacenamiento intermedio que contiene el mensaje convertido. En la salida de la rutina de salida, si la conversin ha sido satisfactoria (tal como indica el valor XROK del campo DXRES del parmetro MQDXP), OUTBUF contiene los datos de mensaje que deben entregarse a la aplicacin, con la representacin solicitada. Si la conversin no ha sido satisfactoria, se har caso omiso de los cambios que la rutina de salida haya realizado en este almacenamiento intermedio.

Notas de utilizacin
1. La rutina de salida de conversin de datos es una rutina de salida escrita por usuario que recibe el control durante el proceso de una llamada MQGET. La funcin que realiza la rutina de salida de conversin de datos est definida por el suministrador de la rutina de salida; no obstante, la rutina de salida debe ajustarse a las normas aqu descritas y en la estructura de parmetro MQDXP asociada. El entorno determina los lenguajes de programacin que pueden utilizarse para una rutina de salida de conversin de datos. 2. Solo se invoca la rutina de salida si se cumplen todas estas condiciones: v Se ha especificado la opcin GMCONV en la llamada MQGET v El campo MDFMT del descriptor de mensaje no es FMNONE v El mensaje no tiene todava la representacin requerida; es decir, uno o los dos campos MDCSI y MDENC del mensaje es distinto del valor especificado por la aplicacin en el descriptor de mensaje suministrado en la llamada MQGET v El gestor de colas an no ha efectuado la conversin satisfactoriamente v La longitud del almacenamiento intermedio de la aplicacin es mayor que cero v La longitud de los datos del mensaje es mayor que cero v Hasta ahora, el cdigo de razn durante la operacin MQGET es RCNONE o RC2079 3. Al escribir una rutina de salida, debe tenerse en cuenta que la rutina de salida se ha de codificar de tal forma que pueda convertir mensajes que se hayan truncado. Las situaciones que pueden dar lugar a mensajes truncados son las siguientes: v La aplicacin receptora proporciona un almacenamiento intermedio ms pequeo que el mensaje, pero especifica la opcin GMATM en la llamada MQGET. En este caso, el campo DXREA del parmetro MQDXP en la entrada de la rutina de salida tendr el valor RC2079. v El emisor del mensaje lo ha truncado antes de enviarlo. Esto puede suceder, por ejemplo, con los mensajes de informe (en Conversin de los mensajes de informe en la pgina 491 hallar ms detalles). En este caso, el campo DXREA del parmetro MQDXP en la entrada de la rutina de salida tendr el valor RCNONE (si la aplicacin receptora ha proporcionado un almacenamiento intermedio cuyo tamao sea suficiente para el mensaje). En consecuencia, el valor del campo DXREA en la entrada de la rutina de salida no siempre se puede utilizar para decidir si el mensaje se ha truncado.

506

Consulta de programacin de aplicaciones (ILE RPG)

MQDXP - Parmetro de rutina de salida de conversin de datos


El rasgo distintivo de un mensaje truncado es que la longitud suministrada a la rutina de salida en el parmetro INLEN ser menor que la longitud implcita en el nombre de formato contenido en el campo MDFMT del descriptor de mensaje. Por lo tanto, la rutina de salida debe comprobar el valor de INLEN antes de intentar convertir ninguno de los datos; la rutina de salida no debe dar por supuesto que se ha facilitado todo el volumen de datos que se deduce del nombre del formato. Si la rutina de salida no se ha escrito para permitir la conversin de mensajes truncados y resulta que INLEN es menor que el valor esperado, la rutina de salida devolver XRFAIL en el campo DXRES del parmetro MQDXP, con los campos DXCC y DXREA establecidos en CCWARN y RC2110 respectivamente. La rutina de salida, si se ha escrito para que s pueda convertir mensajes truncados, convertir el mayor volumen de datos posible (consulte la prxima nota de utilizacin), procurando no examinar ni convertir los datos situados ms all del final de INBUF. Si la conversin se realiza satisfactoriamente, la rutina de salida no modificar el campo DXREA del parmetro MQDXP. Como resultado, se devolver RC2079 si el gestor de colas de la aplicacin receptora ha truncado el mensaje, y RCNONE si lo ha hecho el emisor del mensaje. Tambin es posible que un mensaje se ample durante la conversin, hasta el punto de hacerse mayor que OUTBUF. En este caso, la rutina de salida decidir si debe truncar el mensaje; el campo DXAOP del parmetro MQDXP indicar si la aplicacin receptora ha especificado la opcin GMATM. 4. Por lo general, se recomienda convertir todos los datos del mensaje facilitados a la rutina de salida en INBUF, o que no se convierta ningn dato. No obstante, se da una excepcin cuando el mensaje se ha truncado, ya sea antes o durante la conversin, en cuyo caso puede existir un elemento incompleto al final del almacenamiento intermedio (por ejemplo, un byte de un carcter de doble byte o 3 bytes de un entero de 4 bytes). En esta situacin, se aconseja omitir el elemento incompleto y definir como nulos los bytes no utilizados de OUTBUF. Sin embargo, los caracteres o los elementos completos de una matriz o de una serie deben convertirse. 5. Cuando se necesita una rutina de salida por primera vez, el gestor de colas intenta cargar un objeto que tenga el mismo nombre que el formato (aparte de las extensiones). El objeto cargado debe contener la rutina de salida que procesa los mensajes con ese nombre de formato. Es conveniente que el nombre de la rutina de salida y el del objeto que la contiene sean idnticos, aunque no todos los entornos obligan a ello. 6. Cuando una aplicacin intenta recuperar el primer mensaje que utiliza el MDFMT desde el momento en que la aplicacin se conecta al gestor de colas, se carga una copia nueva de la rutina de salida. Tambin pueden cargarse copias nuevas en otras circunstancias, si el gestor de colas ha descartado una copia cargada previamente. Por esta razn, la rutina de salida no debe utilizar almacenamiento esttico para facilitar informacin de una invocacin de la rutina de salida a la siguiente, ya que esta puede haberse descargado entre las dos invocaciones. 7. Si hay una rutina de salida suministrada por usuario que tenga el mismo nombre que uno de los formatos incorporados soportados pr el gestor de colas, la rutina de salida suministrada por usuario no sustituye a la rutina de conversin incorporada. Las nicas circunstancias en las que se invoca una rutina de salida as son: v Si la rutina de conversin incorporada no puede manejar las conversiones a o desde el MDCSI o MDENC implicado, o bien
Apndice F. Conversin de datos

507

MQDXP - Parmetro de rutina de salida de conversin de datos


v Si la rutina de conversin incorporada no ha logrado convertir los datos (por ejemplo, debido a que hay un campo o un carcter que no se puede convertir). 8. El mbito de la rutina de salida depende del entorno. La eleccin de los nombres de MDFMT debe estar orientada a reducir el riesgo de conflictos con otros formatos. Conviene que empiecen por los caracteres que identifican la aplicacin que define el nombre del formato. 9. La rutina de salida de conversin de datos se ejecuta en un entorno similar al del programa que emiti la llamada MQGET; el entorno incluye el espacio de direcciones y el perfil de usuario (si procede). El programa podra ser un agente de canal de mensajes que enve mensajes a un gestor de colas destino que no d soporte a la conversin de mensajes. La rutina de salida no puede comprometer la integridad del gestor de colas, ya que no se ejecuta en el entorno de este. 10. La nica llamada MQI que la rutina de salida puede emplear es MQXCNVC; el intento de utilizar otras llamadas MQI hace que estas fallen con el cdigo de razn RC2219 o con otros errores imprevistos. 11. El gestor de colas no proporciona realmente ningn punto de entrada llamado MQCONVX. El nombre de la rutina de salida debe coincidir con el nombre del formato (el nombre del campo MDFMT de MQMD), aunque esto no es necesario en todos los entornos.

Invocacin RPG
C*..1....:....2....:....3....:....4....:....5....:....6....:....7.. C CALLP exitname(MQDXP : MQMD : INLEN : C INBUF : OUTLEN : OUTBUF)

La definicin prototipo de la llamada es:


D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. Dexitname PR EXTPROC('nombrerutinasalida') D* Bloque de parmetro de rutina de salida de conversin de datos D MQDXP 44A D* Descriptor de mensaje D MQMD 364A D* Longitud en bytes de INBUF D INLEN 10I 0 VALUE D* Almacenamiento intermedio que contiene el mensaje sin convertir D INBUF * VALUE D* Longitud en bytes de OUTBUF D OUTLEN 10I 0 VALUE D* Almacenamiento intermedio que contiene el mensaje convertido D OUTBUF * VALUE

Fin de la interfaz de programacin sensible al producto

508

Consulta de programacin de aplicaciones (ILE RPG)

Apndice G. Avisos
Esta informacin ha sido desarrollada para productos y servicios que se ofrecen en Estados Unidos. Es posible que en otros pases IBM no ofrezca los productos, los servicios o las caractersticas que se describen en este documento. Pngase en contacto con el representante local de IBM que le informar sobre los productos y servicios disponibles actualmente en su rea. Las referencias hechas a productos, programas o servicios de IBM no pretenden afirmar ni dar a entender que nicamente puedan utilizarse dichos productos, programas o servicios de IBM. Puede utilizarse en su lugar cualquier otro producto, programa o servicio funcionalmente equivalente que no vulnere ninguno de los derechos de propiedad intelectual de IBM. Sin embargo, es responsabilidad del usuario evaluar y verificar el funcionamiento de cualquier producto, programa o servicio que no sea de IBM. IBM puede tener patentes o solicitudes de patente pendientes de aprobacin que afecten a los temas tratados en esta informacin. La posesin de esta informacin no confiere ninguna licencia sobre dichas patentes. Puede enviar las consultas sobre licencias, por escrito, a la siguiente direccin: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 Estados Unidos Para consultas sobre licencias solicitando informacin sobre caracteres de doble byte (DBCS), pngase en contacto con el departamento de propiedad intelectual de IBM de su pas o enve directamente las consultas por escrito a: IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome, Minato-ku Tokio 106, Japn El siguiente prrafo no se aplica al Reino Unido ni a ningn pas en el que dichas disposiciones contradigan la legislacin vigente: INTERNATIONAL BUSINESS MACHINES CORPORATION FACILITA ESTA PUBLICACIN TAL CUAL SIN GARANTAS DE NINGN TIPO, NI EXPLCITAS NI IMPLCITAS, INCLUIDAS, PERO SIN QUE ELLO CONSTITUYA UN LMITE, LAS GARANTAS IMPLCITAS DE NO TRANSGRESIN, COMERCIALIZACIN O ADECUACIN A UN FIN CONCRETO. Algunos pases no permiten la renuncia a garantas explcitas o implcitas en determinadas transacciones y, por lo tanto, esta declaracin puede no ser aplicable en su caso. Esta informacin puede contener imprecisiones tcnicas o errores tipogrficos. Peridicamente se efectan cambios en la informacin aqu contenida; dichos cambios se incorporarn en nuevas ediciones de la informacin. IBM se reserva el derecho a realizar, si lo considera oportuno, cualquier modificacin en los productos o programas que se describen en esta informacin y sin notificarlo previamente. Cualquier referencia hecha en esta informacin a sitios Web no de IBM se proporciona nicamente para su comodidad y no debe considerarse en modo alguno como promocin de esos sitios Web. Los materiales de estos sitios Web no

Copyright IBM Corp. 1994, 2000

509

Avisos
forman parte de los materiales de IBM para este producto y el uso que se haga de estos sitios Web es de la entera responsabilidad del usuario. IBM puede utilizar o distribuir la informacin que usted le suministre del modo que IBM considere conveniente sin incurrir por ello en ninguna obligacin para con usted. Los licenciatarios de este programa que deseen obtener informacin acerca del mismo con el fin de: (i) intercambiar la informacin entre los programas creados independientemente y otros programas (incluido este) y (ii) utilizar mutuamente la informacin que se ha intercambiado, deben ponerse en contacto con: IBM United Kingdom Laboratories, Mail Point 151, Hursley Park, Winchester, Hampshire, Inglaterra SO21 2JN. Dicha informacin puede estar disponible, sujeta a los trminos y condiciones adecuados, incluyendo, en algunos casos, el pago de unos derechos. IBM proporciona el programa bajo licencia descrito en esta informacin, as como todo el material bajo licencia del que dispone, bajo los trminos del Acuerdo de Cliente IBM, del Acuerdo Internacional de Licencia de Programacin de IBM o de cualquier otro acuerdo equivalente entre usted e IBM. La informacin concerniente a productos no IBM se ha obtenido de los suministradores de esos productos, de sus anuncios publicados o de otras fuentes de informacin pblica disponibles. IBM no ha comprobado los productos y no puede afirmar la exactitud en cuanto a rendimiento, compatibilidad u otras caractersticas relativas a productos no IBM. Las consultas acerca de las posibilidades de productos no IBM deben dirigirse a las personas que los suministran. LICENCIA DE COPYRIGHT: Esta informacin contiene programas de aplicacin de ejemplo en lenguaje fuente, que muestran tcnicas de programacin en varias plataformas operativas. Puede copiar, modificar y distribuir estos programas de ejemplo de cualquier forma sin pagar nada a IBM, bajo el propsito de desarrollo, uso, mrketing o distribucin de programas de aplicacin de acuerdo con la interfaz de programacin de la aplicacin para la plataforma operativa para la cual se han escrito los programas de ejemplo. Estos ejemplos no se han probado bajo todas las condiciones posibles. IBM, por lo tanto, no puede garantizar ni implicar la fiabilidad, servicio o funcionalidad de estos programas. Puede copiar, modificar y distribuir estos programas de ejemplo de cualquier forma sin pagar nada a IBM bajo el propsito de desarrollo, uso, mrketing o distribucin de programas de aplicacin de acuerdo con los interfaces de programacin de aplicaciones de IBM.

510

Consulta de programacin de aplicaciones (ILE RPG)

Avisos

Informacin de la interfaz de programacin


Este manual sirve como ayuda para escribir programas de aplicacin que deban ejecutarse bajo MQSeries para AS/400. Este manual tambin documenta la interfaz de programacin de utilizacin general y la informacin de gua asociada proporcionada por MQSeries para AS/400 V5.1 Las interfaces de programacin de utilizacin general permiten al cliente escribir programas que obtienen los servicios de estos productos. La interfaz de programacin de utilizacin general y la informacin de gua asociada se muestran indicados en cada aparicin mediante una sentencia introductoria en un captulo o apartado.

Marcas registradas
Los siguientes trminos son marcas registradas de International Business Machines en Estados Unidos y/o en otros pases:
AIX CICS IBM MQSeries OS/400 RPG/400 AS/400 CICS/VSE IMS OS/2 Presentation Manager System/370 BookManager FFST MQ OS/390 RACF System/390

Lotus y LotusScript son marcas registradas de Lotus Development Corporation en Estados Unidos y/o en otros pases. Java y todas las marcas registradas y logotipos basados en Java son nombres comerciales o marcas registradas de Sun Microsystems, Inc., en Estados Unidos y/o en otros pases. Microsoft, Windows, Windows NT y el logotipo de Windows son marcas registradas de Microsoft Corporation en los Estados Unidos de Amrica y/o otros pases. Intel es una marca registrada de Intel Corporation en Estados Unidos y/o en otros pases. UNIX es una marca registrada en Estados Unidos y/o en otros pases con licencia otorgada de forma exclusiva a travs de X/Open Company Limited. Los dems nombres de compaas, productos o servicios pueden ser marcas registradas o de servicio de otras empresas.

Apndice G. Avisos

511

Aplicaciones

512

Consulta de programacin de aplicaciones (ILE RPG)

Glosario de trminos y abreviaturas


Este glosario define trminos y abreviaturas de MQSeries utilizados en este manual. Si no encuentra el trmino que est buscando, vea el ndice o la publicacin IBM Dictionary of Computing, New York: McGraw-Hill, 1994. Este glosario incluye trminos y definiciones de American National Dictionary for Information Systems, ANSI X3.172-1990, copyright 1990 de American National Standards Institute (ANSI). Para adquirir copias, dirjase a American National Standards Institute, 11 West 42 Street, New York, New York 10036. Las definiciones se identifican mediante el smbolo (A) despus de la definicin.
anotaciones. En MQSeries, archivo que registra el trabajo efectuado por los gestores de colas mientras reciben, transmiten y entregan mensajes, y que les permite hacer la recuperacin si se produce una anomala. anotaciones activas. Vea anotaciones de recuperacin. anotaciones circulares. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, proceso que permite conservar todos los datos de reinicio en un anillo de archivos de anotaciones. El proceso de anotaciones llena el primer archivo del anillo y, a continuacin, pasa al siguiente, y as sucesivamente hasta que todos los archivos estn llenos. En ese momento, el proceso de anotaciones vuelve al primer archivo del anillo y empieza de nuevo si se ha liberado espacio o este ya no se necesita. El proceso de anotaciones circulares se utiliza durante la recuperacin de reinicio, empleando las anotaciones para retrotraer las transacciones que estaban efectundose cuando se detuvo el sistema. Compare con anotaciones lineales. anotaciones de aplicacin. En Windows NT, archivo de anotaciones en el que se registran los sucesos significativos de una aplicacin. anotaciones de archivar. Vea anotaciones de recuperacin. anotaciones de recuperacin. En MQSeries para OS/390, archivos de contienen la informacin necesaria para recuperar mensajes, colas y el subsistema MQSeries. MQSeries para OS/390 graba cada uno de los registros en un archivo llamado anotaciones activas. Cuando las anotaciones activas se han llenado, su contenido se transfiere a un DASD o a un archivo de cinta llamado anotaciones de archivar. Sinnimo de anotaciones. anotaciones de sucesos. Vea anotaciones de aplicacin. anotaciones duales. Mtodo para registrar la actividad de MQSeries para OS/390, en el que cada cambio se registra en dos archivos para que, si es necesario reiniciar el sistema y uno de los dos archivos es ilegible, se pueda utilizar el otro. Compare con anotaciones simples. anotaciones lineales. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, proceso de conservar los datos de reinicio en una secuencia de archivos. A medida que se van necesitando, se aaden nuevos archivos a la secuencia.

A
adaptador. Interfaz entre MQSeries para OS/390 y TSO, IMS, CICS o espacios de direccin por lotes. Un adaptador es un recurso de conexin que permite a las aplicaciones acceder a los servicios de MQSeries. agente de canal de mensajes (MCA). Programa que transmite mensajes preparados desde una cola de transmisin a un enlace de comunicaciones, o desde un enlace de comunicaciones a una cola destino. Vea tambin interfaz de colas de mensajes. agrupacin de almacenamiento intermedio. rea del almacenamiento principal utilizada para mensajes, colas y definiciones de objetos de MQSeries para OS/390. Vea tambin conjunto de pginas. alerta. Mensaje enviado a un punto focal de servicios de gestin de una red para identificar un problema o un problema inminente. aliado. Espacio de direcciones de OS/390 que est conectado a MQSeries para OS/390. almacenamiento intermedio de anotaciones de salida. En MQSeries para OS/390, almacenamiento intermedio en el que se guardan los registros de anotaciones de recuperacin hasta que se graban en las anotaciones de archivar. almacenar y reenviar. Almacenamiento temporal de paquetes, mensajes o tramas en una red de datos antes de retransmitirlos a su destino. anlisis y eliminacin de vuelcos (DAE). Servicio de OS/390 que permite a una instalacin suprimir los vuelcos SVC y los vuelcos ABEND SYSUDUMP que no se necesitan porque son repeticiones de vuelcos ya grabados con anterioridad.
Copyright IBM Corp. 1994, 2000

513

El espacio en el que hay datos grabados no se reutiliza hasta que se reinicia el gestor de colas. Compare con anotaciones circulares. anotaciones simples. Mtodo de registrar la actividad de MQSeries para OS/390 en el que cada cambio se registra en un solo archivo. Compare con anotaciones duales. APAR. Authorized Program Analysis Report (informe autorizado de anlisis de programa). aplicacin de cliente. Aplicacin que se ejecuta en una estacin de trabajo y se enlaza a un cliente, el cual proporciona a la aplicacin acceso a los servicios de colas de un servidor. aplicacin distribuida. En la gestin de colas de mensajes, conjunto de programas de aplicacin que pueden conectarse individualmente a distintos gestores de colas, pero que colectivamente forman una sola aplicacin. archivo de anotaciones. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, archivo en el que se registran todos los cambios significativos realizados en los datos controlados por un gestor de colas. Si se llenan los archivos de anotaciones primarios, MQSeries asigna archivos de anotaciones secundarios. archivo de autorizacin. En MQSeries en sistemas UNIX, archivo que proporciona definiciones de seguridad sobre un objeto, sobre una clase de objetos o sobre todas las clases de objetos. archivo de configuracin. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, archivo que contiene informacin de configuracin que, por ejemplo, est relacionada con los archivos de anotaciones, las comunicaciones o los servicios instalables. Sinnimo de archivo .ini. Vea tambin estrofa. archivo de control de anotaciones. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, archivo que contiene la informacin necesaria para supervisar la utilizacin de los archivos de anotaciones (por ejemplo, el tamao y la ubicacin que tienen, as como el nombre del siguiente archivo disponible). archivo de definiciones de canal (CDF). En MQSeries, archivo que contiene definiciones de canal de comunicaciones que asocian colas de transmisin a enlaces de comunicaciones. archivo de rutina de carga (BSDS). Archivo VSAM que contiene: v Un inventario de todos los archivos de anotaciones activos y archivados reconocidos por MQSeries para OS/390.

v Un inventario de acomodacin de todas las actividades recientes de MQSeries para OS/390. El BSDS es necesario si se debe volver a iniciar el subsistema MQSeries para OS/390. archivo .ini. Vea archivo de configuracin. archivos de entrada de inicializacin. Archivos utilizados por MQSeries para OS/390 al iniciarse. rea de trabajo de diagnstico del sistema (SDWA). Datos registrados en una entrada SYS1.LOGREC y que describen un error de programa o de hardware. arreglo temporal de programa (PTF). Solucin o manera de eludir un problema diagnosticado por el servicio tcnico de IBM como resultado de un defecto en un release actual y no alterado de un programa. asa de conexin. Identificador o smbolo mediante el que un programa accede al gestor de colas al que est conectado. asa de objeto. Identificador o smbolo mediante el que un programa accede al objeto de MQSeries con el que est trabajando. asa (handle). Vea asa de conexin y asa de objeto. ASID. Address Space Identifier (identificador de espacio de direcciones). atributo. Una de las propiedades de un conjunto de propiedades que define las caractersticas de un objeto de MQSeries.

B
bloque de control de tareas (TCB). Bloque de control de OS/390 utilizado para comunicar informacin sobre las tareas que hay dentro de un espacio de direcciones y que estn conectadas a un subsistema OS/390, como MQSeries para OS/390 o CICS. BMS. Basic Mapping Support (soporte de mapas bsico). BSDS. Archivo de rutina de carga.

C
cabecera de suceso. En un mensaje de suceso, parte de los datos de mensaje que identifica el tipo de suceso del cdigo de razn del suceso. calificador de alto nivel de biblioteca destino (thlqual). Calificador de alto nivel para nombres de archivos destino de OS/390. canal. Vea canal de mensajes.

514

Consulta de programacin de aplicaciones (ILE RPG)

canal de mensajes. En la gestin de colas de mensajes distribuidas, mecanismo que permite trasladar mensajes de un gestor de colas a otro. Un canal de mensajes consta de dos agentes (un emisor en un extremo y un receptor en el otro extremo) y de un enlace de comunicaciones. Compare con canal MQI. canal emisor. En la gestin de colas de mensajes, canal que inicia transferencias, elimina mensajes de una cola de transmisin y los transfiere a travs de un enlace de comunicaciones a un canal receptor o a un canal peticionario. canal MQI. Conecta un cliente MQSeries a un gestor de colas situado en un sistema servidor y solamente transfiere llamadas y respuestas MQI de modo bidireccional. Compare con canal de mensajes. canal peticionario. En la gestin de colas de mensajes, canal que un canal emisor puede iniciar remotamente. El canal peticionario acepta los mensajes del canal emisor a travs de un enlace de comunicaciones y los pone en la cola local designada en el mensaje. Vea tambin canal servidor. canal receptor. En la gestin de colas de mensajes, canal que responde a un canal emisor, toma los mensajes de un enlace de comunicaciones y los pone en una cola local. canal servidor. En la gestin de colas de mensajes, canal que responde a un canal peticionario, elimina los mensajes de una cola de transmisin y los transfiere a travs de un enlace de comunicaciones al canal peticionario. carcter nulo. Carcter representado por X'00'. carga fuera de lnea. En MQSeries para OS/390, proceso automtico mediante el que las anotaciones activas de un gestor de colas se transfieren a las correspondientes anotaciones de archivar. CCF. Channel Control Function (funcin de control de canal). CCSID. Coded Character Set Identifier (identificador de juego de caracteres codificado). CDF. Channel Definition File (archivo de definiciones de canal). CI. Control Interval (intervalo de control). cierre. Vea cierre inmediato, cierre anticipado y cierre en reposo. cierre anticipado. En MQSeries, cierre de un gestor de colas que no espera a que se desconecten las aplicaciones ni a que se completen las llamadas MQI actuales. Compare con cierre inmediato y cierre en reposo. cierre controlado. Vea cierre en reposo.

cierre en reposo. En MQSeries, cierre de un gestor de colas que permite que las aplicaciones conectadas se desconecten. Compare con cierre inmediato y cierre anticipado. Tipo de cierre del adaptador CICS en el que el adaptador, para desconectarse de MQSeries, espera a que se hayan completado todas las tareas que estn activas en ese momento. Compare con cierre forzado. cierre forzado. Tipo de cierre del adaptador CICS, en el que el adaptador se desconecta inmediatamente de MQSeries para OS/390 haciendo caso omiso del estado de las tareas que estn activas en ese momento. Compare con cierre en reposo. cierre inmediato. En MQSeries, cierre de un gestor de colas que no espera a que se desconecten las aplicaciones. Tras haberse solicitado un cierre inmediato, las llamadas MQI actuales pueden completarse, pero no as las llamadas MQI nuevas. Compare con cierre en reposo y cierre anticipado. CL. Control Language (lenguaje de control). clase de almacenamiento. En MQSeries para OS/390, una clase de almacenamiento define el conjunto de pginas que ha de contener los mensajes de una cola determinada. La clase de almacenamiento se especifica al definir la cola. cliente. Componente de unidad ejecutable que proporciona acceso a servicios de colas en un servidor de aplicaciones de usuario local. Las colas utilizadas por las aplicaciones residen en el servidor. Vea tambin cliente MQSeries. cliente MQSeries. Parte de un producto MQSeries que puede instalarse en un sistema sin instalar el gestor de colas completo. El cliente MQSeries acepta llamadas MQI procedentes de aplicaciones y se comunica con un gestor de colas situado en un sistema servidor. clster. Red de gestores de colas que, de algn modo, estn asociados de forma lgica. cdigo de razn. Cdigo de retorno que describe la razn de la anomala o de la realizacin parcial de una llamada MQI. cdigo de razn de abend (finalizacin anmala). Cdigo hexadecimal de 4 bytes que identifica de manera exclusiva un problema producido en MQSeries para OS/390. En el manual MQSeries for OS/390 Messages and Codes hay una lista completa de los cdigos de razn de abend de MQSeries para OS/390 que incluye una explicacin de cada uno de ellos. cdigo de terminacin. Cdigo de retorno que indica cmo ha finalizado una llamada MQI. cdigos de retorno. Nombre que tienen en comn los cdigos de terminacin y los cdigos de razn.

Glosario de trminos y abreviaturas

515

cola. Objeto de MQSeries. Las aplicaciones de gestin de colas de mensajes pueden poner mensajes en una cola y obtener mensajes de ella. Una cola es propiedad de un gestor de colas, que es el que realiza su mantenimiento. Las colas locales pueden contener una lista de mensajes en espera de ser procesados. Las colas de otros tipos no pueden contener mensajes; por el contrario, sealan a otras colas o pueden servir de modelo para las colas dinmicas. cola de aplicacin. Cola utilizada por una aplicacin. cola de inicio. Cola local en la que el gestor de colas coloca mensajes desencadenantes. cola de mensajes. Sinnimo de cola. cola de mensajes en espera. Vea cola de mensajes no entregados. cola de mensajes no entregados (DLQ). Cola a la que un gestor de colas o una aplicacin enva mensajes que no puede entregar a su destino correcto. cola de respuestas. Nombre de una cola a la que el programa que emiti una llamada MQPUT quiere que se enve un mensaje de respuesta o un mensaje de informe. cola de sucesos. Cola en la que el gestor de colas pone un mensaje de suceso despus de haber detectado un suceso. Cada categora de suceso (de gestor de colas, de rendimiento o de canal) tiene su propia cola de sucesos. cola de transmisin. Cola local en la que se almacenan temporalmente mensajes preparados que estn destinados a un gestor de colas remoto. cola dinmica. Cola local creada cuando un programa abre un objeto cola modelo. Vea asimismo cola dinmica permanente y cola dinmica temporal. cola dinmica permanente. Cola dinmica que solo se suprime cuando se cierra si se ha solicitado explcitamente la supresin. Las colas dinmicas permanentes se recuperan si falla el gestor de colas, por lo que pueden contener mensajes permanentes. Compare con cola dinmica temporal. cola dinmica temporal. Cola dinmica que queda suprimida en cuanto se cierra. Las colas dinmicas temporales no se recuperan si falla el gestor de colas, por lo que solo pueden contener mensajes no permanentes. Compare con cola dinmica permanente. cola local. Cola que pertenece al gestor de colas local. Una cola local puede contener una lista de mensajes que estn a la espera de ser procesados. Compare con cola remota. cola remota. Cola que pertenece a un gestor de colas remoto. Los programas pueden transferir mensajes a las

colas remotas, pero no pueden obtener mensajes de ellas. Compare con cola local. cola system.command.input. Cola local a la que los programas de aplicacin pueden transferir mandatos de MQSeries. El servidor de mandatos recupera los mandatos de la cola, los valida y los pasa al procesador de mandatos para que se ejecuten. comprobaciones de autorizacin. Comprobaciones de seguridad realizadas cuando un usuario intenta emitir mandatos de administracin con respecto a un objeto; por ejemplo, para abrir una cola o para conectarse a un gestor de colas. compromiso. Operacin que aplica todos los cambios realizados durante la unidad de recuperacin o la unidad de trabajo actual. Una vez terminada la operacin, se inicia una nueva unidad de recuperacin o unidad de trabajo. Compare con restitucin. compromiso en dos fases. Protocolo que permite coordinar los cambios realizados en los recursos recuperables cuando una sola transaccin utiliza ms de un gestor de recursos. Compare con compromiso en una fase. compromiso en una fase. Mtodo en el que un programa puede comprometer las actualizaciones en una cola sin coordinarlas con las actualizaciones efectuadas por el programa en recursos controlados por otro gestor de recursos. Compare con compromiso en dos fases. conectar. Proporcionar un asa de conexin de gestor de colas, que una aplicacin utiliza en llamadas MQI posteriores. La conexin se efecta mediante la llamada MQCONN o, automticamente, mediante la llamada MQOPEN. conexin diferida. Suceso pendiente que se activa cuando un subsistema CICS intenta conectarse a MQSeries para OS/390 antes de que MQSeries para OS/390 se haya iniciado. conjunto de pginas. Archivo de VSAM que se utiliza cuando MQSeries para OS/390 traslada datos (por ejemplo, colas y mensajes) del almacenamiento intermedio al almacenamiento principal para su almacenamiento permanente de seguridad (en DASD). conmutacin de tareas. Operacin de solapar operaciones de E/S y procesar entre varias tareas. En MQSeries para OS/390, el conmutador de tareas optimiza el rendimiento al permitir que algunas llamadas MQI se ejecuten bajo subtareas, en vez de bajo el bloque de control de tareas (TCB) principal de CICS. contexto. Informacin acerca del origen de un mensaje. CPF. Command Prefix (prefijo de mandato).

516

Consulta de programacin de aplicaciones (ILE RPG)

cursor para examinar. En la gestin de colas de mensajes, indicador utilizado al examinar una cola para identificar el mensaje siguiente de la secuencia.

DLQ. Dead-Letter Queue (cola de mensajes no entregados). DQM. Distributed Queue Management (gestin de colas distribuidas).

D
DAE. Dump Analysis and Elimination (anlisis y eliminacin de vuelcos). datagrama. El mensaje ms simple soportado por MQSeries. Este tipo de mensaje no requiere una respuesta. datos de suceso. En un mensaje de suceso, parte de los datos del mensaje que contiene informacin sobre el suceso (como el nombre del gestor de colas y la aplicacin que produjo el suceso). Vea tambin cabecera de suceso. DCE. Distributed Computing Environment (entorno de sistemas distribuido). DCI. Data Conversion Interface (interfaz de conversin de datos). definicin local. Objeto de MQSeries que pertenece a un gestor de colas local. definicin local de una cola remota. Objeto de MQSeries que pertenece a un gestor de colas local. Este objeto define los atributos de una cola que es propiedad de otro gestor de colas. Tambin se utiliza para crear alias de gestor de colas y alias de cola de respuestas. descriptor de mensaje. Informacin de control que describe el formato y la presentacin de los mensajes y que forma parte de los mensajes de MQSeries. El formato del descriptor de mensaje est definido por la estructura MQMD. descriptor de objeto. Estructura de datos que identifica un determinado objeto de MQSeries. El descriptor consta del nombre del objeto y del tipo de objeto. desencadenamiento. En MQSeries, recurso que permite a un gestor de colas arrancar automticamente una aplicacin cuando se satisfacen condiciones predeterminadas en una cola. devolucin de llamada. En MQSeries, cuando un canal de mensajes peticionario inicia una transferencia procedente de un canal emisor, el canal peticionario llama primero al emisor, luego se cierra y espera una devolucin de llamada. direccin relativa en bytes (RBA). Desplazamiento en bytes de un registro almacenado o de un intervalo de control y que se cuenta desde el principio del espacio de almacenamiento asignado al archivo al que pertenece.

E
Editor del Registro. En Windows NT, elemento de programa que permite al usuario editar el Registro. entorno. Vea entorno de aplicacin. entorno de aplicacin. Los recursos de software a los que puede acceder un programa de aplicacin. En la plataforma OS/390, CICS e IMS son ejemplos de entornos de aplicaciones. entorno de lenguajes integrados (ILE). El entorno de lenguajes integrados del AS/400. Este entorno sustituye al modelo de programa original (OPM) del AS/400. entorno de sistemas distribuido (DCE). Middleware que proporciona determinados servicios bsicos que simplifican el desarrollo de aplicaciones distribuidas. DCE est definido por Open Software Foundation (OSF). entorno nacional. En los sistemas UNIX, subconjunto de un entorno del usuario que define los convenios de una cultura especfica (como el formato de la hora, el numrico o el monetario, as como la clasificacin, la ordenacin y la conversin de los caracteres). El CCSID del gestor de colas se obtiene del entorno nacional del ID de usuario que cre ese gestor de colas. entrega secuencial. En MQSeries, mtodo que permite transmitir los mensajes con un nmero de secuencia para que el canal receptor pueda restablecer el orden de los mensajes al almacenarlos. Este tipo de entrega es necesario si los mensajes se tienen que entregar una sola vez y en el orden correcto. escucha. En la gestin de colas distribuidas de MQSeries, programa que supervisa las conexiones de red entrantes. ESM. External Security Manager (gestor de seguridad externo). espacio de direcciones. rea de almacenamiento virtual disponible para un trabajo determinado. espacio de direcciones aliado. Vea aliado. ESTAE. Extended Specify Task Abnormal Exit (salida anmala de tarea especificada y ampliada) estrofa (stanza). Grupo de lneas de un archivo de configuracin que asignan un valor a un parmetro, modificando as el comportamiento de un gestor de colas, de un cliente o de un canal. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries
Glosario de trminos y abreviaturas

517

para Windows NT, un archivo de configuracin (.ini) puede contener un varias estrofas. examinar. En la gestin de colas de mensajes, utilizar la llamada MQGET para copiar un mensaje sin eliminarlo de la cola. Vea tambin obtener.

gestin de colas remotas. En la gestin de colas de mensajes, suministro de servicios para permitir a las aplicaciones poner mensajes en colas que pertenecen a otros gestores de colas.

F
FFST. First Failure Support Technology. FIFO. First-In-First-Out (primero en entrar, primero en salir). First Failure Support Technology (FFST). Tecnologa empleada por MQSeries en sistemas UNIX, MQSeries para OS/2 Warp, MQSeries para Windows NT, y MQSeries para AS/400 para detectar e informar acerca de problemas de software. formato de mandato programable (PCF). Tipo de mensaje de MQSeries utilizado por: v Las aplicaciones de administracin de usuario, para transferir mandatos PCF a la cola de entrada de mandatos del sistema de un gestor de colas especificado. v Las aplicaciones de administracin de usuario, para obtener los resultados de un mandato PCF de un gestor de colas especificado. v Un gestor de colas, como notificacin de que se ha producido un suceso. Compare con MQSC. FRR. Functional Recovery Routine (rutina de recuperacin funcional). funcin de control de canal (CCF). En MQSeries, programa que transfiere mensajes desde una cola de transmisin a un enlace de comunicaciones y desde un enlace de comunicaciones a una cola local, conjuntamente con una interfaz de panel de operador para permitir la configuracin y el control de los canales.

| | | | | | |

gestor de autorizaciones sobre objeto (OAM). En MQSeries en sistemas UNIX, MQSeries para AS/400 y MQSeries para Windows NT, servicio de autorizaciones por omisin para la gestin de mandatos y objetos. El OAM puede sustituirse por un servicio de seguridad suministrado por el cliente o ejecutarse junto con dicho servicio. gestor de colas. Programa del sistema que proporciona a las aplicaciones servicios de gestin de colas. Ofrece una interfaz de programacin de aplicaciones para que as los programas puedan acceder a los mensajes de las colas que son propiedad del gestor de colas. Vea tambin gestor de colas local y gestor de colas remoto. Objeto de MQSeries que define los atributos de un determinado gestor de colas. gestor de colas local. Gestor de colas al que est conectado un programa y que proporciona servicios de gestin de colas al programa. Los gestores de colas, cuando el programa no est conectado a ellos, se llaman gestores de colas remotos, aunque se ejecuten en el mismo sistema que el programa. gestor de colas remoto. Referido a un programa, gestor de colas que no es aquel al que est conectado el programa. gestor de recursos. Aplicacin, programa o transaccin que gestiona y controla el acceso a recursos compartidos, como los almacenamientos intermedios de memoria y los archivos. MQSeries, CICS e IMS son gestores de recursos. gestor de seguridad externo (ESM). Producto de seguridad al que invoca el recurso de autorizaciones del sistema (SAF) de OS/390. RACF es un ejemplo de ESM. gestor de terminacin de recuperacin (RTM). Programa que maneja toda terminacin normal o anmala de tareas, pasando el control a una rutina de recuperacin asociada a la funcin de terminacin. GTF. Generalized Trace Facility (recurso de rastreo generalizado).

G
GCPC. Generalized Command Preprocessor (preprocesador de mandatos generalizado). gestin de colas. Vea gestin de colas de mensajes. gestin de colas de mensajes. Tcnica de programacin en la que cada programa de una aplicacin se comunica con los otros programas poniendo mensajes en las colas. gestin de colas distribuidas (DQM). En la gestin de colas de mensajes, definicin y control de canales de mensajes para gestores de colas de otros sistemas.

H
hebra. En MQSeries, nivel ms bajo de ejecucin en paralelo disponible en una plataforma de sistema operativo.

518

Consulta de programacin de aplicaciones (ILE RPG)

I
ID de sesin. En MQSeries para OS/390, identificador exclusivo en CICS que define el enlace de comunicaciones que un agente de canal de mensajes ha de utilizar al transferir los mensajes de una cola de transmisin a un enlace. identificador de espacio de direcciones (ASID). Identificador asignado por el sistema y exclusivo de un espacio de direcciones. identificador de juego de caracteres codificado (CCSID). Nombre de un juego de caracteres codificado y de sus asignaciones de elementos de cdigo. identificador de transaccin. En CICS, nombre especificado en el momento de definir la transaccin y que sirve para invocar la transaccin. ILE. Entorno de Lenguajes Integrado (Integrated Language Environment). imagen de medio. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, secuencia de registros de anotaciones que contienen una imagen de un objeto. El objeto se puede crear de nuevo a partir de esta imagen. informe autorizado de anlisis de programa (APAR). Informe de un problema causado por un posible defecto en un release actual y no modificado de un programa. infraestructura. En MQSeries, grupo de interfaces de programacin que permiten a los clientes o a los proveedores escribir programas que amplan o reemplazan determinadas funciones proporcionadas por los productos MQSeries. Las interfaces son: v Interfaz de conversin de datos (DCI) de MQSeries v Interfaz de canal de mensajes (MCI) de MQSeries v Interfaz de servicio de nombres (NSI) de MQSeries v Interfaz de habilitacin de seguridad (SEI) de MQSeries v Interfaz de supervisor de desencadenamiento (TMI) de MQSeries Interactive System Productivity Facility (ISPF). Programa bajo licencia de IBM que hace de editor de pantalla completa y de gestor de dilogos. Se utiliza para escribir programas de aplicacin y es un medio para generar paneles de pantalla y dilogos interactivos estndar entre el programador de aplicaciones y el usuario de terminal. interfaz de administracin de MQSeries (MQAI). Interfaz de programacin de MQSeries. interfaz de canal de mensajes (MCI). Interfaz de MQSeries a la que deben ajustarse los programas

escritos por clientes o proveedores que transmiten mensajes entre un gestor de colas de MQSeries y otro sistema de mensajera. Forma parte de la infraestructura de MQSeries. interfaz de cola de mensajes (MQI). Interfaz de programacin proporcionada por los gestores de colas de MQSeries. Esta interfaz de programacin permite a los programas de aplicacin acceder a los servicios de colas de mensajes. interfaz de conversin de datos (DCI). La interfaz de MQSeries a la que deben ajustarse los programas escritos por el cliente o el proveedor y que convierten datos de la aplicacin entre las distintas codificaciones de mquina y los distintos CCSID. Forma parte de la Infraestructura MQSeries. interfaz de habilitacin de seguridad (SEI). Interfaz de MQSeries a la que deben ajustarse los programas escritos por clientes o proveedores que comprueban autorizaciones, suministran identificadores de usuario o realizan autenticaciones. Forma parte de la infraestructura de MQSeries. interfaz de servicio de nombres (NSI). Interfaz de MQSeries a la que deben ajustarse los programas escritos por clientes o proveedores y que resuelven la propiedad de los nombres de colas. Forma parte de la infraestructura de MQSeries. interfaz de supervisor de desencadenamiento (TMI). Interfaz de MQSeries a la que deben ajustarse los programas supervisores de desencadenamiento escritos por clientes o proveedores. Forma parte de la infraestructura de MQSeries. interrupcin por error de mquina. Interrupcin producida por un error o funcionamiento defectuoso de un equipo. Una interrupcin por error de mquina puede ser recuperable por hardware, recuperable por software o irrecuperable. intervalo de control (CI). rea de longitud fija del almacenamiento de acceso directo en la que VSAM almacena registros y crea espacios libres distribuidos. El intervalo de control es la unidad de informacin que VSAM transmite al almacenamiento de acceso directo o desde l. intervalo de servicio. Intervalo de tiempo con el que el gestor de colas compara el tiempo transcurrido entre una operacin de poner o de obtener y una operacin ulterior de obtener al decidir si se han satisfecho las condiciones de un suceso de intervalo de servicio. El intervalo de servicio de una cola se especifica mediante un atributo de la cola. IPCS. Interactive Problem Control System (sistema de control de problemas interactivo). ISPF. Interactive System Productivity Facility.

Glosario de trminos y abreviaturas

519

L
lenguaje de control (CL). En MQSeries para AS/400, lenguaje que permite emitir mandatos ya sea en la lnea de mandatos o al escribir un programa en CL. lista de nombres. Objeto de MQSeries que contiene una lista de nombres; por ejemplo, nombres de colas. llamada de supervisor (SVC). Instruccin de OS/390 que interrumpe un programa en ejecucin y pasa el control al supervisor para que este pueda prestar el servicio especfico indicado por la instruccin.

mensaje de informe. Tipo de mensaje que proporciona informacin sobre otro mensaje. El mensaje de informe puede indicar que se ha entregado un mensaje, que el mensaje ha llegado a su destino, que ha caducado o que no ha podido procesarse por alguna razn. Compare con mensaje de respuesta y mensaje de peticin. mensaje de peticin. Tipo de mensaje utilizado para solicitar una respuesta de otro programa. Compare con mensaje de respuesta y mensaje de informe. mensaje de respuesta. Tipo de mensaje utilizado para responder a los mensajes de peticin. Compare con mensaje de peticin y mensaje de informe. mensaje desencadenante. Mensaje que contiene informacin sobre el programa que un supervisor de desencadenamiento va a arrancar. mensaje de suceso. Contiene informacin (como la categora del suceso, el nombre de la aplicacin que ocasion el suceso y las estadsticas del gestor de colas) relacionada con el origen de un suceso de instrumentacin en una red de sistemas MQSeries. mensaje en disco duro (hardened message). Mensaje grabado en el almacenamiento auxiliar (disco) de modo que no se perder si se produce una anomala en el sistema. Vea tambin mensaje persistente. mensaje no permanente. Mensaje que no perdura despus de un reinicio del gestor de colas. Compare con mensaje permanente. mensaje permanente. Mensaje que perdura tras un reinicio del gestor de colas. Compare con mensaje no permanente. mensajera. Vea mensajera sncrona y mensajera asncrona. mensajera asncrona. Mtodo de comunicacin entre programas en el que estos colocan mensajes en las colas de mensajes. Con la mensajera asncrona, el programa emisor prosigue el proceso sin esperar la respuesta al mensaje. Compare con mensajera sncrona. mensajera independiente del tiempo. Vea mensajera asncrona. mensajera sncrona. Mtodo de comunicacin entre programas en el que estos colocan mensajes en las colas de mensajes. Con la mensajera sncrona, el programa emisor espera una respuesta al mensaje para reanudar su propio proceso. Compare con mensajera asncrona. modalidad dual. Vea anotaciones duales. modelo de programa original (OPM). Es el entorno OPM (modelo de programa original) de AS/400. Ha

M
mandato. En MQSeries, instruccin de administracin que el gestor de colas puede llevar a cabo. mandato de control. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, mandato que se puede entrar interactivamente desde la lnea de mandatos del sistema operativo. Un mandato de este tipo solo requiere que se instale el producto MQSeries; no necesita ningn programa ni programa de utilidad especiales que lo ejecuten. mandato PCF. Vea formato de mandato programable. mandatos de administrador. Mandatos de MQSeries utilizados para gestionar objetos de MQSeries, como colas, procesos y listas de nombres. mandatos de control del sistema. Mandatos utilizados para manipular entidades especficas de plataforma como, por ejemplo, las agrupaciones de almacenamiento intermedio, las clases de almacenamiento y los conjuntos de pginas. mandatos de MQSeries (MQSC). Mandatos legibles por personas, uniformes en todas las plataformas, que se utilizan para manipular objetos de MQSeries. Compare con formato de mandato programable (PCF). manejador de cola de mensajes no entregados. Programa de utilidad facilitado por MQSeries que supervisa una cola de mensajes no entregados (DLQ) y procesa los mensajes de la cola de acuerdo con una tabla de normas escrita por el usuario. MCA. Message Channel Agent (agente de canal de mensajes). MCI. Message Channel Interface (interfaz de canal de mensajes). mensaje. En aplicaciones de colas de mensajes, comunicacin enviada entre programas. Vea asimismo mensaje permanente y mensaje no permanente. En programacin de sistemas, informacin destinada al operador del terminal o al administrador del sistema.

520

Consulta de programacin de aplicaciones (ILE RPG)

dejado de estar soportado en MQSeries. Lo ha sustituido el entorno ILE (entorno de lenguajes integrados). MQAI. MQSeries Administration Interface (interfaz de administracin de MQSeries). MQI. Message Queue Interface (interfaz de colas de mensajes). MQSC. MQSeries Commands (mandatos de MQSeries). MQSeries. Familia de programas bajo licencia de IBM que proporciona servicios de gestin de colas de mensajes.

objeto definicin de proceso. Objeto de MQSeries que contiene la definicin de una aplicacin de MQSeries. Por ejemplo, los gestores de colas utilizan la definicin cuando funcionan con mensajes desencadenantes. objeto por omisin. Definicin de un objeto (por ejemplo, una cola) cuyos atributos estn todos definidos. Si un usuario define un objeto sin especificar todos sus posibles atributos, el gestor de colas utiliza los atributos por omisin en lugar de los que no se hayan especificado. obtener. En la gestin de colas de mensajes, utilizar la llamada MQGET para extraer un mensaje de la cola. Vea tambin examinar. OPM. Modelo de Programa Original (Original Program Model) OTMA. Open Transaction Manager Access.

N
notificacin de terminacin. Suceso pendiente que se activa cuando un subsistema CICS se conecta satisfactoriamente a MQSeries para OS/390. NSI. Name Service Interface (interfaz del servicio de nombres). NTFS. New Technology File System (sistema de archivos de nueva tecnologa). numeracin de secuencia de mensajes. Tcnica de programacin en la que se da a los mensajes nmeros exclusivos durante la transmisin a travs de un enlace de comunicaciones. Ello permite al proceso receptor comprobar si se han recibido todos los mensajes, colocarlos en una cola en el orden original y descartar los mensajes repetidos.

P
parmetro de entrada. Parmetro de una llamada MQI en el que se suministra informacin al hacer la llamada. parmetro de entrada/salida. Parmetro de una llamada MQI en el que se suministra informacin al hacer la llamada y donde luego, cuando la llamada se haya completado o haya fallado, el gestor de colas cambia la informacin. parmetro de salida. Parmetro de una llamada MQI en el que el gestor de colas devuelve informacin cuando la llamada se completa o falla. PCF. Programmable Command Format (formato de mandato programable). percolacin. En recuperacin de errores, pasar a travs de una va de control preestablecida desde una rutina de recuperacin a una rutina de recuperacin de nivel ms alto. perfil de conmutador. En MQSeries para OS/390, perfil RACF utilizado al iniciarse MQSeries o cuando se emite un mandato de renovar seguridad. Cada perfil de conmutador detectado por MQSeries desativa la comprobacin de los recursos especificados. ping. En la gestin de colas distribuidas, ayuda de diagnstico que utiliza el intercambio de un mensaje de prueba para confirmar el funcionamiento de un canal de mensajes o de una conexin TCP/IP. plataforma. En MQSeries, el sistema operativo bajo el que se ejecuta un gestor de colas. prefijo de mandato (CPF). En MQSeries para OS/390, serie de caracteres que identifica el gestor de colas al que se dirigen los mandatos de MQSeries para OS/390 y del que se reciben los mensajes de operador de MQSeries para OS/390.
Glosario de trminos y abreviaturas

O
OAM. Object Authority Manager (gestor de autorizaciones sobre objeto). objeto. En MQSeries, un objeto puede ser un gestor de colas, una cola, una definicin de proceso, un canal, una lista de nombres o una clase de almacenamiento (solo para OS/390). objeto cola alias. Objeto de MQSeries, cuyo nombre es un alias de una cola base definida para el gestor de colas local. Cuando una aplicacin o un gestor de colas utiliza una cola alias, el nombre de alias se resuelve y la operacin solicitada se realiza en la cola base asociada. objeto cola modelo. Conjunto de atributos de cola que acta a modo de plantilla cuando un programa crea una cola dinmica. objeto cola remota. Vea definicin local de una cola remota.

521

preprocesador de mandatos generalizado (GCPC). Componente de MQSeries para OS/390 que procesa mandatos de MQSeries y los ejecuta. primero en entrar, primero en salir (FIFO). Tcnica de gestin de colas en la que el siguiente elemento que se recupera es el que hace ms tiempo que est en la cola. (A) prioridad de mensaje. En MQSeries, atributo de un mensaje que puede afectar al orden de recuperacin de los mensajes de una cola e indicar si se genera un suceso desencadenante. procesador de mandato. Componente de MQSeries que procesa los mandatos. programa de transmisin. Vea agente de canal de mensajes. programa de utilidad. En MQSeries, conjunto de programas que proporcionan al operador o al administrador del sistema recursos adicionales a los proporcionados por los mandatos de MQSeries. Algunos programas de utilidad invocan ms de una funcin. PTF. Program Temporary Fix (arreglo temporal de programa). punto de control. Momento en el que se graba informacin significativa en las anotaciones. Compare con punto de sincronismo. En MQSeries en sistemas UNIX, momento en el que un registro de datos descrito en el archivo de anotaciones es igual que el registro de datos de la cola. Los puntos de control se generan automticamente y se utilizan durante el proceso de reinicio del sistema. punto de recuperacin. En MQSeries para OS/390, trmino utilizado para describir un conjunto de copias de seguridad de los conjuntos de pginas de MQSeries para OS/390 y los correspondientes archivos de anotaciones necesarios para recuperar esos conjuntos de pginas. Estas copias de seguridad proporcionan un punto de reinicio potencial en el caso de que se produzca una prdida de conjuntos de pginas (por ejemplo, un error de E/S de conjuntos de pginas). punto de sincronismo. Punto intermedio o punto final del proceso de una transaccin en el que son coherentes los recursos protegidos de la transaccin. En un punto de sincronismo, los cambios efectuados en los recursos se pueden comprometer de forma segura o se pueden restituir al punto de sincronismo anterior.

(GTF) y el recurso de gestin del sistema (SMF). Vea asimismo rastreo global y rastreo de rendimiento. rastreo de rendimiento. Opcin de rastreo de MQSeries cuyos datos de rastreo se han de utilizar para anlisis y ajuste del rendimiento. rastreo global. Opcin de rastreo de MQSeries para OS/390 en la que los datos del rastreo proceden de todo el subsistema MQSeries para OS/390. RBA. Relative Byte Address (direccin relativa en bytes). recurso. Cualquier servicio o recurso del sistema informtico o del sistema operativo necesario para un trabajo o una tarea. En MQSeries para OS/390, son ejemplos de recursos las agrupaciones de almacenamiento intermedio, los conjuntos de pginas, los archivos de anotaciones y los mensajes. recurso de autorizaciones del sistema (SAF). Recurso de OS/390 a travs del cual MQSeries para OS/390 se comunica con un gestor de seguridad externo, como RACF. recurso de rastreo generalizado (GTF). Programa de servicio de OS/390 que, para la determinacin de problemas, registra los sucesos significativos del sistema, como las llamadas de supervisor y las operaciones de inicio de E/S. Registro. En Windows NT, base de datos segura que proporciona un nico origen de datos de configuracin de aplicaciones y del sistema. registro de deshacer/rehacer. Registro de anotaciones utilizado en la recuperacin. La parte rehacer del registro describe un cambio que se ha de hacer en un objeto de MQSeries. La parte deshacer describe cmo se ha de restituir el cambio si no se compromete el trabajo. reposo. En MQSeries, estado de un gestor de colas anterior al estado de detencin. En este estado, se permite que los programas terminen de procesarse, pero no que se inicien nuevos programas. resincronizar (resynch). En MQSeries, opcin que permite instar a un canal que se inicie y resuelva los mensajes en estado dudoso, aunque sin reiniciar la transferencia de mensajes. RESLEVEL. En MQSeries para OS/390, opcin que controla el nmero de identificadores (ID) de usuario de CICS en los que se comprueba la seguridad de recursos de API en MQSeries para OS/390. respondedor. En la gestin de colas distribuidas, programa que responde a las peticiones de conexin de red procedentes de otro sistema.

R
rastreo. En MQSeries, recurso que permite registrar la actividad de MQSeries. El destino de las entradas de rastreo puede incluir el recurso de rastreo generalizado

522

Consulta de programacin de aplicaciones (ILE RPG)

restitucin. Operacin que anula todos los cambios realizados durante la unidad de recuperacin o la unidad de trabajo actuales. Una vez terminada la operacin, se inicia una nueva unidad de recuperacin o unidad de trabajo. Compare con compromiso. restitucin en una fase. Mtodo en el que no debe autorizarse la terminacin de una accin en proceso y en el que deben deshacerse todos los cambios que forman parte de esa accin. retrotraer. Sinnimo de restituir. RRS. Resource Recovery Services (servicios de recuperacin de recursos). RTM. Recovery Termination Manager (gestor de terminacin de recuperacin). rutina de recuperacin funcional (FRR). Recurso del gestor de recuperacin/terminacin de OS/390 que permite ceder el control a una rutina de recuperacin en el caso de que se produzca una interrupcin de programa.

serie de sntoma. Informacin de diagnstico visualizada con un formato estructurado diseado para hacer bsquedas en la base de datos de soporte de software IBM. servicio de autorizaciones. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, servicio que permite comprobar la autorizacin de mandatos y llamadas MQI del identificador de usuario asociado al mandato o a la llamada. servicio de identificador de usuario (UIS). En MQSeries para OS/2 Warp, recurso que permite a las aplicaciones MQI asociar un ID de usuario (distinto del ID de usuario por omisin) a los mensajes de MQSeries. servicio de nombres. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, recurso que determina qu gestor de colas es el propietario de una cola especificada. servicios de recuperacin de recursos (RRS). Recurso de OS/390 que proporciona soporte de punto de sincronismo en dos fases a todos los gestores de recursos participantes. servicios instalables. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, funciones adicionales proporcionadas como componentes independientes. La instalacin de cada componente es opcional: pueden utilizarse en su lugar componentes internos o de otros proveedores. Vea asimismo servicio de autorizaciones, servicio de nombres y servicio de identificador de usuario. servidor. (1) En MQSeries, gestor de colas que proporciona servicios de cola a las aplicaciones de cliente que se ejecutan en una estacin de trabajo remota. (2) Programa que responde a las peticiones de informacin en el modelo especfico de cliente/servidor en el que se produce una corriente de informacin entre dos programas. Vea tambin cliente. servidor de mandatos. Componente de MQSeries que lee los mandatos procedentes de la cola de entrada de mandatos del sistema, los verifica y luego pasa los que son vlidos al procesador de mandatos. sistema de archivos de nueva tecnologa (NTFS). Sistema de archivos recuperable de Windows NT que proporciona seguridad de archivos. sistema de control de problemas interactivo (IPCS). Componente de OS/390 que permite realizar la gestin de problemas en lnea, el diagnstico de problemas interactivo, la depuracin en lnea de los vuelcos de finalizacin anmala (abend) residentes en disco, el seguimiento de problemas y la notificacin de problemas.

S
SAF. System Authorization Facility (recurso de autorizaciones del sistema). salida anmala de tarea especificada y ampliada (ESTAE). Macro de OS/390 que ofrece posibilidades de recuperacin y cede el control a la rutina de salida especificada para procesar, diagnosticar una finalizacin anmala (abend) o especificar una direccin de reintento. SDWA. System Diagnostic Work Area (rea de trabajo de diagnstico del sistema). Seccin de Registro. En Windows NT, la estructura de los datos almacenados en el Registro. seguridad del contexto. En MQSeries, mtodo que permite manejar la seguridad de tal manera que los mensajes estn obligados a incluir detalles de su origen en el descriptor del mensaje. seguridad de usuario alternativo. Caracterstica de seguridad en la que las autorizaciones de un ID de usuario las puede utilizar otro ID de usuario; por ejemplo, para abrir un objeto de MQSeries. SEI. Security Enabling Interface (interfaz de habilitacin de seguridad). sealizacin. En MQSeries para OS/390 y MQSeries para Windows 2.1, caracterstica que permite al sistema operativo enviar a un programa notificacin de que un mensaje esperado llega a una cola.

Glosario de trminos y abreviaturas

523

SIT. System Initialization Table (tabla de inicializacin del sistema). soporte de mapas bsico (BMS). Interfaz entre CICS y los programas de aplicacin que formatea los datos de visualizacin de entrada y de salida, y direcciona los mensajes de salida de mltiples pginas haciendo caso omiso de los caracteres de control utilizados por los diversos terminales. subsistema. En OS/390, grupo de mdulos que proporciona funciones que dependen de OS/390. Por ejemplo, MQSeries para OS/390 es un subsistema de OS/390. suceso. Vea suceso de canal, suceso de instrumentacin, suceso de rendimiento y suceso de gestor de colas. suceso de canal. Suceso que indica que una sesin de canal ha quedado disponible o no disponible. Los sucesos de canal se generan en los gestores de colas en ambos extremos del canal. suceso de gestor de colas. Suceso que indica que: v Se ha producido una condicin de error en relacin a los recursos utilizados por un gestor de colas. Por ejemplo, que una cola no est disponible. v Se ha producido un cambio significativo en el gestor de colas. Por ejemplo, que se ha detenido o iniciado un gestor de colas. suceso de instrumentacin. Recurso que permite supervisar el funcionamiento de los gestores de colas en una red de sistemas MQSeries. MQSeries proporciona sucesos de instrumentacin para supervisar las definiciones de recursos de los gestores de colas, las condiciones de rendimiento y las condiciones de canal. Los sucesos de instrumentacin los puede utilizar un mecanismo de notificacin escrito por usuario en una aplicacin de administracin que visualiza los sucesos a un operador del sistema. Tambin permiten a las aplicaciones que hacen de agentes para otras redes de administracin supervisar informes y crear las alertas adecuadas. suceso de intervalo de servicio. Suceso relacionado con el intervalo de servicio. suceso de rendimiento. Categora de suceso que indica que se ha producido una condicin de lmite. suceso desencadenante. Suceso (como la llegada de un mensaje a una cola) que hace que un gestor de colas cree un mensaje desencadenante en una cola de inicio. suceso pendiente. Suceso no planificado que se produce como consecuencia de una peticin de conexin procedente de un adaptador CICS. sujeto. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, trmino que representa un identificador de usuario. Lo

utiliza el gestor de autorizaciones sobre objeto para comprobar las autorizaciones sobre los recursos del sistema. supervisor de alertas. En MQSeries para OS/390, componente del adaptador CICS que maneja los sucesos no planificados que se produzcan como resultado de las peticiones de conexin dirigidas a MQSeries para OS/390. supervisor de desencadenamiento. Aplicacin de ejecucin continua que sirve a una o ms colas de inicio. Cuando un mensaje desencadenante llega a una cola de inicio, el supervisor de desencadenamiento recupera el mensaje. Utiliza la informacin del mensaje desencadenante para iniciar un proceso que sirve a la cola en la que se produjo el suceso desencadenante. SVC. Supervisor Call (llamada de supervisor). SYS1.LOGREC. Ayuda al servicio, que contiene informacin acerca de los errores de programa de hardware.

T
tabla de inicializacin del sistema (SIT). Tabla que contiene los parmetros utilizados por CICS en el momento del inicio. tabla de normas. Archivo de control que contiene una o varias normas que el manejador de colas de mensajes no entregados aplica a los mensajes de la cola de mensajes no entregados (DLQ). TACL. Tandem Advanced Command Language. TCB. Task Control Block (bloque de control de tareas). thlqual. target library high-level qualifier (calificador de alto nivel de biblioteca destino). tipo de canal de conexin de cliente. Tipo de definicin de canal MQI asociado a un cliente MQSeries. Vea tambin tipo de canal de conexin de servidor. tipo de canal de conexin de servidor. Tipo de definicin de canal MQI asociado al servidor que ejecuta un gestor de colas. Vea tambin tipo de canal de conexin de cliente. TMI. Trigger Monitor Interface (interfaz de supervisor de desencadenamiento). tranid. Vea identificador de transaccin (transaction identifier). transformacin de nombre. En MQSeries en sistemas UNIX, MQSeries para OS/2 Warp y MQSeries para Windows NT, proceso interno que cambia el nombre de un gestor de colas para que sea exclusivo y vlido en el

524

Consulta de programacin de aplicaciones (ILE RPG)

sistema que se est utilizando. Externamente, el nombre del gestor de colas no vara.

U
UIS. User Identifier Service (servicio de identificador de usuario) unidad de recuperacin. Secuencia recuperable de operaciones dentro de un gestor de recursos individual. Compare con unidad de trabajo. unidad de recuperacin pendiente. En MQSeries, estado de una unidad de recuperacin para la que se ha solicitado un punto de sincronismo que an no se ha confirmado. unidad de trabajo. Secuencia recuperable de operaciones que una aplicacin lleva a cabo entre dos puntos de coherencia. Una unidad de trabajo empieza cuando se inicia una transaccin o tras un punto de sincronismo solicitado por el usuario. Finaliza en un punto de sincronismo solicitado por el usuario o al final de una transaccin. Compare con unidad de recuperacin. unidad de trabajo lgica (LUW). Vea unidad de trabajo.

V
valor de reinicio de nmero secuencial. En MQSeries, mtodo que permite garantizar que los dos extremos de un enlace de comunicaciones restablezcan a la vez sus nmeros de secuencia de mensaje actual. Si los mensajes se transmiten con un nmero de secuencia, el canal receptor podr restablecer el orden de los mensajes al almacenarlos. va de resolucin. Conjunto de colas que se abren cuando una aplicacin especifica un alias o una cola remota como entrada en una llamada MQOPEN. visor de sucesos. Herramienta proporcionada por Windows NT para examinar y gestionar los archivos de anotaciones.

Glosario de trminos y abreviaturas

525

526

Consulta de programacin de aplicaciones (ILE RPG)

Bibliografa
Esta seccin describe la documentacin disponible actualmente para todos los productos MQSeries. MQSeries Gua de planificacin El manual MQSeries Gua de planificacin, GC10-9251 (GC33-1349), describe algunos de los conceptos bsicos de MQSeries, indica los elementos que hay que tener en consideracin antes de instalar MQSeries, incluidos los requisitos de almacenamiento, la copia de seguridad y recuperacin, y la migracin desde releases anteriores, y especifica los requisitos de hardware y software para cada plataforma MQSeries. MQSeries Intercommunication El manual MQSeries Intercommunication SC33-1872, define los conceptos relacionados con la gestin de colas distribuidas y explica cmo establecer una red de gestin de colas distribuidas en varios entornos MQSeries. En concreto, explica cmo (1) configurar las comunicaciones a travs de un ejemplo significativo de productos MQSeries, (2) crear los objetos MQSeries necesarios y (3) crear y configurar canales MQSeries. Tambin se explica la utilizacin de rutinas de salida de canales. MQSeries Queue Manager Clusters El manual MQSeries Queue Manager Clusters, SC34-5349, describe las operaciones con clusters en MQSeries. Explica los conceptos y la terminologa y muestra cmo beneficiarse de la utilizacin de clusters. Explica en detalle los cambios efectuados en la MQI y resume la sintaxis de mandatos MQSeries nuevos y modificados. Muestra varios ejemplos de tareas que pueden realizarse para configurar y mantener clusters de gestores de colas. Este manual slo se aplica a los siguientes productos de MQSeries: v MQSeries para AIX V5.1 v MQSeries para AS/400 V5.1 v MQSeries para HP-UX V5.1 v MQSeries para OS/2 Warp V5.1 v MQSeries para OS/390 V2.1 v MQSeries para Sun Solaris V5.1 v MQSeries para Windows NT V5.1

Publicaciones de las distintas plataformas de MQSeries


La mayor parte de estas publicaciones, que a veces se denominan manuales de la familia MQSeries, se aplican a todos los productos de MQSeries Nivel 2. Los productos de MQSeries Nivel 2 ms recientes son los siguientes: v MQSeries para AIX V5.1 v MQSeries para AS/400 V5.1 v MQSeries para AT&T GIS UNIX V2.2 v MQSeries para Compaq (DIGITAL) OpenVMS V2.2.1.1 v MQSeries para DIGITAL UNIX (Compaq Tru64 UNIX) V2.2.1 v MQSeries para HP-UX V5.1 v MQSeries para OS/2 Warp V5.1 v MQSeries para OS/390 V2.1 v MQSeries para SINIX y DC/OSx V2.2 v MQSeries para Sun Solaris V5.1 v MQSeries para Tandem NonStop Kernel V2.2.0.1 v MQSeries para VSE/ESA V2.1 v MQSeries para Windows V2.0 v MQSeries para Windows V2.1 v MQSeries para Windows NT V5.1 Todas las excepciones a esta regla general estn indicadas. MQSeries Brochure MQSeries Brochure, G511-1908, es una breve introduccin a las ventajas de MQSeries. Su finalidad es ayudar a tomar la decisin de compra y describe algunas de las utilizaciones de clientes reales de MQSeries. MQSeries: An Introduction to Messaging and Queuing An Introduction to Messaging and Queuing, GC33-0805, explica brevemente qu es MQSeries, cmo funciona y cmo puede resolver algunos problemas clsicos relacionados con la interoperabilidad. Este manual est pensado para un pblico ms formado tcnicamente, si se compara con la publicacin MQSeries Brochure.
Copyright IBM Corp. 1994, 2000

| | | | |

| |

527

MQSeries Clientes El manual MQSeries Clientes, GC10-9654 (GC33-1632), describe cmo instalar, configurar, utilizar y gestionar sistemas de cliente MQSeries. MQSeries Administracin del sistema El manual MQSeries Administracin del sistema, SC10-3081 (SC33-1873), describe la gestin diaria de objetos locales y remotos MQSeries. Incluye temas como la seguridad, la recuperacin y el reinicio, el soporte transaccional, la determinacin de problemas y el manejador de la cola de mensajes no entregados. Tambin incluye la sintaxis de los mandatos de control de MQSeries. Este manual slo se aplica a los siguientes productos de MQSeries: v MQSeries para AIX V5.1 v MQSeries para HP-UX V5.1 v MQSeries para OS/2 Warp V5.1 v MQSeries para Sun Solaris V5.1 v MQSeries para Windows NT V5.1 MQSeries Consulta de mandatos El manual MQSeries Consulta de mandatos, SC10-9438 (SC33-1369), contiene la sintaxis de los mandatos MQSC, que utilizan los operadores y administradores de sistemas MQSeries para gestionar objetos MQSeries. MQSeries Programmable System Management El manual MQSeries Programmable System Management, SC33-1482, proporciona informacin de gua y consulta para usuarios de sucesos MQSeries, mensajes de formato de mandato programable (PCF) y servicios instalables. MQSeries Interfaz de administracin - Gua de programacin y consulta El manual MQSeries Interfaz de administracin - Gua de programacin y consulta, SC10-3342 (SC34-5390), proporciona informacin para usuarios de MQAI. La MQAI es una interfaz de programacin que simplifica la forma en que las aplicaciones manipulan los mensajes en formato de mandato programable (PCF) y las estructuras de datos relacionadas con stos. Este manual slo se aplica a los siguientes productos de MQSeries: v MQSeries para AIX V5.1 v MQSeries para AS/400 V5.1

v v v v

MQSeries MQSeries MQSeries MQSeries

para para para para

HP-UX V5.1 OS/2 Warp V5.1 Sun Solaris V5.1 Windows NT V5.1

MQSeries Mensajes El manual MQSeries Mensajes, GC10-3078 (GC33-1876), que describe los mensajes AMQ emitidos por MQSeries, slo se aplica a los siguientes productos MQSeries: v MQSeries para AIX V5.1 v MQSeries para HP-UX V5.1 v MQSeries para OS/2 Warp V5.1 v MQSeries para Sun Solaris V5.1 v MQSeries para Windows NT V5.1 v MQSeries para Windows V2.0 v MQSeries para Windows V2.1 Este manual slo est disponible en copia software. Para otras plataformas MQSeries, los mensajes los suministra el sistema. No aparecen en el formato manual en copia software. MQSeries Application Programming Guide El manual MQSeries Application Programming Guide, SC33-0807, proporciona informacin de gua para los usuarios de la interfaz de cola de mensajes (MQI). Explica cmo disear, escribir y crear una aplicacin MQSeries. Tambin contiene descripciones completas de los programas de ejemplo suministrados con MQSeries. MQSeries Application Programming Reference El manual MQSeries Application Programming Reference, SC33-1673, facilita una amplia informacin de consulta para usuarios de MQI. Incluye: descripciones de tipos de datos, sintaxis de llamadas MQI, atributos de objetos MQSeries, cdigos de retorno, constantes y tablas de conversin de pginas de cdigos. MQSeries Application Programming Reference Summary En el manual MQSeries Application Programming Reference Summary, SX33-6095, se resume la informacin del manual MQSeries Application Programming Reference. MQSeries Using C++ MQSeries Using C++, SC33-1877,

528

Consulta de programacin de aplicaciones (ILE RPG)

proporciona informacin de gua y consulta para los usuarios del lenguaje de programacin MQSeries C++ vinculado a MQI. MQSeries C++ tiene soporte en los siguientes productos MQSeries: v MQSeries para AIX V5.1 v MQSeries para HP-UX V5.1 v MQSeries para OS/2 Warp V5.1 v MQSeries para AS/400 V5.1 v MQSeries para OS/390 V2.1 v MQSeries para Sun Solaris V5.1 v MQSeries para Windows NT V5.1 MQSeries C++ tambin tiene soporte para clientes MQSeries que se suministran con esos productos y se instalan en los siguientes entornos: v AIX v HP-UX v OS/2 v Sun Solaris v Windows NT v Windows 3.1 v Windows 95 y Windows 98

| | | | | | |

MQSeries for AS/400 V5.1 Quick Beginnings, GC34-5557 MQSeries for AS/400 V5.1 System Administration, SC34-5558 MQSeries para AS/400 V5.1 Consulta de programacin de aplicaciones (ILE RPG), SC10-3412 (SC34-5559) MQSeries para AT&T GIS UNIX MQSeries for AT&T GIS UNIX System Management Guide, SC33-1642

| MQSeries para Compaq (DIGITAL) OpenVMS MQSeries para Digital OpenVMS Gua | de gestin de sistemas, GC10-3089 | (GC33-1791) | | MQSeries para Digital UNIX (Compaq Tru64 | UNIX) MQSeries for Digital UNIX System | Management Guide, GC34-5483 | | MQSeries para HP-UX MQSeries para HP-UX V5.1 Comienzo rpido, GC10-3075 (GC33-1869) MQSeries para OS/2 Warp MQSeries para OS/2 Warp V5.1 Comienzo rpido, GC10-3074 (GC33-1868) MQSeries para OS/390 MQSeries for OS/390 Version 2 Release 1 Licensed Program Specifications, GC34-5377 MQSeries for OS/390 Version 2 Release 1 Program Directory MQSeries for OS/390 System Management Guide, SC34-5374 MQSeries for OS/390 Messages and Codes, GC34-5375 MQSeries for OS/390 Problem Determination Guide, GC34-5376 MQSeries Link para R/3 MQSeries Link para R/3 Versin 1.2 Gua del usuario, GC10-3257 (GC33-1934) MQSeries para SINIX y DC/OSx MQSeries for SINIX and DC/OSx System Management Guide, GC33-1768 MQSeries para Sun Solaris MQSeries para Sun Solaris V5.1 Comienzo rpido, GC10-3076 (GC33-1870)

MQSeries Utilizacin de Java MQSeries Utilizacin de Java, SC10-3345 (SC34-5456), proporciona informacin de gua y consulta para los usuarios de Enlaces MQSeries para Java y Cliente MQSeries para Java. Las clases MQSeries para Java tienen soporte en los siguientes productos MQSeries: v MQSeries para AIX V5.1 | v MQSeries para AS/400 V5.1 v MQSeries para HP-UX V5.1 | v MQSeries para MVS/ESA V1.2 v MQSeries para OS/2 Warp V5.1 v MQSeries para Sun Solaris V5.1 v MQSeries para Windows NT V5.1 | Este manual slo est disponible en copia | software.

Publicaciones especficas de cada plataforma MQSeries


Cada producto MQSeries tiene como mnimo una publicacin especfica para su plataforma adems de los manuales de la familia MQSeries. MQSeries para AIX MQSeries para AIX V5.1 Comienzo rpido, GC10-3073 (GC33-1867) MQSeries para AS/400

Bibliografa

529

| | |

MQSeries para Tandem NonStop Kernel MQSeries para Tandem NonStop Kernel Gua de gestin del sistema, GC10-3147 (GC33-1893) MQSeries para VSE/ESA MQSeries for VSE/ESA Version 2 Release 1 Licensed Program Specifications, GC34-5365 MQSeries for VSE/ESA System Management Guide, GC34-5364 MQSeries para Windows MQSeries para Windows V2.0 Gua del usuario, GC10-3029 (GC33-1822) MQSeries para Windows V2.1 Gua del usuario, GC10-3176 (GC33-1965) MQSeries para Windows NT MQSeries para Windows NT V5.1 Comienzo rpido, GC10-3341 (GC34-5389) MQSeries para Windows NT Utilizacin de la interfaz de modelo de objetos componentes, SC10-3344 (SC34-5387) MQSeries LotusScript Extension, SC10-3343 (SC34-5404)

v v v v v

MQSeries para AS/400 V5.1 MQSeries para HP-UX V5.1 MQSeries para OS/2 Warp V5.1 MQSeries para Sun Solaris V5.1 MQSeries para Windows NT V5.1 (compilado en HTML) v MQSeries Link para R/3 V1.2 Los manuales de MQSeries tambin estn disponibles en formato HTML desde el sitio web de la familia de productos MQSeries:
http://www.ibm.com/software/ts/mqseries/

Portable Document Format (PDF)


Los archivos PDF pueden verse e imprimirse utilizando Adobe Acrobat Reader. Si necesita conseguir Adobe Acrobat Reader o desea actualizar la informacin sobre las plataformas que tienen soporte para Acrobat Reader, visite el sitio web de Adobe Systems Inc. en:
http://www.adobe.com/

Manuales en copia software


La mayora de los manuales de MQSeries se suministran tanto en formato de copia impresa como en copia software.

Con los siguientes productos de MQSeries se suministran versiones en PDF de los manuales MQSeries pertinentes: v MQSeries para AIX V5.1 | v MQSeries para AS/400 V5.1 v MQSeries para HP-UX V5.1 v MQSeries para OS/2 Warp V5.1 v MQSeries para Sun Solaris V5.1 v MQSeries para Windows NT V5.1 v MQSeries Link para R/3 V1.2 Las versiones en PDF de todos los manuales de MQSeries tambin estn disponibles en el sitio web de la familia de productos MQSeries:
http://www.ibm.com/software/ts/mqseries/

Formato BookManager
La biblioteca MQSeries se suministra en formato IBM BookManager en varios kits de grupos de bibliotecas en lnea, incluido el kit de grupo Transaction Processing and Data, SK2T-0730. Puede ver las publicaciones en copia software con formato IBM BookManager utilizando los siguientes programas bajo licencia de IBM: BookManager READ/2 BookManager READ/6000 BookManager READ/DOS BookManager READ/MVS BookManager READ/VM BookManager READ para Windows

Formato PostScript
La biblioteca de MQSeries se facilita en formato PostScript (.PS) para muchos de los productos de MQSeries de la Versin 2. Los manuales en formato PostScript pueden imprimirse en una impresora PostScript o visualizarse en un visor adecuado.

Formato de ayuda Windows Formato HTML


La documentacin pertinente de MQSeries se proporciona en formato HTML con los siguientes productos de MQSeries: v MQSeries para AIX V5.1 El manual MQSeries para Windows Gua del usuario se suministra en formato de ayuda Windows con MQSeries para Windows Versin 2.0 y MQSeries para Windows Versin 2.1.

530

Consulta de programacin de aplicaciones (ILE RPG)

MQSeries en Internet

Informacin de MQSeries disponible en Internet


El sitio web de la familia de productos MQSeries se encuentra en la siguiente direccin:
http://www.ibm.com/software/ts/mqseries/

Siguiendo los enlaces desde este sitio web, podr: v Obtener la informacin ms reciente sobre la familia de productos MQSeries. v Acceder a los manuales de MQSeries en formatos HTML y PDF. v Bajar SupportPacs de MQSeries.

Publicaciones relacionadas
AS/400 ILE RPG/400 Gua del programador, SC10-9414 (SC09-1525) AS/400 ILE RPG/400 Manual de consulta, SC10-9415 (SC09-1526)

Bibliografa

531

Publicaciones relacionadas

532

Consulta de programacin de aplicaciones (ILE RPG)

ndice A
mbito de asas 233, 267 aplicacin de confianza 32 archivo copy lenguaje de programacin RPG 8 archivos de copia 351 asa, mbito 233, 267 asas 344 atributo AlterationDate cola 305 definicin de proceso 333 gestor de colas 338 lista de nombres 331 atributo AlterationTime cola 305 definicin de proceso 333 gestor de colas 338 lista de nombres 331 atributo ApplId 333 atributo ApplType 334 atributo AuthorityEvent 338 atributo BackoutRequeueQName 312 atributo BackoutThreshold 312 atributo BaseQName 329 atributo ClusterName 306 atributo ClusterNamelist 306 atributo ClusterWorkloadData 340 atributo ClusterWorkloadExit 340 atributo ClusterWorkloadLength 340 atributo CodedCharSetId 340 atributo CommandInputQName 341 atributo CommandLevel 341 atributo CreationDate 312 atributo CreationTime 312 atributo CurrentQDepth 313 atributo ChannelAutoDef 339 atributo ChannelAutoDefEvent 339 atributo ChannelAutoDefExit 339 atributo DeadLetterQName 342 atributo DefBind 306 atributo DefinitionType 313 atributo DefInputOpenOption 314 atributo DefPersistence 306 atributo DefPriority 307 atributo DefXmitQName 343 atributo DistLists 314, 343 atributo EnvData 334 atributo HardenGetBackout 315 atributo InhibitEvent 343 atributo InhibitGet 308 atributo InhibitPut 308 atributo InitiationQName 316 atributo LocalEvent 343 atributo MaxHandles 344 atributo MaxMsgLength cola local 316 gestor de colas 344 atributo MaxPriority 344 atributo MaxQDepth 317 atributo MaxUncommittedMsgs 345 atributo MsgDeliverySequence 317 Copyright IBM Corp. 1994, 2000 atributo NameCount 331 atributo NamelistDesc 332 atributo NamelistName 332 atributo Names 332 atributo OpenInputCount 318 atributo OpenOutputCount 318 atributo PerformanceEvent 345 atributo Platform 346 atributo ProcessDesc 334 atributo ProcessName cola local 319 definicin de proceso 335 atributo QDepthHighEvent 319 atributo QDepthHighLimit 319 atributo QDepthLowEvent 320 atributo QDepthLowLimit 320 atributo QDepthMaxEvent 320 atributo QDesc 309 atributo QMgrDesc 346 atributo QMgrIdentifier 346 atributo QMgrName 346 atributo QName 309 atributo QServiceInterval 321 atributo QServiceIntervalEvent 321 atributo QType 309 atributo RemoteEvent 346 atributo RemoteQMgrName 327 atributo RemoteQName 328 atributo RepositoryName 347 atributo RepositoryNamelist 347 atributo RetentionInterval 322 atributo Scope 309 atributo Shareability 322 atributo StartStopEvent 347 atributo SyncPoint 347 atributo TriggerControl 322 atributo TriggerData 323 atributo TriggerDepth 323 atributo TriggerInterval 348 atributo TriggerMsgPriority 323 atributo TriggerType 324 atributo Usage 324 atributo UserData 335 atributo XmitQName 328 atributos cola alias 329 cola local 311 cola remota, definicin local de 327 comunes a todas las colas 305 definicin de proceso 333 gestor de colas 337 lista de nombres 331 atributos de colas alias 329 comunes a todas las colas 305 definicin local de remota 327 local 311 modelo 311 atributos de definicin de proceso 333 atributos de listas de nombres 331 atributos del gestor de colas 337 Ayuda Windows 530

B
bibliografa 527 BookManager 530

C
campo BOOPT 15 campo BOSID 15 campo BOVER 15 campo CIAC 25 campo CIADS 23 campo CIAI 26 campo CIAUT 25 campo CICC estructura MQCIH 21 campo CICNC 27 campo CICP 28 campo CICSI 20 campo CICT 23 campo CIENC 20 campo CIEO 28 campo CIFAC 24 campo CIFKT 23 campo CIFL 26 campo CIFLG 20 campo CIFMT 20 campo CIFNC 24 campo CIGWI 22 campo CIII 28 campo CILEN 19 campo CILT 22 campo CINTI 27 campo CIODL 22 campo CIREA 21 campo CIRET 20 campo CIRFM 25 campo CIRS1 25 campo CIRS2 27 campo CIRS3 27 campo CIRS4 28 campo CIRSI 26 campo CIRTI 26 campo CISC 26 campo CISID 19 campo CITES 24 campo CITI 26 campo CIUOW 21 campo CIVER 19 campo CNCCO 33 campo CNCCP 33 campo CNOPT 32 campo CNSID 31 campo CNVER 31 campo de codificacin utilizar 477 campo de informe utilizar 481 campo DHCNT 40

533

campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo

DHCSI 39 DHENC 39 DHFLG 39 DHFMT 39 DHLEN 38 DHORO 40 DHPRF 40 DHPRO 41 DHSID 38 DHVER 38 DLCSI 47 DLDM 47 DLDQ 46 DLENC 47 DLFMT 47 DLPAN 48 DLPAT 48 DLPD 48 DLPT 49 DLREA 45 DLSID 45 DLVER 45 DXAOP 494 DXCC 495 DXCSI 494 DXENC 494 DXHCN 498 DXLEN 495 DXREA 496 DXRES 497 DXSID 493 DXVER 494 DXXOP 494 GMGST 74 GMMO 72 GMOPT 52 GMRE1 75 GMRL 76 GMRQN 72 GMSEG 75 GMSG1 71 GMSG2 71 GMSID 52 GMSST 75 GMTOK 75 GMVER 52 GMWI 71 IIAUT 81 IICMT 82 IICSI 80 IIENC 80 IIFLG 81 IIFMT 80 IILEN 80 IILTO 81 IIMMN 81 IIRFM 81 IIRSV 83 IISEC 83 IISID 80 IITID 82 IITST 82 IIVER 80 MDACC 119 MDAID 120 MDAOD 125 MDBOC 116

campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo

MDCID 115 MDCSI 106 MDENC 105 MDEXP 99 MDFB 101 MDFMT 107 MDGID 126 MDMFL 128 MDMID 113 MDMT 98 MDOFF 128 MDOLN 133 MDPAN 123 MDPAT 121 MDPD 123 MDPER 112 MDPRI 111 MDPT 124 MDREP 88 MDRM 117 MDRQ 116 MDSEQ 127 MDSID 87 MDUID 118 MDVER 87 MECSI 140 MEENC 140 MEFLG 141 MEFMT 140 MEGID 141 MELEN 140 MEMFL 141 MEOFF 141 MEOLN 141 MESEQ 141 MESID 140 MEVER 140 ODASI 150 ODAU 147 ODDN 146 ODIDC 148 ODKDC 147 ODMN 145 ODON 145 ODORO 148 ODORP 149 ODOT 144 ODREC 147 ODRMN 151 ODRQN 150 ODRRO 149 ODRRP 150 ODSID 144 ODUDC 148 ODVER 144 ORMN 153 ORON 153 PMCT 165 PMIDC 165 PMKDC 165 PMOPT 156 PMPRF 167 PMPRO 167 PMPRP 169 PMREC 166 PMRMN 166 PMRQN 166

campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo campo

PMRRO 168 PMRRP 170 PMSID 156 PMTO 165 PMUDC 165 PMVER 156 PRACC 175 PRCID 174 PRFB 174 PRGID 174 PRMID 173 RMCSI 179 RMDEL 181 RMDEO 181 RMDL 182 RMDNL 182 RMDNO 182 RMDO 183 RMDO2 183 RMENC 179 RMFLG 180 RMFMT 179 RMLEN 179 RMOII 180 RMOT 180 RMSEL 180 RMSEO 180 RMSID 178 RMSNL 181 RMSNO 181 RMVER 178 RRCC 187 RRREA 187 TC2AI 196 TC2AT 196 TC2ED 196 TC2PN 196 TC2QMN 197 TC2QN 196 TC2SID 196 TC2TD 196 TC2UD 196 TC2VER 196 TMAI 192 TMAT 191 TMED 192 TMPN 191 TMQN 191 TMSID 190 TMTD 191 TMUD 192 TMVER 190 WICSI 200 WIENC 200 WIFLG 200 WIFMT 200 WILEN 200 WIRSV 201 WISID 199 WISNM 200 WISST 201 WITOK 201 WIVER 199 XQMD 207 XQRQ 206 XQRQM 206 XQSID 206

534

Consulta de programacin de aplicaciones (ILE RPG)

campo XQVER 206 cdigo de terminacin 373 cdigos de razn lista alfabtica 373 lista numrica 464 cdigos de retorno 373 cola alias 329 cola dinmica 261 compilar 351 constantes, valores de 443 mbito (SCO*) 470 mbito de seguridad IMS (ISS*) 458 asa de conexin (HC*) 456 asa de objeto (HO*) 456 autenticador IMS (IAU*) 457 codificacin (EN*) 452 codificacin para enteros binarios (EN*) 453 codificacin para enteros decimales empaquetados (EN*) 453 codificacin para nmeros de coma flotante (EN*) 453 cdigo de inicio de transaccin de cabecera CICS (SC*) 450 cdigo de retorno de puente CICS (CRC*) 450 cdigos de razn (RC*) 464 cdigos de terminacin (CC*) 447 compartibilidad de cola (QA*) 464 control de unidad de trabajo de cabecera CICS (CU*) 450 controles de desencadenamiento (TC*) 470 cuenta de nombres (NC*) 460 descriptor ADS de cabecera CICS (AD*) 447 distintivos de cabecera CICS (CIF*) 448 distintivos de cabecera de distribucin (DHF*) 451 distintivos de cabecera de informacin de carga de trabajo (WI*) 472 distintivos de cabecera de mensaje de referencia (RM*) 469 distintivos de cabecera IMS (II*) 457 distintivos de campo de registro de poner mensaje (PF*) 463 distintivos de extensin de descriptor de mensaje (MEF*) 459 distintivos de mensaje (MF*) 459 enlace (BND*) 445 estado de final de tarea de cabecera CICS (TE*) 450 estado de grupo (GS*) 455 estado de segmento (SS*) 470 estado de transaccin IMS (ITS*) 458 formato (FM*) 454 identificador de correlacin (CI*) 448 identificador de estructura (formato de tipo carcter) de mensaje desencadenante (TC*) 471 identificador de estructura de cabecera CICS (CI*) 448 identificador de estructura de cabecera de cola de transmisin 472 identificador de estructura de cabecera de distribucin (DH*) 451

constantes, valores de 443 (continuacin) identificador de estructura de cabecera de informacin de carga de trabajo (WI*) 472 identificador de estructura de cabecera de mensaje de referencia (RM*) 469 identificador de estructura de cabecera de mensaje en espera (DL*) 452 identificador de estructura de cabecera de mensaje no entregado (DL*) 452 identificador de estructura de cabecera IMS (II*) 458 identificador de estructura de descriptor de mensaje (MD*) 458 identificador de estructura de descriptor de objeto (OD*) 461 identificador de estructura de extensin de descriptor de mensaje (ME*) 459 identificador de estructura de mensaje desencadenante (TM*) 471 identificador de estructura de opciones de conectar (CN*) 449 identificador de estructura de opciones de empezar (BO*) 446 identificador de estructura de opciones de obtener mensaje (GM*) 455 identificador de estructura de opciones de poner mensaje (PM*) 463 identificador de estructura de parmetro de rutina de salida de conversin de datos (DX*) 452 identificador de grupo (GI*) 454 identificador de instancia de objeto (OII*) 461 identificador de instancia de transaccin IMS (ITI*) 458 identificador de juego de caracteres codificado (CS*) 447 identificador de llamada (MQ*) 448 identificador de mensaje (MI*) 460 identificador de seguridad (SI*) 470 informacin de retorno (FB*) 453 inhibir obtener (QA*) 463 inhibir poner (QA*) 463 intervalo de caducidad (EI*) 452 intervalo de espera (WI*) 471 intervalo de espera de obtener de cabecera CICS (WI*) 448 longitud de cabecera CICS (CI*) 448 longitud de cabecera IMS (II*) 458 longitud de datos de salida de cabecera CICS (OL*) 450 longitud de descriptor de objeto (OD*) 461 longitud de estructura de cabecera de informacin de carga de trabajo (WI*) 472 longitud de extensin de descriptor de mensaje (ME*) 459 longitud de opciones de poner mensaje (PM*) 463 longitud devuelta (RL*) 468 longitud original (OL*) 461

constantes, valores de 443 (continuacin) longitudes de campos de tipo serie de caracteres y de tipo byte (LN*) 443 mscaras de codificacin (EN*) 452 mscaras de distintivos de mensaje (MF*) 460 mscaras de opciones de informe (RO*) 469 mscaras y factores de convertir caracteres (DCC*) 451 memorizacin de restitucin (QA*) 464 modalidad de compromiso IMS (ICM*) 457 nivel de mandato (CMLV*) 449 nombre de funcin de cabecera CICS (CF*) 447 notificacin de sucesos (EV*) 453 notificacin de sucesos (QSIE*) 464 opciones de abrir (OO*) 461 opciones de cerrar (CO*) 449 opciones de conectar (CN*) 449 opciones de convertir caracteres (DCC*) 451 opciones de emparejar (MO*) 460 opciones de empezar (BO*) 445 opciones de informe (RO*) 469 opciones de obtener mensaje (GM*) 455 opciones de poner mensaje (PM*) 462 permanencia (PE*) 462 plataforma (PL*) 462 prioridad (PR*) 463 punto de sincronismo (SP*) 470 recurso de cabecera CICS (FC*) 447 respuesta de rutina de salida de conversin de datos (XR*) 472 secuencia de entrega de mensajes (MS*) 459 segmentacin (SEG*) 470 selectores de atributo de tipo entero (IA*) 456 selectores de atributos de tipo carcter (CA*) 446 smbolo de contabilidad (AC*) 444 smbolo de mensaje (MTK*) 460 soporte de lista de distribucin (DL*) 451 tarea conversacional de cabecera CICS (CT*) 447 tipo de aplicacin (AT*) 445 tipo de cola (QT*) 464 tipo de definicin de cola (QD*) 464 tipo de desencadenante (TT*) 471 tipo de enlace de cabecera CICS (LT*) 449 tipo de identificador de seguridad (SIT*) 470 tipo de mensaje (MT*) 460 tipo de objeto (OT*) 462 tipo de smbolo de contabilidad (ATT*) 444 utilizacin (US*) 471 valor de atributo de tipo entero (IAV*) 457 ndice

535

constantes, valores de 443 (continuacin) versin (formato de tipo carcter) de mensaje desencadenante (TC*) 471 versin de cabecera CICS (CI*) 448 versin de cabecera de cola de transmisin (XQ*) 473 versin de cabecera de distribucin (DH*) 451 versin de cabecera de informacin de carga de trabajo (WI*) 472 versin de cabecera de mensaje de referencia (RM*) 469 versin de cabecera de mensaje en espera (DL*) 452 versin de cabecera de mensaje no entregado (DL*) 452 versin de cabecera IMS (II*) 458 versin de descriptor de mensaje (MD*) 458 versin de descriptor de objeto (OD*) 461 versin de estructura de parmetro de rutina de salida de conversin de datos (DX*) 452 versin de extensin de descriptor de mensaje (ME*) 459 versin de mensaje desencadenante (TM*) 471 versin de opciones de conectar (CN*) 449 versin de opciones de empezar (BO*) 446 versin de opciones de obtener mensaje (GM*) 455 versin de opciones de poner mensaje (PM*) 463 convenios de notacin lenguaje de programacin RPG 10 conversin de datos convenios de proceso 487 mensajes de informe 491 conversin de mensajes de informe 491 creacin de alias cola de respuestas 327 gestor de colas 327 creacin de alias de un gestor de colas 327 creacin de alias de una cola de respuestas 327 creacin de una aplicacin 351 CRTPGM 351 CRTRPGMOD 351 CRTRPGPGM 351

estructura de cabecera de mensaje de referencia 177 estructura de cabecera de mensaje no entregado 43 estructura de descriptor de objeto 143 estructura de extensin de descriptor de mensaje 137 estructura de opciones de conectar 31 estructura de opciones de empezar 15 estructura de opciones de obtener mensaje 51 estructura de opciones de poner mensaje 155 estructura de registro de objeto 153 estructura de registro de poner mensaje 173 estructura de registro de respuesta 187 estructura del descriptor de mensaje 85 estructura del mensaje desencadenante 189 estructura MQBO 15 estructura MQCIH 17 estructura MQCNO 31 estructura MQDH 37 estructura MQDLH 43 estructura MQGMO 51 estructura MQIIH 79 estructura MQMDE 137 estructura MQOD 143 estructura MQOR 153 estructura MQPMO 155 estructura MQPMR 173 estructura MQRMH 177 estructura MQRR 187 estructura MQTM 189 estructura MQTMC2 195 estructura MQWIH 199 estructura MQXQH 203 estructuras: lenguaje de programacin RPG 351 estructuras lenguaje de programacin RPG 10

L
lenguaje de programacin RPG archivo COPY 8 convenios de notacin 10 estructuras 10, 351 listas de distribucin 314, 343

LL
llamada MQBACK 213 llamada MQBEGIN 217 llamada MQCLOSE 221 llamada MQCMIT 227 llamada MQCONN 231 llamada MQCONNX 237 llamada MQCONVX 504 llamada MQDISC 239 llamada MQGET 241 llamada MQINQ 251 llamada MQOPEN 261 llamada MQPUT 277 llamada MQPUT1 287 llamada MQSET 295 llamada MQXCNVC 499 llamadas convenios utilizados 211 descripcin detallada MQBACK 213 MQBEGIN 217 MQCLOSE 221 MQCMIT 227 MQCONN 231 MQCONNX 237 MQCONVX 504 MQDISC 239 MQGET 241 MQINQ 251 MQOPEN 261 MQPUT 277 MQPUT1 287 MQSET 295 MQXCNVC 499

F
fonts de este manual xii formato PostScript 530 formatos incorporados 107

M
mensajes, orden de los 282, 292 Mensajes no comprometidos 345 modalidad de compatibilidad 234 MQBYTE 3 MQBYTEn 4 MQCHAR 4 MQCHARn 4 MQDXP, estructura 493 MQHCONN 5 MQHOBJ 5 MQLONG 5 MQMD estructura 85 parmetro 505 MQSeries, publicaciones 527 MQSeries para AS/400 consideraciones de punto de sincronismo con CICS para AS/400 353 puntos de sincronismo 352

G
glosario 513

H D
desencadenamiento 322 dinmica, cola 261 HTML (Hypertext Markup Language) 530 Hypertext Markup Language (HTML) 530

E
estructura de cabecera de cola de transmisin 203 estructura de cabecera de distribucin 37

I
identificador del juego de caracteres codificados 340 incorporacin de formatos 107 informe, conversin de mensajes de 491

536

Consulta de programacin de aplicaciones (ILE RPG)

O
orden de mensajes 246 orden del mensaje 282, 292 ordenacin de mensajes 246

P
parmetro BEGOP 217 parmetro BUFFER llamada MQGET 242 llamada MQPUT 278 llamada MQPUT1 288 parmetro BUFLEN llamada MQGET 242 llamada MQPUT 278 llamada MQPUT1 288 parmetro CALEN llamada MQINQ 257 llamada MQSET 297 parmetro CMPCOD llamada MQBEGIN 217 llamada MQCLOSE 223 llamada MQCONN 233 llamada MQCONNX 237 llamada MQDISC 239 llamada MQGET 243 llamada MQINQ 257 llamada MQOPEN 268 llamada MQPUT 279 llamada MQPUT1 288 llamada MQSET 297 llamada MQXCNVC 503 parmetro CNOPT 237 parmetro COMCOD llamada MQBACK 213 llamada MQCMIT 227 parmetro CHRATR llamada MQINQ 257 llamada MQSET 297 parmetro DATLEN llamada MQGET 242 llamada MQXCNVC 502 parmetro GMO 242 parmetro HCONN mbito 233 llamada MQBACK 213 llamada MQBEGIN 217 llamada MQCLOSE 221 llamada MQCMIT 227 llamada MQCONN 233 llamada MQCONNX 237 llamada MQDISC 239 llamada MQGET 241 llamada MQINQ 251 llamada MQOPEN 261 llamada MQPUT 277 llamada MQPUT1 287 llamada MQSET 295 llamada MQXCNVC 499 parmetro HOBJ mbito 267 llamada MQCLOSE 221 llamada MQGET 241 llamada MQINQ 251 llamada MQOPEN 267 llamada MQPUT 277 llamada MQSET 295

parmetro IACNT llamada MQINQ 256 llamada MQSET 296 parmetro INBUF 505 parmetro INLEN 505 parmetro INTATR llamada MQINQ 257 llamada MQSET 297 parmetro MQDXP 504 parmetro MSGDSC llamada MQGET 241 llamada MQPUT 277 llamada MQPUT1 287 parmetro OBJDSC llamada MQOPEN 261 llamada MQPUT1 287 parmetro OPTS llamada MQCLOSE 221 llamada MQOPEN 261 llamada MQXCNVC 499 parmetro OUTBUF 506 parmetro OUTLEN 505 parmetro PMO llamada MQPUT 277 llamada MQPUT1 287 parmetro QMNAME 231 llamada MQCONNX 237 parmetro REASON llamada MQBACK 213 llamada MQBEGIN 217 llamada MQCLOSE 223 llamada MQCMIT 227 llamada MQCONN 233 llamada MQCONNX 237 llamada MQDISC 239 llamada MQGET 243 llamada MQINQ 257 llamada MQOPEN 268 llamada MQPUT 279 llamada MQPUT1 288 llamada MQSET 297 llamada MQXCNVC 503 parmetro SELCNT llamada MQINQ 251 llamada MQSET 295 parmetro SELS llamada MQINQ 251 llamada MQSET 295 parmetro SRCBUF 502 parmetro SRCCSI 502 parmetro SRCLEN 502 parmetro TGTBUF 502 parmetro TGTCSI 502 parmetro TGTLEN 502 PDF (Portable Document Format) permanencia 307 Portable Document Format (PDF) programa de ejemplo AMQ3ECH4 programa de ejemplo AMQ3GBR4 programa de ejemplo AMQ3GET4 programa de ejemplo AMQ3INQ4 programa de ejemplo AMQ3PUT4 programa de ejemplo AMQ3REQ4 programa de ejemplo AMQ3SET4 programa de ejemplo AMQ3SRV4 programa de ejemplo AMQ3TRG4 programas de ejemplo 355

programas de ejemplo 355 (continuacin) consultar 364 eco 363 establecer 366 examinar 358 obtener 359 peticin 360 poner 357 preparar y ejecutar 357 servidor desencadenante 368 supervisor de desencadenamiento 367 utilizar colas remotas 369 utilizar el desencadenamiento 360 Programas de ejemplo en RPG (ILE) 355 publicaciones MQSeries 527 relacionadas 531 publicaciones en copia software 530 punto de sincronismo 347 con MQSeries para AS/400 352 en aplicaciones CICS para AS/400 353

Q
QRPGLESRC 351

T
terminologa xii terminologa utilizada en este manual 513 tipos de datos, convenios utilizados 3, 7 tipos de datos, descripcin detallada elementales ILE 5 MQBYTE 3 MQBYTEn 4 MQCHAR 4 MQCHARn 4 MQHCONN 5 MQHOBJ 5 MQLONG 5 visin general 3 estructura MQBO 15 MQCIH 17 MQCNO 31 MQDH 37 MQDLH 43 MQDXP 493 MQGMO 51 MQIIH 79 MQMD 85 MQMDE 137 MQOD 143 MQOR 153 MQPMO 155 MQPMR 173 MQRMH 177 MQRR 187 MQTM 189 MQTMC2 195 MQWIH 199 MQXQH 203 ndice

530 530 363 358 359 364 357 360 366 368 367

537

tipos de datos, descripcin detallada (continuacin) visin general 7 tipos de letra de este manual xii

valores MT* valores MTK* valores NC* valores OD* valores OII* valores OL* valores OO* valores OT* valores PE* valores PF* valores PL* valores PM* valores PR* valores QA*

98 75 331 144 180 23, 133 262, 314 144 112, 307 40, 167 346 156 111

V
valores AC* 120 valores AT* atributo ApplType 334 campo MDPAT 121 campo TMAT 192 valores BND* 306 valores BO* 15 valores CA* 252 valores CF* 24 valores CI* 19, 116 valores CMLV* 341 valores CN* 31, 32 valores CO* 221 valores CRC* 20 valores CS* 106 valores CU* 21 valores de CC* 373 valores de DCC* 499 valores de DX* 493 valores de RC* 374 valores de XR* 497 valores DH* 38 valores DHF* 39 valores DL* 45, 315, 343 valores EI* 101 valores EN* 105 valores EV* atributo AuthorityEvent 338 atributo ChannelAutoDefEvent 339 atributo InhibitEvent 343 atributo LocalEvent 343 atributo PerformanceEvent 345 atributo QDepthHighEvent 319 atributo QDepthLowEvent 320 atributo QDepthMaxEvent 320 atributo RemoteEvent 346 atributo StartStopEvent 347 valores FB* 46, 101 valores FM* 107 valores GI* 127 valores GM* 52 valores GS* 74 valores HC* 239 valores HO* 221 valores IA* 252, 296 valores IAU* 81 valores IAV* 257 valores ICM* 82 valores II* 80 valores ISS* 83 valores ITI* 82 valores ITS* 82 valores LN* 443 valores LT* 22 valores MD* 87 valores ME* 140 valores MEF* 141 valores MF* 128 valores MI* 115 valores MO* 72 valores MS* 317

atributo InhibitGet 308 atributo InhibitPut 308 atributo Shareability 322 valores QD* valores QSIE* valores QT* valores RC* valores RL* valores RM* valores RO* valores SCO* valores SEG* valores SI* valores SIT* valores SP* valores SS* valores TC* valores TM* valores TT* valores US* valores WI* valores XQ* 313 321 309, 329 104 76 178, 180 88 309 75 150 347 75 196, 322 190 324 324 22, 71, 199 206

150

538

Consulta de programacin de aplicaciones (ILE RPG)

Envo de comentarios a IBM


Si ha habido en este manual algn aspecto que le haya gustado o disgustado de un modo especial, utilice uno de los mtodos que se indican a continuacin para enviar sus comentarios a IBM. No dude en comunicarnos todo aquello que considere errores u omisiones especficos, as como todo lo que afecte a la precisin, organizacin, temas o integridad del manual. Por favor, limite sus comentarios a la informacin que hay en el manual y a su presentacin. Si desea pedir otras publicaciones o hacer preguntas o comentarios sobre las funciones de productos o sistemas de IBM, pngase en contacto con el representante o concesionario autorizado de IBM. Cuando enva sus comentarios a IBM, concede a IBM un derecho no exclusivo a utilizar o distribuir los comentarios en la forma que considere adecuada y sin incurrir por ello en ninguna obligacin para con usted. Puede enviar sus comentarios a IBM de una de las siguientes formas: v Por correo, a esta direccin: IBM S.A. National Language Solutions Center Edificio lIlla Avda. Diagonal, 571 08029 Barcelona Espaa v Por fax: Desde fuera de Espaa, despus del cdigo de acceso internacional, utilice 34933 216 134 Desde Espaa, utilice 933 216 134 v A travs de Internet utilice: hojacom@vnet.ibm.com Sea cual sea el mtodo que utilice, no olvide incluir: v El nmero y el ttulo de la publicacin v El tema al que se refieren sus comentarios v Su nombre y direccin/nmero de telfono/nmero de fax/ID de red

Copyright IBM Corp. 1994, 2000

539

SC10-3412-00

Spine information:

MQSeries para AS/400

Consulta de programacin de aplicaciones (ILE RPG)

Versin 5 Release 1

Вам также может понравиться