Rétention des messages SOAP en cas d'incident de production DMP
Comment récupérer les trames SOAP pour analyse par le centre de service du sesam-vitale ?
Dorénavant depuis la prise en charge de la demande DMP-440 : pouvoir remonter la conversation soap à l’éditeur en réponse pour analyse, il est possible de récupérer l’échange SOAP grâce à deux nouveaux points d’entrée dans les APIs REST :
Le premier permet de récupérer la liste des erreurs survenues et qui sont sauvegardés sur le disque de la DevBox-Santé :
get {
url: {{base_url}}/dmp/errors
body: none
auth: none
}
Retourne une Map de fichiers horodatés indexés par l’identifiant de l’échange SOAP (exchangeId), comme par exemple:
{
"4abaf23c-fb0b-4313-9cce-6bbfeb89c21a": {
"time": "2024-06-21T11:43:26.763+02:00",
"path": "file:///C:/Users/lfo/AppData/Local/Temp/dbx-dmp-logs16131058871974231716/20240621114326dbx-dmp-error4abaf23c-fb0b-4313-9cce-6bbfeb89c21a.log"
}
}
Le deuxième point d’entrèe permet de télécharger le fichier contenant cet échange SOAP pour analyse par le centre-de-service@sesam-vitale.fr .
Pour connaître l’exchangeId qui concerne l’erreur à diagnostiquer, deux manières de faire :
- Soit vous connaissez la date et l’heure de l’incident, et vous rechercher l’échange SOAP à cette date.
- Soit au moment de la récupération de l’erreur DMP par le proxy REST vous récupérez l’exchangeId retourné
-
Exemple :
{ "message": "org.apache.cxf.binding.soap.SoapFault: Le champ Resource_id est incorrect : 27707632208291^^^&1.2.250.1.213.1.4.10&ISO^NH", "errorType": "DmpCxfSoapFaultInException", "messageEnum": "DMP_SERVER_ERROR", "exchangeId": "4abaf23c-fb0b-4313-9cce-6bbfeb89c21a", "stackTrace": [ "fr.devboxsante.dmp.core.cxf.DmpCxfWsEndPointFactory$2.handleMessage(DmpCxfWsEndPointFactory.java:95)", "org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)", ... ]}
-