Traitement des exceptions

Virtual member manager informe son appelant d'un cas d'erreur sous la forme d'une exception.

Virtual member manager ne génère aucun événement et ne répond à aucune notification. Il consigne l'erreur et informe son appelant d'un cas d'erreur à l'aide d'une exception qui contient le code d'erreur spécifique au référentiel et les informations du référentiel. Dans la plupart des cas, les exceptions sont retournées à l'appelant. Des sous-classes de WIMException sont créées pour signaler plusieurs types d'erreurs ou d'exceptions générées dans virtual member manager. Si l'exception est générée à cause d'une indisponibilité du référentiel ou du registre et qu'un code de relance existe (reprise automatique sur incident), alors l'exception n'est pas retournée immédiatement, bien qu'elle soit consignée. Une exception est renvoyée après l'échec de la tentative de relance et une intervention de l'utilisateur est nécessaire pour corriger le problème.

WIMException remplace WMMException et fournit toutes les méthodes qui étaient fournies par WMMException. Les adaptateurs et fournisseurs peuvent exploiter ces méthodes. Toutefois, pour conserver une compatibilité amont, WIMException est compatible avec WMMException via le pont WebSphere Member Manager qui transforme WMMExceptions en WIMExceptions et, inversement, WIMExceptions en WMMExceptions.

Exceptions du référentiel

Les exceptions renvoyées par les référentiels peuvent avoir des méthodes d'extraction de code d'erreur ou de message d'erreur, ou les deux (en plus des autres méthodes spécifiques à l'exception). Les adaptateurs utilisent ces méthodes pour élaborer une WIMException ou ses sous-classes et définir les informations suivantes :
cause
Indique toute exception envoyée par un référentiel, ou de valeur Null si le référentiel n'a généré aucune exception. A l'aide de la fonction de chaînage d'exception JDK 1.4, virtual member manager construit la chaîne d'exception alors qu'elle passe à travers plusieurs composants virtual member manager.
rootErrorCode
Indique un code d'erreur entier spécifique au référentiel. En règle générale, il s'agit du code d'erreur actuel renvoyé par le référentiel. Si une exception est émise ou un message d'erreur est retourné par le référentiel, l'adaptateur doit extraire le code d'erreur de l'exception et définir la cause fondamentale dans la WIMException générée afin de pouvoir la consigner dans le fichier de trace puis analyser le problème de l'exception. Une fois le code d'erreur défini, il ne doit pas être écrasé.
rootErrorMessage
Indique un message d'erreur spécifique au référentiel. En règle générale, il s'agit du message d'erreur actuel renvoyé par le référentiel. Si une exception est émise par le référentiel, l'adaptateur doit extraire le message d'erreur de l'exception et définir la cause fondamentale dans la WIMException générée afin de pouvoir la consigner dans le fichier de trace puis analyser le problème de l'exception. Une fois le message d'erreur défini, il ne doit pas être écrasé.
rootErrorSource
Indique une chaîne d'identificateur de référentiel qui est utilisé pour identifier de manière unique le référentiel qui est à l'origine de l'erreur.
L'adaptateur consigne également l'exception (à l'aide des interfaces API JSR-47), le code d'erreur et le message d'erreur dans son format original dans le fichier journal de virtual member manager. Tous les adaptateurs écrivent dans le même fichier journal. Si la fonction de trace est activée, le message d'erreur est également consigné dans le fichier de trace. Les applications consignent l'exception dans leurs propres fichiers journaux.

Lors de la transmission via les différentes couches de virtual member manager, si l'exception est encapsulée dans une autre exception, rootErrorCode, rootErrorMessage et rootErrorSource sont copiés à partir de l'exception originale et la cause est définie sur l'exception reçue par cette couche.

L'adaptateur communique le cas d'erreur à virtual member manager à l'aide d'une exception qui lui est spécifique, WIMException ou ses sous-classes. La WIMException construite par les adaptateurs fournit des méthodes de définition de l'erreur retournée par les référentiels afin de leur permettre de diffuser le message ou code d'erreur de bas niveau, ou les deux, à l'appelant.

Dans certains cas, plutôt que de renvoyer un code d'erreur, le référentiel peut retourner un message d'erreur ou une exception qui contient un message d'erreur. Le message d'erreur, à son tour, peut contenir le code d'erreur. L'adaptateur doit extraire le code ou le message d'erreur puis les définir dans WIMException. Toutes les exceptions définies dans virtual member manager sont des sous-classes à partir de WIMException et peut ajouter des méthodes spécifiques à l'exception.



Conditions d'utilisation | Commentaires