Sun Java System Message Queue 3.7 UR1 Installation Guide

Installing Message Queue

The Message Queue 3.7 UR1 product can be downloaded from the Sun Java System Web site. Message Queue also depends on components that you must install in order to develop and run Message Queue clients. See Table 1–1 and Table 1–2 for more information.

Finding Earlier Message Queue Versions

Because Message Queue is installed with other products (such as Solaris 9, Solaris 10, and Sun Java System Application Server), you should check whether Message Queue has already been installed on your system. To do so, enter the following command:

imqbrokerd -version

If Message Queue is already installed, the version number is displayed.

If you find that a previous installation already exists on your system, see Upgrading From Previous Versionsfor information on upgrading to Message Queue 3.7 UR1.

Upgrading From Previous Versions

To upgrade from Message Queue Versions 3.0.x, 3.5, and 3.6, you need not uninstall those versions; they will be overwritten.


Note –

If you want to upgrade to Message Queue 3.7 UR1, you must purchase Message Queue 3.7 UR1 and use the Sun Java Enterprise System installer to upgrade your version of Message Queue. See the Sun Java Enterprise System Installation Guide for more information.


Installed Directory Structure

Table 2–2 shows the installed directory structure for a full installation of Message Queue 3.7 UR1 on the Solaris platform. (The directory structure may vary if you perform a partial installation.)


Note –

File locations for Message Queue bundled with Sun Java System Application Server may differ from those shown in the table.


Table 2–2 Installed Directory Structure (Solaris)

Directory 

Contents 

COPYRIGHT (not installed)

Copyright text file 

DISTRIBUTIONREADME

List of redistributable files 

ENTITLEMENT

Evidence of purchase 

LICENSE (not installed)

License text file 

README (not installed)

README text file

THIRDPARTYLICENSECREADME

NSS/NSPR license 

/usr/bin

Executable files for the following administration tools:  

  • Administration Console (imqadmin)

  • Broker utility (imqbrokerd)

  • Command utility (imqcmd)

  • Object Manager utility (imqobjmgr)

  • Database Manager utility (imqdbmgr)

  • User Manager utility (imqusermgr)

  • Key Tool utility (imqkeytool)

/usr/share/lib

Support files for Message Queue Java client runtime: 

  • .jar files for building and running Java Message Service (JMS) client applications

  • .rar files for JMS Resource Adapter

/usr/share/lib/imq

Support files for Message Queue tools and processes: 

  • .jar files used by Message Queue system

  • .war files for HTTP servlet deployment

/usr/share/lib/imq/props

Broker's default configuration files 

/usr/share/lib/imq/ext

Files needed for JDBC-based persistence

/usr/share/lib/imq/help

Message Queue help files 

/usr/share/lib/imq/images

Admin GUI image files 

/usr/share/javadoc/imq

Message Queue and JMS API documentation in JavaDoc format

/usr/demo/imq

Example Java client applications 

/opt/SUNWimq/demo/C

Example C client applications 

/opt/SUNWimq/include

Header files to support C client applications 

/opt/SUNWimq/lib

Libraries to support C client applications 


Note –

The versions of Netscape Portable Runtime (NSPR) and Network Security Service (NSS) needed to support the C API are the same as those for Java Enterprise System 5.


/var/imq

Message Queue working storage 

/var/imq/instances

Configuration properties, file-based persistent data stores, log files, flat-file user repositories, and access control properties files for individual broker instances 

/etc/imq

License files, instance template files, and rc script configuration files for automatic startup

Working with Solaris 10 Zones

A zone is a Solaris Container technology that provides separate environments on a machine and logically isolates applications from one another. Zones allow you to create virtual operating system environments within an instance of the Solaris operating system. Running applications in different zones allows you to run different instances or different versions of the same application on the same machine while, at the same time, permitting centralized administration and efficient sharing of resources.

This section provides a brief description of zones and describes their use with Message Queue 3.7 UR1.

Zones Basics

A zone environment includes a global zone and one or more non-global zones. When Solaris 10 is first installed on a system there is only one global zone. An administrator can create other non-global zones as children of the global zone. Each zone appears as an independent system running Solaris. Each zone has its own IP address, own system configuration, own instances of running applications, and its own area on the file system.

The global zone contains resources that can be shared among non global zones; this allows the centralization of certain administrative functions. For example, packages installed in the global zone are available (propagated) to all existing non-global zones. This enables you to centralize life-cycle management like installation, upgrade, and uninstallation. At the same time, the isolation provided by non-global zones results in greater security and allows you to have differently configured instances or different versions of the same application running on the same machine.

