👁 0
Q: What is pseudo-conversational programming in CICS?
Answer:
Pseudo-conversational programming is a technique where the program ends between user interactions, freeing system resources.
How it works:
- Program sends screen to user and ends (RETURN TRANSID)
- User enters data and presses Enter
- CICS starts a new task with same program
- Program retrieves saved data from COMMAREA
- Process continues
Benefits:
- Efficient resource usage
- Better response times
- More concurrent users
Implementation:
* End task, wait for user
EXEC CICS RETURN
TRANSID('MENU')
COMMAREA(WS-COMM)
LENGTH(100)
END-EXEC.
* On return, check EIBCALEN
IF EIBCALEN = 0
PERFORM FIRST-TIME
ELSE
MOVE DFHCOMMAREA TO WS-COMM
PERFORM PROCESS-INPUT
END-IF.
👁 0
Q: What is UDF (User Defined Function)?
Answer:
UDF extends SQL with custom functions. CREATE FUNCTION name(params) RETURNS type AS BEGIN logic END. Scalar returns single value. Table function returns rows. Use in SELECT, WHERE like built-in functions.
👁 0
Q: How to handle -551 SQLCODE?
Answer:
-551 is authorization failure. No privilege for operation. Check GRANT statements. May need SELECT, UPDATE, DELETE, INSERT authority. GRANT privilege ON object TO user/role. Check SYSIBM.SYSTABAUTH.
👁 0
Q: What is GRANT and REVOKE?
Answer:
GRANT gives privileges: GRANT SELECT ON table TO user. REVOKE removes: REVOKE SELECT ON table FROM user. Privileges: SELECT, INSERT, UPDATE, DELETE, EXECUTE. WITH GRANT OPTION allows re-granting. Essential for security.
👁 0
Q: What is VSAM catalog?
Answer:
ICF catalog stores VSAM metadata. Aliases point to catalogs. DEFINE USERCATALOG creates. LISTCAT shows entries. Recovery important - losing catalog is disaster. BCS (Basic Catalog Structure) and VVDS on volume.
👁 0
Q: Explain NOTIFY parameter
Answer:
NOTIFY=userid sends message when job completes. On JOB card. Multiple userids: NOTIFY=(USER1,USER2). Notifies success or failure. TSO users get message at terminal. Essential for batch monitoring. Commonly NOTIFY=&SYSUID for submitter.
👁 0
Q: What is pseudo-conversational programming?
Answer:
Pseudo-conversational ends task after sending screen, restarts on input. EXEC CICS RETURN TRANSID(trans) COMMAREA(data). Saves resources - no task waiting for user. Must restore state from COMMAREA. Standard CICS approach.
👁 0
Q: What is EIBTRMID?
Answer:
EIBTRMID contains terminal ID (4 chars). Available in EIB. Identifies user terminal. Used for session management, logging. May be blank for non-terminal tasks.
👁 0
Q: How to handle DUPKEY?
Answer:
DUPKEY on WRITE means key exists. Check: IF ws-resp = DFHRESP(DUPKEY). Handle appropriately - maybe update instead. Or error to user. Common for insert logic.
👁 0
Q: Explain DD PATH statement?
Answer:
PATH specifies Unix/USS file. PATH='/u/user/file'. Used instead of DSN. PATHDISP for disposition. PATHOPTS for options. PATHMODE for permissions. Integrates USS files into batch JCL.
👁 0
Q: How to check EIBAID?
Answer:
EIBAID shows attention key pressed. Compare with DFHENTER, DFHPF1-24, DFHCLEAR, DFHPA1-3. Example: IF EIBAID = DFHPF3 do-exit. Determines user action on screen.
👁 0
Q: How to prevent SQL injection?
Answer:
Use parameter markers (?), not concatenation. PREPARE stmt FROM 'SELECT * FROM t WHERE c = ?'. EXECUTE stmt USING :hostvar. Never build SQL with user input directly. Validate input. Use static SQL when possible.
👁 0
Q: What is profile table?
Answer:
Profile tables store user-specific optimizer settings. DSN_PROFILE_TABLE, DSN_PROFILE_ATTRIBUTES. Override defaults for specific statements. Use QUERYNO correlation. Advanced tuning technique.
👁 0
Q: What causes S913 abend?
Answer:
S913 is security violation. Not authorized to dataset or resource. Check: RACF/ACF2/TopSecret permissions, dataset profile, user authority level. S913-38 means insufficient access. Contact security administrator.
👁 0
Q: How to handle MAPFAIL?
Answer:
MAPFAIL occurs when RECEIVE MAP finds no modified data. Handle: EXEC CICS RECEIVE MAP ... RESP(resp). IF resp = DFHRESP(MAPFAIL). User pressed Enter without typing. May need to redisplay or handle appropriately.
👁 0
Q: What is ASSIGN command?
Answer:
ASSIGN retrieves system values. EXEC CICS ASSIGN USERID(ws-user) FACILITY(ws-term). Other options: SYSID, ABCODE, PROGRAM. Gets runtime environment info. Useful for audit, conditional processing.
👁 0
Q: Explain DD SYSOUT statement
Answer:
SYSOUT=class routes output to JES spool. SYSOUT=* uses MSGCLASS from JOB. SYSOUT=A specific class. Additional: COPIES=2, DEST=node.userid, FCB=fcb-name. Held output: HOLD=YES. OUTPUT statement for complex options.
👁 0
Q: Explain LABEL parameter
Answer:
LABEL=(n,type) specifies tape label info. n=file sequence number. Type: SL=standard, NL=no labels, SUL=standard user. LABEL=(2,SL) is second file on standard label tape. EXPDT/RETPD for retention.
👁 0
Q: Explain DEST parameter?
Answer:
DEST routes output. DEST=nodeid.userid sends to remote. DEST=LOCAL for local printer. On OUTPUT statement or SYSOUT. JESDS respects DEST. Can be printer name or user. Network delivery support.
👁 0
Q: What is PAGING option?
Answer:
PAGING breaks large output. EXEC CICS SEND MAP PAGING. User navigates pages. Autopaging available. Terminal paging commands. For long reports on screen.
👁 0
Q: Explain CICS global user exit
Answer:
Global exits intercept system events. XPPT for program load. XFCT for file operations. Customize CICS behavior. Assembled exits. Powerful but complex.