Listing 1: The JRasEJBBean without logging incorporated

package com.ibm.jrasdemo;
import com.ibm.ras.RASIMessageEvent;
import com.ibm.ras.RASITraceEvent;
import com.ibm.ras.RASMessageLogger;
import com.ibm.ras.RASTraceLogger;
import com.ibm.websphere.ras.Manager;
/**
 * Bean implementation class for Enterprise Bean: JRasEJB
 */
public class JRasEJBBean
	implements javax.ejb.SessionBean
{
	private javax
		.ejb
		.SessionContext mySessionCtx;
	/**
	 * getSessionContext
	 */
	public javax
		.ejb
		.SessionContext getSessionContext()
	{
		return mySessionCtx;
	}
	/**
	 * setSessionContext
	 */
	public void setSessionContext(
		javax.ejb.SessionContext ctx)
	{
		mySessionCtx = ctx;
	}
	/**
	 * ejbCreate
	 */
	public void ejbCreate()
		throws javax.ejb.CreateException
	{
	}
	/**
	 * ejbActivate
	 */
	public void ejbActivate()
	{
	}
	/**
	 * ejbPassivate
	 */
	public void ejbPassivate()
	{
	}
	/**
	 * ejbRemove
	 */
	public void ejbRemove()
	{
	}
	public String echoMe(String argument)
	{
		String whatToReturn =
			"Right back at you: "
				+ argument;
		whatToReturn =
			whatToReturn.toUpperCase();
		return (whatToReturn);
	}
}


Listing 2: JRasEJBBean with logging incorporated

package com.ibm.jrasdemo;
import com.ibm.ras.RASIMessageEvent;
import com.ibm.ras.RASITraceEvent;
import com.ibm.ras.RASMessageLogger;
import com.ibm.ras.RASTraceLogger;
import com.ibm.websphere.ras.Manager;
/**
 * Bean implementation class for Enterprise Bean: JRasEJB
 */
public class JRasEJBBean
	implements javax.ejb.SessionBean
{
	static final RASTraceLogger tracer;
	static final RASMessageLogger logger;
	static {
		Manager manager =
			Manager.getManager();
		tracer =
			manager
				.createRASTraceLogger(
				"YourCompanyNameWouldGoHere",
				"YourSampleApplicationName",
				"YourComponentIdentifier",
				JRasEJBBean
					.class
					.getName());
		manager.addLoggerToGroup(
			tracer,
			"ALoggingGroup");
		logger =
			manager
				.createRASMessageLogger(
				"YourCompanyNameWouldGoHere",
				"YourSampleApplicationName",
				"YourComponentIdentifier",
				JRasEJBBean
					.class
					.getName());
	}
	private javax
		.ejb
		.SessionContext mySessionCtx;
	/**
	 * getSessionContext
	 */
	public javax
		.ejb
		.SessionContext getSessionContext()
	{
		return mySessionCtx;
	}
	/**
	 * setSessionContext
	 */
	public void setSessionContext(
		javax.ejb.SessionContext ctx)
	{
		mySessionCtx = ctx;
	}
	/**
	 * ejbCreate
	 */
	public void ejbCreate()
		throws javax.ejb.CreateException
	{
	}
	/**
	 * ejbActivate
	 */
	public void ejbActivate()
	{
	}
	/**
	 * ejbPassivate
	 */
	public void ejbPassivate()
	{
	}
	/**
	 * ejbRemove
	 */
	public void ejbRemove()
	{
	}
	public String echoMe(String argument)
	{
		tracer.entry(
			RASITraceEvent
				.TYPE_ENTRY_EXIT,
			this,
			"echoMe",
			argument);
		logger.textMessage(
			RASIMessageEvent.TYPE_INFO,
			this,
			"echoMe",
			"Logging with JRas is not that difficult.");
		String whatToReturn =
			"Right back at you: "
				+ argument;
		logger.textMessage(
			RASIMessageEvent
				.TYPE_WARNING,
			this,
			"echoMe",
			"Do not feed the animals.");
		whatToReturn =
			whatToReturn.toUpperCase();
		String nullString = null;
		try
		{
			// force an exception	
			int causeAnError =
				nullString.length();
		}
		catch (Exception e)
		{
			logger.textMessage(
				RASIMessageEvent
					.TYPE_ERROR,
				this,
				"echoMe",
				"A null pointer exception occurred in echoMe.");
			tracer.exception(
				RASITraceEvent
					.TYPE_ERROR_EXC,
				this,
				"echoMe",
				e);
		}
		tracer.exit(
			RASITraceEvent
				.TYPE_ENTRY_EXIT,
			this,
			"echoMe",
			whatToReturn);
		return (whatToReturn);
	}
}


Listing 3: Retrieving a reference to the JRas manager/retrieving message and trace loggers

static final RASTraceLogger tracer;
static final RASMessageLogger logger;
static {
	Manager manager =
		Manager.getManager();
tracer =
	manager
	.createRASTraceLogger(
	"YourCompanyNameWouldGoHere",
	"YourSampleApplicationName",
	"YourComponentIdentifier",
	JRasEJBBean.class.getName());
	manager.addLoggerToGroup(
		tracer, "ALoggingGroup");
logger =
	manager
	.createRASMessageLogger(
	"YourCompanyNameWouldGoHere",
	"YourSampleApplicationName",
	"YourComponentIdentifier",
	JRasEJBBean.class.getName());
}



Listing 4: Modifying the echoMe method

public String echoMe(String argument)
	{
		tracer.entry(
			RASITraceEvent
				.TYPE_ENTRY_EXIT,
			this,
			"echoMe",
			argument);
		logger.textMessage(
			RASIMessageEvent.TYPE_INFO,
			this,
			"echoMe",
			"Logging with JRas is not that difficult.");
		String whatToReturn =
			"Right back at you: "
				+ argument;
		logger.textMessage(
			RASIMessageEvent
				.TYPE_WARNING,
			this,
			"echoMe",
			"Do not feed the animals.");
		whatToReturn =
			whatToReturn.toUpperCase();
		String nullString = null;
		try
		{
			// force an exception	
			int causeAnError =
				nullString.length();
		}
		catch (Exception e)
		{
			logger.textMessage(
				RASIMessageEvent
					.TYPE_ERROR,
				this,
				"echoMe",
				"A null pointer exception occurred in echoMe.");
			tracer.exception(
				RASITraceEvent
					.TYPE_ERROR_EXC,
				this,
				"echoMe",
				e);
		}
		tracer.exit(
			RASITraceEvent
				.TYPE_ENTRY_EXIT,
			this,
			"echoMe",
			whatToReturn);
		return (whatToReturn);
	}