java.lang.Object | ||
↳ | org.apache.log4j.AppenderSkeleton | |
↳ | org.apache.log4j.net.JMSAppender |
A simple appender that publishes events to a JMS Topic. The events are serialized and transmitted as JMS message type ObjectMessage.
JMS Topic topics and TopicConnectionFactory topic connection factories are administered objects that are retrieved using JNDI messaging which in turn requires the retreival of a JNDI Context.
There are two common methods for retrieving a JNDI Context. If a file resource named jndi.properties is available to the JNDI API, it will use the information found therein to retrieve an initial JNDI context. To obtain an initial context, your code will simply call:
InitialContext jndiContext = new InitialContext();
Calling the no-argument InitialContext()
method
will also work from within Enterprise Java Beans (EJBs) because it
is part of the EJB contract for application servers to provide each
bean an environment naming context (ENC).
In the second approach, several predetermined properties are set
and these properties are passed to the InitialContext
contructor to connect to the naming service provider. For example,
to connect to JBoss naming service one would write:
Properties env = new Properties( ); env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); env.put(Context.PROVIDER_URL, "jnp://hostname:1099"); env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); InitialContext jndiContext = new InitialContext(env);where hostname is the host where the JBoss applicaiton server is running.
To connect to the the naming service of Weblogic application server one would write:
Properties env = new Properties( ); env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); env.put(Context.PROVIDER_URL, "t3://localhost:7001"); InitialContext jndiContext = new InitialContext(env);
Other JMS providers will obviously require different values.
The initial JNDI context can be obtained by calling the
no-argument InitialContext()
method in EJBs. Only
clients running in a separate JVM need to be concerned about the
jndi.properties file and calling InitialContext()
or alternatively correctly
setting the different properties before calling InitialContext(java.util.Hashtable)
method.
[Expand]
Inherited Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.apache.log4j.AppenderSkeleton
|
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Options are activated and become effective only after calling
this method.
| |||||||||||
This method called by
doAppend(LoggingEvent) method to
do most of the real appending work. | |||||||||||
Close this JMSAppender.
| |||||||||||
Returns the value of the InitialContextFactoryName option.
| |||||||||||
Returns value of the LocationInfo property which
determines whether location (stack) info is sent to the remote
subscriber.
| |||||||||||
Returns the value of the TopicBindingName option.
| |||||||||||
Returns the value of the TopicConnectionFactoryBindingName option.
| |||||||||||
The JMSAppender sends serialized events and consequently does not
require a layout.
| |||||||||||
Setting the InitialContextFactoryName method will cause
this
JMSAppender instance to use the InitialContext(Hashtable) method instead of the
no-argument constructor. | |||||||||||
If true, the information sent to the remote subscriber will
include caller's location information.
| |||||||||||
The paswword to use when creating a topic session.
| |||||||||||
The TopicBindingName option takes a
string value.
| |||||||||||
The TopicConnectionFactoryBindingName option takes a
string value.
| |||||||||||
The user name to use when
creating a topic session . |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Returns the TopicConnection used for this appender.
| |||||||||||
Returns the TopicPublisher used for this appender.
| |||||||||||
Returns the TopicSession used for this appender.
| |||||||||||
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.apache.log4j.AppenderSkeleton
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
org.apache.log4j.Appender
| |||||||||||
From interface
org.apache.log4j.spi.OptionHandler
|
Options are activated and become effective only after calling this method.
This method called by doAppend(LoggingEvent)
method to
do most of the real appending work.
Close this JMSAppender. Closing releases all resources used by the appender. A closed appender cannot be re-opened.
Returns the value of the InitialContextFactoryName option.
See setInitialContextFactoryName(String)
for more details on the
meaning of this option.
Returns value of the LocationInfo property which determines whether location (stack) info is sent to the remote subscriber.
Returns the value of the TopicBindingName option.
Returns the value of the TopicConnectionFactoryBindingName option.
The JMSAppender sends serialized events and consequently does not require a layout.
Setting the InitialContextFactoryName method will cause
this JMSAppender
instance to use the InitialContext(Hashtable)
method instead of the
no-argument constructor. If you set this option, you should also
at least set the ProviderURL option.
See also setProviderURL(String)
.
If true, the information sent to the remote subscriber will include caller's location information. By default no location information is sent to the subscriber.
The paswword to use when creating a topic session.
The TopicBindingName option takes a
string value. Its value will be used to lookup the appropriate
Topic
from the JNDI context.
The TopicConnectionFactoryBindingName option takes a
string value. Its value will be used to lookup the appropriate
TopicConnectionFactory
from the JNDI context.
The user name to use when creating a topic session
. If you set this option, you should
also set the Password option. See setPassword(String)
.
Returns the TopicConnection used for this appender. Only valid after activateOptions() method has been invoked.
Returns the TopicPublisher used for this appender. Only valid after activateOptions() method has been invoked.
Returns the TopicSession used for this appender. Only valid after activateOptions() method has been invoked.
NamingException |
---|