Signatur
Beschreibung
mqseries_strerror() ist Teil der PHP-MQSeries-Erweiterung und dient dazu, numerische Fehlercodes aus IBM WebSphere MQ (MQSeries) in lesbare Fehlermeldungen umzuwandeln. Die Funktion ist besonders nützlich beim Debugging und bei der Fehlerbehandlung in Anwendungen, die mit MQ-Warteschlangen kommunizieren.
IBM MQ verwendet sogenannte Reason Codes (z. B. 2035 für MQRC_NOT_AUTHORIZED), um den genauen Grund eines Fehlers zu beschreiben. Anstatt diese Codes manuell in der IBM-Dokumentation nachschlagen zu müssen, liefert mqseries_strerror() direkt den entsprechenden Klarnamen bzw. die Beschreibung.
Typisch wird die Funktion in einem Fehlerfall eingesetzt, nachdem eine MQSeries-Funktion einen Fehler zurückgegeben hat. Man liest den Reason Code aus dem entsprechenden Parameter (z. B. $reason) aus und übergibt ihn an mqseries_strerror(), um eine aussagekräftige Fehlermeldung zu erhalten.
- Die Erweiterung muss als PECL-Paket (mqseries) installiert sein.
- Die Funktion arbeitet rein lokal mit einer internen Tabelle und kommuniziert nicht mit dem MQ-Server.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $reason_code Pflicht | int | Der numerische MQSeries Reason Code, dessen Klartext-Fehlermeldung ermittelt werden soll (z. B. 2035 für MQRC_NOT_AUTHORIZED). |
Rückgabewert
Beispiele
Fehlermeldung nach fehlgeschlagenem mqseries_conn()-Aufruf ausgeben
<?php
// Verbindung zu einem MQ-Queue-Manager herstellen
mqseries_conn('MyQueueManager', $hconn, $comp_code, $reason);
if ($comp_code !== MQSERIES_MQCC_OK) {
// Reason Code in Klartext umwandeln
$errorMessage = mqseries_strerror($reason);
echo 'MQ-Verbindungsfehler (Reason Code ' . $reason . '): ' . $errorMessage . PHP_EOL;
} else {
echo 'Verbindung erfolgreich hergestellt.' . PHP_EOL;
}
?>
Direktes Nachschlagen eines bekannten Reason Codes
<?php
// Bekannter Reason Code: 2035 = MQRC_NOT_AUTHORIZED
$reasonCode = 2035;
$message = mqseries_strerror($reasonCode);
echo 'Reason Code ' . $reasonCode . ' bedeutet: ' . $message . PHP_EOL;
// Weiterer bekannter Code: 2033 = MQRC_NO_MSG_AVAILABLE
$reasonCode2 = 2033;
echo 'Reason Code ' . $reasonCode2 . ' bedeutet: ' . mqseries_strerror($reasonCode2) . PHP_EOL;
?>
// Wichtig · Fallstricke
Die MQSeries-Erweiterung für PHP ist ein PECL-Paket und muss separat installiert werden. Sie setzt eine vorhandene IBM MQ Client-Installation auf dem Server voraus. Die Erweiterung ist nicht im Standard-PHP-Paket enthalten und wird für Produktionsumgebungen nur empfohlen, wenn eine Lizenz für IBM WebSphere MQ vorliegt.
Reason Codes sind in der offiziellen IBM MQ Dokumentation vollständig aufgelistet. mqseries_strerror() kennt möglicherweise nicht alle Codes neuerer MQ-Versionen, da die PECL-Erweiterung selten aktualisiert wird.