6.8 JMS

The JMS channel is implemented as a JMS Producer client application. It receives event messages from Novell Audit’s event notification system, maps the event information into JMS messages, then sends them to a JMS Destination. JMS Consumer applications can then retrieve the JMS messages from the Destination.

6.8.1 JMS Channel Driver

The JMS channel driver is a Java library and is located in the Java archive files, NauditLogDriver.jar and NauditLogDriverUtil.jar. The JMS driver maps Novell Audit event information into JMS messages and sends the messages to a JMS destination.

Novell Audit installs its Java drivers to the following Novell Audit classpath directories:

Table 6-9 Novell Audit Java Classpath

Platform

Java Classpath

NetWare

sys:\system\naudit\

Windows

\program files\novell\nsure audit\java\logdriver\

Linux

/opt/novell/naudit/java/logdriver/

Solaris

/opt/NOVLnaudit/java/logdriver/

At startup, the JMS driver looks in the classpath for the Java Class designated in the jmsclient.properties file. It then attempts to launch the Java Class. If it is successful, that instance of the Class remains active until the JMS Channel object is disabled or the Secure Logging Server is shut down.

If it cannot launch the Java Class, the JMS driver refuses to load. This safeguard ensures that no events are lost because of misconfiguration.

NOTE:The JMS driver does not buffer events that are undeliverable because of misconfiguration or a server failure.

Configuration Requirements

To configure the JMS channel, you must perform the following tasks:

  • Copy the .jar files required for additional Java channels you are using with Novell Audit to the Novell Audit Java classpath or a subdirectory thereof.
  • If you are using the JMS Channel on a Windows machine, you must add the jvm.dll directory path to the Path system variable. For example, c:\j2sdk1.4.2_09\jre\bin\server\. You must reboot the machine for the changes to take effect
  • On Linux/Solaris, the LD_LIBRARY_PATH variable needs to point to the paths for libverify.so, and libjvm.so. You must reboot the machine for the changes to take effect.

For additional information on configuring the JMS channel, see Section G.0, Using JMS with Novell Audit.

6.8.2 JMS Channel Object

The JMS Channel object stores the information the JMS driver needs to send event information to a JMS Destination.

The following table provides a description of each Channel object attribute.

IMPORTANT:You must restart the logging server to effect any changes in Channel object configuration. For more information, see Section H.3, Secure Logging Server Startup Commands

Table 6-10 JMS Channel Object Attributes

Attribute

Description

Configuration

 

JMS Producer Log channel Configuration

JMS Driver Properties File

The JMS driver’s properties file. The default properties file, jmsclient.properties, is located in the Novell_Audit_install_directory\java\logdriver\ directory.

If you configuring multiple JMS Channel objects, you must create a unique properties file for each driver so that the destination topic or queue and other values can be unique per driver.

JNDI Initial Context Factory

The fully qualified class name of the factory class that creates an initial context. The Context Factory specifies the JNDI namespace.

Refer to your JMS provider documentation for the factory class name.

If you are using Novell exteNd, the value is For exteNd, the value is com.sun.jndi.cosnaming.CNCtxFactory.

IMPORTANT:You must install the .jar file provided by your JMS provider in the Novell_Audit_install_directory\java\logdriver directory so that Novell Audit can find the JNDI Initial Context Factory class.

JMS Connection Factory

A connection factory is a vendor-specific, JMS administered object a client uses to create a connection to a provider. A connection factory encapsulates a set of connection configuration parameters that has been defined by an administrator. Each connection factory is an instance of either the QueueConnectionFactory or the TopicConnectionFactory interface.

JMS clients typically perform a JNDI lookup of the connection factory. The connection factory is specific to a domain. However, you normally cast and assign it to a ConnectionFactory object.

For exteNd, the value could be topic/connectionFactory.

IMPORTANT:You must install the .jar file provided by your JMS provider in the Novell_Audit_install_directory\java\logdriver directory for Novell Audit to find the JNDI Initial Context Factory class.

JMS Destination Type

