Aller au contenu principal

Outlook : Diagnostiquer les problèmes

Cette page a pour but de vous aider à investiguer, diagnostiquer et résoudre les problèmes rencontrés lors de l'utilisation d'Outlook avec BlueMind.

Premiers réflexes

  1. Vérifier l'état des serveurs BlueMind avec la commande bm-cli node status.

  2. Consulter la page de compatibilité afin de vérifier que la version d'Outlook est supportée, cette page rend aussi compte de limitations connues.

  3. Vérifier que la configuration du poste est correcte.

  4. Vérifier que la configuration du compte en respectant notamment les prérequis.

Vérifier la liste des compléments Outlook

Certains compléments (ou add-ins) Outlook, notamment les anti-virus, ajoutent des propriétés personnalisées sur les messages. Pour des raisons de performance, BlueMind n'est pas encore compatible avec ceux-ci.

Vérifiez la liste des compléments installés et tentez de reproduire le problème en désactivant tous les compléments ne provenant pas de l'éditeur "Microsoft Corporation".

attention

La désactivation d'un complément ne retire pas les propriétés personnalisées qu'il a posées : même désactivé, il peut continuer à causer problème.
Il est donc important d'informer le support de leur présence lors de l'ouverture d'un ticket.

Accès au panneau de gestion des compléments Outlook
  • Cliquer sur "Fichier" dans le bandeau Outlook.
  • Cliquer sur "Options".
  • Dans la fenêtre qui s'ouvre, aller dans la catégorie "Compléments".

Lecture des logs

Journaux coté client (Outlook)

Dans Outlook, les erreurs de synchronisation se présentent sous forme d'e-mails situés dans le dossier "Problèmes de synchronisation".

Accès au dossier "Problèmes de synchronisation" dans Outlook :
  • Ouvrir l'application "Dossiers"
    Ouverture de l'application "Dossiers" d'Outlook
  • Ouvrir le dossier "Problèmes de synchronisations"
    Dossier "Problèmes de synchronisation"

Journaux coté serveur (BlueMind)

Sur le serveur BlueMind, les fichiers de logs à consulter sont ceux des composants MAPI et BlueMind Core.

Journaux détaillés (logs debug)

Si les logs observés sont insuffisants, il est possible d'activer un niveau de journalisation plus élevée depuis le serveur avec la commande bm-cli suivante :

bm-cli mapi logging --enable jdoe@bluemind.loc

Méthodologie de lecture des logs

1 - Repérer les erreurs grâce au fichier requests.log

Le fichier requests.log contient les traces des requêtes MAPI, une par ligne.

Anatomie d'une ligne du fichier requests.log
2023-07-03 12:47:47,886 [vert.x-eventloop-thread-8] n.b.v.c.r.i.WrappedResponse INFO - [user: bob@9cc0cd0a.internal, type: Execute, id: 15005, ctx: fccc99e3-01e2-40cd-a73c-07cc575a7268, responseCode: 1, http.out: 200] completed in 15ms.
↳[date] ↳[heure] ↳[utilisateur MAPI] ↳[Identifiant de session MAPI] ↳[Erreur] ↳[Code HTTP] ↳[Durée de la requête]
Astuces pour la lecture du fichier
  • Les erreurs du type IgnoreFailure peuvent être ignorées.
  • Voici une commande pour lister les erreurs liées a un utilisateur spécifique (ici jdoe) :
grep "jdoe@" /var/log/bm-mapi/requests.log | grep -Ei "failure|responseCode: 1|aborted" | grep -v "IgnoreFailure"
2 - Obtenir des détails sur les erreurs grâce au fichier mapi.log

Le fichier mapi.log contient les logs détaillés du service MAPI (bm-mapi.service).

Pour obtenir le détail des requêtes en erreur trouvées à l'étape précédente :

  • Ouvrir mapi.log une ou deux secondes avant l'heure de la requête.
  • Descendre jusqu'à trouver une erreur (ERROR) contenant l'identifiant de session MAPI trouvé précédemment.
