JMS Application in ETP Environment with ActiveMQ and Geronimo.
Target System: Geronimo on Windows
Eclipse IDE with Elastic COBOL
Geronimo Application Server
This tutorial will describe steps required to configure and deploy an Elastic COBOL application to Geronimo application server. This application will perform MQPUT and MQGET operations on a queue.
- We will use existing default connection factory DefaultActiveMQConnectionFactory and default queue SendReceiveQueue to perform MQPUT and MQGET operations. These are deployed by default with Geronimo installation:
Create a COBOL project jmsproject with ETP Transaction nature enabled. Add a COBOL program that performs MQ operations (e.g. File > New > ETP Project). Place attached MQGETTST.CBL and MQPUTTST.CBL programs into cobol_source directory of the project. Unzip contents of attached copylib.zip file into copylib directory of the project. Place attached ecobol.dir file into resources directory of the project and compile.
- Add heirloomcomputing_mqi.properties file to resouces directory. This properties file is a logical mapping between values that are passed to MQ* routines, and the names for JMS resources in the runtime environment. The two values that need to be set: the ConnectionFactory name (this will be defined in the next steps) and the queue name mapping. Queue name in particular makes it possible to map the name that is used in COBOL code to the actual name defined in the environment (also in later steps this will match the queue name in the ETP deployment properties.)
The below two properties allow additional logging to be enabled/disabled:
- Create an ETP Deploy project.
- Add jmsproject as participating project to your ETP project under General Tab.
- On the Transaction tab of deployment properties define following transactions
INIT - MQPUTTST
MQGT - MQGETTST
MQPT - MQPUTTST
On the JMS Tab of deployment properties Add an entries for the JMS Connection Factory and Resource Adapter as shown below. (Note: a MDB Definition/Activation Specifications are only needed when creating MDB's as described in another post):
activemq-ra org.apache.geronimo.configs 3.0.1
On the Queues Tab define the queue that we will be connecting to. Use the following values. Note that the queue JMS connection drop down will have the value listed as defined in Step 7. Here as on the JMS tab, the local name is the name that this queue will be known to the application, and JNDI name is the name as defined in the deployment descriptor for the connector when it was deployed to the server (default ActiveMQ in this case.)
Deploy the ear file.
Test with following screens.
Execute following url's/transactions to test MQPUT and MQGET.
The below output will display detailed logging about connecting and browsing the queue.