REST API tratamiento de errores
REST API informa de los errores devolviendo un código de respuesta HTTP apropiado, por ejemplo 404 (No encontrado), y una respuesta JSON. Cualquier código de respuesta HTTP que no esté en el rango 200 - 299 se considera un error.
Formato de respuesta de error
- Un objeto JSON externo que contiene una matriz JSON única denominada
error. - Cada elemento de la matriz es un objeto JSON que representa información sobre un error. Cada
objeto JSON contiene las siguientes propiedades:
- Tipo
- Serie.
- messageId
- Serie.
- mensaje
- Serie.
- explanation
- Serie.
- acción
- Serie.
- qmgrName
Este campo sólo está disponible para z/OS® cuando el gestor de colas es miembro del grupo de colas compartidas. Debe haber especificado el parámetro de consulta opcional commandScope o el atributo queueSharingGroupDisposition.- completionCode
- Este campo solo está disponible cuando type es
pcf,javaorest. - reasonCode
- Este campo solo está disponible cuando type es
pcf,javaorest. - exceptions
- Este campo solo está disponible cuando type es
java.
![[z/OS]](ngzos.gif)
Errores con los grupos de compartición de colas
En un grupo de compartición de colas, se puede especificar un parámetro de consulta opcional de commandScope en determinados mandatos. Este parámetro permite propagar el mandato a otros gestores de colas del grupo de compartición de colas. Cualquiera de estos mandatos puede fallar independientemente, por lo que algunos mandatos terminarán satisfactoriamente y otros fallarán para el grupo de compartición de colas.
En los casos en los que un mandato falla parcialmente, se devuelve un código de error HTTP 500. Para cada gestor de colas que genera un error, se devuelve información sobre ese error como un elemento en la matriz JSON error. Para cada gestor de colas que ejecuta correctamente el mandato, se devuelve el nombre del gestor de colas como un elemento en una matriz JSON success.
Ejemplos
- El ejemplo siguiente muestra la respuesta de error a un intento de obtener información sobre un gestor de colas que no existe:
"error": [ { "type": "rest", "messageId": "MQWB0009E", "message": "MQWB0009E: Could not query the queue manager 'QM1'", "explanation": "The MQ REST API was invoked specifying a queue manager name which cannot be located.", "action": "Resubmit the request with a valid queue manager name or no queue manager name, to retrieve a list of queue managers. " } ]
El ejemplo siguiente muestra la respuesta de error a un intento de suprimir una cola en un grupo de compartición de colas que no existe para algunos gestores de colas:"error" : [ { "type": "rest", "messageId": "MQWB0037E", "message": "MQWB0037E: Could not find the queue 'missingQueue' - the queue manager reason code is 3312 : 'MQRCCF_UNKNOWN_OBJECT_NAME'", "explanation": "The MQ REST API was invoked specifying a queue name which cannot be located.", "action": "Resubmit the request with the name of an existing queue, or with no queue name to retrieve a list of queues.", "qmgrName": "QM1" }, { "type": "rest", "messageId": "MQWB0037E", "message": "MQWB0037E: Could not find the queue 'missingQueue' - the queue manager reason code is 3312 : 'MQRCCF_UNKNOWN_OBJECT_NAME'", "explanation": "The MQ REST API was invoked specifying a queue name which cannot be located.", "action": "Resubmit the request with the name of an existing queue, or with no queue name to retrieve a list of queues.", "qmgrName": "QM2" } ], "success" : [{"qmgrName": "QM3"}, {"qmgrName": "QM4"}]
Errores con solicitudes MFT
{"error": [{
"action": "Enable the Managed File Transfer REST API and resubmit the request.",
"completionCode": 0,
"explanation": "Managed File Transfer REST calls are not permitted as the service is disabled.",
"message": "MQWB0400E: Managed File Transfer REST API is not enabled.",
"msgId": "MQWB0400E",
"reasonCode": 0,
"type": "rest"
}]}
{"error": [{
"action": "Set the coordination queue manager name and restart the mqweb server.",
"completionCode": 0,
"explanation": "Coordination queue manager name must be set before using Managed File Transfer REST services.",
"message": "MQWB0402E: Coordination queue manager name is not set.",
"msgId": "MQWB0402E",
"reasonCode": 0,
"type": "rest"
}]}