Non-global zones are either whole root zones or sparse root zones: which of these you choose as an environment for an application depends on how you want to balance administrative control with resource optimization.

Java Enterprise System Zones Limitations

The components that make up the Java Enterprise System depend on some shared components; this creates some limitations in working with zones. In a zones environment, shared components are governed by the following rules.

These requirements affect the installation of Message Queue because it is a component product of Java Enterprise System and, as such, is limited in its use of zones.


Note –

The Message Queue product is installed into the /usr directory and must therefore be installed or upgraded in the global zone first.


Message Queue Cases

When Message Queue is installed in the global zone, it is set to propagate into all of the non-global zones. After installing Message Queue in the global zone, you will have the same version of Message Queue installed in all zones: if you log into any zone and run the command pkginfo -l SUNWiqu, you will see it installed, and it will be the same version as in the global zone. You can then run independent instances of the Message Queue broker in each zone since they do not share the instance and configuration data kept in /var and /etc. Most other Java Enterprise System components are not propagated if they are installed in the global zone.

Because Message Queue is propagated into non-global zones, the global instance is forever linked to the installations in the non-global zones. Therefore, any time you uninstall or upgrade Message Queue in the global zone it will impact instances running in the non-global zones. The following example shows how this might cause unintended results.

  1. You install Message Queue 3.7 UR1 in the global zone. This results in the Message Queue 3.7 UR1 packages also being installed into all non-global zones.

  2. You uninstall Message Queue 3.7 UR1 in a whole root zone. Then, you install Message Queue 3.6 in the whole root zone.

    You now have different versions of Message Queue running in different zones, which is a set up you might find useful.

  3. You uninstall Message Queue 3.7 UR1 in the global zone. This will uninstall Message Queue from all other zones - including the Message Queue 3.6 instance in the whole root zone.

Always be aware of the cascading effect of installing or uninstalling Message Queue in the global zone.

The following two use-cases explain how you install different instances and different versions of Message Queue in different zones.


Note –

If you want to install Message Queue in a whole root zone on Solaris 10, Solaris 10U1, or Solaris 10U2, you must upgrade Lockhart in the global zone first. See the workaround for bug 645030 for additional information.


ProcedureTo Install the Same Version of Message Queue in Different Zones

  1. Install the desired version of Message Queue in the global zone.

    These versions will be propagated into any existing non-global zone. If you create additional non-global zones, Message Queue will also be propagated into these zones. Please note that you can install different instances in whole root zones as well as sparse root zones, but using sparse root zones allows you to make more efficient use of disk space and other resources.

  2. If you want Message Queue to be propagated into any other non-global zones, create these zones now.

  3. Run an instance of Message Queue in each non-global zone.

ProcedureTo Install Different Versions of Message Queue in Different Zones

  1. Uninstall Message Queue from the global zone.

  2. Create whole root zones and configure each zone not to share the /usr directory by using the following directive when you create the zone

    remove inherit-pkg-dir dir=/usr
  3. Install different versions of Message Queue in each whole root zone.


    Note –

    Remember that installing or uninstalling Message Queue in the global zone will affect all instances (and versions) of Message Queue running in whole root zones.


Message Queue Solaris Packages

The following table describes the Message Queue Solaris packages, and Table 2–4 provides a guide to the packages you need for different use scenarios. In addition, if any of these files already exist on your system, you need to check whether the patch revision number is greater than that provided by Message Queue. If it is, you should do a custom install.

Table 2–3 Packages in Solaris Bundle

Package 

Description 

Note 

SUNWiqcdv

C header files and demo files 

Required for developing C client programs. 

SUNWiqcrt

C client shared libraries  

Required for running C client programs. 

SUNWiqdoc

Message Queue Java client API JavaDoc and example applications 

Needed for Java client development. 

SUNWiqfs

Message Queue JNDI File System Service Provider 

Required for client development and administration tools that use the JNDI FIle System Service Provider. The JNDI Service Provider is not supported for deployment.  

SUNWiqjx

Message Queue Java API for XML Messaging (JAXM): API and runtime 

Required to support Java clients using SOAP/JAXM API. 

SUNWiqlen

Legacy package containing Enterprise license file. 

No longer used. 

SUNWiqlpl

Legacy package containing try license  

No longer used. 

SUNWiqr

Message Queue message server root package 

