Set environment variables
Before we can compile and run IBM MQ classes for JMS applications, the setting for the CLASSPATH environment variable must include the IBM MQ classes for JMS Java archive (JAR) file. Depending on your requirements, you might need to add other JAR files to your class path. To run the scripts provided with IBM MQ classes for JMS, other environment variables must be set.
Important: Setting the Java option
-Xbootclasspath, to include the IBM MQ classes for JMS, is not supported.
To compile and run IBM MQ classes for JMS applications, use the CLASSPATH setting for the platform as shown in Table 1. The setting includes the samples directory, so that we can compile and run the IBM MQ classes for JMS sample applications. Alternatively, we can specify the class path on the java command instead of using the environment variable.
Platform | CLASSPATH setting |
---|---|
AIX |
CLASSPATH= MQ_INSTALLATION_PATH/java/lib/com.ibm.mqjms.jar: MQ_INSTALLATION_PATH/samp/jms/samples: |
HP Integrity NonStop Server |
CLASSPATH= MQ_INSTALLATION_PATH/java/lib/com.ibm.mqjms.jar: MQ_INSTALLATION_PATH/samp/jms/samples: |
Linux |
CLASSPATH= MQ_INSTALLATION_PATH/java/lib/com.ibm.mqjms.jar: MQ_INSTALLATION_PATH/samp/jms/samples: |
IBM i |
CLASSPATH=/QIBM/ProdData/mqm/java/lib/com.ibm.mqjms.jar: /QIBM/ProdData/mqm/java/samples/jms/samples: |
Windows |
CLASSPATH= MQ_INSTALLATION_PATH\java\lib\com.ibm.mqjms.jar; MQ_INSTALLATION_PATH\tools\jms\samples; |
z/OS |
CLASSPATH= MQ_INSTALLATION_PATH/mqm/V8R0M0/java/lib/com.ibm.mqjms.jar: MQ_INSTALLATION_PATH/mqm/V8R0M0/java/samples/jms/samples: |
MQ_INSTALLATION_PATH represents the high-level directory in which IBM MQ is installed.
The manifest of the JAR file com.ibm.mqjms.jar contains references to most of the other JAR files required by IBM MQ classes for JMS applications, and so we do not need to add these JAR files to your class path. These JAR files include those required by applications that use the Java Naming Directory Interface (JNDI) to retrieve administered objects from a directory service and by applications that use the Java Transaction API (JTA).
However, we must include additional JAR files in your class path in the following circumstances:- If we are using channel exit classes that implement the channel exit interfaces defined in the com.ibm.mq package, instead of those defined in the com.ibm.mq.exits package, we must add the IBM MQ classes for Java JAR file, com.ibm.mq.jar, to your class path.
-
If the application uses JNDI to retrieve administered objects from a directory service, we must
also add the following JAR files to your class path:
- fscontext.jar
- providerutil.jar
- If the application uses the JTA, we must also add jta.jar to your class path.
Note: These additional JAR files are required only for compiling the applications, not for running them. The scripts provided with IBM MQ classes for JMS use the following environment variables:
- MQ_JAVA_DATA_PATH
- This environment variable specifies the directory for log and trace output.
- MQ_JAVA_INSTALL_PATH
- This environment variable specifies the directory where IBM MQ classes for JMS is installed.
- MQ_JAVA_LIB_PATH
- This environment variable specifies the directory where the IBM MQ classes for JMS libraries are stored, as shown in Table 1.
Procedure
-
On Windows, after installing IBM MQ, run the command setmqenv.
If we do not run this command first, the following error message might appear when we are
issuing a dspmqver command:
AMQ8351: IBM MQ Java environment has not been configured correctly, or the IBM MQ JRE feature has not been installed.
Note: This message is to be expected if you did not install the IBM MQ Java Runtime Environment (JRE) (see Additional Windows features prerequisite checking. -
On any other platform, set the environment variables yourself:
- To set the environment variables if we are using a 32-bit JVM on UNIX, HP Integrity NonStop Server, or Linux systems, we can use the script setjmsenv.
- To set the environment variables if we are using a 64-bit JVM on a UNIX or Linux system, we can use the script setjmsenv64. These scripts are in the MQ_INSTALLATION_PATH/java/bin directory, where MQ_INSTALLATION_PATH represents the high-level directory in which IBM MQ is installed.
We can use the setjmsenv or setjmsenv64 script in a variety of ways: We can use it as a basis for setting the required environment variables, as shown in the table, or add them to .profile using a text editor. If we have a non-typical setup, edit the script contents as necessary. Alternatively, we can run the script in every session from which JMS startup scripts are to be run. If you choose this option we need to run the script in every shell window you start, during the JMS verification process by typing . ./setjmsenv or . ./setjmsenv64
On IBM i, we must set the environment variable QIBM_MULTI_THREADED to Y. We can then run multithreaded applications in the same way that you run single threaded applications. See Set up IBM MQ with Java and JMS for more information.
Parent topic: What is installed for IBM MQ classes for JMS