Welcome to Novell exteNd Messaging Platform's JMS - a 100% pure Java implementation of the Java Messaging Service (JMS) API based on high performance, scalable and enterprise class IIOP support in the Novell exteNd Messaging Platform's ORB. The JMS server is fully compliant with version 1.1 of the JMS specification and implements all features, including transactional messaging and concurrent message processing using the ServerSession API.
With support for both the point-to-point (PTP) and publish/subscribe (Pub/Sub) messaging models, Novell exteNd Messaging Platform's JMS is a very flexible messaging system, which can be used in enterprise systems with very diverse and stringent requirements. In addition to the standard JMS features, several value-added functions, including built-in system name space, security, and administration are provided.
This release includes support for clustering (fault tolerance and load balancing), improved memory management, and HTTP client connectivity via the ORB's HTTP tunnel. Furthermore, the 5.2 release supports message start times, a new individual message acknowledge mode, additional databases and platforms, and runtime monitoring of the JMS server's properties. Please consult the datasheet for a full list of features.
Version 5.2 is a maintenance and bug fix release. Version 5.1 introduces the following new features:
Support for a file based message store
The file based message store can be used for light-weight message broker instances, which don't have a database available for storing messages. Examples includes a local message broker on a laptop, which provides a store-and-forward mechanism to a remote message broker.
Message router
The JMS server is now capable of routing messages between brokers. If a message broker has router targets, all topic messages and all messages destined for non-locally bound queues will be routed to the target brokers. Topic messages can be both consumed from the local broker and any broker onto which the messages are routed.
Pluggable security (authentication and authorization)
The JMS server's security module is now specified via an API and developers can plug in security modules, which override the default, database backed security store. Both the authentication and authorization (ACL) checks can be replaced to use e.g. LDAP.
Support for SSL communication
The JMS server and clients can now communicate using IIOP/SSL and HTTPS. The SSL functionality closely mirrors the capabilities in the ORB, i.e. client/server can set private keys, certificates, etc. SSL communication is done using the ORB's SSL implementation.
New destination properties
Additional destination properties are supported: a destination can be put into suspended mode for both sending and receiving messages. This will temporarily prevent any producer from sending messages and/or any consumer from receiving messages.
Support for JMS specification revision 1.1
The 1.1 revision of the JMS specification includes a domain unification of the publish/subscribe and point-to-point messaging domains. This not only allows programs to be less bound to a particular domain, it also allows local transactions to span both queues and topics.
The JMS server requires Java 2, ORB version 5.2 (or higher), and JNDI 1.2 (with COS Naming provider). Database access is required for persisting messages and maintaining security, queue, and topic information. You need database client software, including the JDBC driver, and any configuration necessary to enable Java applications to connect to the database. The following databases are supported:
The JMS clients have the same requirements as the JMS server except that the clients do not require a database.
Once you've installed the Novell exteNd Messaging Platform, you must configure the environment. If a database was successfully created as part of the installation procedure, the environment has already been configured accordingly. Otherwise, please perform the following steps to configure and startup the JMS server:
To use Java 2 Runtime that shipped with Novell eXtend AppServer, prepend
$SilverStream_InstallDirectory/jre/bin
to your PATH
environment variable. Otherwise, ensure that your
preferred version of Java in included in the PATH
.
To run the JMS server and tools, make sure that the top-level
bin
directory is in your path:
On Solaris, add bin/solaris
to your
PATH
environment variable.
On Linux, add bin/linux-x86
to your
PATH
environment variable.
On Windows, add bin/win32
to your
PATH
environment variable.
On NetWare, add bin/netware
to your
SEARCH
path.
If you have not installed the ORB as a Java 2 extension, ensure that the JVM can locate the ORB native library:
On Solaris, add bin/solaris
to your
LD_LIBRARY_PATH
environment variable.
On Linux, add bin/linux-x86
to your
LD_LIBRARY_PATH
environment variable.
Nothing needs to be done for Windows and NetWare, as the library path is the
same as the regular PATH
environment variable.
Update the system CLASSPATH
environment variable to include
a suitable JDBC driver. For instance:
If you are using Sybase Adaptive Server, add the
jconn2.jar
to the CLASSPATH
.
If you are using Oracle, add classes12.zip
and
nls_charset12.zip
to the CLASSPATH
.
If you are using Microsoft SQL Server 2000, add
msbase.jar
, mssqlserver.jar
and msutil.jar
to the CLASSPATH
.
If you are using DB2, add db2java.zip
to the
CLASSPATH
.
If you are using Informix, add ifxjdbc.jar
to the
CLASSPATH
.
You can also copy these libraries into the top-level lib
directory as the binaries automatically add all jar and zip files
in this directory to the CLASSPATH
before executing. If the ORB
was not installed as an extension, you also need to add mp-orb.jar
to your CLASSPATH
.
Edit the msgsvc.logs
property in the lib/msgsvc.properties
file to specify where the error and advisory messages are written. Also edit
the msgsvc.name
and msgsvc.port
properties
to change server name and port settings if necessary.
Edit the msgsvc.jdbc.*
properties in the lib/msgsvc.properties
file to specify an existing Sybase Adaptive Server Anywhere 8.0, Oracle 8.1.x/9i,
Microsoft SQL Server 2000, or Cloudscape 3.6/4.0 database and user.
For Oracle 8.1.x/9i using the Oracle thin JDBC driver:
msgsvc.store=ORACLE msgsvc.jdbc.driver=oracle.jdbc.pool.OracleConnectionPoolDataSource msgsvc.jdbc.url=jdbc:oracle:thin:@localhost:1521:SID msgsvc.jdbc.user=scott msgsvc.jdbc.password=tiger msgsvc.jdbc.minpoolsize=10 msgsvc.jdbc.maxpoolsize=20
For Sybase Adaptive Server Anywhere 8.0 using jConnect for JDBC 5.5:
msgsvc.store=ASAnywhere msgsvc.jdbc.driver=com.sybase.jdbc2.jdbc.SybDriver msgsvc.jdbc.url=jdbc:sybase:Tds:localhost:2638/databasename msgsvc.jdbc.user=dba msgsvc.jdbc.password=sql msgsvc.jdbc.minpoolsize=10 msgsvc.jdbc.maxpoolsize=20 msgsvc.jdbc.maxmsgsize=1048576
For Microsoft SQL Server 2000 using Merant JDBC driver:
msgsvc.store=SQLServer msgsvc.jdbc.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver msgsvc.jdbc.url=jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=cursor msgsvc.jdbc.user=test msgsvc.jdbc.password=secret msgsvc.jdbc.minpoolsize=10 msgsvc.jdbc.maxpoolsize=20
For IBM DB2 Universal Database Version 7.x using the DB2 thin JDBC driver:
msgsvc.store=DB2 msgsvc.jdbc.driver=COM.ibm.db2.jdbc.net.DB2Driver msgsvc.jdbc.url=jdbc:db2://localhost:6789/database msgsvc.jdbc.user=db2admin msgsvc.jdbc.password=db2password msgsvc.jdbc.minpoolsize=10 msgsvc.jdbc.maxpoolsize=20
For IBM Informix Dynamic Server 9 using the Informix thin JDBC driver:
msgsvc.store=Informix msgsvc.jdbc.driver=com.informix.jdbc.IfxDriver msgsvc.jdbc.url=jdbc:informix-sqli:localhost:1526/database:INFORMIXSERVER=servername msgsvc.jdbc.user=user msgsvc.jdbc.password=password msgsvc.jdbc.minpoolsize=10 msgsvc.jdbc.maxpoolsize=20
For MySQL using using MySQL Connector/J Driver:
msgsvc.store=mySQL msgsvc.jdbc.driver=com.mysql.jdbc.Driver msgsvc.jdbc.url=jdbc:mysql://localhost/database msgsvc.jdbc.user=mysql msgsvc.jdbc.password=secret msgsvc.jdbc.minpoolsize=10 msgsvc.jdbc.maxpoolsize=20
For Cloudscape 3.6/4.0:
msgsvc.store=Cloudscape msgsvc.jdbc.driver=COM.cloudscape.core.JDBCDriver msgsvc.jdbc.url=jdbc:cloudscape:DBNAME;create=true msgsvc.jdbc.user= msgsvc.jdbc.password= msgsvc.jdbc.minpoolsize=10 msgsvc.jdbc.maxpoolsize=20
You must edit the entries in bold for to connect properly to the database. Note that for Cloudscape, you only need to add create=true to the URL when you are first creating the database.
If you are upgrading from a previous release of the JMS server, migrate the database. Otherwise, create JMS server tables in the database by running:
dbinit -create
If you are using Sybase Adaptive Server, Oracle, DB2 or Microsoft SQL server to store your tables, the database must be running before you execute the above command. When using the Sybase Adaptive Server database, the port in the properties file must match the port on which the database is running. The following command illustrates how to start the database on port 2638:
dbeng6 -b -x tcpip(ServerPort=2638) databasename
Where the 'databasename' parameter corresponds to the database that will contain
the JMS server's system tables. NOTE: Sybase Adaptive Server also supplies
a dbinit
command. To make sure that you are running the correct
dbinit
program, make the top-level bin
directory appear before any Sybase Adaptive Server Anywhere entries on the
PATH
.
If the Sybase Adaptive Server database is already running and you are unsure
of the listener's port number, you can use a tool like netstat
to
find the port information. For the Sybase Adaptive Server database,
netstat
will display two similar lines where the state of the
TCP ports is LISTENING
.
Start the JMS server by running
jmqserv
If you are using JDK 1.4, we recommend using the server VM, i.e. start JMS server using the following command:
jmqserv -J-server
Please refer to the FAQ for installation problems.
The database schema used by version 5.2 is not compatible with versions prior to 2.1. You have two migration options:
To save the security, queue or topic settings that you defined in a previous version, use the database migration tool described below.
To discard the security, queue, or topic settings that you defined in a previous version, use the destroy tool described below.
To migrate the database and save your data:
Stop the JMS server if it is running
Backup the database
If you are also upgrading from Cloudscape 3.6 to 4.0, append
upgrade=true to the URL in the msgsvc.properties
file
Type the following:
dbinit -migrate
Please be patient and give the migration program time according to the size of your database. A small database with less than 20 destinations and a few hundred messages will typically migrate in less than ten seconds, but larger databases will take longer.
NOTE: Once you migrate the database, you can no longer access it using a previous version of the JMS server. The migration tool can migrate both the database from version 1.0, 1.1, 1.3, 2.0 and 2.1 of JMS.
To migrate the database without saving data:
Stop the JMS server if it is running.
Type the following:
dbinit -destroy
NOTE: Once you use the -destroy option, you can no longer access the topics, queues, or destinations it used to contain. Once the previous schema has been destroyed, you can create a new schema using the usual 'dbinit -create' command.
The following documentation is included.
This guide provides you with an introduction to messaging in general and the Novell exteNd Messaging Platform's JMS in particular. The focus of this guide is to describe the Java Message Service without using code examples.
The tutorial is a hands-on guide to the Novell exteNd Messaging Platform's JMS features. The tutorial is built around the examples that are included with the product. The example code is listed and discussed in detail.
The administrator's guide provides detailed information about setting up, running and managing the JMS server and tools. Among the topics covered are clustering, security and performance tuning.
The tools reference provides "man pages" for the JMS commands. These pages describe the purpose and command line syntax for the various JMS binaries.
The API reference contains familiar JavaDoc for both the standard JMS API and the Novell exteNd Messaging Platform specific API's.
The FAQ provides easy to read answers to common problems encountered when using JMS. The FAQ covers things ranging from specific installation and getting started problems, to general JMS questions.
The Novell exteNd Messaging Platform's JMS comes with a number of pre-built
examples. These
examples show how to use most of the features of the JMS product.
The JMS tutorial contains
a detailed description of each example. The Java source for the examples
can be found in the examples/jms
directory.
There are many JMS resources available on the Internet:
The official JMS home page: http://java.sun.com/products/jms
A tutorial on JMS can be found here: http://java.sun.com/products/jms/tutorial/index.html
The JMS specification and sample programs can be downloaded from here: http://java.sun.com/products/jms/docs.html
An article on building messaging system with JMS can be found here: http://developer.java.sun.com/developer/technicalArticles/Networking/messaging
There's a JMS FAQ here: http://java.sun.com/products/jms/faq.html
There's another FAQ here: http://www.jguru.com/jguru/faq/faqpage.jsp?name=JMS
A web site dedicated to messaging systems and middleware: http://www.messageq.com/jms
The archives of the jms-interest mailing list: http://archives.java.sun.com/archives/jms-interest.html
Back to top.
Copyright © 2003, 2004 Novell, Inc. All rights reserved. Copyright © 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.