Most of the times, while executing a CICS transaction, we encounter situations where in the transaction holds the resources and goes in a loop. To terminate this event, type the following command:
Pradeep B K
Assistant Systems Engineer
TATA Consultancy Services
Table No - 076, Upper Ground Floor, Discoverer
International Tech Park, Whitefield Road
Bangalore - 560 066, India.
First of a three-part series that shows how to transform existing CICS External Presentation Interface (EPI) applications into enterprise services using the 3270 terminal service development tools that are part of the Enterprise Services Toolkit in WebSphere Studio Application Developer Integration Edition (Application Developer).
Step-by-step exercise to demonstrate how enterprise services can be quickly created from the CICS EPI IVP Menu application.
You can download most of these resources from IBM developerWorks Toolbox.
In a Bms map, if the first field with attribute FSET has the value of "x/" (where x is a one-bye alphabetic character), and you have specified in your SIT that PGRET=x/ or PGPURGE=x/, when you press a function key the character string will be used as a paging command and you'll receive a DFH41XX messagge on the scren. You can avoid this by defining a ghost field with ASKIP,FSET atributes as the first field on the map.
CSPO Centro per lo studio e la prevenzione oncologica
Firenze - Italia
When using a VSAM KSDS file in CICS and one need's to position the key to the last record in the file, move HIGH-VALUES to the key field (RIDFLD) and then execute a STARTBTR. This will position to the last record and a subsequent READNEXT or READPREV can be executed. The record contents should be the last record on the file.
13310 Toka Court
Huntersville, NC 28078
Utilize the CETR transaction to to see if you have any unnecessary traces running. Remove any trace you don't need. In application programming, start using the DFHRESP function to test the EIB return codes instead of using HANDLE conditions.
In CICS 3.3 we specified AUTOCONNECT as NO for sessions and connections participating in LU 6.2 communications. This allowed CICS to automatically create sessions (ie. winners and losers). After migrating to 4.1, we had to change the parameter to YES to make sure that CICS continued to automatically create the sessions with LU 6.2 devices. Otherwise the client had to establish the sessions themselves.
Anonymous (from the UK)
If you are in an exit and need to know the CICS jobname, the following code will do it:
L R5,16 CVT ADDRESS L R5,0(,R5) NEXT TCB L R5,4(,R5) OLD TCB L R5,180(,R5) JSCB L R5,260(,R5) JCT LA R5,24(,R5) POINT TO THE JOBNAMEDavid Mishoe
If your CICS system interfaces with VSAM files, it is better to use an ESDS
file rather than Temporary Storage Queues
as VSAM ESDS provides the same functionality as that of a TSQ.
This is because CICS does not have a locking facility for Temporary Storage, while VSAM locks the entire CI. It is advisable to have a control interval as small as possible and always do a READ WITH UPDATE option which will lock the CI and release the lock using the UNLOCK COMMAND.
Kanbay I Pvt Ltd.
If you are using STARTBR and you want to update a particular VSAM record, then follow these steps:
Citicorp Overseas Software Ltd.
Earlier this year I developed some programs (batch and CICS) which would use EXCI to request CICS functions from a batch program. The programs perform the following:
You can download the 12K zipped file which contains the source for the four COBOL programs, the batch commands, and the JCL procedure.
Maricopa County - ATC, Arizona USA
CICS - Technical Services
Michael Erichsen from CSC Denmark has several presentations at his website.
Contrary to the documentation, most Assembler macros will function correctly if you do the following:
As of CICS 4.1.0, the interface to DFHFC was removed and the only DFHPC macros that still work are:
DFHPC TYPE=ABEND DFHPC CTYPE=LINK,PCLASS=SYSTEMSome shops implemented this illegal technique as a temporary method of migration.
L 13,16 CVT L 13,0(,13) TCB L 13,4(,13) CURRENT TCB L 13,X'D0'(,13) TCB EXTENTION L 13,X'14'(,13) AFCS L 13,8(,13) COMMON SYSTEMS AREA L 12,CSACDTA X'4C'(13) IS THE TCAThe current program PPT entry (prior to CICS 4.1.0, it was easily obtained from TCAPCTA):
L Rn,TCALCDSA X'10'(12) from TCA L Rn,X'50'(,Rn) TASENTRY from KERNTASN L Rn,X'A0'(,Rn) XMT from TAS_XM_TRANSACTION_TOKEN L Rn,X'9C'(,Rn) PTA (CICS/TS 1.3 offset is X'AC') L Rn,X'18'(,Rn) PLCB from PTA_PLCB_HEAD L Rn,X'1C'(,Rn) PPT from PLCB_PROG_PPTE
After migrating from CICS 3.3 to CICS 4.1 you have to change the USEDFLTUSER attribute for the connections from NO to YES to make sure you use the right security for the connections. Otherwise the CICS system user authority will be used.
P. J. Jansen
P.O. box 30500
3503 AH Utrecht , Netherlands
WOB Consulting, Inc.
5385 Arbor View Way
Sugar Hill, GA 30518-6962
P O Box 33641, Tel Aviv, Israel
Phone: +972 50 246 522 Fax: +972 9 56 73 53
To give a user the ability to get the status of (or abort) a lengthy inquiry, you can design the query as a separate task and provide communication between it and the terminal user. One method, is to have the terminal task write a record to transient data identifying the termid and the query to be started. It can then issue an "EXEC CICS DELAY" with an interval equal to the maximum time you want to make the user wait and a REQID including the TERMID. The transient data queue should have a trigger level of one to begin processing the query request. When complete, it writes the results back in a temporary storage record which includes the TERMID as part of the QUEUE and cancels the wait of the original task. The original task, after issuing its wait, reads the temporary storage record. If not found, it tells the user that the query is in progress and asks if they want to wait. If they answer no, you end the terminal task. You could then give them another transaction to check the query at a later point by trying to read the temporary storage record. If they answer yes, you re-read the temporary storage record to see if the query completed. If not, you go back into the wait. I hope this helps give you some ideas on how to handle queries that may take longer than the user expected. Any questions, let me know.
Many MVS (and I suppose VSE) macro services can be performed directly without having an impact on total system performance if you use this technique. Issue the "execute" form of the macro and use the following command to wait for it's completion:
EXEC CICS WAIT EXTERNAL ECBLIST(ecb_ptr) NUMEVENTS(1)We use this to process our PDS files using BPAM which isn't "supported" in CICS.
My employer takes no responsibility for my opinions, and neither do I.
Advanced Debugging System for CICS
[HOME PAGE] [EXAMPLES]
Next page for more Tips. . .
Gary Bergman Associates, Inc.