Needed for Message Queue executables. 

SUNWiqu

Message Queue broker and administration tools. 

 

10 

SUNWiquc

Message Queue Java API for JMS messaging and Java client runtime. 

Required to support Java clients using JMS API. 

11 

SUNWiqum

Message Queue JMS/SOAP Message Transformer: API and runtime 

Required to perform conversions between SOAP messages and JMS messages. 

12 

SUNWjaf [This package is shared with a number of Sun Java System products. This package is not installed by default. You must manually install any shared packages after installing Message Queue packages. ]

JavaBeans Activation Framework: API and runtime  

Required to support Java clients using SOAP/JAXM API. 

13 

SUNWjaxp

Java API for XML processing 

Required to support Java clients using SOAP/JAXM API.  

14 

SUNWjhrt

JavaHelp: API and runtime 

Required if installing on Solaris 8. (Solaris 9 and above already have this package installed.) Will only install if a JVM 1.4 or greater has first been installed.  

15 

SUNWjhdev

JavaHelp Development Utilities 

Required to upgrade the current JavaHelp runtime package (SUNWjhrt).

16 

SUNWjhdoc

JavaHelp Documentation 

Required to upgrade the current JavaHelp runtime package (SUNWjhrt).

17 

SUNWjhdem

JavaHelp Demos 

Required to upgrade the current JavaHelp runtime package (SUNWjhrt).

18 

SUNWjmail

JavaMail: API and runtime 

Required to support Java clients using SOAP/JAXM API. 

19 

SUNWpr

Netscape Portable Runtime (NSPR) libraries 

Needed to support C clients. 

20 

SUNWprx

Netscape Portable Runtime (NSPR) libraries 

Needed to support C clients. (64-bit) (SPARC only). 

21 

SUNWtls

Network Security Services (NSS) libraries 

Needed to support C clients. 

22 

SUNWtlsx

Network Security Services (NSS) libraries 

Needed to support C clients. (64-bit SPARC only). 

23 

SUNWtlsu

Network Security Services Utilities 

Programs Needed to support SSL for C clients. 

24 

SUNWtlsux

Network Security Services Utilities Programs 

Needed to support SSL for C clients. (64-bit SPARC only). 

25 

SUNWxsrt

SOAP with Attachments API for Java: API and runtime 

Required to support Java clients using SOAP/JAXM API. 

The following table provides a guide to the packages you need for different use scenarios.

Table 2–4 Packages Required for Various Scenarios

Scenario 

Packages Needed 

Notes 

Message Queue message server and administration tools  

SUNWiqr

SUNWiqu

SUNWiqlpl

SUNWiquc

SUNWjhrt

SUNWiqfs (optional)

Required for a Message Queue broker to run on a host. 

Developing and/or deploying Java clients using the JMS API  

SUNWiquc

SUNWiqdoc (optional)

Can be installed on a system without a Message Queue broker. 

Developing and/or deploying Java clients using the SOAP/JAXM API  

SUNWjaf

SUNWjmail

SUNWiqjx

SUNWxsrt

SUNWjaxp

SUNWiqdoc (optional)

Can be installed on a system without a Message Queue broker. Note: SOAP clients require JDK1.4. 

Developing and/or deploying Java clients using the JMS/SOAP Message Transformer  

SUNWiqum

Plus all packages needed to support Java clients using both the JMS and SOAP/JAXM API  

Can be installed on a system without a Message Queue broker. The Message Queue Message Transformer API depends on both the JMS and SOAP APIs. 

Developing and/or deploying C clients  

SUNWiqcrt

SUNWiqcdv

SUNWpr

SUNWprx

SUNWtls

SUNWtlsx

SUNWtlsu

SUNWtlsux (for SSL)

The SUNWprx, SUNWtlsx, and SUNWtlsux packages on the Solaris SPARC platform are legacy packages and are no longer used. The SUNWtlsu and SUNWtlsux packages are used to create and manage NSS certificate database files by a C client when using SSL.

Installation Procedure

The following instructions explain how to download and install the Message Queue product on Solaris from the Sun Java System Web site.

