This book provides information about concepts and procedures for developing JavaTM messaging applications (Java clients) that work with Sun Java System Message Queue (formerly SunTM ONE Message Queue).
This guide is meant principally for developers of Java applications that use Sun Java System Message Queue.
These applications use the Java Message Service (JMS) Application Programming Interface (API), and possibly the SOAP with Attachments API for Java (SAAJ), to create, send, receive, and read messages. As such, these applications are JMS clients and/or SOAP client applications, respectively. The JMS and SAAJ specifications are open standards.
This book assumes that you are familiar with the JMS APIs and with JMS programming guidelines. Its purpose is to help you optimize your JMS client applications by making best use of the features and flexibility of a Message Queue messaging system.
This book assumes no familiarity, however, with SAAJ. This material is described in Chapter 5, Working with SOAP Messages and assumes only basic knowledge of XML.
You must read the Sun Java System Message Queue 3.7 UR1 Technical Overview to become familiar with Message Queue’s implementation of the Java Message Specification, with the components of the Message Queue service, and with the basic process of developing, deploying, and administering a Message Queue application.
This guide is designed to be read from beginning to end. The following table briefly describes the contents of each chapter:
Table P–1 Book Contents
Chapter |
Description |
---|---|
A high-level overview of the Message Queue Java interface. It includes a tutorial that acquaints you with the Message Queue development environment using a simple example JMS client application. |
|
Explains how to use the Message Queue Java API in your client application. |
|
Describes architectural and configuration issues that depend upon Message Queue’s implementation of the Java Message Specification. |
|
Describes message-based monitoring, a customized solution to metrics gathering that allows metrics data to be accessed programmatically and then to be processed in whatever way suits the consuming client. |
|
Explains how you send and receive SOAP messages with and without Message Queue support. |
|
Provides reference information for warning messages and error codes returned by the Message Queue client runtime when it raises a JMS exception. |
The documents that comprise the Message Queue documentation set are listed in the following table in the order in which you would normally use them.
Table P–2 Message Queue Documentation Set
Document |
Audience |
Description |
---|---|---|
Developers and administrators |
Explains how to install Message Queue software on Solaris, Linux, and Windows platforms. |
|
Developers and administrators |
Includes descriptions of new features, limitations, and known bugs, as well as technical notes. |
|
Developers and administrators |
Describes Message Queue concepts, features, and components. |
|
Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients |
Developers |
Provides a quick-start tutorial and programming information for developers of Java client programs using the Message Queue implementation of the JMS or SOAP/JAXM APIs. |
Administrators, also recommended for developers |
Provides background and information needed to perform administration tasks using Message Queue administration tools. |
|
Sun Java System Message Queue 3.7 UR1 Developer’s Guide for C Clients |
Developers |
Provides programming and reference documentation for developers of C client programs using the Message Queue C implementation of the JMS API (C-API). |
Message Queue 3.7 UR1 includes command-line utilities for performing Message Queue message service administration tasks.
Message Queue 3.7 UR1 also includes a graphical user interface (GUI) administration tool, the Administration Console (imqadmin). Context-sensitive help is included in the Administration Console; see Administration Console Online Help in Sun Java System Message Queue 3.7 UR1 Administration Guide.
JMS and Message Queue API documentation in JavaDoc format is provided at the following location:
Platform |
Location |
---|---|
Solaris |
/usr/share/javadoc/imq/index.html |
Linux |
/opt/sun/mq/javadoc/index.html |
Windows |
IMQ_HOME/javadoc/index.html |
This documentation can be viewed in any HTML browser. It includes standard JMS API documentation, as well as Message Queue-specific APIs for Message Queue administered objects, which are of value to developers of messaging applications.
Example Java client applications are located in the following directories, depending on platform. See the README file located in these directories and in each of their subdirectories.
Platform |
Location |
---|---|
Solaris |
/usr/demo/imq/ |
Linux |
/opt/sun/mq/examples |
Windows |
IMQ_HOME/demo/ |
The JMS specification can be found at the following location:
The specification includes sample client code.
The SOAP with Attachments API for Java (SAAJ) Specification can be found at the following location:
http://java.sun.com/xml/downloads/saaj.html
The specification includes sample client code.
For background on using the JMS API, you can consult the following publicly-available books:
Java Message Service by Richard Monson-Haefel and David A. Chappell, O’Reilly and Associates, Inc., Sebastopol, CA
Professional JMS by Scott Grant, Michael P. Kovacs, Meeraj Kunnumpurath, Silvano Maffeis, K. Scott Morrison, Gopalan Suresh Raj, Paul Giotta, and James McGovern, Wrox Press Inc., ISBN: 1861004931
Practical Java Message Service by Tarak Modi, Manning Publications, ISBN: 1930110138
Message Queue makes use of three directory variables; how they are set varies from platform to platform. Table P–3 describes these variables and how they are used on the Solaris, Linux, and Windows platforms.
The information in Table P–3 applies only to the standalone installation of Message Queue. When Message Queue is installed and run as part of an Application Server installation, the values of the directory variables are set differently: IMQ_HOME is set to appServer_install_dir/imq (where appServer_install_dir is the Application Server installation directory), and IMQ_VARHOME is set to appServer_domainName_dir/imq (where appServer_domainName_dir is the domain directory for the domain starting the Message Queue broker).
In this guide, IMQ_HOME, IMQ_VARHOME, and IMQ_JAVAHOME are shown without platform-specific environment variable notation or syntax (for example, $IMQ_HOME on UNIX). Path names generally use UNIX directory separator notation (/).
The following table describes the typographic conventions that are used in this book.
Table P–4 Typographic Conventions
Typeface |
Meaning |
Example |
---|---|---|
AaBbCc123 |
The names of commands, files, and directories, and onscreen computer output |
Edit your .login file. Use ls -a to list all files. machine_name% you have mail. |
AaBbCc123 |
What you type, contrasted with onscreen computer output |
machine_name% su Password: |
aabbcc123 |
Placeholder: replace with a real name or value |
The command to remove a file is rm filename. |
AaBbCc123 |
Book titles, new terms, and terms to be emphasized |
Read Chapter 6 in the User's Guide. A cache is a copy that is stored locally. Do not save the file. Note: Some emphasized items appear bold online. |
The following table shows the default UNIX® system prompt and superuser prompt for the C shell, Bourne shell, Korn shell, and Windows operating system.
Table P–5 Shell Prompts
Shell |
Prompt |
---|---|
C shell |
machine_name% |
C shell for superuser |
machine_name# |
Bourne shell and Korn shell |
$ |
Bourne shell and Korn shell for superuser |
# |
Windows |
C:\ |
The following table explains symbols that might be used in this book.
Table P–6 Symbol Conventions
Symbol |
Description |
Example |
Meaning |
---|---|---|---|
[ ] |
Contains optional arguments and command options. |
ls [-l] |
The -l option is not required. |
{ | } |
Contains a set of choices for a required command option. |
-d {y|n} |
The -d option requires that you use either the y argument or the n argument. |
${ } |
Indicates a variable reference. |
${com.sun.javaRoot} |
References the value of the com.sun.javaRoot variable. |
- |
Joins simultaneous multiple keystrokes. |
Control-A |
Press the Control key while you press the A key. |
+ |
Joins consecutive multiple keystrokes. |
Ctrl+A+N |
Press the Control key, release it, and then press the subsequent keys. |
-> |
Indicates menu item selection in a graphical user interface. |
File -> New -> Templates |
From the File menu, choose New. From the New submenu, choose Templates. |
The Sun web site provides information about the following additional resources:
Documentation (http://www.sun.com/documentation/)
Support (http://www.sun.com/support/)
Training (http://www.sun.com/training/)
Besides searching Sun product documentation from the docs.sun.com web site, you can use a search engine by typing the following syntax in the search field:
search-term site:docs.sun.com |
For example, to search for “broker,” type the following:
broker site:docs.sun.com |
To include other Sun web sites in your search (for example, java.sun.com, www.sun.com, and developers.sun.com), use “sun.com” in place of “docs.sun.com” in the search field.
Third-party URLs are referenced in this document and provide additional, related information.
Sun is not responsible for the availability of third-party web sites mentioned in this document. Sun does not endorse and is not responsible or liable for any content, advertising, products, or other materials that are available on or through such sites or resources. Sun will not be responsible or liable for any actual or alleged damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods, or services that are available on or through such sites or resources.
Sun is interested in improving its documentation and welcomes your comments and suggestions. To share your comments, go to http://docs.sun.com and click Send Comments. In the online form, provide the full document title and part number. The part number is a 7-digit or 9-digit number that can be found on the book's title page or in the document's URL. For example, the part number of this book is 819-4469.