Calling COBOL from webMethods Integration Server (IS) is easy with EntireX. Read how EntireX helps you as an IT professional connect them with just a few clicks.By Jürgen Lind, Director, Product Management, Adabas & Natural, and
Bernhard Fricke, Senior Software Specialist, EntireX Development, Software AG
You have been using CICS to run business-critical and mission-critical applications for years. They are operated by a small team in a separate organizational unit.
Nowadays, new markets need to be addressed, and you are working on new applications with new technologies like REST. These new applications need to be able to use your core COBOL CICS applications rather than having to reinvent them at high cost and after the huge investment your company has poured into them through the years.
How can you connect these incompatible technologies? How can you keep operation on mainframe to a minimum to minimize costs?
EntireX can definitely help, making it easy to integrate these technologies. With EntireX, you basically develop the scenario in three phases as shown in Fig. 1: 1 Extract the server interface of the COBOL server 2 Generate IS Service and IS Connection 3 Test IS Service to EntireX for CICS Socket Listener.
Extract the COBOL Server interface 1
Figure 1: API extraction of a COBOL Server for CICS Listener Scenarios
In the Software AG Designer, switch to the EntireX perspective, select the COBOL server EMPLOYEE, invoke the IDL Extractor for COBOL, and select the interface type of your COBOL CICS server (Fig. 1) as you do for any extraction. With the interface type (see Fig.1), you tell the extractor how the COBOL program accesses its parameters – so it is an important criterion. EntireX for CICS Socket Listener supports all CICS interface types: traditional DFHCOMMAREA with its 32K limitation, channel container and large buffer.
If this is your first COBOL scenario with EntireX, refer to “How to call COBOL from webMethods Integration Server,” TECHniques, April 2017 (Issue 2). For advanced extractions resulting in user-defined mapping, see “How to shape a call to COBOL from webMethods Integration Server – the modern way,” TECHniques, January 2018 (Issue 1).
Generate IS Service and IS Connections 2
Switch to the EntireX perspective. In the context menu of a Software AG IDL file, choose Integration Server > Generate webMethods IS Connection; select the radio button “Create a new EntireX Adapter connection” and in the dropdown box choose CICS Socket Listener Connection; for API enablement check “Create or Update REST resource.” Of course, you will have to specify the hostname where your CICS is running and the port of the CICS Socket Listener. Press Finish (Fig. 2). That’s it.
Figure 2: Generate webMethods Integration Server Service and Connection
Test IS Service to EntireX for CICS Socket Listener 3
To test the generated adapter service, use the service development perspective, as you do for every other IS service test. On the context menu of the generated IS service, select Run As > Run Service. For API enablement (you created a REST resource during IS service and IS connection generation - see 2 above) call the COBOL server from any REST client (Fig. 3).
Figure 3: Calling the COBOL server from a webMethods Integration Server or from a REST client
Figure 4: Architecture Diagram for webMethods Adapter Service calling EntireX for CICS Socket Listener
EntireX for CICS Socket Listener contains a remote connector on z/OS® or z/VSE® to call CICS mainframe programs. The implementation for CICS is based on the IBM® standard listener for CICS. With this listener you can launch a CICS transaction via TCP/IP. The launched transaction takes the TCP/IP connection and continues the communication with the adapter service, exchanging program data for the CICS program (Fig. 4).
Comparison with RPC Server for CICS
In the following table, the EntireX for CICS Socket Listener is compared against the RPC Server for CICS:
|Entire X for CICS Socket Listener||RPC Server for CICS|
|CPU time on mainframe||minimal||medium|
|Footprint on mainframe||minimal||large|
|Zero mainframe configuration||✔||❌|
|Administration via Command Central||✔||❌|
|Channel container||✔||✔ (❌ not on z/VSE)|
RPC Server for CICS Socket Listener
For accessing CICS with minimal footprint from environments other than webMethods IS, use the RPC Server for CICS Socket Listener. A typical architecture consists of RPC client, EntireX Broker, EntireX RPC Server for CICS Socket Listener and the Socket Listener within CICS. The EntireX RPC Server for CICS Socket Listener acts, on one hand, as an RPC server and, on the other hand, as a client to communicate with the CICS Socket Listener.
Figure 5: Architecture Diagram for RPC Server for CICS Socket Listener
|z/OS||October 2018 with EntireX 10.3|
|z/VSE||Planned for October 2019 as a fix for EntireX 9.6 on z/VSE|
For detailed information on COBOL, REST and other scenarios including extraction, generation of end-points and EntireX for CICS Socket Listener, please refer to Common Integration Scenarios in EntireX documentation:
Figure 6: EntireX Documentation
So in summary...
EntireX for CICS Socket Listener allows you to call CICS DFHCOMMAREA, CICS channel container and CICS large buffer programs from a webMethods Integration Server or from REST clients directly, using minimal mainframe footprint. Users of the EntireX RPC Server for CICS can move workload from CICS to other environments like Linux®. This, together with its zero mainframe administration capabilities, helps reduce your mainframe costs.
Once installed, EntireX for CICS Socket Listener needs no further maintenance. It is therefore ideal if CICS (or your mainframe) is being administered by a different organization, including a third-party company.
EntireX for CICS Socket Listener enables CICS Channel Container scenarios in z/VSE.
Glossary of terms
CICS – IBM's mainframe transaction container
DFHCOMMAREA – classic parameter area used by CICS programs, data length limited to 32K bytes
CICS channels and containers – the modern way for CICS programs to access parameters; no limit on data length
CICS large buffer – EntireX-specific approach to exchanging data more than 32K with CICS programs
User-defined mapping – advanced extractions to shape a call to Natural or COBOL
CVM – client-side server mapping file resulting from user-defined mapping
IDL – Interface Description Language
IS - webMethods Integration Server
- “Mainframe Integration made easy,” TECHniques, April 2016 (Issue 2).
- “How to call webMethods Integration Server from COBOL – mainframe outbound,” TECHniques, April 2016 (Issue 4).
- “How to call COBOL from webMethods Integration Server,” TECHniques, April 2017 (Issue 2).
- “How to shape a call to COBOL from webMethods Integration Server – the modern way,” TECHniques January 2018 (Issue 1).
- “How to call COBOL on IBM i (AS/400) from Integration Server,” TECHniques, April 2018 (Issue 3).
- “Publish your mainframe assets as REST Resources," TECHniques April 2018 (Issue 4).