Modified on by Phil_Wakelin
Welcome to the CICSdev community, the place to discuss, share and learn about developing for CICS. In this community you will find the latest CICS news, as well as information and education directly aimed at developers. Use the forums to discuss recent developments, share your opinions and get help from the experts.
- Visit the blog to read about CICS news and gain an insight into upcoming developments
Download - Here you can download the latest free offerings from CICSdev and see what's available from ibm.com
Learn - Check out our Articles, Videos, Podcasts and Presentations and learn something new about CICS
Participate - Discuss CICS in the forums, raise a bug or request an enhancement through RFE
Events - Catch up with what's been happening at our events throughout the year
Modified on by John Knutson
ITSO have just published the public review draft of a new IBM RedBooks publication: Architects Guide to CICS on System z.
The abstract reads:
CICS Transaction Server (CICS TS) has now been available in different guises for over 40 years, and continues to be one of the widely used pieces of commercial software. This IBM Redbooks publication helps application architects discover the value of CICS Transaction Server to their business.
This book provides a broad understanding of the value and capabilities of CICS Transaction Server and the CICS tools portfolio, together with detailed guidance on the leading practices for designing and integrating CICS applications within an enterprise, and the patterns and techniques you can use to create CICS systems that provide the qualities of service your business requires.
We can now formally announce that CICS TS V3 will reach End of Service in December 2015.
For more information - http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=an&subtype=ca&supplier=897&letternum=ENUS913-075
Modified on by Phil_Wakelin
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 of all, the monarchies of the United Kingdom. Of course, my memory of these people and the fictitious character come from my days in school and my watching a host of movies. For the record, let me state that Skyfall is the best James Bond movie ever. I am a Bond fan.... and I had to make sure everyone recognized this fact. So don't hate!
On this trip, I headed to the town of Winchester, UK. It was once the capital of England.... I never would have guessed. Winchester gives the appearance of a country town but later I found it to be an expensive town. How fortunate to come here, this was an opportunity to grasp some new knowledge. Entering into Winchester, I was met by King Alfred the Great, standing high upon his podium. King Alfred was the only monarch to be labeled "The Great", and he is well-known for successfully defending his kingdom from a Viking takeover. King Alfred is also known for being a strong leader who encouraged education. It was education and technology that brought me to the area.
In the Winchester area exists one of the greatest innovation centers known, the IBM Hursley Lab. It is where software development is the name of the game... and CICS is the champion of them all. Wait a minute! I think we may have some haters out there....but don't hate. It's time to Recognize!
I visited IBM Hursley to learn and understand the latest updates to the JVM server for IBM CICS Transaction Server. The JVM server was introduced in the IBM CICS Transaction Server V4.1 - June 2010. Since then a host of updates have taken place and now a new deliverable is being made available to CICS clients around the globe. You will find the deliverable, CICS and the JVM server - Developing and Deploying Java applications, SG24-8038 at IBM Redbooks web site. Specifically, the inspiration behind this new JVM server Redbooks publication is due to the OSGi framework and benefits associated with the new multi-threaded 64-bit JVM server capabilities provided in CICS TS V4.2.
On a daily basis, Java applications run within the JVM server runtime inside CICS, providing access to CICS resources such as VSAM files, queues or databases, with the same qualities of service for transactional recovery, security and scalability as provided for traditional COBOL applications. More details can be found in the IBM Redbooks publication, Architect’s Guide to IBM CICS on System z, SG24-8067.
In CICS TS V4, the JVM server is used by several other CICS features/components such as Axis2 Web services, Dynamic scripting Feature Pack and Compute Grid SupportPac, In CICS TS V5.1, the JVM server is also used by the newly announced Mobile extensions and Modern Batch Feature Packs as well as by the Liberty runtime for Web based servlet applications and other IBM or 3rd party components such as WebSphere Operation Decision Management (ODM).
Many of us know that CICS is widely used across in the financial, telco, and retail industries and the JVM server supports this effort as follows:
· Providing a multi-language application server runtime for applications written in Java, COBOL, PL/I, C, C++, and scripting languages.
· Supporting re-use of components from JEE application servers and other 3rd party Java frameworks
· Supporting the growing availability of Java development skills in the application development marketplace
More details can be found in the IBM Redbooks publication, Architect’s Guide to IBM CICS on System z, SG24-8067
After what I had learned visiting the home of King Alfred the Great, I must suggest to our audience of architects, application programmers, and system administrators that you must take advantage by downloading and reading the IBM Redbooks publications stated above. You will get a CIC from King Alfred as well.
Reviewed by Phil Wakelin and Ivan D Hargreaves
Photograph by Jacqueline Banerjee
[We were authorized to use the image without prior permission for any scholarly or educational purpose as long as we (1) credit the photographer and (2) link our document to this URL in a web document or cite the Victorian Web in http://www.victorianweb.org/sculpture/thornycroft/36c.html
Modified on by John Knutson
Mother's Day weekend is always a great opportunity to honor Mom and perform a host of chores around her house. This particular weekend, Mom required her house to be painted and as a good son should, I responded ,"Let's Git-R-Done" ...as Larry the Cable Guy would say. To begin, I saw Mom break-out the paint and a couple of paint brushes. Immediately, it dawned on me how Mom would pull out paint brushes when I was a small lad to teach and discipline me to pay attention to details. Well, not this time, I went to the local hardware store and purchased a power paint roller. This was my opportunity to teach and discipline Mom on the importance of having the appropriate tools and to demonstrate how fast and accurate we could paint and utilize the rest of our time for rest and relaxation. She appreciated my buying the new tool but if you know my Mom, she had more on her to-do list than just painting. So her mission and my workload continued throughout the weekend.
If you have not heard it enough, it is important to have the right tools to use for a specific job. After my Mom saw how quickly her house had been painted, I think she was ready to farm me out across the neighborhood to beautify the area. I think all of us have had a day when everything went just right...and for those jobs that we thought were so complex, were not complex at all when we applied the appropriate tools. My experience with Mom made me think about our CICS clients, where several sought a need to improve the efficiency of their CICS platform and how maximizing the availability or up-time of their systems is a significant requirement. Just those two requirements alone justified the creation of IBM CICS Tools to help support application transformation and CICS-based SOA implementation. Yet, the creation of a few CICS Tools was only the beginning of the ingenuity of products produced by a host of development teams at IBM Hursley Park.
The first products in the IBM portfolio of CICS Tools were introduced about ten years ago. Many new introductions were made since that period, the latest of which is IBM CICS Deployment Assistant. The best features can be characterized in a few words: discovery, insight, optimization, automation, standardization, modernize, and integration when using the plug-ins for IBM CICS Explorer.
When you think about the daily use of IBM CICS Tools, products like IBM CICS VSAM Recovery for z/OS and IBM CICS VSAM Transparency for z/OS become an integral part of the CICS and batch infrastructure. Others, like IBM CICS Performance Analyzer for z/OS (CICS PA), IBM CICS Configuration Manager (CICS CM), IBM CICS Deployment Assistant (CICS DA), and IBM CICS Interdependency Analyzer (CICS IA) are used every day:
by architects and developers – to understand the impact of the system and application changes they make, to create controlled changes to CICS resource definitions, and to understand the performance of the applications they develop
by system programmers – to create and deploy new CICS regions, to analyze and optimize performance, and to diagnose and resolve performance and configuration issues
by system administrators and managers – to audit and manage change in a controlled manner, and track performance SLAs
As one of our clients said recently: “CICS Interdependency Analyzer is not a one and done tool”. Like many customers, they justified its purchase for threadsafe analysis, but quickly found it helped with application changes, CICS version upgrades, test coverage analysis, operational changes, and affinity analysis, to name a few of its capabilities.
IBM CICS Tools try to keep in synch with the latest features of the IBM CICS Transaction Server. For example, you can use the CICS IA to track the entry points for the new applications, use CICS PA to understand the actual and potential use of specialty engines both introduced in V5.1.
Whether it is banking, insurance, health care, retail, manufacturing, or government, you will find IBM CICS Tools being used.
Recently, John Knutson, IBM Software Group: Market Enablement - CICS Portfolio, commissioned the development of the Redpaper, Modernize Your Application Infrastructure with IBM CICS Tools V5.1, REDP-4953-00. He wanted to demonstrate to CICS users how the IBM CICS Tools could help them to optimize, automate, and modernize their infrastructure and applications, so that they can respond to new workload demands such as mobile. John would like to thank the authors, who have fulfilled his every wish.
I encourage you to download and view the Redpaper. The Redpaper is suitable for managers and technical users. The managers will understand the value that the tools can bring in terms of increased productivity, better control, and maintenance of standards. Technical users in all roles will recognize that CICS Tools can help them to do their jobs more effectively, with less time switching between interfaces.
I know my Mom is pleased knowing that IBM could be so thoughtful in helping to make everyone's workload much lighter. You can throw away those paint brushes now!
Modified on by Phil_Wakelin
On Friday June 14 we GAed z/OS Explorer V2.1 and CICS Explorer V5.1.1, that is to say, they became generally available for download. That wasn't all - we also made our new repository of compatible plug-ins available, with plug-ins for five CICS Tools, five IBM Problem Determination Tools, IBM Data Studio, Rational Team Concert, a 90-day trial version of Rational developer for System z.
I've been the marketing manager for CICS Explorer, and more recently, z/OS Explorer, for over five years now, so I obviously have an interest. When we started CICS Explorer back in 2008 - earlier if you count the planning and development - we had a SupportPac with read-only support for CICS TS along with plug-ins for three CICS Tools. Now we have a common component used by 15 plug-ins from three IBM brands. So, even though it was Saturday, since I'd been waiting for this for some time, I decided to try the installation.
I started by going to the download tab on the z/OS Explorer page, and selected the download in Scenario 1, which uses IBM Installation Manager (IM). The IM package is about 700MB so took about 10 minutes on my home broadband. Another 10 minuets to unzip it. Then I ran the launchpad.exe in the disk1 folder which first installs IM and then z/OS Explorer. I then ran z/OS Explorer from the Start menu and configured my FTP and z/OSMF connections, and was able to access z/OS datasets, z/FS files, and JES jobs and output.
I then launched IM again, this time from the Start menu and used File/Preferences to create a repository definition with URL http://public.dhe.ibm.com/software/htp/zos/2/1/0 . I then selected Install, and clicked on the Check for other Versions, Fixes and Extensions button, and saw all of the products listed above. I installed them in groups - CICS Explorer and CICS Tools, Data Studio, and the Rational products - so that I could see how long they all took, but you can select and install them all at once. All of the plug-ins are downloaded as part of the install, so you need to be attached to a network, but I think that you can create an internal staging server within your own networks. You need to enter a jazz.net id and password to access the rational products, and an IBM id (like you'd use here on dWorks) to access Data Studio, but once you've entered them once, you can save them for future use.
All in all, it probably took a couple of hours to install everything - some of the downloads are quite large, so it may take longer on some networks. But, after that time, I was able to run z/OS Explorer again and find all of the perspectives, views, and actions contributed by ten different products within a single IDE. The five PD Tools aren't loaded on the IM repository yet, though they are available in the Eclipse P2 repository, but I'm sure they'll be there in the next day or so. With them, and MQ Explorer and IMS Enterprise Explorer - both slated for future delivery in a recent Statement of Direction - you'll be able to run close to twenty products covering z/OS and its key subsystems in a single workbench.
I have to admit that I was concerned that running so many plug-ins in one would really slow down the z/OS Explorer start-up time, and the first time I used it after each install it did take longer to start, but the second and subsequent times it was back to normal, taking about 20 seconds.
All in all, a pretty good showing. Ten plug-ins from three different brands, all installed smoothly. Pretty amazing. I know that many of you have experienced issues trying to get different products working together in Eclipse and I hope that the z/OS Explorer initiative makes your life a lot easier in future.
Thanks to everyone who made it happen. It's a great story and I thought it needed to be told.
Updated Tuesday 18th June 2013
Warning: Long path names A few people have experienced problems unzipping the initial downloads on Windows XP machines. The problem is caused when the package is unzipped to a folder whose path is longer than about 90 characters - our longest file has a path of about 160 characters. Older unzip product like WInzip and Windows compressed folders cannot create files with a pathlength longer than 255. Either unzip the package from a short path, or use something like 7-Zip. Updated 20th June: Apparently the unzip problem is well known, if not well understood. Learn more in this technote.
Overnight, the PD Tools were added to the IM repository, so I reran IM, selected the plug-ins for the five PD tools and within about 15 minutes, the plug-ins were successfully installed, as you can see in the following screenshot. When I restarted z/OS Explorer, it still just took 22 seconds - now with 18 plug-ins!
If you want to see what's going on in a little more detail, take a look at this post on cicsabel's blog: https://www.ibm.com/developerworks/community/blogs/cicsabel/entry/installing_my_first_z_os_explorer?lang=en (thanks, Isabel)
Modified on by Mark Cocker
CICS PA Plugin (Targeted thinking)
In the latest version of the CICS PA plug-in we have attempted to bring a new approach to CICS performance monitoring and assessment. Traditionally users of CICS Performance Analyzer are performance system experts who have honed their skills over many years and have evolved a wealth of knowledge of keeping their CICS systems well balanced and ways of spotting problems before they have a detrimental affect to overall system performance.
We are currently distilling this knowledge and experience into the CICS PA plugin to help new or inexperienced CICS users appreciate more of the factors that influence their CICS systems and what the implications of different aspects of their overall CICS configuration can be.
CICS Statistics – The early warning system
Stats alerts are one of the first points of contact most performance analysts have with their system and generally an alert here requires them to trawl through many different stats records to get a reasonable handle on what is happening inside their system. We have taken some of that experience derived work away from them and now present certain common alerts in a manner that can be more readily consumed or appreciated. CICS PA now presents an interval plot of the users statistics data from before and after an alert. Plotted in this graph are the specific values that contribute the the alert condition they are studying.
Transaction Alert “Maximum tasks reached”
An example is the Transaction Alert “Maximum tasks reached”. This is displayed in the context of: The “max task” value specified, the current and peak active user transactions and the number of times at “max task”. There are additional references and values displayed alongside each interval on the interval plot but the points being shown over a time period give the visual indication of what critically has been happening to the region.
Help me out here..
In conjunction with the interval plot we have put a great deal of effort into the contextual help a user receives. Although the online documentation covers every aspect of their system it is not focussed on the specific situation the analyst is looking with the alert. So rather than the user taking time out to assimilate the online documentation hitting F1 provides the users with the genuine voice of experience that describes the problem domain and what the relevance of these numbers or the rate of change can mean. Not only that it provides users with the practical advise such as understanding areas of caution that need to be considered before going ahead and making changes.
Transaction class “Maximum active transactions in class reached:
The maximum active transactions in class alert is in the same family, as the global transactions alert but in this visualisation we show a breakdown of the transactions that make up that class and the number of transaction attaches. From here the user can link to the equivalent interval plots for both the Applid itself or any specific transaction.
Transaction: “Storage violations for transaction ID”
The final member of this alert family is for individual transaction itself. The Transaction interval plot is shown for a Storage violations for transaction ID alert and these plots can also be selected by menu from the sheet view of the respective stats table. When creating this view the input we received was that it was necessary to look at the transaction attaches in conjunction with the attaches associated with the transaction class if applicable and that of the region overall.
These views have been designed to be navigable and joined up meaning the users are able link from one to another as needed. They show your CICS stats data in a way that has not been shown before letting you make informed decisions about your system supported by real life help and information.
Modified on by Phil_Wakelin
Writing RESTful web services using a CICS Liberty JVM server - Part 1
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. This article, coming in two parts is the result of these investigations.
The CICS Liberty server is a web container technology based on WebSphere Application Server Liberty Profile. It comes as part of CICS TS V5.1 at no extra cost and offers the potential for significant zAAP offload compared to a regular CICS Web Service. The CICS Liberty server offers a lightweight Java container with all the features of Java Servlets and JavaServer Pages (JSP's) as well as local access to your existing CICS applications and data. You can expose these existing resources to the web using Java Servlets hosted in the CICS Liberty server and design them in a RESTful way. But before we begin what exactly is REST?
The term 'REST' refers to Representational State Transfer, a design pattern for interacting with resources stored in a server. Each resource has an identity, a data type, and supports a set of actions. The RESTful design pattern is usually used in combination with HTTP, the language of the internet. In this context the resource's identity is its URI, the data type is its Media Type, and the actions are made up of the standard HTTP methods GET, PUT, POST and DELETE.
REST vs SOAP
Now we understand what REST is, why would we want to use it? Why not use Simple Object Access Protocol (SOAP)?
RESTful designs tend to be simpler, easier to understand and work much more closely to the way the web works.
By using HTTP headers to describe the data we are exposing we save on overheads incurred by the SOAP envelope.
SOAP and Web Services Description Language (WSDL) are designed to be machine-readable, RESTful URI's should be human readable and describe the data being exposed. This makes testing and debugging simpler and easier.
RESTful designs put the onus on the client to remember state and by careful use of the 'Expires' HTTP header can improve caching while reducing server-side complexity.
Whilst you decide if a RESTful architecture is for you, let's consider some business cases:
You want to modernize the interface to your application by replacing terminal screens with a Web browser and a RESTful client.
You want to use Java based tools to develop, package and deploy web solutions using existing CICS applications and resources to ease development and speed up time to deployment.
You already use the Liberty profile technology but want to see how running it in CICS will offer added benefits. These include easy access to local CICS resources and co-location with your data source such as DB2.
A quick note on exactly what JAX-RS is. It stands for Java API for RESTful web services and is used for designing web services according to the Representational State Transfer (REST) design pattern. It uses annotations to convert between Java and web data. There are many implementations of JAX-RS in use today including the CICS Liberty Server, WebSphere Application Server and Apache Wink.
In the next part of the article I'll discuss the actual implementation of such a service including packaging and deployment to the CICS Liberty server complete with screenshots and code samples.
Modified on by John Knutson
Hidden in the release notes for the latest CICS Explorer V5.1.1 you will see an enhancement that provides the “Ability to edit a CICS Platform project, CICS Application project, or CICS Application Binding project”. The required server-side APAR PM81540 is now available.
These new editors are a significant improvement to the user experience of working with CICS Applications, CICS Bindings and CICS Platforms so if you are interesting in the cloud enablement capability in CICS TS V5.1 please try out these downloads.
Modified on by Melita Saville
IBM Knowledge Center will soon become the central location for online documentation about IBM products, replacing all the separate information centers. You do not need to take any action, links to the existing CICS information centers will be automatically redirected to IBM Knowledge Center from May onwards, but you will notice some changes in the look and function of the CICS online documentation.
You can find the IBM Knowledge Center here: www.ibm.com/support/knowledgecenter/.
Why are information centers changing?
Clients have told IBM that it is too painful working with individual product information centers:
Too many individual sites for multiple IBM products
User experience is inconsistent from one information center to another
Search relevance can be poor and is impossible across product information centers
Performance and availability issues
Some information centers do not work well with mobile devices
Unable to create custom views and PDFs of the content
What does IBM Knowledge Center offer?
Enhanced search, across all products or filtered by date, task, or operating system, with type-ahead hints
Ability to create collections of pages (changes that IBM makes to the pages are automatically reflected in these collections) and format these in PDF
Rate pages and share comments on pages
The ability for IBM to update the information swiftly in response to feedback or fixes
Replacing all information centers is the first step. Over time, IBM Knowledge Center will become a fusion of technical content from IBM developerWorks, IBM Redbooks publications, and elsewhere. There will be a customer-installable edition of IBM Knowledge Center so that you can host IBM information in your own environment without needing an active internet connection. Watch for more features to roll-out over time.
What changes will CICS users see?
The content and structure of online topics are unchanged. IBM Knowledge Center uses a different style sheet to present the information and has a different URL than the existing information centers.
PDFs of CICS manuals are separated from the online information. The PDF files will be hosted outside of IBM Knowledge Center. For CICS, there will be links to the IBM Publications Center where the PDFs will reside.
Until the customer-installable edition of IBM Knowledge Center is available, we will continue to provide CICS information centers for download into your environment. For example, you can go to the IBM Publications Center and search on "CICS Transaction Server for z/OS V5.1 information center" and pick the one for your platform, like Windows. The doc numbers for all releases and the procedure will be described in a new "CICS product documentation" section in the IBM Knowledge Center.
Find out more
Let us know what you think and if you have any questions by clicking on the Feedback button at the bottom of most pages within the IBM Knowledge Center
Modified on by RobJones
The CICS Transaction Gateway for z/OS V9.1 open beta includes new capabilities enabling HTTP clients to invoke COMMAREA or Channel-based CICS programs using JSON data, while benefiting from the established high availability and instrumentation features which CICS Transaction Gateway customers already rely upon.
Based upon the WS BIND data transformation technology and tooling already used for CICS Transaction Server web services, the proven reliability and scalability of CICS TG delivers further options for robust integration of JSON web services with CICS Transaction Server. Compatibility with z/OS Connect also means that investment in the creation of WS BIND files for JSON data transformation is reusable, allowing the transfer of these assets between z/OS Connect-compatible solutions.
.. and download the open beta to try today:
Modified on by John Knutson
This post is an iframe for the CICS Social Media Aggregator. The page is dynamic will update as new content arrives. The links and buttons are active so you can participate.
Modified on by Phil_Wakelin
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 capable we can host the WebSphere Liberty Profile inside it. It uses the IBM 64-bit JVM, provides direct access to CICS runtime services, and is multi-threaded. Java in CICS is no longer a weird environment; it’s simply Java, as you would find it anywhere else. The CICS JVM server established a new baseline for the Java runtime in CICS. This document (https://ibm.biz/BdFVm4), written at the time of CICS TS V4.2, talks in detail about the JVM server implementation and the capabilities it offers.
The changes to Java in CICS have not been limited to the runtime, but have included new tooling to support Java developers building applications for CICS. The CICS Explorer SDK is the easiest point of entry for building Java applications, providing an Eclipse plugin for developing, packaging, and deploying Java applications into CICS.
The advantage of having Java inside CICS (including the WebSphere Liberty Profile) is that you can build new applications and services in Java and seamlessly integrate them with existing core COBOL applications, all within a single managed runtime environment. Using the JCICS API makes integration easy, and allows new Java components to become part of a CICS workload-managed application.
Serious enterprise application development of this sort needs seriously capable tools that can manage the multi-language environment. Tools like Rational Developer for z that provides the COBOL, PL/I, C++, Java and assembler development tools for building CICS, IMS, and DB2 applications.
On reflection, Java in CICS isn’t just like Java elsewhere – it’s more than Java elsewhere because it’s inside CICS.
Modified on by Phil_Wakelin
There are various reasons why businesses choose to use CICS Transaction Gateway (CICS TG) in their environment.
In this blog I discuss three of them:
To act as a network concentrator
For intelligent routing
For offering simple, flexible solutions
As a Network Concentrator
Do you need to consolidate disparate systems and applications?
Do you want to protect your CICS resources?
Do you want to simplify your network?
If the answer to any of these questions is “yes” then CICS TG can provide a solution.
You can choose to have CICS TG act as your network concentrator on any one of a wide range of platforms including zOS, AIX, Linux and Windows. It is likely that you can integrate CICS TG into your current solution using existing hardware, with minimal time and effort.
CICS TG connects to all versions of CICS TS for zOS, CICS TS for VSE, CICS TS for i, and TXSeries. Whether your client applications are on mobile devices, or in ATMs, banks, post office branches, or shops, for example, all can connect to your CICS servers via CICS TG. This simplifies your networks and therefore reduces the number of IP sockets to CICS.
Simplified networks reduces network maintenance, saving you time and money.
Figure 1: CICS TG can handle requests from multiple different sources, and forward them
to any CICS server.
Do you want workloads automatically redirected based on a target server?
Do you want to interrogate each request and route it intelligently?
Do you want to block requests from unwanted sources?
CICS TG allows you to flexibly control the flow of work to CICS servers. For example, you might prefer to have dedicated CICS servers for handling mobile requests, and others for traditional workloads. In addition, CICS TG can automatically redirect workloads based on a target server. If you wish, you can also interrogate incoming requests and route them according to payload type, program ID, transaction ID, or even a user ID.
Intelligent routing is ideal for consolidating disparate systems and applications, perhaps as a result of a company merger. Furthermore, with CICS TG you can route new applications to your test servers whilst allowing existing applications to access the production servers.
Tip! You can safeguard your CICS servers by using CICS TG to reject requests from specific IP addresses, as well as known user IDs, specific program IDs or transaction IDs.
Figure 2: CICS TG can separate mobile and traditional workloads using intelligent routing.
Simple Flexible Solutions
Do you want a wide choice of platforms and application languages?
Do you want a solution that scales as your business grows?
Do you want to use existing investments of skills and hardware?
Wherever your client applications reside, whatever language they are written in, it is likely that CICS TG can handle them.
Your client applications can be in Java, C, COBOL, C++, use COM, or Microsoft’s .NET framework, whilst your mobile applications can use JSON web services. If your requests come from an application server, then as long as it’s a certified JEE application server such as WebSphere Application Server, Oracle WebLogic, GlassFish, or JBoss, CICS TG will process these requests.
As CICS TG supports a large variety of platforms and programming languages, it is likely that you can use existing investments of skills and hardware. If you’re involved in a merger and acquisition, then the flexibility of CICS TG will make your transition simple, straightforward, and cost-effective.
You may decide to start with a small solution running on desktops, perhaps sending requests to TXSeries. Then, as your business grows, you can easily move your solution
to a larger environment, and if desired, to work on System Z alongside CICS TS.
The choice is yours!
Figure 3: As your business grows you can easily move your solution to a larger CICS TG environment.
In a nutshell …
IBM CICS Transaction Gateway provides flexible solutions for your CICS connections and is ideal for any business environment.
Modified on by AndyDWharmby
This article describes how it is possible to define a CICS policy and deploy it into a CICS region such that the policies rules are only applied to specific CICS user tasks rather than all user tasks that run in that CICS region.
CICS TS V5.1 introduced the capability to define policies to monitor the resource utilisation of a user task, and to automatically respond when resource usage exceeds the thresholds you define. In this way, excessive resource usage and looping and runaway transactions can be detected and dealt with appropriately. While primarily designed to be deployed with CICS applications and platforms to monitor application tasks they can also be deployed to stand-alone CICS regions to monitor any CICS user task. By default polices deployed to a CICS region apply to all user tasks executing in that region. However deploying polices with such a wide scope may not be suitable in all cases. What if you have a requirement to apply policy to specific tasks rather than all tasks ?. This article walks you through the steps required to restrict a CICS region policy so that its rules are only applied to specific user tasks.
Policy support in CICS TS
CICS Transaction Server V5.1 introduced the capability to define policies to monitor:
- Number of SQL requests
- Number of EXEC CICS file control requests
- Number of EXEC CICS LINK requests
- Number and size of EXEC CICS GETMAIN requests
- CPU time consumed by a task
CICS Transaction Server V5.2 built on this support to add further polices to monitor
- Number of EXEC CICS START requests
- Number of EXEC CICS SYNCPOINT requests
- Number of EXEC CICS transient data requests
- Number and size of EXEC CICS temporary storage requests
- Elapsed time of a task
A CICS policy is defined in a CICS bundle project and each bundle can define one or more policies. Once defined the bundle can then be deployed to a CICS region in one of three ways:
- Add the CICS bundle to a CICS platform. The bundle is deployed with the platform and any policy rules scoped so they apply to any application tasks running on that platform
- Add it to a CICS application or application binding. The bundle is then deployed with the CICS application and any policy rules scoped so they apply only to that particular application's tasks.
- Export the bundle to zFS, and then define, install and enable a CICS BUNDLE resource for the CICS bundle project in a CICS region. In this case any policy rules apply to ALL user tasks running in the CICS region.
This article concentrates on the last of these methods of deployment and shows you how to define a policy such that its rules are only applied to specific user tasks. To find out more information on how to deploy CICS policy with CICS platform and application please refer to "Working with platforms, applications, and policies" in the CICS TS 5.2 Knowledge Center.
For the purpose of this article lets assume we want to enforce the following rules in a CICS region:
- Abend any CICS task that consumes more than 1 second of CPU.
- Emit a CICS event if any of my business critical transactions consume more than 125% of their average CPU consumption.
Defining a region scoped policy
So first lets define a policy to abend any task using more than 1 second of CPU. All policies are created in a CICS bundle project using CICS Explorer. For details of how to create a CICS bundle project please refer to "Creating a CICS bundle project" in in the CICS TS 5.2 Knowledge Center.
Once you have created a CICS bundle project, right click on the bundle project in the Project Explorer view and select New->Policy Definition. The policy is then defined as follows:
Click Finish and a new file "region_CPU_policy.policy" will be added to your bundle project. That completes the definition of a policy that once deployed will apply to all CICS user tasks.
For a more detailed description of how to define a policy in a CICS bundle project please refer to "Creating a policy in a CICS Bundle project" in the CICS TS 5.2 Knowledge Center.
Restricting the scope of a policy
Next we need to define the policy to emit a CICS event if any business critical transaction consumes more CPU than normal. Let's assume one of these transactions is ORDR and we know from the analysis of CICS monitoring SMF records that on average this transaction consumes 400ms of CPU. So allowing a 25% buffer this means we need emit an event if an ORDR transaction consumes more than 500ms.
So first we define a policy to emit an event if a task consumes more than 500ms of CPU. This second policy can either be defined in the same CICS bundle project or a separate one; the choice is yours on how you manage your different policies. In this case we will define the second the policy in the same bundle project so they can be deployed and managed together. So again right click on the bundle project in the Project Explorer view and select New->Policy Definition. The second policy is then defined as follows:
The EP Adapter named here; CPUMON; could be any of the supported types of EP Adapter. For example it could be a simple custom adapter that writes a message to an operator console or a HTTP adapter that routes the event to an event processing product such as IBM Business Monitor to update an operations dashboard. For details on the different types of EP adapter available please refer to "Event processing adapters" in the in the CICS TS 5.2 Knowledge Center.
So far this policy looks no different to the first policy. In fact as it stands if we deploy this policy it will trigger an event if ANY task, including ORDR tasks, uses more than 500ms of CPU which is not what we want; we need to restrict its scope to just ORDR tasks. To do this we exploit two of the new features added in CICS TS 5.1 for CICS application and platform support; namely application entry points and policy scopes. These features enable us to be much more specific about which tasks policies are applied to even when those tasks are not part of a CICS application and by exploiting these features we can restrict a policy to just those tasks that pass through a given entry point. CICS currently supports 2 types of entry point; PROGRAM and URIMAP (CICS TS 5.2 only). You can use either type of entry point to help restrict which tasks a policy is applied to. For web service tasks you might chose to use a URIMAP entry point instead but in this case we will use a PROGRAM entry point.
A program entry point can be defined for ANY program that a given task invokes during its lifetime but please be aware that the set of policy rules applied to a task is based on the FIRST entry point a task passes through during its lifetime; if a task passes through a second entry point program no policy rules associated with the second entry point are applied to the task and the original policy rules all still apply to the task. When selecting the program to define as an entry point a TRANSACTION's initial program is an obvious choice. In many cases this may be an appropriate choice but please bear in mind that:
- the same initial program may be named on other transaction definitions
- the program may be invoked by another task via EXEC CICS LINK or XCTL.
In both cases this could mean a policy may end up being applied to tasks it was not intended for so a program invoked by the initial program may be a more appropriate choice. However if the initial program is only invoked via the transaction it is the perfect choice to use as an entry point program to scope a policy to a particular TRANSACTION.
So if we assume that NEWORDER is the initial program of the ORDR TRANSACTION we define it at a program entry point as follows:
- First open up the CICS Bundle Manifest Editor. To do this double click on the cics.xml file in the CICS bundle projects META-INF folder
- Next select the "Entry Points" tab in the CICS Bundle Manifest Editor, and then
- Press the "Add" button and define the entry point as follows;
i) Set Operation to "new_order_ep". This can be any meaningful string up to 64 characters in length.
ii) Let the Resource Type default to PROGRAM. If you are going to deploy the resulting CICS bundle project to a CICS TS 5.2 region you could chose to define a URIMAP entry point here by selecting it from the list of valid "Resource Type".
iii) Set Resource name. We will set this to the name of the chosen entry point program so in this case its the initial program of the ORDR transaction "NEWORDER".
That's defined the set of tasks we are interested in to be those that pass through the entry point program NEWORDER, next we need to associate critical_task_CPU_policy we defined above with this entry point. To do so we define a Policy Scope. Again this is defined using the CICS manifest editor as follows:
- Select the "Policy Scopes" tab in the CICS Bundle Manifest editor, and then
- Press the "Add" button and define the Policy Scope as follows:
i) Set Operation to the value specified when defining the entry point previously, i.e "new_order_ep".
ii) Set Policy Name to the name of the policy we defined earlier, i.e "critical_task_CPU_policy".
Debug tip: Both Policy Name and Operation are case sensitive attributes. If your policy fails to trigger then the first thing to check is that these 2 names match exactly with the names specified when creating the policy and the entry point.
What if I want to apply the same policy to multiple transactions ?
That's easy. You can just repeat the process above and define further entry points for those transactions and policy scopes to associate the same policy with those entry points.
Deploying the CICS bundle and its policies
For details of how to deploy these polices to a CICS region please refer to "Deploying the policies to a single CICS region" in the CICS TS 5.2 Knowledge Center. After deployment is complete the following rules will be enforced in all CICS regions into which the bundle is deployed:
- Any ORDR task's consuming more than 500ms will cause a CICS event to be emitted to the CPUMON EP adapter.
- Any task, including ORDR tasks, consuming more than 1 second of CPU will be abended,
In this article you have seen how you can use functionality that's been available since CICS TS 5.1 to restrict the affect of CICS policy deployed to a CICS region such that its rules are only enforced on specific user tasks. Thanks for reading and I hope you found the information above useful. If you have any questions please leave a comment below and I will get back to you.