At IBM InterConnect we recently announced support for using IBM MQ classes for JMS (MQ JMS for the rest of this article) inside a CICS OSGi JVM server (CICS). The aim of this article is to describe this support, and walk through writing and deploying a simple MQ JMS application for deployment in a CICS JVM server
1. What is the current support for interacting with IBM MQ in CICS using Java?
Currently if you want to interact with an IBM MQ (MQ) queue manager using Java in CICS then you have to use the IBM MQ classes for... [More]
CICS has long supported JNDI in JVM server environments. The recent announced support for IBM MQ classes for JMS (MQ JMS for the rest of this article) in CICS means that it is likely to be used more frequently. This short article describes JNDI and why you might want to use it.
JNDI stands for Java Naming and Directory Interface. It is a set of interfaces and classes that allow Java objects to be registered, and then later located, using a name, which is typically a string. It is often used in Java Enterprise Edition... [More]
The aim of this article is to show how you can use the CICS Liberty JVM server to expose an existing CICS program as a web service using the JAX-WS specification.
This article is intended for Java developers and system programmers that have little knowledge of the CICS Liberty JVM server. T he article will guide you through the following steps:
Set up of the CICS Liberty JVM server infrastructure,
Inter operation between Java programs in the CICS Liberty JVM server and existing programs
Different deployment... [More]
Starting an OSGi or Liberty JVM server in CICS can seem like a daunting task at first, however once you get started you'll wonder what you were ever worried about. Creating and starting your JVM server can be done in a few simple steps. This article will show you exactly how to set up both an OSGi JVM server and Liberty JVM server in CICS in a way that even the most Java-phobic reader will find easy.
To follow the steps in this article you should already have performed the following:
This article describes a process which can be used to automate the phase-in of a Java application in a CICS bundle into a running CICS system. This process provides a similar lifecycle to the usage of the SET PROGRAM PHASEIN command used for traditional non-Java CICS programs, with the added benefits OSGi versioning brings to the application development lifecycle.
Whats in a bundle?
Java applications are deployed to CICS in a different manner than traditional COBOL or PL/I applications. Java classes are... [More]
It's a well documented fact that the earlier a bug is discovered the easier it is to fix. One of the challenges of writing applications to run in CICS is that you have to have a region available for running the applications in. If this is then shared with other developers you can run into issues as only one remote debugger can be attached to a JVM server at any one time.
A potential solution is to write automated unit tests that run inside the development environment, but before we can do that we need to be able to use the JCICS APIs... [More]
Do you have Java applications running in pooled JVM? Are you considering the upgrade to CICS TS V5? If so then this article should help to smooth the migration of those applications.
The introduction of JVM server in CIC TS V4.2 offers a number of advantages over the existing pooled JVM implementation. The multi-threaded industry standard environment allows a single JVM within a CICS region to host all Java workload previously handled by a pool as well as the opportunity to consolidate multiple application regions. The OSGi framework... [More]
Java in CICS used to be a strange place. When I started working on CICS Transaction Server V3.1, having previously worked on WebSphere Application Server, I was frustrated to find an unusual Java environment inside CICS. It had strange options for its configuration and the idea that each CICS task had its own JVM (yes, a whole one) was baffling, and it didn’t understand Java threads. That was 10 years ago, but everything is different now.
The CICS JVM is a first-class enterprise Java environment. It’s so... [More]
This article describes how to deploy a Java application that uses the IBM MQ classes for Java into a CICS OSGi or Liberty JVM server
To follow the setup in this article you should already have performed the following:
S etup CICS to access MQ, this includes adding the correct datasets to the CICS region STEPLIB, and defining the MQCONN resource definition.
Installed the CICS Explorer V5.2 and added the WDT tools if developing Web applications.
Successfully created and started a JVM... [More]
[7/Oct - article updated to refer to CICS TS V5.2 and some WASDev links updated]
CICS TS V5.2 includes the latest WebSphere Application Server Liberty Profile (WLP) V8.5.5 that provides features for the Java API for XML Web Services ( JAX-WS ) and the Java Architecture for XML Binding ( JAXB ). Together these technologies enable you to write SOAP web services in Java as part of a CICS application.
You may be thinking, why not use the CICS TS native web services stack as it is fast, efficient and... [More]
This article shows how the IBM Health Center can be easily installed into the CICS Explorer and used to create customized perspectives for monitoring CICS JVM servers. Together these two tools provide a powerful platform for profiling CICS Java applications, monitoring memory usage and garbage collection, and performing further diagnostic commands .
To follow the setup in this article you will require the following minimum software requirements:
CICS TS for z/OS V4.2 or later
IBM Java... [More]
Writing RESTful web services using a CICS Liberty JVM server - Part 2
My name is Daniel Fitzgerald, I'm a trainee software developer in the CICS team based at IBM Hursley UK. I've been working for the last six months on the Mobile Extensions Feature Pack V1.0 for CICS Transaction Server. As part of the project we looked at using JAX-RS, JSON and RESTful designs within Liberty.
[Edit: This article was updated 11 September 2013 by Mark Cocker to clarify the pre-requisites and update the... [More]
In the fall of 2012, I had the opportunity to return to the United Kingdom after 36 years. My initial visits were very quick, since the United States Navy would only allow you on shore for a short period. Nevertheless, my thoughts of the UK were still centered around the days of King Arthur ...leading up to the James Bond 007 era. Then there was my remembrance of William Shakespeare, the greatest poet and playwright ever and William Wilberforce, an English politician and philanthropist that led the movement to abolish the slave trade and most... [More]
Memory leaks in Java programs are just as much of an issue as they are for programs written in any other language. Despite the garbage collector (GC), there are situations where the GC cannot remove objects because they are still referenced. The first problem is identifying a memory leak and the second problem is locating the class responsible. This post will show you, how to identify and locate a memory leak in a Java program running in the JVM server in CICS.
One of the advantages of using Java as a programming... [More]
Did you know the CICS Explorer SDK not only includes a great development environment for Java, but also a remote debugger?
Quick guide to starting a debug session:
Ensure the JVMSERVER resource used by your Java application is disabled, or not yet installed.
Add the following two lines to the JVM profile.
Change the "address=" option to a IP port number on z/OS that is not already being... [More]