Exemple d'erreur dans /var/log/bm-mapi/mapi.log
2023-07-03 12:47:47,885 [vert.x-worker-thread-0] n.b.e.m.e.e.ExecuteExecutor ERROR - upd: LogonContext{mapiCtx=fccc99e3-01e2-40cd-a73c-07cc575a7268, authN=bob@9cc0cd0a.internal, authZ=bob@9cc0cd0a.internal, replID=1, publicFolder=false}, orig: LogonContext{mapiCtx=fccc99e3-01e2-40cd-a73c-07cc575a7268, authN=bob@9cc0cd0a.internal, authZ=bob@9cc0cd0a.internal, replID=1, publicFolder=false} Rop processing error null
java.lang.NullPointerException: null
at net.bluemind.exchange.provider.core.impl.mail.MailboxItemContentSink.lambda$6(MailboxItemContentSink.java:157)
at net.bluemind.backend.mail.api.utils.PartsWalker.visit(PartsWalker.java:36)
at net.bluemind.exchange.provider.core.impl.mail.MailboxItemContentSink.cleanUp(MailboxItemContentSink.java:156)
at net.bluemind.exchange.provider.core.impl.mail.MailboxItemContentSink.cleanUp(MailboxItemContentSink.java:1)
at net.bluemind.exchange.provider.core.impl.container.ContainerBasedContentSink.addNormal(ContainerBasedContentSink.java:249)
at net.bluemind.exchange.provider.core.impl.FolderContentSink.add(FolderContentSink.java:151)
at net.bluemind.exchange.ese.Folder.add(Folder.java:506)
at net.bluemind.exchange.mapi.emsmdb.execute.RopSaveChangesMessage.saveMessageChangeResult(RopSaveChangesMessage.java:240)
at net.bluemind.exchange.mapi.emsmdb.execute.RopSaveChangesMessage.handleWithDetails(RopSaveChangesMessage.java:107)
at net.bluemind.exchange.mapi.emsmdb.execute.AbstractRopHandler.handleWithDetails(AbstractRopHandler.java:18)
at net.bluemind.exchange.mapi.emsmdb.execute.ExecuteExecutor.lambda$4(ExecuteExecutor.java:221)
at com.netflix.spectator.api.SwapTimer.record(SwapTimer.java:53)
at net.bluemind.exchange.mapi.emsmdb.execute.ExecuteExecutor.execute(ExecuteExecutor.java:221)
at net.bluemind.exchange.mapi.emsmdb.execute.ExecuteExecutor.lambda$0(ExecuteExecutor.java:99)
at io.vertx.core.impl.AbstractContext.dispatch(AbstractContext.java:100)
at io.vertx.core.impl.WorkerContext.lambda$emit$0(WorkerContext.java:59)
at io.vertx.core.impl.WorkerContext.lambda$execute$2(WorkerContext.java:104)
at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:750)
2023-07-03 12:47:47,886 [vert.x-eventloop-thread-8] n.b.e.m.h.MapiHttpHandler ERROR - Error reported during execution: null
3 - Obtenir des détails supplémentaires grâce au fichier core.log

Dans le cas ou les informations obtenues durant l'étape précédente ne sont pas suffisantes, il est possible que des informations supplémentaires se trouvent dans les logs détaillés du Core de BlueMind (bm-core.service).

Chercher d'éventuelles erreurs dans le fichier core.log dans les secondes ou dixièmes de secondes précédant la requête :

Exemple d'erreur dans /var/log/bm/core.log
2023-07-03 12:47:47,884 [BM-Core-26] n.b.c.r.b.RestServiceMethodHandler ERROR - Error during restcall RestRequest [path=/api/mail_items/b26cc1b8-477b-4bf4-a6c0-b50d2540b786/id/70915, method=PUT, User-Agent=AHC/2.1, params=, remoteAddresses=[127.0.1.1, 192.168.121.51], origin=mapi-bob@9cc0cd0a.internal-9d70b143-2810-48e2-ad57-e62d2dfb5e70]:  class net.bluemind.core.api.fault.ServerFault: java.lang.NullPointerException
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.create(ImapMailboxRecordsService.java:455)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.createById(ImapMailboxRecordsService.java:436)
... 20 common frames omitted
Caused by:
class java.lang.NullPointerException: null
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.createEmlStructure(ImapMailboxRecordsService.java:402)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.createAsync(ImapMailboxRecordsService.java:480)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.create(ImapMailboxRecordsService.java:443)
at net.bluemind.backend.mail.replica.service.internal.ImapMailboxRecordsService.createById(ImapMailboxRecordsService.java:436)
... 20 common frames omitted