Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!ncar!noao!asuvax!nud!xroads!edge!doug From: doug@edge.UUCP (Doug Pardee) Newsgroups: comp.lang.misc Subject: Re: CICS what is it? Summary: grisly details Message-ID: <1282@edge.UUCP> Date: 26 Sep 88 21:19:11 GMT References: <3923@okstate.UUCP> <8943@srcsip.UUCP> <5740@utah-cs.UUCP> Organization: Edge Computer Corporation, Scottsdale, AZ Lines: 75 >CICS. > >Since I don't know what it is, I don't know where to post; >however, I think it's some sort of language. > >Could anyone tell me? The 2 previous responses I've seen are basically correct; here's some additional info... CICS stands for Customer Information Control System. It is a DB/DC (DataBase/Data Communications) program for the IBM 360/370/30xx/43xx/9370 series of computers. CICS is typically used for handling database update/inquiry transactions. Hotel reservations, bank tellers, library card catalogs, police records, whatever. It was originally written by IBM as a custom program for one of their customers. IBM was, for many years, reluctant to sell it to other customers because it competed with the (bigger and much more expensive) DB/DC program that IBM had developed as a commercial product (namely IMS). But even IBM knows that the customer is always right -- IF you can't change his mind. So IBM has sold CICS/VS as a Licensed Program Product for some time now. CICS provides multiple-user terminal access, screen data formatting, and data base access (although the actual database is a separate Licensed Program Product, usually DL/1 but some sites are now using the DB2 relational data base). CICS can automatically log all transactions, and provides both back-up and back-out (if a transaction half-completes and then aborts) facilities. The terminal operator begins a transaction by typing a 4-character code which CICS looks up in a table and runs an appropriate transaction program. Transaction programs can be written in COBOL, PL/1, or assembler. As a practical matter, almost all are written in COBOL because that is the language that business-type programmers are most familiar with. CICS's most unloveable feature is that all transaction programs are run as subroutines of CICS and so are NOT protected from each other. Nor is CICS itself protected from the transaction programs. A minor screw-up in a transaction program can bring the whole CICS region crashing down, leaving hundreds of terminal operators cursing at the computer and telling their customers that "the computer's down". Naturally, you can buy some special software which will reduce the likelihood of such disasters :-) A side effect is that data security is difficult. This is a major consideration in many database applications; there are laws about this stuff. And what a surprise! It turns out that you can buy some special CICS security software :-) Early "macro level" CICS was very fast and efficient, but required very smart and careful programmers. Finding the data that you needed was difficult, and changing the wrong data was therefore too easy. Almost all CICS these days is done at "command level". A command level transaction program is mostly just a zillion calls on special CICS subroutines, with the host language being used mainly for "if" tests and for looping. To make the programmer's life easier, IBM provides a translator program which takes in "command level statements", all of which begin with the words EXEC CICS, and produces the appropriate subroutine calls. Command level programming is much easier, especially for the "average COBOL programmer", and it's a lot harder to make a catastrophic boo-boo, but the overall efficiency of CICS suffers. Ah well, if it isn't fast enough IBM will be glad to sell you a bigger computer :-) It isn't unreasonable to call the CICS command level statements a "language", and I've seen books that treat them that way. Just remember that it's not a complete language; the CICS statements are always embedded inside a COBOL, PL/1, or assembler program. IBM has been claiming that "one of these days" the old macro level CICS will go away. As of a year and a half ago it hadn't; I don't know about today. -- Doug Pardee, Edgcore Technology (formerly Edge Computer), Scottsdale, AZ {ames,hplabs,sun,amdahl,allegra}!oliveb!edge!doug uunet!ism780c!edge!doug