• What is OpenKicks?

OpenKicks is a transaction processor for UNIX® and Linux® that implements the CICS® API. That is, it implements the command level (EXEC CICS®) commands.

Even more than that, OpenKicks takes the approach most suitable for using OpenKicks as a development platform; that is: It implements the CICS® API, and not anything more. For instance it does not force you to recode your terminal IO using .net® technology.

If you would like to see an online presentation of OpenKicks via WebEx web conference(, please email us at This will be at no cost to you, and I will be glad to answer your questions during this one hour session. You are welcome to invite your associates to the web conference and presentation.

  • We have tried moving our COBOL/CICS® applications to Client server and it failed, why is OpenKicks different?

OpenKicks still runs on a central server so a team of programmers can share a region; as opposed to a region running on a programmer’s PC.

OpenKicks relies on a database for data integrity. The state of a region is held in the database. It does not rely on proprietary software such as Encina®.

  • Why haven’t I heard of OpenKicks before?

OpenKicks is 100% brand new code. It is a not a renaming of any previous CICS® emulation environment. It is the sole product of Replatform Technologies, LLC.

  • My environment has several regions (terminal owning, application owning, and file owning). Can OpenKicks emulate that complex of an environment?

Yes. You can use the same techniques that you are comfortable with to split up an application between multiple regions. But, you probably will not need to do that. Let’s first look at why you do that: The most basic reason for splitting an application between multiple regions is that CICS® is single threaded. Even when running in thread safe mode CICS® single threads many things. For instance, starting transactions is single threaded necessitating the need for terminal owning regions.

OpenKicks is fully threaded. Adding the complexity of multiple terminal owning regions is not necessary. This is because the daemon process that controls the terminals uses a round-robin technique to allow for handling many transactions. Also, if desired, the region administrator can start multiple daemon processes.

So, in summary, where you currently use multiple TORs, in OpenKicks you rely on the automatic round robin logic or a manual start of multiple daemon processes. Where you currently use multiple FORs, in Openkicks you simply tune your database to use more agent threads.

For those of you using a separate TOR to simplify setup of VTAM, there is also good news: OpenKicks does not need any VTAM like facility. Each region is allocated its own port number.  To access a different region the terminal emulator is simply configured to use the appropriate port.

There is one point of clarification of “fully threaded”: this term is used in the mainframe sense that one daemon process will not block another daemon process from running.  While this would seem unnecessary to mention to those with a UNIX background, it is necessary to mention for those with a mainframe background who are familiar with the reasons for starting multiple Terminal Owning Regions.

  • When would I choose round robin, and when would I choose to start multiple daemons?

The choice is clear. If you want to control access to the region from different networks, then you would choose to start separate daemons. Each daemon listens on a different port and can be shutdown, brought up, and firewalled separately.

For instance, you may want to control the access of your programmers to your production region. When there is reason for the programmer to have access, you would start the daemon with the port that the programmers use.

  • You use the term region in relation to OpenKicks. How does that relate to the notion of a region on the mainframe?

From the application programmer’s point of view a region is an instance of an application or group of applications. From a system administrator’s point of view a region is a directory structure, a database, and a group of daemon processes. From a database administrator’s point of view a region is a set of tables in a database.

  • My applications are mission critical. Why should I trust OpenKicks with my data?

OpenKicks is built on top of a database and it relies on the database for transactional integrity. We chose this design because it pushes the complicated job of data integrity to a well tested and widely trusted software.

  • What databases does OpenKicks support?

The OpenKicks developers develop and test using Postgres. The database code is isolated and compiled separately into a share object (.dll). The developers follow a strict coding standard and it is expected that the port to DB2®, and Oracle® will be straight forward.

  • What COBOL compilers does OpenKicks support?

It is actively tested with OpenCOBOL® and MicroFocus® COBOL 5. It has been tested with IBM® COBOL for AIX®.

  • I have never heard of OpenCOBOL®, what is OpenCOBOL®?

OpenCOBOL® is project hosted on implementing an open source COBOL compiler. It works surprisingly well.

  • Which COBOL compiler should I choose?

Microfocus® COBOL and IBM® COBOL for AIX® are champions of mainframe compatibility. That is, they have the most number of features that allow them to compile and run mainframe COBOL unchanged. If you have COBOL code that is very ANSI compliant, then you can consider the Fujitsu and AccuCOBOL® compilers. We have not formed an opinion on the use of OpenCOBOL® for production.

  • Does OpenKicks support PL/1®?

Not at this time. If you have a PL/1® application that you want ported, please contact us.

  • Will OpenKicks run on VMWare®?

Yes. In fact this is how we distribute OpenKicks to our beta testers.

  • Does OpenKicks implement BMS?

Yes, OpenKicks implements full BMS. More specifically, BMS macros (DFHMSD, DFHMDI, and DFHMDF) are processed twice by an ‘assembler’: a) once to produce a load module, and b) once to produce a copybook.

Like the mainframe, the type of output (loadmodule or copybook) is set by the &SYSPARM variable. Setting of the &SYSPARM variable is done with a command line option.

  • OpenKicks implements BMS! How do I connect to a UNIX® box with a 3270 terminal?

You connect to a region using a tn3270 terminal emulator such as: x3270. Each region is assigned a range of port numbers. One of those port numbers is used for attaching to the region with TN3270.

This is different than on the mainframe. On a typical mainframe a user would attach using the standard port 23, then be presented with a menu of what to connect to. On OpenKicks, the user attaches directly to a region using a unique port.

  • How can I get OpenKicks?

OpenKicks is available to select customers for beta testing.

  • Why isn’t OpenKicks available on Windows?

OpenKicks is available for Windows, but we do not actively develop on Windows.  If you are interested in Windows please express your interest; it will influence the resources that we allocate to testing under Windows.