# IBM MQ

IBM MQ (anciennement WebSphere MQ, anciennement MQSeries) est un logiciel IBM de type middleware.
Disponible depuis plus de 25 ans, il reste beaucoup utilisé dans les infrastructures, tant dans les ETI que dans les sociétés internationales. MQ est par exemple utilisé dans les 50 plus grandes banques mondiales, et dans 85 des 100 plus grandes sociétés américaines.

## Historique

En 1990, IBM crée au laboratoire d'Hursley (UK) une équipe chargée d'étudier le développement d'un nouveau logiciel (nom de code Victory), permettant la communication asynchrone entre des applications, situées sur des systèmes hétérogènes.
En 1992, un partenariat est établi avec la société Systems Strategies (qui édite le logiciel ezBridge Transact), afin d'utiliser certain concepts. Les droits sur ezBridge ont ensuite été rachetés par IBM en 1993. L'année suivante, IBM annonce la première version de MQSeries pour MVS et pour l'AS/400 (MQM/400)
En 1994, arrive MQSeries sur les plates-formes VSE/ESA, Vax VMS, Tandem Guardian, HP-UX, SunOS, UnixWare et SCO UNIX. Sur l'AS/400, les versions 2.1 et 3.0 de MQM/400 sont disponibles.
À partir de 1995, de nouvelles plates-formes sont disponibles (OS/2, Aix, Sun Solaris, etc.), ainsi que les premières versions du client MQ pour Dos, Windows, Aix et OS/2). Le code provenant de ezBridge est remplacé par des développements IBM, la version courante est la version 2.0.
1997 voit l'annonce de la version 5.0 sur la plupart des plates-formes (IBM est passé directement de la 2.1 à la 5.0, un peu comme Microsoft avec Word au même moment). Cette version apporte le support des messages de 100 Mo, la segmentation et le groupage des messages.
MQSeries est en 1999 en version 2.1 sur OS/390, et en version 5.1 sur les systèmes distribués (sauf sur l'AS/400 en version 4.2.1). Cette version apporte le support du Cluster MQ, d'une mode simplifié du PubSub, et du JMS (à travers le SupportPack MA88). Un outil d'administration est disponible sous forme de MMC Windows, mais il impose l'installation d'une copie de MQSeries sur le poste, et donc le paiement d'une licence pour ce logiciel.
La fin de l'année 2000 voit arriver MQSeries 5.2 sur les systèmes distribués, avec un alignement des fonctions par version.
En 2002, à l'occasion de la sortie de la version 5.3, MQSeries change de nom en WebSphere MQ, avec un certain nombre de nouvelles fonctions :
* Support du SSL ;
* Passage de 2 Go à 2 To pour la taille maximum d'une file d'attente ;
* Nouvelle commande QSTATUS ;
* Amélioration des fonctions de clustering MQ, du support du JMS en natif et la possibilité d'utiliser des jokers dans la commande setmqaut.

### Période actuelle (depuis 2012)
#### WebSphere MQ version 6.0

WebSphere MQ Version 6.0 a été annoncé en juin 2006, avec une fin de support en septembre 2012 (6 ans). Les principales nouveautés sont les suivantes :
* MQ Explorer, client léger basé sur Eclipse, remplace la MMC Windows comme outil d'administration. MQ Explorer est disponible pour les systèmes Windows et Linux, et permet d'administrer des Queue Managers sur des systèmes z/OS.
* Les certificats SSL, auparavant gérés par des modules Microsoft (Internet Explorer), sont maintenant gérés directement par le GSKit IBM, comme sur les autres plates-formes.
* Une gestion plus fine du load-balancing pour les clusters MQ.
* Le listener est maintenant un objet MQSC, et peut donc être géré de manière simple.
* Support de Windows 64 bits (à partir du correctif 6.0.2.1)
* Support d'IP V6
* Nouvelles fonctions : Accounting et Statistics

#### WebSphere MQ version 7.0

WebSphere MQ Version 7.0 a été annoncé en juin 2008, avec une fin de support en septembre 2015 (7 ans). Les principales nouveautés sont les suivantes :
* Intégration du Publish Subscribe
** En provenance de WebSphere Message Broker
** Nouvelles API PubSub (MQSub…)
* Support étendu de JMS
** Un nouveau format de message MQ permet de stocker les propriétés JMS dans l'en-tête de message, sans recourir au à l'extension MQRFH2
* Amélioration du MQI
** Read Asynchrone des messages (MQ Call Back)
** Support des sélecteurs en MQGet
** Cooperative browsing
* MQ Explorer est disponible sous forme de paquet indépendant (SupportPack MS0T)
* Administration z/OS : Plus besoin du CAF pour utiliser un outil d'administration en mode client, dans la limite de 3 sessions
* Intégration de XMS (Manipulation de messages au format JMS en environnement non Java)
* Nouveaux logiciels :
** WebSphere MQ Advanced Message Security
*** Annoncé en octobre 2010
*** Remplace WebSphere MQ Extended Security Edition (ex Policy Director)
*** Chiffrement des messages de bout en bout
** WebSphere MQ File Transfer Edition
*** Annoncé en 2009
*** File Transfer over MQ
*** Basé sur des agents (MQ, FTP/SFTP, etc.)
*** Administration en mode ligne et/via MQ Explorer

#### WebSphere MQ version 7.0.1

WebSphere MQ Version 7.0.1 a été annoncé en septembre 2009, avec une fin de support en Septembre 2015 (6 ans). Les principales nouveautés sont les suivantes :
* Multi-Instance Queue Managers : Solution de Haute Disponibilité pour MQ basé sur deux serveurs, partageant un disque réseau (de type NFS ou GPFS)
* Automatic Client Reconnect : Nouvelle option qui permet aux clients MQ de se reconnecter automatiquement au Queue Manager après une bascule de ce dernier
* Connexion dynamique du client MQ à un « alias » de Queue Manager
* Nouveaux events permettant un suivi des changements de configuration :
** Statut « avant / après » d’un objet MQ
** Date / heure du changement
** Utilisateur ayant passé la commande
* Compression des logs sur z/OS
* Transport de messages SOAP

#### WebSphere MQ version 7.1

WebSphere MQ Version 7.1 a été annoncé en octobre 2011, avec une fin de support en avril 2017 (5 ans 1/2). Les principales nouveautés sont les suivantes :
* Multi-installation : Possibilité d'installer plusieurs copies du logiciel (à des versions identiques ou non) sur la même machine
* Possibilité de choisir les chemins d’installation
* Sécurisation par défaut des canaux :
** Par défaut pour les nouveaux Queue Managers
** Nouvel objet MQSC : Channel Authentication Record
* Filtrage des accès canal via CHLAUTH (filtrage par IP entrante, contenu du certificat SSL, compte utilisateur présenté, nom de Queue Manager…)
* La commande setmqaut est maintenant disponible via le langage MQSC (AUTHREC)
* La commande dmpmqcfg permet d'extraire en format MQSC la configuration du Queue Manager
* Sous Windows, les paramètres MQ précédemment stockés dans le registre reviennent dans les fichiers mqs.ini et qm.ini (comme sur les autres plates-formes distribuées)

#### WebSphere MQ version 7.5

WebSphere MQ Version 7.5 a été annoncé en avril 2012, avec une fin de support en avril 2018 (6 ans). Il s'agit essentiellement d'un repackaging de MQ version 7.1.
En version 7.1 et avant, les logiciels MQ, AMS et MFT étaient livrés sous forme de binaires séparés. À partir de la version 7.5, MQ, AMS et MFT sont livrés dans le même binaire, mais leur utilisation reste dépendante de la licence achetée :
* La licence MQ classique ne permet que l'utilisation des fonctions du logiciel MQ, MFT et AMS sont disponibles en option (payante)
* La licence MQ Advanced permet également d'utiliser AMS et MFT
Les quelques nouveautés dans MQ 7.5 sont les suivantes :
* Il est possible de spécifier des files de transmission multiples pour les clusters MQ.
* La structure du répertoire des données MQ est simplifiée.
* Les applications Java connectées à un Queue Manager peuvent spécifier un nom d'application qui sera repris dans l'entête des messages.
La version 7.5 n'est disponible sur les systèmes iSeries et z/OS.

#### WebSphere MQ version 8.0

WebSphere MQ Version 8.0 a été annoncé en avril 2014, avec une fin de support prévue en avril 2020 (6 ans). Les principales nouveautés sont les suivantes :
* Support du 64 bits sur l'ensemble des plates-formes
* Authentification des application possible via utilisateur / mot de passe
* Certificats SSL multiples pour un Queue Manager
* Améliorations des clusters PubSub (Routed PubSub)
* Support du JMS 2.0
À partir de la version 8.0, IBM MQ évolue de manière régulière. Des paquets de correctifs (Fixpack) peuvent apporter également des nouvelles fonctions.

##### IBM MQ version 8.0.0.2

Nouvelles fonctions apportées par le FixPack 8002 :
* LDAP pour authentifier les utilisateurs MQ
** Définitions des comptes et groupes coté OS plus nécessaire
** Disponible pour Unix, Windows, IBM i
* Activity trace : résolution à la microseconde

##### IBM MQ version 8.0.0.3

Nouvelles fonctions apportées par le FixPack 8003 :
* Authentification PAM pour Unix
** Pluggable Authentication Modules
** Même principe que LDAP en 8002
* Invalidation des CipherSpecs vulnérables
** Avant MQ 8.0.0.3 : 44 CipherSpecs disponibles
** À partir de MQ 8.0.0.3 : 17 CipherSpecs disponibles
* Nouveaux events pour les Queue Managers Multi-Instance

##### IBM MQ version 8.0.0.4

Nouvelles fonctions apportées par le FixPack 8004 :
* Nouveau paramètre capexpiry
** Permet de diminuer le TTL des messages pour les files et topics
* Clients MQ redistribuables
** Disponibles sous forme zip/tar
** Permet d'inclure des clients MQ dans des packages déployables
* Nouveaux events de sécurité
* Masquage du mot de passe XA dans le qm.ini
* Support de Docker
* Support des clients AMQP (MQ Light)

#### IBM MQ version 9.0

IBM MQ Version 9.0 a été annoncé en avril 2016, la fin de support n'est pas annoncée à ce jour. Elle ne devrait pas intervenir avant avril 2021 (5 ans de support par défaut pour ce type de logiciel).
À partir de la 9.x, IBM propose deux types versions : LTS (ou LTSR) et CD.
* LTS (Long Time Support Release)
** Les versions LTS sont supportées pendant au minimum 5 ans, et pendant leur durée de vie elles reçoivent des correctifs réguliers (9.0.0.1, 9.0.0.2… par exemple), mais sans aucune nouvelle fonction. Elles proposent un socle stable pour les organisations qui ne souhaitent pas faire évoluer rapidement leur socles techniques.
* CD (Continous Delivery)
** Les versions CD permettent de disposer rapidement des nouvelles fonctions au fur et à mesure de leur disponibilité (typiquement 3 mises à jour / an).
De manière générale, toutes les nouveautés incluses dans les différentes versions 8.0.0.x sont incluses dans MQ 9.0. Les autres nouveautés sont les suivantes :
* Accès à la CCDT via une URL pour tous les types de clients MQ
* AMS : Nouveau type de chiffrement (Confidentiality) moins consommateur de ressources, et support des JRE non IBM
* Sécurité : Authentification LDAP disponible pour Les Queue Managers Windows (comme Unix en 8004)
* MFT : Amélioration sur la gestion des erreurs FTP de l’agent Bridge
* Nouvelle version du Ressource Adapter pour WAS
* Support code page UTF16
* Trace applicative dynamique
* Monitoring des performances via PubSub
* Rappel de commandes MQSC sous Unix

##### IBM MQ version 9.0.1.0 (novembre 2016)

Il s'agit d'une version de type CD, qui apporte les fonctions suivantes :
* IBM MQ Console
** Interface d’administration MQ via un navigateur
* Administration MQ via une API REST
* Agent MFT package redistribuable
* z/OS Connect Service Provider
* JMS for CICS Liberty

##### IBM MQ version 9.0.2.0 (mars 2017)

Il s'agit d'une version de type CD, qui apporte les fonctions suivantes :
* Évolution du système de logging
* Support Ubuntu

##### IBM MQ version 9.0.3.0 ( avril 2017)

Il s'agit d'une version de type CD, qui apporte les fonctions suivantes :
* Connecteur Blockchain pour MQ for z/OS Value Unit Edition
* Améliorations MFT et API Rest

##### IBM MQ version 9.0.4.0 (octobre 2017)

Il s'agit d'une version de type CD, qui apporte les fonctions suivantes :
* Nouvelle solution de haute disponibilité : Replicated Data Queue Managers HA (High Availability)
** Configuration à 3 serveurs permettant une continuité de service pour les Queue Managers
* Nouvelle API MQ : REST Messaging
* Blockchain Bridge
* Salesforce Bridge
* Améliorations REST Admin
* Gateway REST Admin
* Nouveautés errors logs
* Nouveautés recovery logs
* SAN support pour MQ Appliance
* Améliorations CHLAUTH/CONNAUTH

##### IBM MQ version 9.0.5.0 (mars 2018)

Il s'agit d'une version de type CD, qui apporte entre autres les fonctions suivantes :
* Nouvelle solution de haute disponibilité : Replicated Data Queue Managers DR (Disaster Recovery)
** Configuration à 2 serveurs permettant une reprise des Queue Managers sur un site de secours
* Administration MFT via des API Rest
* Améliorations des API Admin Rest
* Disponibilité de l'offre MQ on Cloud (Offre MQ en SaaS)

#### IBM MQ version 9.1 (07/2018)

IBM MQ Version 9.1 a été annoncé en juillet 2018, la fin de support n'est pas annoncée à ce jour. Elle ne devrait pas intervenir avant juillet 2023 (5 ans de support par défaut pour ce type de logiciel). Il s'agit d'une version LTS, qui reprend l'ensemble des fonctionnalités apportées par les versions 9.0.x de type CD.
Les principales nouveautés sont les suivantes :
* Retrait du support de HP-UX et dernière version LTS pour Solaris
* Introduction d'une licence qui permet la facturation à l'heure (pour les déploiements en containers)
* Le support de TLS 1.0 est déprécié
* Support de Ubuntu avec des packages Debian
* Intégration du IBM MQ Bridge avec la Blockchain

#### IBM MQ version 9.1.1 (novembre 2018)

Il s'agit d'une version de type CD, qui apporte entre autres les fonctions suivantes :
* Nouveau cipherspec : ANY_TLS12
* MQSC : paramètre IGNSTATE(YES) pour les commandes START / STOP (distribué)
* Nouvelles fonctions dans l'API Rest pour MFT
* Support de Microsoft .NET Core (distribué)
* Amélioration du support de WAS Liberty pour les Message Driven Beans

#### IBM MQ version 9.1.2 (février 2019)

Il s'agit d'une version de type CD, qui apporte entre autres les fonctions suivantes :
* Uniform Cluster : Permet à des clients MQ de bénéficier des fonctions du cluster MQ :
* Load balancing dynamique vers plusieurs Queue Managers :
** En fonction du nom de l'application ou du nom du binaire
** Fail over automatique en cas de panne d'un Queue Manager
* Les CCDT peuvent maintenant être au format JSON
* Différents paramètres et variables permettent à un client MQ de spécifier un nom d'application (APPLNAME). Ce nom est utilisé dans les Uniform Cluster pour le load balancing
* Support de XA avec WAS Liberty (18.0.0.2+)
* Connection pools pour REST Messaging

#### IBM MQ version 9.1.3 (juillet 2019)

C'est la troisième version de type CD pour MQ 9.1. Elle apporte les nouveautés :
* Support du format JSON pour l'API REST Admin
* Liste des messages et lecture du message suivant pour l'API REST Messaging
* Encapsulation de MQ Console dans une IFrame
* Amélioration IBM MFT
* Client re-balancing et nouvelle commande APSTATUS pour les Uniform cluster
* Advanced Message Security : MCA interception sur les canaux DQM
* EphemeralPrefix : support des environnements Red Hat OpenShift

#### IBM MQ version 9.1.4 (décembre 2019)

Il s'agit d'une version de type CD.
L'apport essentiel est le support de TLS 1.3, dans un premier temps sur Linux, Windows , et pour le client C. On dispose donc cd 5 nouveaux CipherSpecs, avec un nommage conforme aux standards IETF. Exemples :
* TLS_AES_256_GCM_SHA384
* TLS_CHACHA20_POLY1305_SHA256
Cette version apporte également les cipherspecs alias (ANY_TLS13, ANY_TLS12_OR_HIGHER, ANY_TLS13_OR_HIGHER, ANY).
MQIPT, disponible jusqu'à présent en tant que Support Pack MS81, est maintenant téléchargeable depuis IBM Fix Central, et sa documentation est intégrée à l'IBM Knowledge Center.
Lors de la création d'un Queue Manager de nouveaux paramètres permettent de gérer les options de configuration automatique :
* -ii : chemin et/ou nom de fichiers .ini, à ajouter au qm.ini du Queue Manager lors de la création et à chaque démarrage du Queue Manager,
* -ic : chemin et/ou le nom de fichiers MQSC à exécuter à la création et à chaque démarrage du Queue Manager,
* -iv : permet de positionner une ou plusieurs variables.
La commande runmqsc admet (enfin !) le paramètre "-f" pour spécifier le nom du fichier MQSC à injecter dans la configuration.
Concernant MFT, il est maintenant possible de configurer un agent en mode Multi-Instance (un agent sur chacun des serveurs de la configuration QMMI).

#### IBM MQ version 9.1.5 (avril 2020)

C'est la cinquième version de type CD pour MQ 9.1.
Une nouvelle présentation pour MQ Console est disponible, ainsi que la possibilité de spécifier une taille disque maximum pour une file. RDQM (Fonction de Haute Disponibilité, disponible uniquement sous Linux), permet maintenant une configuration à 6 noeuds HA + DR (mode 2 x 3 noeuds). Les APIs Rest Messaging et Rest Admin disposent de nouvelles fonctions.

### IBM MQ version 9.2 (juillet 2020)

Il s'agit d'une version LTS, qui reprend l'ensemble des fonctionnalités apportées par les versions 9.1.x de type CD.
Cette version acte la fin de support pour les systèmes Solaris, et propose une nouvelle plate-forme : Raspberry Pi (architecture ARM 6 et 7) en version MQ Advanced for Developers.
Par défaut, le SSL V3 et TLS 1.0 sont maintenant désactivés (mais réactivables si nécessaire).
Pour utilisation dans un environnement container (OpenShift), MQ est aussi disponible en format .zip non install.

#### IBM MQ version 9.2.1 (décembre 2020)

C'est la 1ère version de type CD pour MQ 9.2.
MQ Console propose la génération en mode GUI de CCDT au format JSON.
Dans le MQSC, on a une généralisation du paramètre IGNSTATE en MQSC (qui permet d’avoir des scripts MQSC idempotents).
Côté containers, on dispose maintenant du scaling automatique des instances applicatives via KEDA (Kubernetes-based Event Driven Autoscaler).
Lors de l'installation des binaires, un message avertit si des options nécessitant une licence MQ Advanced ont été sélectionnées. Et pour Linux, l'installation & la mise à jour de MQ sont maintenant possibles possibles via Yum.

#### IBM MQ version 9.2.2 (mars 2021)

C'est la deuxième version de type CD pour MQ 9.2. Elle apporte le support du queue browse pour AMQP 1.0, de nouvelles commandes MFT pour simplifier le déploiement en containers et une amélioration de la protection des mots de passe des magasins de certificats pour AMS.
Au niveau des fonctions de Haute Disponibilité, on a des outils de diagnostic supplémentaires pour RDQM, et une nouvelle option Native HA est disponible en mode Preview.

#### IBM MQ version 9.2.3 (juillet 2021)

C'est la troisième version de type CD pour MQ 9.2.
Il est maintenant possible de se connecter à un Queue Manager via un MQ Console distant (MQ Console remote queue manager support).
La fonction Streaming queues apporte une solution simple à la duplication de flux de messages. Aucun changement applicatif n'est nécessaire, l'option est activée via un nouveau paramètre dans une file locale, qui spécifie le nom de la file où le flux dupliqué devra être envoyé.
Native HA (Native High Availability) est une nouvelle solution de Haute Disponibilité pour MQ adaptée à l’environnement containers, maintenant disponible en mode Prod.

#### IBM MQ version 9.2.4 (novembre 2021)

C'est la quatrième version de type CD pour MQ 9.2.
Elle apporte des nouveautés à l'Uniform Clusters (Application Request / Reply & Transactions), et de nouvelles fonctions pour l'outil MQ Console :
* Filtrage de l’affichage pour les canaux
* Réglage du nombre de caractères affichés pour les messages (en V923 : maxi 1000)
* Download des messages
* Support du Dark Mode
* Support des statuts HA pour RDQM

#### IBM MQ version 9.2.5 (février 2022)

C'est la cinquième version de type CD pour MQ 9.2.
Le chiffrement TLS 1.3 ainsi que le support des certificats multiples est disponible pour MQIPT (IBM MQ Internet Pass-Thru).
Une nouvelle version de l'API REST permet de lire et écrire les propriétés de messages MQ, d'utiliser les Correlation et Message IDs, et de spécifier une priorité pour les messages.
Windows Serveur 2022 et Windows 11 sont officiellement supportés, ainsi que les dernières version de Java pour les clients MQ (IBM Semeru Java 11 et Oracle Java 17).

#### IBM MQ version 9.3 (avril 2022)

Cette version IBM MQ 9.3, de type Long Term Support, consolide les fonctions rendues disponibles dans les versions successives des 9.2 Continous Delivery.
Parmi les nouveautés spécifiques à la version 9.3, on peut noter que MQ Explorer est retiré du package d'installation IBM MQ (il est disponible séparément), et que l'ancienne GUI de MQ Console (Dashboard Web Console) a été retiré du package.

#### IBM MQ version 9.3.1 (octobre 2022)

C'est la 1re version de type CD pour MQ 9.3.
En version 9.3.1, CAPEXPRY devient un attribut first class des files MQ.
RQDM (solution MQ de HA) supporte maintenant RHEL9.
Sur l'environnement z/OS, on peut noter une améliorations SMF pour les statistiques des files, et le support des StreamQueues pour les Shared Queues.
MQ Console bénéficie d'un nouveau design, et d'un affichage détaillé des objets MQ (Observabilité).

#### IBM MQ version 9.3.2 (février 2023)

C'est la 2e version de type CD pour MQ 9.3.
Pour MQ Appliance, cette version apporte la possibilité de configurer une paire d’appliances HA sur un site de reprise après sinistre, de sorte que HA soit accessible à la fois sur le site principal et sur le site de reprise.
Native HA est maintenant disponible pour la version MQ Advanced, et plus uniquement aux installations IBM Cloud Pak for Integration.
De nouveaux attributs sont disponibles dans le QMSTATUS, en particulier pour le type et la taille des logs et NATIVEHA.