Determines which messaging model the JMS driver uses to publish events to the JMS provider.

  • Topic: Choose this option if you are using Publish-Subscribe (pub/sub) messaging where there are multiple senders and multiple receivers.

  • Queue: Choose this option if you are using point-to-point (PTP) messaging where there might be multiple message senders, but only a single message receiver.

Destination

The name of the topic or queue that is the target for messages the JMS driver produces and the source of messages it consumes. A JMS application can use multiple queues or topics (or both).

IMPORTANT:The destination must already exist.

In addition to looking up a connection factory, JMS clients typically look up a destination. Like connection factories, destinations are specific to one domain. You normally assign the destination to a Destination object. To preserve the semantics of queues and topics, however, you cast the object to a destination of the appropriate type.

Creating destinations is a process that is provider-specific. Therefore, consult your JMS provider documentation to learn how to create a destination.

If you are using the Novell exteNd product, the destination corresponds to the topic or queue you created using the jmqutil program, such as topic/your_Topic_Name.

Optional Properties for Initial Context

JMS Provider URL

The JMS provider’s URL. It might be an IP address or other vendor-supported form. Refer to your JMS provider documentation for the provider’s URL requirements. More than one URL can be specified in a space-separated list.

This is an optional field in iManager, but it might be mandatory for your JMS provider.

JMS Principal

The username required to authenticate with the JMS provider so the JMS driver can send messages to the queue or topic set up for Novell Audit messages.

The format of this string depends on the JMS provider’s authentication scheme. It might be a fully qualified context, depending on the namespace used. The system defaults to provider default.

Principal Credentials

The password required to authenticate with the JMS provider so the JMS driver can send messages to the queue or topic set up for Novell Audit messages.

The format of this string depends on the JMS provider’s authentication scheme. it could be a password, key, certificate, or other authentication credential. The system defaults to provider default.

Maximum JMS Message Length

The maximum size of events sent to the JMS driver which, in turn, limits the JMS message size. The default size is 3072 bytes.

Optional JMS Message Send Attributes

Delivery Mode

The mode the JMS driver uses to deliver events to the JMS provider’s queue or topic.

  • Persistent: This option adds a level of fault tolerance. The message is sent out to a persistent store. If the JMS server goes down, the events are not lost.

  • Non-Persistent: The events are stored in memory only. If the JMS server goes down, the events are lost.

This is dependent on the JMS provider.

Priority

The priority of Novell Audit messages delivered to the JMS provider’s queue or topic.

Time-to-Live

How long the message can live in the queue or topic if receivers or subscribers are down.

0=unlimited. Otherwise, the value is determined in milliseconds.

Other Java System Properties

System Properties

Any implementation-specific settings in the form of name=value pairs. Refer to your provider documentation for more information. This would be equivalent to adding the information to the properties file.

If you are using Novell’s exteNd product, you need the following:

  • javax.rmi.CORBA.PortableRemoteObjectClass=com.sssw.jbroker.rmi.PortableRemoteObjectDelegate
  • javax.rmi.CORBA.UtilClass=com.sssw.jbroker.rmi.UtilDelegate
  • javax.rmi.CORBA.StubClass=com.sssw.jbroker.rmi.StubDelegate
  • org.omg.CORBA.ORBSingletonClass=com.sssw.jbroker.orb.SingletonORB
  • org.omg.CORBA.ORBClass=com.sssw.jbroker.ORBLite
  • java.naming.factory.object=com.sssw.jms.naming.JMQObjectFactory
  • ORBDefaultInitRef=iioploc://localhost:53506

Status

Allows you to enable or disable the Channel object. By default, all Channel objects are enabled. This means that the logging server loads the Channel object’s configuration in memory at startup.

The Channel object must be located in a supported Channel container for the logging server to use it. For more information on the logging server’s Channel Container property, see Logging Server Object Attributes .

If you select the Disabled option, you must restart the Secure Logging Server for the setting to become effective. Thereafter, the logging server cannot load the object’s configuration until you select Enabled.

For information on unloading the logging server, see Section H.3, Secure Logging Server Startup Commands.