...Installing a "Transaction Monitor"
When I first heard of someone talking about COBOL online programs they always used the term "transaction monitor" and CICS. Me, as a java developer, was wondering why monitoring a database transaction is so important for the development of the 3270-Screens. As I learned now, I couldn't be more wrong!
In "Jurassic Park" a "Monitor" is neither a Device to show some UI on a screen nor a program that helps you to analyze the control flow of a program. A Monitor is more of some kind of system. (As far as I understood. But let me know if I'm wrong). And CICS is one of the very first implementations of such a system to handle user Input in a transactional way. All the old systems, that makes the world turn in the 60s to today are developed with this transaction monitor CICS.
So CICS is in the conceptional view very similar to Jakarta EE or a REST Controller. It is the way you handle user input and processes it in an "All or Nothing" transactional way.
Since CICS is a commercial product and is not free to the public there is now (legal) way to get it run on a Hercules emulator. But there is a free alternative that is somehow compatible with CICS. At least on the API Level. This alternative is KICKS!
The installation process of KICKS is quite complicated. The youtuber moshix made a nice video, that you can follow up and you will have a running KICKS-System on your Hercules-driven MVS/TK4 Mainframe.
When you done with the video, you should be able to start the KICKS-Transaction-Monitor under the user HERC01
But I want to use it under my own user ID and that needs a little extra work. As the KICKS-Documentation says you have to allow access to the VSAM-Files to everybody. So logon as HERC01, open the data set "SYS2.SECURE.CNTL(PROFILES) and add the following lines to the end. (Unbelievable. I understand what I'm writing here!)
DATASET HERC01.KICKS.MURACH.CUSTMAS UPDATE DATASET HERC01.KICKS.MURACH.INVCTL UPDATE DATASET HERC01.KICKS.MURACH.INVOICE UPDATE DATASET HERC01.KICKS.MURACH.INVOICE.PATH UPDATE DATASET HERC01.KICKS.MURACH.PRODUCT UPDATE DATASET HERC01.KICKS.TACDATA UPDATE DATASET HERC01.KICKS.V1R5M0.SDB UPDATE DATASET HERC01.KICKSSYS.V1R5M0.KIKINTRA UPDATE DATASET HERC01.KICKSSYS.V1R5M0.KIKTEMP UPDATE
The editor screen should look something like this:
Saving the file and restart rakf (or the whole Hercules to be save)
Next, you should copy the member KICKS and KFIX to the SYS2.PROCLIB data set. The tool MOVE/COPY (option 3.3) is very handy for this task and i managed it without reading any manuals.
When you finished these copies, you can logoff and logon as a regular user. CASI in my case.
Now it should be able to launch KICKS from the TSO command prompt. I tried and.... failed. After a little research and asking the experts at discord it turned out, that i forgott the ' !! So the correct command to start KICKS is:
With this command (AND DO NOT MISS THE APOSTROPHE!) the system will start. Press CLEAR Button and enter BTC0 and you will see the TAC-Transaction used in Nevada Department of Labor in the 70s.
There are some other transactions also installed. Especially all the examples of the Murach's bible of "CICS for the COBOL Programmer". I think I'm now done with the installation of Hercules, TK4, ROBs enhancements and KICKS. So the next step could be implenting a first online transaction in COBOL.