ProcedureTo Install Message Queue on Solaris

  1. Read the product license. Installation and use of the product are subject to acceptance of the license agreement.

  2. Download the Message Queue product distribution file from the Web site into an empty, temporary working directory, temp_directory.

    The zipped distribution file name depends on the Message Queue hardware platform:

    Edition 

    SPARC 

    x86 

    Platform 

    mq3_7-ent-solsparc.zip

    mq3_7-ent-soli386.zip

  3. Change to a temporary directory.

    cd temp_directory

  4. Unzip the distribution file.

    unzip mq3_7-ent-platform.zip

    where platform is either solsparc or soli386, depending on the platform.

    The unzip command creates an mq3_7-ent directory which contains the distribution files: LICENSE, ENTITLEMENT, DISTRIBUTIONREADME, THIRDPARTYLICENSECREADME, README, and COPYRIGHT files; install and uninstall scripts; and a pkgs directory that contains the Message Queue packages, as well as shared Solaris packages that have been updated for use with Solaris 9 (SunOS5.9).

    Table 2–3 describes the Message Queue packages, and Table 2–4 provides a guide to the packages you need for different use scenarios. In addition, if any of these files already exist on your system, you need to check whether the patch revision number is greater than that provided by Message Queue. If it is, you should do a custom install.

  5. Change to the directory containing the Message Queue distribution files.

    cd mq3_7-ent

  6. Become root.

    su root

    When prompted, type your root password.

  7. Run the mqinstall script.

    This script will overwrite all of the Message Queue-specific packages listed in table Table 2–3

    ./mqinstall

    The script lists the distribution packages, if any, that are already installed, and then lists the packages about to be installed. Please note that the install script will not install any shared packages (packages that do not begin with SUNWiq and that might already be installed on your system). You must install shared packages manually, as described in step 9.

  8. Enter y (yes) if you want to install all the packages. If you want to install the packages manually, enter n (no).

    If you run the mqinstall script, it creates a log file in the /var/sadm/install/logs/ directory.

  9. Check your system for patches to any of the shared packages listed in table Table 2–3 (packages that do not begin with SUNWiq and that might already be installed on your system). Look in the following directory to see what versions will be installed:

    ./pkgs/Solaris_versNo/pkg_name/pkginfo

    Then, find the current installed version of the shared component using a command like the following:

    % pkgparam -v pkg_name | grep VERSION

    or

    % pkgparam -v pkg_name | grep SUNW_PRODVERS

    • If there is no package already installed, then you can go ahead and install the new one.

    • If an existing package is older than the new one, remove the older one using the pkgrm command. For example,

      % pkgrm SUNWpr

      Then, add the new packages as shown in Step 10.

    • If the package version is the same, don't add or remove anything.

  10. If you want to install a subset of the packages listed in table Table 2–3, if you want to install shared packages, or if you do not want to overwrite later versions of packages, do the following:

    1. Change to the pkgs directory

      cd pkgs

    2. Run the pkgadd command to install the packages you want. Note the special directions below for upgrading shared components.

      pkgadd -d ./ -a admin.conf

      The pkgadd utility lists the names of all packages in the directory available for installation (see Table 2–3). When prompted, indicate the packages you want to install, by entering the number of the package. To select multiple packages, enter a list of numbers separated by a comma.

      (The-a admin.conf option permits an overwrite of any packages that are already installed on your system.) The pkgadd utility installs the packages you specify, possibly asking for additional information, and eventually returns to the original prompt, displaying the list of packages available for installation. Please note that running the pkgadd command from the ./pkgs directory with the default selection (all), will install all the Message Queue packages as well, which are already installed by the mqinstall script


      Note –

      To upgrade shared components (indicated by a package name that does not start with SUNWiq), you must also run the command pkgadd -d from the ./pkgs/Solaris_9 directory or the ./pkgs/Solaris_10 directory, depending on the operating system where you are installing the product. (This directory contains operating-system-specific shared components only). For example, the following command adds the shared components that are needed in Solaris 10.

      cd pkgs/Solaris_10
      pkgadd -d ./ -a ../admin.conf

    3. Type q to quit.

  11. Exit the root shell.

  12. Back up the zip distribution file from your temporary working directory.

    This is your logical media. You will need it to uninstall or reinstall Message Queue. Treat this file as you would any other installation media and place a copy in a safe location.


    Note –

    The instance data for any pre-existing broker instance (including the default broker instance, named imqbroker) is owned by the user that created that instance. Therefore, once installation is complete, be sure to run any Message Queue broker instance as the owner with privileges to the /var/imq/instances/instanceName directory. You become the owner by logging in as that user.


Checking Your Installation

To check that the expected version of Message Queue is running on your system, navigate to the Message Queue directory and enter the command: imqbrokerd -version. The output to this command specifies the version of the JDK and Message Queue that are installed on your system.