Vous pouvez configurer les opérations JRas de manière à obtenir les données de trace et à consigner les messages à des emplacements utilisateur uniquement.
Avant de commencer
La structure JRas décrite dans cette tâche et ses sous-tâches est obsolète. Toutefois, vous pouvez atteindre des résultats similaires à l'aide de la consignation Java™.
Pourquoi et quand exécuter cette tâche
En mode autonome, les messages et les traces ne sont consignés que dans les journaux définis par l'utilisateur. L'exemple ci-dessous considère que :
- Vous disposez d'un gestionnaire utilisateur appelé SimpleFileHandler et d'un module de formatage utilisateur appelé SimpleFormatter.
- Vous n'utilisez pas de types d'événement utilisateur.
Procédure
- Importez les classes d'extension JRas requises :
import com.ibm.ras.*;
import com.ibm.websphere.ras.*;
- Importez le gestionnaire et le module de formatage :
import com.ibm.ws.ras.test.user.*;
- Déclarez les références au programme de consignation :
private RASMessageLogger msgLogger = null;
private RASTraceLogger trcLogger = null;
- Obtenez une référence à la classe Manager, créez les programmes de consignation et ajoutez les gestionnaires de traitement utilisateur. Etant donné que les programmes de consignation sont des singletons nommés, vous pouvez obtenir une référence aux programmes de consignation dans différents endroits. La méthode ejbCreate constitue un choix logique pour les beans enterprise. Assurez-vous que plusieurs instances du même gestionnaire de traitement utilisateur ne sont pas insérées accidentellement dans le même consignateur. Votre code d'initialisation doit prendre en charge cette approche. Voici un exemple de consignateur de messages. La procédure de création d'un consignateur de trace est similaire.
com.ibm.websphere.ras.Manager mgr = com.ibm.websphere.ras.Manager.getManager();
msgLogger = mgr.createRASMessageLogger("Acme", "WidgetCounter", "RasTest",
myTestBean.class.getName());
// Configure the message logger to use the message file that is defined in
// the ResourceBundle sample.
msgLogger.setMessageFile("acme.widgets.DefaultMessages");
// Get a reference to the Handler and remove it from the logger.
RASIHandler aHandler = null;
Enumeration enum = msgLogger.getHandlers();
while (enum.hasMoreElements()) {
aHandler = (RASIHandler)enum.nextElement();
if (aHandler instanceof WsHandler)
msgLogger.removeHandler(wsHandler);
}
// Create the user handler and formatter. Configure the formatter,
// then add it to the handler.
RASIHandler handler = new SimpleFileHandler("myHandler", "FileName");
RASIFormatter formatter = new SimpleFormatter("simple formatter");
formatter.addEventClass("com.ibm.ras.RASMessageEvent");
handler.addFormatter(formatter);
// Add the Handler to the logger. Add the logger to the list of the
// handlers listeners, then set the handlers
// mask, which will update the loggers composite mask appropriately.
// WARNING - there is an order dependency here that must be followed.
msgLogger.addHandler(handler);
handler.addMaskChangeListener(msgLogger);
handler.setMessageMask(RASIMessageEvent.DEFAULT_MESSAGE_MASK);