Submit CICS Questions to Computer Education Techniques - CETi

Submit CICS Questions to Computer Education Techniques - CETi

Submit CICS Questions


Submit CICS Questions

Technology Update

Knowledge Base

Submit CICS Questions to Computer Education Techniques CETi Advanced search

Interrelated Information Technology

Mainframe Questions VSAM Questions
WebSphere MQ Questions Java Questions

The Computer Education Techniques knowledge base is a service for answering questions, inclusive of the research and validation of the accuracy of information in the public domain. Citation of source documentation and examples are used to provide answers to the questions. Utilization of the information of this service and reliance on the answers, information or other materials received through this web site is done at your own risk.

Q Under CICS Transaction Server version 5.x, what web clients can be serviced by CICS?
A There are four primary client requests that CICS can service:

1. CICS web support where CICS acts as a HTTP web server.
2. Invoking a web service.
3. IBM HTTP Server access to CICS application using an External CICS Interface.
4. CICS Transaction Gateway access to CICS application by a web client.

Q How is the management of the relationship between CICS transactions and DB2 performed?
A In earlier CICS versions and at version DB2 releases, the relationships between DB2 and CICS transaction used DB2 plans. The plan can have multiple DBRMs in a single plan. Changing a single DBRM requires the entire plan to have a BIND. If the plan is large, this process can be long and the associated transaction will be unavailable during the BIND. The recommendation for managing the CICS/DB2 relationship is to use packages in DB2. Packages can comprise multiple plans and each plan be individually processed without locking up the entire plan and CICS transaction.

Q How can CICS transaction performance for accessing DB2 tables be improved?
A Apply these steps to review and adjust performance:

1. Check that indexes are being used and that the indexes reference the appropriate columns for the queries.
2. Check if any DDL statements are being used; avoid DDL statements in application programs.
3. Check the use of locks and its duration; avoid using the LOCK TABLESPACE command, Tablespace locks, and Repeatable Read Isolation Levels.
4. Check if any lock escalations are occurring.

Q What distinguishes a system abend from an application abend.
A CICS transaction abend codes begin with an A such as ASRA, AICA, ABM0 and many others. An abend code starts with something other than the letter A, is an application or a software product code.

The CICS transaction abend codes are documented in the manuals CICS Messages and Codes Vol 1 and Vol 2 (GC34-7283-00 and GC34-7284-00).

Q Which system provides the recovery management on DB2 when used in a CICS transaction?
A When transaction or system failure occurs, the management of recovery for DB2 and CICS data is handled by CICS. Information about UOW: Unit of Work needed for synchronization is stored in the CICS system log.  If CICS has an initial start as the system log is reset, resynchronization information can be lost. This will delete information needed for resynchronization.


What are the differences between operation of a pseudo-conversational and conversational program?

A In a conversational mode, the program accomplishes the conversation by sending a message to the terminal, waiting for the user to respond, and receiving the response from the terminal. The system sits idle without allowing another operation while waiting for the data is called a conversational program.

In a pseudo-conversational program, a program attempts a conversation with a terminal user, it terminates the task after sending a message with a linkage for the next task. When the user completes the response the next task is automatically initiated. Pseudo-conversational program's use the CICS resources such as control tables efficiently.

Q What is the purpose of the Web Services Assistant utility?
A The Web Services Assistant utility contains two programs: DFHWS2LS and DFHLS2WS.

DFHWS2LS helps in mapping an existing WSDL document into a high level programming language data structure.

DFHLS2WS creates a new WSDL document from an existing language structure.


What is a pipeline?


A pipeline is a sequence of programs arranged so that the output from one program is used as input to the next. The SOAP for CICS feature consists of a pipeline that supports both service provider and service requester applications.

Q In CICS mainframe, when the EXEC CICS ASKTIME TIME command is issued, it is not returning anything. Why is this occurring?
A The EXEC CICS ASKTIME command is used to update the EIBDATE and EIBTIME fields with the current date and time. These fields contain either the date and time at which the current CICS task started or the date and time at which the latest ASKTIME command was executed.

In order to use ASKTIME to obtain the current time, it will be necessary to use two CICS commands:


CURRENT-TIME will then contain the current time in the format hh:mm:ss.

Q How is an Abend handled in a CICS program?

The HANDLE ABEND command is used to trap and handle errors. It has 4 possible options and only one of them can be used with this command at a time.

The options are:

In order to transfer control to the program.

In order to transfer control to the specified paragraph.

Cancel option
This will keep the earlier Handle Abends from being executed.

Reset option
This will reactivate the Handle Abend commands, which were previously cancelled.

Q What are the differences between a TSQ: Temporary Storage Queues and TDQ: Transient Data Queues?
A In Temporary Storage Queues, data is read sequentially and randomly; in Transient Data Queues, data must be read sequentially.

In a TSQ, data can be read any number of times as it remains in the queue until the entire Queue is deleted. In a TDQ, data item can be read once only. In order to reuse the TDQ it must be closed and reopened. Data can be changed in TSQ, but not in TDQ.

TSQ can be written to auxiliary or main storage, while TDQ is written to disk. Temporary storage is a holding place, while transient data is always associated with a destination.

The TSQ name is defined dynamically, while a TDQ name needs to be defined in the DCT: Destination Control Table. An application uses TSQ 's to pass information from task to task, while a TDQ to accumulate records before processing or sending data for external use, such as a print operation or other.

Q What is Quasi-reentrancy?
A There are times when many users will be concurrently using the same program, this is known as multi-threading.

For example, 30 users are using program A, CICS will provide 30 Working Storage areas for that program, but a single Procedure Division.

This technique is known as quasi-reentrancy.

Q What are channels and containers?

Traditionally, CICS programs have used communication areas - COMMAREAs to exchange data. Starting in CICS Transaction Server for z/OS, Version 3 Release 1, channels and containers provide an improved method for transferring data between programs, in amounts that exceed the 32KB limit that applies to COMMAREAs.

A container is a named block of data designed for passing information between programs. Containers are grouped together in sets called channels. A channel is a standard mechanism for exchanging data between CICS programs, and is analogous to a parameter list. A channel can be used on the LINK, START, XCTL, and RETURN commands, and with local and remote transactions. There is no limit to the number of containers that can be added to a channel, and the size of each container is limited only by the amount of storage available.

Q How can a unique number be generated for identification of records?
A CICS now has counter servers which provide a facility for generating unique sequence numbers for use by application programs in a Parallel Sysplex environment. This facility is controlled by a named counter server, which maintains each sequence of numbers as a named counter. Each time a sequence number is assigned, the corresponding named counter is incremented automatically. By default, the increment is 1, ensuring that the next request gets the next number in sequence.

The increment can be changed using the EXEC CICS GET COUNTER command to request the next number.

There are various uses for this facility, such as obtaining a unique number for documents (e.g. customer orders, invoices, and despatch notes) or for obtaining a block of numbers for allocating customer record numbers in a customer file.

Q I learned CICS Command Level - Release 2.1 back in the early 1980ís and did some additional work with CICS - Release 3.1 in the mid 1990ís. I have written CICS programs in the COBOL programming language. I have been assigned as a member of the project team responsible for web enabling CICS. What new features of CICS do I have to learn?
A CICS TS 2.3 provided the capability for enterprise applications written in Java. It also supports EJB session beans. The new CICS can generate and read HTML forms for entering and receiving data. The WEB READ FORMFIELD and WEB READ HTTPHEADER statements are used for retrieving information from a web client.

Three industry standard CICS courses: CICS TS Application Design, CICS TS Command Level Programming, and CICS TS Command Level Programming: Advanced provide functional overviews and examples of web enablement.

These CICS TS courses are dedicated to web enablement.

CICS TS: Web Enablement- Introduction CICS Web Enablement CICS Web Support Programming CICS Transaction Server: Web Services

Q I am making a career change into information technology. I am assessing the relative merits of mainframe programming versus client/server and Internet programming. Is there a significant difference in the way programs are designed, coded and debugged?
A The terminology and steps in the development of CICS programs and development in a mainframe environment are very different from client/server or Internet application development, such as Java and .NET.

A summary of the development process for a typical CICS program is:

  1. Establish a program design inclusive of screen layout for each map being used and a listing of copy members of each file used by the program. Decision tables and editing rules should also be used.
  2. Create the necessary CICS table entries. Before a CICS program can be tested, all the CICS table entries required to support the program need to be in place.
  3. Prepare the BMS mapset by coding the Assembler language BMS macros or using a mapset generator.
  4. Code the program. Coding the CICS programs involves writing standard COBOL code with special CICS commands for invoking CICS services.
  5. Compile the program either by using the Foreground command level translator or a JCL submitted translate/compile.
  6. Test the program under a CICS test region. The CEMT, CEDF and CECI transactions can be used during the test cycle.

Q I am 3 months into my first job in IT and I have been assigned to a CICS COBOL maintenance-programming project. I have been coding C since high school. In checking back my school notes; there is nothing explaining the differences between a transaction and a task.
A Under CICS, a user cannot directly invoke a program; the user invokes a transaction, which in turn specifies the program to be run. CICS will then locate the associated program with the transaction, load it into storage, and start a task. The task is a unit of work which is scheduled by CICS.

For programmers who have grown up in the age of the PC; a similar, although not precise analogy, would be a process invoking a thread.

 Q What is a DFHBMSCA?
A It is the IBM supplied Copybook, with all modifiable attribute bytes that can be used with symbolic maps. We teach and use it in the CICS Command Level Programming course.

Q What are the most widely used third party-non IBM CICS tools?
A The most widely used tools are CA-InterTest by Computer Associates and CICS Xpediter by Compuware Corporation.

Q What is meant by a 2-phase commit and under what system software environment does it occur.
A A 2-phase commit occurs when a programmer issues an Exec CICS Syncpoint command. CICS will commit changes to the resources under its control such as to VSAM files, then the changes made by DB2 are committed. CICS will signal DB2 to complete the next phase and release all the locks.