CICSã·ã¹ãã ã¯ãäžçã§æãæ©å¯æ§ãé«ãã倧éã®ãã©ã³ã¶ã¯ã·ã§ã³åŠçç°å¢ããµããŒãããŠããŸããéè¡ãä¿éºããç©æµãé²è¡ã«è³ããŸã§ããããã®ãã©ãããã©ãŒã ã¯ãã»ãã¥ãªãã£ç£èŠã蚱容ã§ããªãã¯ãŒã¯ããŒããåŠçããŸããéçšã®çšŒåæéãæã泚ç®ãããããšãå€ãã§ãããCICSã¢ããªã±ãŒã·ã§ã³ã®æ§é ã¯ã é ãããªã¹ã¯ 宿çãªã¬ãã¥ãŒã§ã¯èŠèœãšããã¡ãªãã®ã
ãããã®ãªã¹ã¯ã®å€ãã¯ãã¬ã¬ã·ãŒã³ãŒãã«èµ·å ããŸãããã¹ããããCOBOLã¢ãžã¥ãŒã«ããã©ã³ã¶ã¯ã·ã§ã³ããã°ã©ã ãã€ã³ãã£ã³ã°ãåçããã°ã©ã åŒã³åºããåå©çšãããcommareaã¯ã èåŒ±æ§ è¡šé¢ããã¯èŠããªãè匱æ§ãäžè¬çãªäŸãšããŠã¯ãæ€èšŒãããŠããªã端æ«ã¢ã¯ã»ã¹ãXCTLåœä»€ãLINKåœä»€ã®äžæ£äœ¿çšãäžé©åãªãã©ã³ã¶ã¯ã·ã§ã³ã«ãŒãã£ã³ã°ã«ããæš©éææ Œãªã©ãæããããŸãããããã®æ¬ é¥ã¯ãã¢ã©ãŒããããªã¬ãŒãããããšãªããäœå¹Žãæ¬çªç°å¢ã«ååšããå¯èœæ§ããããŸãã
éçè§£æ ãããã®åé¡ãæªçšãããåã«ç¹å®ããããã®æ§é åãããæ¹æ³ãæäŸããŸããããããWebã¢ããªã±ãŒã·ã§ã³ãAPIã¢ããªã±ãŒã·ã§ã³ãšã¯ç°ãªããCICSã¯ãŒã¯ããŒãã®ã¹ãã£ã³ã«ã¯ããè©³çŽ°ãªæ€æ»ãå¿ èŠã§ããã¢ããªã¹ãã¯ãè€æ°ã®ããã°ã©ã ã¬ãã«ã«ãããå¶åŸ¡ãããŒããã¬ãŒã¹ããå ±æã¡ã¢ãªå ã§ã®ããŒã¿ã®ç§»åãçè§£ããã¡ã€ã³ãã¬ãŒã ã®ãã©ã³ã¶ã¯ã·ã§ã³åäœã«ç¹æã®ãã¿ãŒã³ãæ€åºããå¿ èŠããããŸãã
ãã®èšäºã§ã¯ãCICSç°å¢ã«ãããéçè§£æãé©çšããŠã»ãã¥ãªãã£äžã®æ¬ é¥ãçºèŠãã軜æžããæ¹æ³ã«çŠç¹ãåœãŠãŸããæ³šç®ãã¹ãé«ãªã¹ã¯æ§é ã®æŠèŠãCOBOLã³ãŒãã«ããããã©ã³ã¶ã¯ã·ã§ã³ããžãã¯ã®è§£éæ¹æ³ããããŠå€§èŠæš¡ãªã¬ã¬ã·ãŒã·ã¹ãã ãæ£ç¢ºãã€è©³çްã«ã¬ãã¥ãŒããå¿ èŠããããšã³ãžãã¢åãã®ã¬ã€ãã³ã¹ãæäŸããŸãããã®èšäºã®ç®çã¯ãããŒã ãæšæž¬ãäžæãªãã«ãã©ã³ã¶ã¯ã·ã§ã³å±€ãå®å šã«ä¿è·ã§ããããã«æ¯æŽããããšã§ãã
CICSãã©ã³ã¶ã¯ã·ã§ã³æ»æå¯Ÿè±¡é åã®çè§£
CICSãã©ã³ã¶ã¯ã·ã§ã³ã¯ãåãªãããã°ã©ã çãªäœæ¥åäœã§ã¯ãããŸãããã¢ã¯ã»ã¹å¶åŸ¡ããŠãŒã¶ãŒIDããªãœãŒã¹èªèšŒãã»ãã·ã§ã³æŽåæ§ãšãã£ãæ©èœã«æ·±ãçµã¿èŸŒãŸããŠããŸããå€ãã®ã¡ã€ã³ãã¬ãŒã ã·ã¹ãã ã¯ãã»ãã¥ãªãã£ã®é©çšãæç€ºçã§ã¯ãªãæé»çã«è¡ããããæ°å幎åã®èšèšãã¿ãŒã³ã«äŸåããŠããŸããããã«ããããã¹ããã³ã³ãã©ã€ã¢ã³ã¹ç£æ»ã«ãããŠèŠèœãšãããã¡ãªãªã¹ã¯ãçããŸãã
ãã®ã¬ãã«ã®éçåæã¯ãå¶åŸ¡ãã©ãã«æž¡ãããããå ¥åãã©ã®ããã«åŠçããããããããŠç¹å®ã®å®è¡ã³ã³ããã¹ãã«ãããŠã©ã®ãã¹ãå°éå¯èœãããããã³ã°ããããšããå§ãŸããŸããäŸµå ¥ãã¹ãã«åæ Œããã·ã¹ãã ã§ãã£ãŠãã誀ã£ãã«ãŒãã£ã³ã°ãéå°ãªæš©éãä»äžããããã©ã³ã¶ã¯ã·ã§ã³ãããŒã«é¢é£ããè匱æ§ãæ®ã£ãŠããå¯èœæ§ããããŸãã
EXEC CICS åŒã³åºãã«ãããé ããè匱æ§
ãããã匱ç¹ã¯ã EXEC CICS LINK, XCTLãŸã㯠RETURN åŒã³åºãå
ãã³ã³ããã¹ããæ€èšŒããã«å®è¡ããŸããããã°ã©ã ãç·©ãé£éãããããã°ã©ã åãå€éšããæäŸããããåçã«æ§ç¯ããããããå Žåãæªæã®ããå
¥åã«ãã£ãŠãææ Œãããæš©éãæã€ã¢ãžã¥ãŒã«ãžã®å®è¡ãèªå°ãããå¯èœæ§ããããŸãã
å®éã«ã¯ã次ã®ããã«ãªããŸãã
EXEC CICS LINK PROGRAM(PROG-NAME) COMMAREA(COMM-AREA) LENGTH(COMM-LEN) END-EXEC
If PROG-NAME ãŠãŒã¶ãŒãæå®ããå€ããæ§ç¯ãããããå³å¯ãªæ€èšŒãªãã«ããŒãã«ããããããããããããšãæš©éã®ãªããŠãŒã¶ãŒãå
¬éãããããšãæå³ããŠããªãæ©å¯ããã°ã©ã ãåŒã³åºãå¯èœæ§ããããŸãã
éçè§£æã§ã¯ãç¹ã«æ¬¡ã®ãããªãã¹ãæ€åºããå¿ èŠããããŸãã
- ããã°ã©ã åã¯é£çµãããå€ãŸãã¯ãã¹ã¯ãããå€ããæ§ç¯ãããŸã
- èš±å¯ãããã¿ãŒã²ãããŸãã¯æåŸ ãããã¿ãŒã²ããã«å¯ŸããŠãã©ãŒã«ããã¯ãã§ãã¯ã¯å®è£ ãããŠããŸãã
- åä¿¡ããã°ã©ã ã¯æš©éã®ãããªãæ€èšŒãªãã«éå¶ããã
SVCãšã¹ãã¬ãŒãžå¶åŸ¡ã®ãšã¹ã«ã¬ãŒã·ã§ã³ãã¿ãŒã³
ãã¯ãã¬ãã«ã®åœä»€ãä»ããŠã¢ã¯ã»ã¹ãããç¹å®ã®SVCããŒã¹ã®åŒã³åºããŸãã¯å
éšãµãŒãã¹ã«ãŒãã³ã¯ãã¡ã¢ãªæäœã«ãããšã¹ã«ã¬ãŒã·ã§ã³ãèš±å¯ããå ŽåããããŸãã ADDRESS, ASSIGNããŸãã¯ã¿ãŒããã« ããŒã¿ ãããã¯ãžã®çŽæ¥ã¢ã¯ã»ã¹ã«ãããã¿ã¹ã¯ ã¬ãã«ã®ã»ãã¥ãªã㣠ã³ã³ããã¹ããé©åã«é©çšãããŠããªãå Žåã«å®å
šçããã€ãã¹ã§ããŸãã
å žåçãªå±éºä¿¡å·ã®ãã¿ãŒã³ã«ã¯æ¬¡ã®ãã®ãå«ãŸããŸãã
- çã®å ¥åãã端æ«IDãŸãã¯ã¿ã¹ã¯çªå·ãå²ãåœãŠã
- äœ¿ãæ¹
EXEC CICS ADDRESS TCTUAãŸãã¯åçã®åŒã³åºãã®åŸã«ç¶ãçŽæ¥æžã蟌㿠- ããŒã«æ€èšŒãªãã§ã»ãã·ã§ã³ç¶æ ã«åºã¥ããŠå¶åŸ¡ãåãæ¿ãã
ç«¯æ«æ§é ãš CICS å éšã«ç²ŸéããŠããæ»æè ã¯ããããã®ã¢ã¯ã»ã¹ ãã€ã³ããæªçšããŠæš©éãææ Œããããæå³ããªãã³ãã³ããæ¿å ¥ãããããããšãã§ããŸãã
ãããã®è匱æ§ãç¹å®ããã«ã¯ãCICS ã³ãã³ããã¹ãã£ã³ããã ãã§ãªããã¡ã¢ãªå²ãåœãŠå šäœã®ããŒã¿ç³»çµ±ã解決ããå¶åŸ¡ãã©ã¡ãŒã¿ã®åºæã確èªããå®å šã§ãªããŸãã¯èªèšŒãããŠããªãã³ã³ããã¹ãå€ã®äœ¿çšã«ãã©ã°ãç«ãŠãå¿ èŠããããŸãã
CICSç°å¢ã«ãããéçåæã®ç¯å²
CICSç°å¢ã«ãããéçè§£æã¯ãåºæ¬çãªæ§æãããŒã¯ãŒãæ€åºã«ãšã©ãŸãããããé«åºŠãªè§£æãå¿ èŠã§ããã¢ããªã¹ãã¯ãã³ãŒãã®æ§é ã ãã§ãªãããã©ã³ã¶ã¯ã·ã§ã³ã¢ãã«ãããã°ã©ã ã®é£æºãããŒã¿ãããŒãæš©éã®å¢çãçè§£ããå¿ èŠããããŸããå æ¬çãªè©äŸ¡ã§ã¯ããŠãŒã¶ãŒã端æ«ãã¢ããªã±ãŒã·ã§ã³ãå ±æã¡ã¢ãªãé£éå®è¡ããžãã¯ãéããŠã©ã®ããã«çžäºäœçšããããåæ ãããå¿ èŠããããŸãã
ãã®ã¬ãã«ã®æ€æ»ã¯è€éã§ãããç¹ã«æ°å幎åã«éçºãããè€æ°ã®ããŒã ã«ãã£ãŠé·æéã¡ã³ããã³ã¹ãããŠããã¢ããªã±ãŒã·ã§ã³ãæ±ãå Žåã«ã¯ãªãããã§ããããã°ã©ã ã¯ãæ§é åãããŠããªãå¶åŸ¡ãããŒãåçãªã³ãã³ãã®äœ¿çšãåå©çšãããããã°ã©ã IDã«äŸåããŠããããšãå€ãããããã¯ãã¹ãŠæš©éã®å§ãŸããšçµãããææ§ã«ããŸãã
ä¿¡é Œå¢çã® COBOL-CICS ãœãŒã¹ãããŒã®åæ
çŸä»£ã®ã¢ããªã±ãŒã·ã§ã³ç°å¢ã§ã¯ãä¿¡é Œå¢çã¯éåžžãããã³ããšã³ãUIãšAPIéãªã©ã®ã¬ã€ã€ãŒã«ãã£ãŠå®çŸ©ãããŸããCICSã§ã¯ãä¿¡é Œå¢çã¯æé»çã§ãããããã°ã©ã éã®é£æºã®äžã«åã蟌ãŸããŠããããšããããããŸããéçè§£æã§ã¯ãã©ã®ããã°ã©ã ãä»ã®ããã°ã©ã ã«å¶åŸ¡ãæž¡ããŠããããå ¥åãã©ãããã·ã¹ãã ã«å ¥åãããŠãããããããŠãã®å ¥åã®éä¿¡å ãä¿¡é Œã§ãããã©ããã远跡ããå¿ èŠããããŸãã
äŸãã°ããã°ã€ã³ãã©ã³ã¶ã¯ã·ã§ã³ããå§ãŸããã§ãŒã³ã¯ã5ã€ä»¥äžã®ããã°ã©ã ã«å¶åŸ¡ãæž¡ãå ŽåããããŸãããããã®ããã°ã©ã ã®ããããããïŒäŸãã°ãæŽæ°ãããcommareaã»ã°ã¡ã³ããä»ããŠïŒæ°ãããŠãŒã¶ãŒå ¥åãåæ€èšŒããã«åãå ¥ããå Žåãä¿¡é Œå¢çã¯ç ŽãããŸããéçè§£æã§ã¯ããããã®é·ç§»ãã€ã³ããæ€èšŒå¯Ÿè±¡ãšããŠãã©ã°ä»ãããå¿ èŠããããŸãã
æ€èšãã¹ãéèŠãªåŽé¢ã¯æ¬¡ã®ãšããã§ãã
- å€éšããŒã¿ãå®è¡ãã¹ã«å ¥ããšã³ããªãã€ã³ã
- åŒã³åºãå ãæ€èšŒããã«çºçãã LINK ãŸã㯠XCTL ã®åŒã³åºã
- å®è¡ãèªèšŒãããŒããéèªèšŒãããŒã«åãæ¿ããé å
ããŒãã³ãŒããããèªèšŒæ å ±ãšæš©éææ Œããžãã¯ã®æ€åº
æ¥éãªéçºãç·æ¥ãããé©çšã®éã«ã¯ãããŒãã³ãŒããããã»ãã¥ãªãã£ããŒã¯ã³ããŠãŒã¶ãŒIDããŸãã¯APPLIDãå°å ¥ãããããšããããŸãããããã®å€ã¯ãæšæºçãªã¢ã¯ã»ã¹å¶åŸ¡ããªãŒããŒã©ã€ãããããå®éã®èªèšŒã倱æããå Žåã«ãã©ãŒã«ããã¯ã¢ã¯ã»ã¹ãèš±å¯ãããããããšãã§ããŸãã
ããšãã°ã次ã®ãã㪠COBOL ã»ã°ã¡ã³ãããããŸãã
IF USER-ID = 'SECADMIN' THEN
MOVE 'Y' TO AUTH-FLAG
END-IF
衚é¢äžã¯å±éºã«èŠããªããããããªããã USER-ID å€éšãã圱é¿ãåããããä»ã®ããã°ã©ã ã§åå©çšããããããå¯èœæ§ããããããæ°žç¶çãªãªã¹ã¯ãçããŸãã
éçè§£æãšã³ãžã³ã¯ä»¥äžãæ€çŽ¢ããå¿ èŠããããŸãã
- IF ã¹ããŒãã¡ã³ããŸãã¯ä»£å ¥ã«ãããã»ãã¥ãªãã£ã«ææãªå€
- æ€èšŒãªãã«çŽæ¥èšå®ãããæš©éãã©ã°
- å¶åŸ¡ããžãã¯ããã€ãã¹ããæ±çšAPPLIDãŸãã¯ãŠãŒã¶ãŒåã®äœ¿çš
ãããã®ãã¿ãŒã³ã¯ç®ã«èŠããªããã®ã§ããããã®ååšã¯ãã»ãã¥ãªãã£ããžãã¯ãšããžãã¹ã«ãŒã«ãéãªãåãããã倧ããªèšèšäžã®åé¡ã瀺åããããšããããããŸããéçè§£æã«ãã£ãŠãããã®ãã¿ãŒã³ãåé¢ããããšã§ãããŒã ã¯å®å šã«ããããŠé ããæš©éãã¹ãåé¿ããŠã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ã§ããããã«ãªããŸãã
CICSç°å¢ã«ãããéçåæã®ç¯å²
CICSã·ã¹ãã ã¯åŸæ¥ã®ã¢ããªã±ãŒã·ã§ã³ã¹ã¿ãã¯ãšã¯å€§ããç°ãªããŸããææ°ã®ãµãŒãã¹ã¯APIãã€ãã³ãããªãã³ãããŒãå ¬éããŠããŸãããCICSã¢ããªã±ãŒã·ã§ã³ã¯å€ãã®å Žåãã³ãã³ããšãªã¢ã端æ«å ¥åãå ±æã¡ã¢ãªãä»ããŠæž¡ãããããŒã¿ã«äŸåãããå¯çµåãããããã°ã©ã ãã§ãŒã³ãšããŠå®è¡ãããŸãããã®ã¢ãŒããã¯ãã£ã¯ãéçåæãç¹ã«å°é£ã«ããŸããã¢ããªã¹ãã¯ãæ¢ç¥ã®è匱ãªåŒã³åºããæ¢ãã ãã§ãªããè€æ°ã®ããã°ã©ã ïŒäžã«ã¯æ°å幎ã«ãããã¬ã¬ã·ãŒéçºã«ãŸããããã®ããããŸãïŒã«ãããå®è¡ãããŒãåæ§ç¯ããå¿ èŠããããŸãã
æå³ã®ããéçã¬ãã¥ãŒã§ã¯ãããŒã¿ãã·ã¹ãã ã«ã©ã®ããã«å ¥åãããããå¶åŸ¡ãã¢ãžã¥ãŒã«éã§ã©ã®ããã«æž¡ããããããããŠæ€èšŒãæåŸ ãããŠããã«ããããããæ€èšŒãè¡ãããŠããªãç®æãèæ ®ããå¿ èŠããããŸããCICSã«ãããã»ãã¥ãªãã£éåã¯ãå¿ ãããæããã«å±éºãªåŒã³åºãããçºçããããã§ã¯ãããŸãããå€ãã®å Žåãä¿¡é Œã«é¢ããæ³å®ã®èŠèœãšããã³ã³ããã¹ããã§ãã¯ã®æ¬ èœããŸãã¯ãã¹ããããå®è¡ãããŒãé å»¶å®è¡ãããŒã«ãããæš©éã®äžäžèŽããçããŸãã
ä¿¡é Œå¢çã® COBOL-CICS ãœãŒã¹ãããŒã®åæ
å
žåçãªCOBOL-CICSãã©ã³ã¶ã¯ã·ã§ã³ã¯ãåäžã®ã¢ããªã·ãã¯ãããã¯ã§æ§æãããã®ã§ã¯ãªããè€æ°ã®ããã°ã©ã ã«ãŸãããã EXEC CICS LINK, XCTLãŸã㯠RETURNcommareaãããã¯ã䜿çšããŠãããã°ã©ã éã§ããŒã¿ãå
±æããŸããå€ãã®ããã°ã©ã ã¯ãåä¿¡ããcommareaã®å
容ãç¬èªã«æ€èšŒãããä¿¡é Œã§ããåŒã³åºãå
ãæ¢ã«æ€èšŒæžã¿ã§ãããšããåæã«äŸåããŠããŸãããã®åæã¯ãæš©éããªãããäžæ£ã¢ã¯ã»ã¹ã®æãé »ç¹ãªåå ã®äžã€ã§ãã
éçè§£æã§ã¯ãããŒã¿ã®äŸµå ¥ã®éå§ç¹ãç¹å®ãããããã®åŒã³åºãå šäœã«ãããäŒæã远跡ããå¿ èŠããããŸããäŸãã°ã
MOVE WS-USERID TO COMM-USERID
EXEC CICS LINK PROGRAM('ACCTUPD') COMMAREA(COMMAREA-BLOCK) LENGTH(COMM-LEN)
次ã«ã ACCTUPD次ã®ãããªè¡šç€ºãåºãå ŽåããããŸãã
IF COMM-USERID = 'ADMIN01'
PERFORM ADMIN-ROUTINE
ããã«ããæé»ã®ä¿¡é Œå¢çãäœæãããŸãã WS-USERID ãããŒã®æ©ã段éã§äžæžããŸãã¯åœé ãããããšããªãå Žåã ACCTUPD 管çã«ãŒãã³ãç²ç®çã«å®è¡ãããéçè§£æã§ã¯çžé¢é¢ä¿ã調ã¹ãå¿
èŠãããã COMM-USERIDã®èµ·æºãç¹å®ããåæ€èšŒãªãã§æ©å¯ã®æææ±ºå®ã«ããã䜿çšãããã¹ãŠã®äžæµã³ãŒãã«ãã©ã°ãèšå®ããŸãã
éçã¹ãã£ã³ã§æ€åºã§ããäžè¬çãªä¿¡é Œå¢çéåã«ã¯æ¬¡ã®ãããªãã®ããããŸãã
- ããŒã«ã«èªèšŒãªãã§commareaãã£ãŒã«ãã«åºã¥ã決å®åå²
- 端æ«ãŸãã¯APPLIDå€ã«åºã¥ããŠããžãã¯ãå®è¡ãã
- 掻çš
EIBTRMID,EIBTASKNãŸãã¯EIBRESPåç¹ãã§ãã¯ãªãã®å¶åŸ¡ããžã㯠- ç䌌äŒè©±ãã§ãŒã³ã«åå ¥ããéã®ãŠãŒã¶ãŒã»ãã·ã§ã³ã®åæ€èšŒããªã
ããŒãã³ãŒããããèªèšŒæ å ±ãšæš©éææ Œããžãã¯ã®æ€åº
éçã¬ãã¥ãŒã§ã¯ãCOBOLæã«çŽæ¥åã蟌ãŸããããŒãã³ãŒãããããŠãŒã¶ãŒIDãç¹æ®ã³ãŒãããŸãã¯APPLIDãé »ç¹ã«çºèŠãããŸãããããã¯å éšãã¹ããéçšäžã®åé¿çã®ããã«è¿œå ããããã®ã§ããå¯èœæ§ããããŸãããæ¬çªç°å¢ã«ãã®ãŸãŸæ®ãããæ·±å»ãªãªã¹ã¯ãããããããšããããããŸãã
ãããã©ã°ãç«ãŠãããå®éã®ãµã³ãã«ãã¿ãŒã³ã¯æ¬¡ã®ãšããã§ãã
IF USER-ID = 'SYSROOT'
MOVE 'FULL' TO ACCESS-LEVEL
or
IF EIBTRMID = 'TSTTERM1'
MOVE 'Y' TO BYPASS-SECURITY-FLAG
ãããã¯ãå¶åŸ¡ãããŠããªãã¢ã¯ã»ã¹æš©éã®ææ Œãã¹ãäœæããŸããæ»æè ã端æ«ãžã®ã¢ã¯ã»ã¹ãååŸããããããŒãã³ãŒãããããŠãŒã¶ãŒIDãçºèŠããããããšãã¢ããªã±ãŒã·ã§ã³ã®æ®ãã®éšåã¯å®å šãªèªèšŒãè¡ããããã®ããã«åäœããå¯èœæ§ããããŸãã
ãã埮åŠãªäŸ:
IF SUBSTR(COMMAREA-DATA, 1, 5) = 'DEBUG'
PERFORM DIAGNOSTIC-ROUTINES
ãã®ããžãã¯ãåé€ãŸãã¯ä¿è·ãããŠããªãå Žåã现工ãããå ¥åã«ãã£ãŠãäžè¬ãŠãŒã¶ãŒåãã§ã¯ãªããã°ããã¡ã€ã« ãã€ã³ã¿ãŒããŸãã¯ã¡ã¢ãªèšºæãå ¬éããæ©èœãã¢ã¯ãã£ãåãããå¯èœæ§ããããŸãã
ãã®ãããªæ¬ é¥ãæ€åºããããã®éçã«ãŒã«ãæ§ç¯ãããšãã¯ã次ã®ç¹ã«éç¹ã眮ããŸãã
IForEVALUATEãŠãŒã¶ãŒãŸãã¯ç«¯æ«ã«çµã³ä»ããããããŒãã³ãŒãããããªãã©ã«å€ã䜿çšããã¹ããŒãã¡ã³ã- ããŒãã³ãŒããããè³æ Œæ å ±ãã¢ã¯ã»ã¹ãã©ã°ã«çŽæ¥ãããã³ã°ãã
- æãªã©
BYPASS,OVERRIDEãŸãã¯DEBUGæ¡ä»¶ä»ãããžãã¯ãããªã¬ãŒãã - ãŠãŒã¶ãŒåã端æ«IDã®è¡šé¢çãªãã§ãã¯ã®ã¿ã§ä¿è·ãããã³ãŒãã»ã¯ã·ã§ã³
å€ãã®å Žåããããã®ãã§ãã¯ã¯éå ¬åŒã«è¿œå ãããäžåºŠãã¬ãã¥ãŒãããŠããŸãããéçã¹ãã£ã³ã§ã¯ãæåæ€æ»ã®ããã«ãã©ã°ãèšå®ããããç¹°ãè¿ãçºçããäžæ£äœ¿çšã«å¯ŸããŠãã¿ãŒã³ããŒã¹ã®ã¢ã©ãŒãã匷å¶ããå¿ èŠããããŸãã
éçåæã¬ã³ãºãæ¡åŒµããŠãããã®å¢çæ¡ä»¶ãšããŒãã³ãŒãããããã©ãŒã«ããã¯ãææããããšã§ãç£æ»äººãã»ãã¥ãªã㣠ãšã³ãžãã¢ã¯ãã·ã¹ãã ã®æ®ãã®éšåãå®å šã«æ©èœããŠããããã«èŠããŠããCICS ã¢ããªã±ãŒã·ã§ã³ãä¿¡é Œãã§ãŒã³ãå£ãå¯èœæ§ãããå Žæãããæ£ç¢ºã«ææ¡ã§ããããã«ãªããŸãã
ã»ãã¥ãªãã£ãªã¹ã¯ã瀺ãã³ãŒãæ§é ãã¿ãŒã³
åã ã®CICSã³ãã³ãã¯åç¬ã§ã¯å®å šã«èŠããŠãããã©ã³ã¶ã¯ã·ã§ã³ãå®éã«ä¿è·ãããŠãããã©ããã¯ãããã°ã©ã ããžãã¯ã®åšå²ã®æ§é ã«ãã£ãŠæ±ºãŸãããšããããããŸããéçåæã§ã¯ãããã°ã©ã ãã©ã®ããã«çžäºäœçšããæš©éãã©ã®ããã«æšè«ãããå¶åŸ¡ãããŒã®ã©ãã«æé»çãªä¿¡é Œãçµã¿èŸŒãŸããŠããããçè§£ããããã«ãè¡åäœã®ã¹ãã£ã³ã«ãšã©ãŸããªã詳现ãªåæãå¿ èŠã§ãã
ã¬ã¬ã·ãŒã·ã¹ãã ã¯ç¹ã«ãããã®ãã¿ãŒã³ã«é¥ããããåŸåããããŸããéçºããŒã ã¯æéã®çµéãšãšãã«ãäžæçãªããžãã¯ãæš©éã®ã·ã§ãŒãã«ããããããŠå€ç®çãã©ã³ã¶ã¯ã·ã§ã³ãå°å ¥ããé¢å¿ã®åé¢ãææ§ã«ããŸãããããã®æ§é çãªã¢ã³ããã¿ãŒã³ãç¹å®ããããšã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®ã»ãã¥ãªãã£ã匷åããããã«äžå¯æ¬ ã§ãã
ææ Œãããæš©éã«ãããã©ã³ã¶ã¯ã·ã§ã³ãšããã°ã©ã ã®ãããã³ã°
åCICSãã©ã³ã¶ã¯ã·ã§ã³IDã¯éåžžãç¹å®ã®ããã°ã©ã ãŸãã¯ãã£ã¹ãããã«ãŒãã³ã«ãããã³ã°ãããŸããããããå€ãã®ã·ã¹ãã ã§ã¯ãç°ãªãã¢ãžã¥ãŒã«éã§ãã©ã³ã¶ã¯ã·ã§ã³ã³ãŒããåå©çšãããããŠãŒã¶ãŒå ¥åã«åºã¥ããŠè€æ°ã®æ©å¯æ©èœãå®è¡ã§ããåºç¯ãªããã°ã©ã ãã³ãã©ãŒãå²ãåœãŠããããŸãã
é©åãªãã£ã«ã¿ãªã³ã°ãªãã«æ±çšãã³ãã©ãŒã髿š©éãã©ã³ã¶ã¯ã·ã§ã³ã«çµã³ä»ãããããšãããã¯å±éºã§ããéçè§£æã§ã¯ãã©ã®ãã©ã³ã¶ã¯ã·ã§ã³IDãã©ã®ããã°ã©ã ã«ãããã³ã°ãããŠãããã远跡ããåããã°ã©ã ããã®ãã©ã³ã¶ã¯ã·ã§ã³ã³ã³ããã¹ãã§ã©ã®ãããªããžãã¯ãå®è¡ããããç¹å®ããå¿ èŠããããŸãã
äŸïŒ
EXEC CICS RETRIEVE INTO(COMM-AREA)
EVALUATE COMM-AREA-FUNCTION
WHEN 'UPDATE'
PERFORM UPDATE-ROUTINE
WHEN 'DELETE'
PERFORM DELETE-ROUTINE
WHEN OTHER
PERFORM INQUIRY-ROUTINE
END-EVALUATE
äžèšã次ã®ãããªãã©ã³ã¶ã¯ã·ã§ã³ã«ãããã³ã°ãããš FINTRN01ããã®ãã©ã³ã¶ã¯ã·ã§ã³ã«ã·ã¹ãã æš©éãå²ãåœãŠãããŠããå Žåã COMM-AREA-FUNCTION ãŠãŒã¶ãŒãããŒã«ã®å¶éãåé¿ããåé€ãŸãã¯æŽæ°ããžãã¯ãåŒã³åºãããšãèš±å¯ã§ããŸãã
ãªã¹ã¯ææšã«ã¯ä»¥äžãå«ãŸããŸãã
- ãŠãŒã¶ãŒãæå®ãããã©ã°ã«åºã¥ããŠè€æ°ã®ç¹æš©ã¢ã¯ã·ã§ã³ãå®è¡ããåäžã®ããã°ã©ã
- ãã©ã³ã¶ã¯ã·ã§ã³ããæ©èœãžã®ããŒãã³ãŒããããå¶éããªã
- ç°å¢ãŸãã¯ããžãã¹ãŠãããéã§å ±æããããã©ã³ã¶ã¯ã·ã§ã³ã³ãŒã
- ãã£ã¹ãããã¢ãžã¥ãŒã«å ã®ç¹å®ã®ãã©ã³ãã«é¢é£ä»ããããã¢ã¯ã»ã¹ãã§ãã¯ããªã
éçã¹ãã£ã³ã§ã¯ãcommarea ãã©ã°ããããŒãå¶åŸ¡ããå Žæãšããããã®ãããŒãèªèšŒãããŒã«æ€èšŒããŸãã¯ãªãœãŒã¹ ã¬ãã«ã®å¶çŽã«ãã£ãŠä¿è·ãããŠãããã©ãããç¹å®ããå¿ èŠããããŸãã
ã³ãã³ãã¬ãã«ãšãã¯ãã¬ãã«ã®ã³ãŒã«ãã¹ã®åŒ±ç¹
ããäžã€ã®ãªã¹ã¯æºã¯ãã³ãã³ãã¬ãã«ãšãã¯ãã¬ãã«ã®ããã°ã©ã éã®äžæŽåã§ããæéã®çµéãšãšãã«é²åããã·ã¹ãã ã§ã¯ãäž¡æ¹ã®ã¹ã¿ã€ã«ãæ··åšããŠããããšããããããŸããã³ãã³ãã¬ãã«ã®ã³ãŒãã¯æ§é åãããæ§æãšåªããå¯èªæ§ã®å©ç¹ããããŸããããã¯ãã¬ãã«ã®ã³ãŒãã¯äœã¬ãã«ã®ã¢ã¯ã»ã¹ããæäŸãããå®å šçãå°ãªãåŸåããããŸãã
äž¡æ¹ã®ã¿ã€ããäžç·ã«äœ¿çšãããšãç¹ã«ãã¯ãã¬ãã«ã®ããã°ã©ã ãäžéã®ã»ãã¥ãªãã£åŒ·åãªãã§åçã«ãªã³ã¯ãããŠããå Žåã«ã埮åŠãªåŒã³åºããã¹ã®è匱æ§ãçããå¯èœæ§ããããŸãã
äŸïŒ
- ã³ãã³ã ã¬ãã«ã®ããã°ã©ã ã¯ãå ±æã¡ã¢ãªãçŽæ¥èªã¿åã£ãã倿Žããããããã¯ã ã¬ãã«ã®ã¢ãžã¥ãŒã«ã«ãªã³ã¯ããŸãã
- ãã¯ãã¬ãã« ã¢ãžã¥ãŒã«ã¯ãåŒã³åºãå ã®ããã°ã©ã ããã§ã«ããŒã¿ãæ€èšŒããŠãããšæ³å®ããŸãã
- ãšã³ããªãšå®è¡ã®éã«äžéãã§ãã¯ã¯å®è¡ãããŸããã
ãããŒã®ç°¡ç¥åããããã¥ãŒ:
* In command-level handler
EXEC CICS LINK PROGRAM('LEGACYIO') COMMAREA(DATA-BLOCK)
* In macro-level module LEGACYIO
L R1,=V(DATA-BLOCK)
ST R1,=V(SYSTEM-FILE-POINTER)
ããã§ããã¯ãã¬ãã«ã®ã¢ãžã¥ãŒã«ã¯ã¹ãã¬ãŒãžãã€ã³ã¿ãçŽæ¥æäœããããšãä¿¡é ŒãããŠããŸããåŒã³åºãåŽããã°ã©ã ãæ€èšŒã«å€±æããå Žåã DATA-BLOCKæ»æè
ãã¡ã¢ãªé åãæäœããããèš±å¯ãããŠããªãããŒã¿ã»ãããåç
§ãããããå¯èœæ§ããããŸãã
éçåæã§ã¯ã次ã®ç¹ã«ç¹ã«æ³šæããå¿ èŠããããŸãã
- æ§é åããã°ã©ã ããã¬ã¬ã·ãŒã¢ãžã¥ãŒã«ãžã®LINKãŸãã¯XCTLåŒã³åºã
- ã³ãã³ãã¬ãã«ãšãã¯ãã¬ãã«ã®ã³ãŒãéã®ãã©ã¡ãŒã¿ã®åãæž¡ã
- å¢çãã§ãã¯ãè¡ããã«ã¹ãã¬ãŒãžãã€ã³ã¿ãã·ã¹ãã ãã¡ã€ã«èå¥åã䜿çšãã
- å ¥åæ€èšŒãä»ã®å Žæã§è¡ãããŠãããšæ³å®ãããåå©çšã¢ãžã¥ãŒã«
ãããã®è匱æ§ã¯ããšã¯ã¹ããã€ãã®æ¡ä»¶ãšããŠã端æ«ã®ã³ã³ããã¹ããã¿ã¹ã¯ãã©ã¡ãŒã¿ãå®è¡ãããŒã®æ£ç¢ºãªæŽåæ§ãæ±ããããããšãå€ãããããã¹ãã§ã¯ã»ãšãã©æ€åºãããŸãããããããéçã¹ãã£ã³ã§ã¯ããããã®è匱æ§ãå¯èœã«ããæ§é çãªèšå®ãæ€åºã§ããŸãã
æ¬ é¥ã®ããã³ãŒãè¡ã ãã§ãªãæ§é äžã®ãªã¹ã¯ãç¹å®ããããšã§ãã¢ããªã¹ã㯠CICS ã·ã¹ãã ã®å šäœçãªã»ãã¥ãªãã£äœå¶ãããé©åã«è©äŸ¡ãã圱é¿ã®å¯èœæ§ã«åºã¥ããŠä¿®åŸ©ã®åªå é äœã決å®ã§ããŸãã
CICS åºæã® API äžæ£äœ¿çšã®éçæ€åº
CICSã¯ãã·ã¹ãã ã¬ãã«ã®ãªãœãŒã¹ãšããåãããå¹ åºãEXECã³ãã³ããšãã¯ããå ¬éããŠããŸããããã«ã¯ã端æ«èå¥åãã¿ã¹ã¯çªå·ãã»ãã·ã§ã³ã¡ã¢ãªããã©ã³ã¶ã¯ã·ã§ã³ã«ãŒãã£ã³ã°ããžãã¯ãªã©ãå«ãŸããŸãããããã®æ©èœã¯æè»æ§ãæäŸããŸãããååãªä¿è·å¯Ÿçãè¬ããã«äœ¿çšãããšè匱æ§ãçããå¯èœæ§ããããŸãããããã®ã€ã³ã¿ãŒãã§ãŒã¹ã誀çšãããšãæå³ããªãæš©éææ Œãå¶åŸ¡ã®ãã€ãã¹ããŸãã¯èš±å¯ãããŠããªãã·ã¹ãã é åãžã®ã¢ã¯ã»ã¹ã«ã€ãªããå¯èœæ§ããããŸãã
éçåæã«ãããéçºè ãç£æ»æ åœè ã¯ããããã®APIãã©ã®ããã«åŒã³åºãããã©ã®ãããªãã©ã¡ãŒã¿ã䜿çšããããããããŠåŒã³åºãã³ã³ããã¹ããé©åãªæ€èšŒãæäŸããŠãããã©ãããæ€èšŒããããšã§ããããããªã¹ã¯ãç¹å®ã§ããŸããé©åãªå®è£ ã«ã¯ãå®è¡ã³ã³ããã¹ããã¢ã¯ã»ã¹ãã¿ãŒã³ããããŠãã©ã³ã¶ã¯ã·ã§ã³éã®ããŒã¿ãããŒå¢çãæ³šææ·±ãæ€æ»ããå¿ èŠããããŸãã
EXEC CICS ASSIGNããã³ADDRESSã®å®å šã§ãªã䜿çšã®è¿œè·¡
ãã® ASSIGN and ADDRESS ã³ãã³ãã¯CICSã®å
éšæ§é ã«çŽæ¥ã¢ã¯ã»ã¹ããŸããããã«ã¯ã端æ«IDãã¢ããªã±ãŒã·ã§ã³IDãã¿ã¹ã¯åºæã®ã¡ã¢ãªäœçœ®ãšãã£ãéèŠãªã¡ã¿ããŒã¿ãå«ãŸããŸãããããã®å€ã¯ãã°èšé²ãã»ãã·ã§ã³è¿œè·¡ã«é »ç¹ã«äœ¿çšãããŸãããå¶åŸ¡ããžãã¯ãã»ãã¥ãªãã£äžã®å€æã«ãããã®å€ãå©çšããå Žåãå±éºã䌎ããŸãã
ãã®äŸãèŠãŠã¿ãŸãããïŒ
EXEC CICS ASSIGN TERMINALID(TERM-ID)
IF TERM-ID = 'DEVBYPASS'
PERFORM SKIP-AUTH-CHECKS
ããã§ã¯ãã¢ã¯ã»ã¹å¶åŸ¡ã¯ç«¯æ«IDã«çŽæ¥çµã³ä»ããããŠããŸãããã®å€ãç¥ã£ãŠãããŠãŒã¶ãŒããŸãã¯ç«¯æ«èšå®ãåœè£ ã§ãããŠãŒã¶ãŒã¯ããã®ããžãã¯ãæªçšããŠã»ãã¥ãªãã£ã¡ã«ããºã ãåé¿ããå¯èœæ§ããããŸãã
ãããã¯ã次ã®ãããªããªãšãŒã·ã§ã³ãèããŠã¿ãŸããã ADDRESS:
EXEC CICS ADDRESS EIBTASKN
MOVE EIBTASKN TO TRACE-BUFFER
åç¬ã§èŠããšãããã¯ç¡å®³ã«æããŸãããããããã EIBTASKN åŸã§èªèšŒããã©ã³ã¶ã¯ã·ã§ã³æ¿èªã«äœ¿çšãããå Žåãäºæž¬å¯èœæ§ãäžæ£ãªã»ãã·ã§ã³ã®ãªãããŸãã®ãªã¹ã¯ãçããŸãã
å®å šã§ãªã ASSIGN ããã³ ADDRESS ã®äœ¿çšã瀺ãäžè¬çãªææšã«ã¯ã次ã®ãã®ããããŸãã
- 端æ«IDãã¢ããªã±ãŒã·ã§ã³IDããŸãã¯ã¿ã¹ã¯çªå·ã®ã¿ã«åºã¥ããŠåå²ãå¶åŸ¡ãã
- ã¢ã¯ã»ã¹æ€èšŒãŸãã¯ãã€ãã¹ãã©ã°ã«å²ãåœãŠãããå€ãçŽæ¥äœ¿çšãã
- ADDRESSã³ãã³ãåŸã®æ§é æ€èšŒãªãã®ãã€ã³ã¿åç §
- IFæ¡ä»¶ã«ãããã·ã¹ãã å²ãåœãŠèå¥åãšããŒãã³ãŒããããå€ã®æ¯èŒ
ç¹ã«å²ãåœãŠãããããŒã¿ãããã°ã©ã ã«ãŒãã£ã³ã°ãç¹æš©ããžãã¯ã«åœ±é¿ãäžããå Žåã¯ãéçã¹ãã£ã³ ããŒã«ããããã®æ¡ä»¶ã«ãã©ã°ãç«ãŠãããã«æ§æããå¿ èŠããããŸãã
代æ¿å®è¡ãã¹ã«ãããã©ã³ã¶ã¯ã·ã§ã³ãããŒã®æ¹ãã
å€ãã®CICSã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã©ãŒã«ããã¬ã©ã³ã¹ãåäžãããããã«ãã©ãŒã«ããã¯ãŸãã¯ä»£æ¿ãã©ã³ã¶ã¯ã·ã§ã³ã«ãŒãã£ã³ã°ã䜿çšãããŠããŸããããããªããããããã®ä»£æ¿ãã¹ã¯é©åãªã¢ã¯ã»ã¹æ€èšŒãè¡ãããŠããªãã£ãããæå³ããªãç¶æ³ã§ã¢ã¯ã»ã¹ãããŠããŸãå¯èœæ§ããããŸããããã«ãããæ»æè ãéåžžã®ãã©ã³ã¶ã¯ã·ã§ã³ãããŒã®å€éšããæ©å¯ããžãã¯ãããªã¬ãŒããæ©äŒãçããŸãã
次ã®ã±ãŒã¹ãèããŠã¿ãŸãããã
IF EIBCALEN = 0
EXEC CICS XCTL PROGRAM('RETRYTX')
ãã®ã³ãŒãã¯ãcommareaãæž¡ãããªãã£ãå Žåã«å®è¡ããªãã€ã¬ã¯ãããŸããããã RETRYTX ä¿¡é Œã§ããã·ãŒã±ã³ã¹å
ã§ã®ã¿äœ¿çšããããã«èšèšãããŠããå¯èœæ§ããããŸããç¬èªã®æ€èšŒã宿œããªãå ŽåããŠãŒã¶ãŒã¯é·ããŒãã®ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããã ãã§æ©å¯æ§ã®é«ãæ©èœã«ã¢ã¯ã»ã¹ã§ããŠããŸããŸãã
ãã 1 ã€ã®äŸã¯ããµã€ã¬ã³ã ãšã¹ã«ã¬ãŒã·ã§ã³ã§ãã
IF AUTH-FAILS
EXEC CICS START TRANSID('ALTID')
EXEC CICS RETURN
If ALTID ããé«ãæš©éãŸãã¯ããåºç¯ãªæ©èœãæã€ãã©ã³ã¶ã¯ã·ã§ã³ã«ããããããããŒã« ãã§ãã¯ãæ¬ åŠããŠããå Žåããã®ãã©ãŒã«ããã¯ã«ãã£ãŠæå³ããªãã¢ã¯ã»ã¹ãçºçããŸãã
ããã§ã®ãªã¹ã¯ã¯éåžžãæ¬¡ã®ãããªãã®ããçããŸãã
- ãšã©ãŒç¶æ ã«åºã¥ããŠããã°ã©ã ãåãæ¿ããããã® STARTãXCTLããŸã㯠LINK ã®äœ¿çš
- è€æ°ã®ãã©ã³ã¶ã¯ã·ã§ã³ã³ãŒãéã§åå©çšãããããã°ã©ã ID
- äžæµã¢ãžã¥ãŒã«ãžã®æ€èšŒãå»¶æããRETURNããžãã¯
- æŽåæ§ãã§ãã¯ãªãã§ãããŒãæç€ºããã³ã³ããšãªã¢å€
éçè§£æã§ã¯ãå®å šãªãã©ã³ã¶ã¯ã·ã§ã³ã°ã©ããæ§ç¯ããè€æ°ã®ãšã³ããªãã¹ãæã€ããã°ã©ã ãç¹å®ããäžå®å šãªæ€èšŒåŸã«å¶åŸ¡ãåãåãããã°ã©ã ã匷調衚瀺ããå¿ èŠããããŸãã颿°ãåé¢ãããŠããããã«èŠããŠããé ãããããŒã«ãã£ãŠæ»æè ãæ³å®å€ã®ç¹æš©æäœãå®è¡ã§ããå¯èœæ§ããããŸãã
è€éãªã»ãã¥ãªãã£ããžãã¯ã®é£èªåã®åŠç
ã¬ã¬ã·ãŒCICSã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ç¢ºä¿ã«ãããŠæãå°é£ãªåŽé¢ã®äžã€ã¯ãé£èªåãããããããã¯æ·±ããã¹ããããã»ãã¥ãªãã£ããžãã¯ãè§£æããããšã§ããå€ãã®CICSããã°ã©ã ã¯æ°å幎ã«ããã£ãŠé²åããæ§ã ãªããŒã ãçµãŠãå€å±€çãªã¢ã¯ã»ã¹åŠçãçµã¿èŸŒãã§ããŸããããã®çµæãéèŠãªã»ãã¥ãªãã£äžã®æ±ºå®äºé ã¯ãã¢ã¯ã»ã¹ã§ããªããã¹ã«åãããããã¢ãžã¥ãŒã«éã§è€è£œãããããæçåãããã«ãŒãã³ã«åå²ããããããããšããããããŸããéçåæã§ã¯ããããã®ãã¿ãŒã³ãåæ§ç¯ããæ³å®ãèŠèœãšãã«ãã£ãŠãªã¹ã¯ãããããããç®æãæããã«ããå¿ èŠããããŸãã
è€æ°ã®ããã°ã©ã ã«ãããåå²èªèšŒãã¹ã®èå¥
CICSéçºè ã¯ãè€æ°ã®ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ã«æž¡ã£ãŠç¶æ ãç¶æããããã«ãç䌌äŒè©±åããã°ã©ãã³ã°ãå®è£ ããããšããããããŸãããã®éãæå³ããèªèšŒãšèªå¯ãåé¢ããŠããŸãå¯èœæ§ããããŸããããããã°ã©ã ãè³æ Œæ å ±ãæ€èšŒããå¥ã®ããã°ã©ã ãã»ãã·ã§ã³ãã©ã°ãèšå®ããããã«å¥ã®ããã°ã©ã ãã¢ã¯ã»ã¹ãã§ãã¯ãå®è¡ããŸãããã®ãã§ãŒã³ã®äžéšãåæãããããå¥ã®ã³ã³ããã¹ãã§åå©çšãããããããšãã»ãã¥ãªãã£ããŒã«ãçºçããŸãã
äŸïŒ
ããã°ã©ã 1ïŒ
IF USERID = 'SUPPORT1'
MOVE 'OK' TO SESSION-AUTH
EXEC CICS RETURN TRANSID('TX02')
ããã°ã©ã 2ïŒ
IF SESSION-AUTH = 'OK'
PERFORM PROCESS-ADMIN-DATA
ããã¯æå³éãã«äœ¿çšããã°å®å
šã§ããããã«æãããŸããããããå¥ã®ãã©ã³ã¶ã¯ã·ã§ã³ãããã°ã©ã 2ãçµç±ããã«ããã°ã©ã 1ãçŽæ¥éå§ããå Žåã倿° SESSION-AUTH åæåãããŠããªããåœé ãããŠããå¯èœæ§ããããŸãã2çªç®ã®ããã°ã©ã ã¯ãè³æ Œæ
å ±ãå確èªããããšãªãã倿°ã®ã¿ã«åºã¥ããŠã»ãã·ã§ã³ãæå¹ã§ãããšä¿¡é ŒããŸãã
éçè§£æã§ã¯ãç¹ã«æ¬¡ã®ãããªããã°ã©ã é·ç§»å šäœã«ããã£ãŠå€æ°ã®å²ãåœãŠã远跡ããå¿ èŠããããŸãã
- ããããã°ã©ã ããã©ã°ãèšå®ããå¥ã®ããã°ã©ã ããããèªã¿åã£ãŠã¢ã¯ã»ã¹ã決å®ããå Žå
- èªèšŒããžãã¯ã®å€éšã«èªå¯ããžãã¯ãååšããå Žå
- ããã°ã©ã ãçŽæ¥èµ·åããŠéåžžã®å ¥åæ€èšŒãåé¿ã§ããå Žå
ãããã®ãã¿ãŒã³ã¯åŸæ¥ã®èšèšã§ã¯éåžžã«äžè¬çã§ãããæåã¬ãã¥ãŒã§ã¯èŠèœãšãããããšããããããŸãã
å éšãããã°ãŸãã¯ãã¹ãã¢ãŒãã«ããå¶åŸ¡ãããŒã®è¿å
éçºè ã¯ããã¹ããæ¯æŽããããã«ãé ããã©ã°ããããã°ã¢ãŒããçµã¿èŸŒãããšããããŸãããããã®æ©èœããããã€åã«åé€ãããŠããªãå ŽåããŸãã¯æ¬çªç°å¢ã®ç«¯æ«ããã¢ã¯ã»ã¹å¯èœãªå Žåãã¢ããªã±ãŒã·ã§ã³ã®æ©å¯éšåãžã®ããã¯ãã¢ãšãªãå¯èœæ§ããããŸãã
äŸïŒ
IF COMM-FLAG = 'DEBUG'
PERFORM BYPASS-AUTH-CHECK
ãããã¯ãã£ãšåŸ®åŠã«èšãã°:
IF CURRENT-TIME > '210000'
PERFORM EMERGENCY-ROUTINE
åŸè ã®å Žåãæ¥åæéå€ã®ã«ãŒãã³ã¯ãããããžã§ããç·æ¥å¯Ÿå¿ã®ããã®éåžžã®ã»ãã¥ãªãã£ãã§ãã¯ãåé¿ããŠããŸãå¯èœæ§ããããŸãããããã察話åã»ãã·ã§ã³ããèµ·åã§ããå Žåãã¿ã€ãã³ã°ããŒã¹ã®æ»æãã¯ãã«ãéãããããšã«ãªããŸãã
é£èªåãããããžãã¯ãå±éºãªããžãã¯ãã¹ãã£ã³ããå Žåãéçåæã§ã¯æ¬¡ã®ç¹ãåªå ããå¿ èŠããããŸãã
- ã»ãã¥ãªãã£ããžãã¯ãå¶åŸ¡ããç°åžžãªç¶æ³ïŒæå»ã端æ«IDãå°åã³ãŒãïŒ
- DEBUGãDEVãOVERRIDEãTESTãBACKDOORãªã©ã®ãã©ã°
- ç¹å®ã®å®è¡æ¡ä»¶äžã§ã¯ã¹ããããããã¢ã¯ã»ã¹ãã§ãã¯
- æ€èšŒãã©ã³ããé£ã³è¶ãã GOTO ãŸã㯠PERFORM ãã¹
ç®æšã¯ãçŽæ¥çãã€ç®ã«èŠããæ¿èªãã§ãã¯ãªãã§ç¹æš©ã³ãŒãã«å®è¡ãæž¡ãããšãã§ãããã®ããã¹ãŠæããã«ããããšã§ãã
äžè²«æ§ã®ãªãã¢ã¯ã»ã¹å¶åŸ¡ã«ããåå©çšã«ãŒãã³
å€ãã®å€§èŠæš¡CICSã¢ããªã±ãŒã·ã§ã³ã§ã¯ãéçºè ã¯ããŒã¿ã¢ã¯ã»ã¹ãããžãã¹ããžãã¯ã®ããã«å ±éã«ãŒãã³ãåå©çšããŸãããããã®ã«ãŒãã³ã¯ãå ¬éãã©ã³ã¶ã¯ã·ã§ã³ãšå éšç®¡çãŠãŒãã£ãªãã£ã®äž¡æ¹ããåŒã³åºãããå¯èœæ§ããããŸããå ±æããžãã¯ã«ãããŠãåŒã³åºãå ãæ¢ã«ãŠãŒã¶ãŒã®ããŒã«ãæ€èšŒæžã¿ã§ãããšæ³å®ããŠããå Žåããã®æ³å®ãåžžã«æç«ãããšã¯éããªãããã鿥çãªè匱æ§ãçããŸãã
å žåçãªæ§é ã¯æ¬¡ã®ããã«ãªããŸãã
PERFORM UPDATE-ACCT-INFO
...
UPDATE-ACCT-INFO.
IF ROLE = 'ADMIN'
EXEC CICS WRITE FILE('ACCTDB')
ããã¯ããã¹ãŠã®çºä¿¡è
ã UPDATE-ACCT-INFO æ£ããèšå®ãã ROLE 倿°ãã¢ããªã±ãŒã·ã§ã³ã®ä»ã®éšåã§ãã®ã«ãŒãã³ãåŒã³åºããå Žåã ROLE åæåãããŠããªãå ŽåããŸãã¯åŒã³åºãå
ã匱ããã§ãã¯ã«åºã¥ããŠèª€ã£ãŠèšå®ããå Žåãäžæ£ã¢ã¯ã»ã¹ãçºçããå¯èœæ§ããããŸãã
éçã¹ãã£ã³ã§ã¯æ¬¡ã®é ç®ã«ãã©ã°ãç«ãŠãŸã:
- ã»ãã¥ãªãã£äžéèŠãªã¢ã¯ã·ã§ã³ãå®è¡ããå ±æã«ãŒãã³
- å ±æã«ãŒãã³å ã§ã®ããŒã«ã«æ€èšŒã®æ¬ åŠ
- å€éšã§å®çŸ©ãããã¢ã¯ã»ã¹æ±ºå®ã«äœ¿çšããã倿°
- å·è¡ã®çŸå Žããé ãé¢ããå Žæã§è¡ããã圹å²ã®å²ãåœãŠ
ãã®åœ¢åŒã®é£èªåã¯ãæå³çãªé èœã§ã¯ãªããé·æçãªã¢ãŒããã¯ãã£ã®å€åã«ãã£ãŠçããŸããã³ã³ããŒãã³ããã¢ãžã¥ãŒã«éã§åå©çšãããã«ã€ããŠãåœåã®ã¢ã¯ã»ã¹æ³å®ã¯å£åããŸãããããã®ãªã¹ã¯ãæããã«ããã«ã¯ãã³ãŒãã®è©³çްãªãã¬ãŒã¹ãšã³ã³ããã¹ãã®çžé¢é¢ä¿ã®èª¿æ»ãå¿ èŠã§ãã
äœ¿ãæ¹ SMART TS XL CICSãã©ã³ã¶ã¯ã·ã§ã³ã®è匱æ§ãæ€åºããŠæé€ãã
ã¬ã¬ã·ãŒã¡ã€ã³ãã¬ãŒã ã·ã¹ãã ã«ãããã»ãã¥ãªãã£åæã®åãæ±ãã¯ãæ¬è³ªçã«è€éã§ããCICSç°å¢ã¯ãéäžç®¡çãããæ§é ãæ¬ åŠããŠããããšãå€ããææ°ã®ããã¥ã¡ã³ããã»ãšãã©ååšãããæç¶ãã®é²åãæ°å幎ã«ããã£ãŠããã®ãçŸç¶ã§ãã SMART TS XL COBOLãPL/IãJCLãCICSåºæã®ãã¿ãŒã³ã«ç¹åããéçè§£æãšã³ãžã³ãæäŸããããšã§ããããã®åé¡ã«å¯ŸåŠããŸããæ±çšããŒã«ãšã¯ç°ãªããã¡ã€ã³ãã¬ãŒã ã»ãšã³ã·ã¹ãã ç¹æã®ã¢ãŒããã¯ãã£ãšèŠçŽãçè§£ããŸãã
CICS ã®ãã«ãã¬ãã«ãããŒåæ§ç¯
SMART TS XL ã¢ããªã±ãŒã·ã§ã³ããŒããã©ãªãªå šäœãã¹ãã£ã³ããããã°ã©ã éãããŒããããæ§ç¯ããŸããããã«ã¯ä»¥äžãå«ãŸããŸãã
- ãã©ã³ã¶ã¯ã·ã§ã³ãšããã°ã©ã ã®ãããã³ã°
- LINKãXCTLãRETURNã䜿çšããããã°ã©ã éã®é·ç§»
- 倿°ãšã³ã³ãé åã®äŒæ
- ããŒã«ããŒã¹ã®å¶åŸ¡ããžãã¯ãšãšã³ããªæ¡ä»¶ã®ãã¬ãŒã¹
å®å šãªå®è¡ãã§ãŒã³ãåæ§ç¯ããããšã§ãä¿¡é Œã§ããã³ã³ããã¹ããåæãšããããã°ã©ã ããæ€èšŒãããŠããªãå¯èœæ§ã®ãããã€ã³ããå«ãè€æ°ã®ãã€ã³ãããå®éã«å°éå¯èœã§ããããšãæ€åºã§ããŸãã
ãŠãŒã¹ã±ãŒã¹äŸïŒ
å
éšç£æ»ã«ãããååŒã®ã»ãã¥ãªãã£äžã®æ¬ é¥ãæããã«ãªã£ãã TX94 å
ã
ã¯ç®¡çè
å°çšã ã£ãããã°ã©ã ãèµ·åããŸããã SMART TS XL ããã°ã©ã ã®ã³ãŒã«ã°ã©ãããã¬ãŒã¹ããå¶åŸ¡ãã©ã°ãæªãã§ãã¯ã®commareaãã£ãŒã«ããä»ããŠæž¡ãããŠããããšãçºèŠããåãããã°ã©ã ãšã³ããªã«ã¢ã¯ã»ã¹ããä»ã®5ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ãç¹å®ããŸãããæåãã¬ãŒã¹ã§ã¯ãããèŠéããŠããŸããã
é ãããå¶åŸ¡ãã©ã°ãšé£èªåãããã¢ã¯ã»ã¹ãã¹ã®æ€åº
å€ãã®ã¬ã¬ã·ãŒããã°ã©ã ã«ã¯ããªãŒããŒã©ã€ãæ¡ä»¶ãç·æ¥ã«ãŒãã³ãçµã¿èŸŒãŸããŠããŸãããããã¯ãæ·±ããã¹ããäžè¬çã§ãªã倿°åããã©ãŒã«ããã¯ããžãã¯å ã®é 眮ãªã©ã«ãããæåã§ç¹å®ããã®ãå°é£ãªå Žåãå€ããããŸãã SMART TS XL ã«ãŒã«ããŒã¹ããã³ãã¿ãŒã³ãããã³ã°ã¹ãã£ã³ã䜿çšããŠä»¥äžãæœåºããŸãã
- ãã£ãã«äœ¿çšãããªããã©ã°å€ã«ãã£ãŠå¶åŸ¡ãããæ¡ä»¶åå²
- 端æ«IDãæå»ããŸãã¯ã¿ã¹ã¯ã®ã¡ã¿ããŒã¿ã«åºã¥ããŠããªã¬ãŒãããããžãã¯
- commarea ãã©ã°ãããŒãã³ãŒãããããŠãŒã¶ãŒ IDããŸãã¯ãã¯ãã¬ãã«ã®ã«ãŒãã³ã䜿çšããŠåå²ããã€ãã¹ããŸãã
æœåšçã«ç¹æš©ã®ããæ±ºå®ãã€ã³ãã®ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ãæããã«ããå°éå¯èœæ§ããã©ã³ã¶ã¯ã·ã§ã³ã®é²åºãããã³ç¹æš©ææ Œã®å¯èœæ§ã«åºã¥ããŠã©ã³ã¯ä»ãããŸãã
CICS æ§é ã®èªååãããè匱æ§ã«ãŒã«
衚é¢ã¬ãã«ã®ã¹ãã£ããŒãšã¯ç°ãªãã SMART TS XL COBOL-CICSããã°ã©ã åãã«ã«ã¹ã¿ãã€ãºãããçµã¿èŸŒã¿ã«ãŒã«ãå«ãŸããŠããŸãããããã®ã«ãŒã«ã¯ã以äžã®è匱æ§ãç¹å®ããŸãã
- å®å šã§ãªãEXEC CICS ASSIGNããã³ADDRESSã®äœ¿çš
- PERFORMãããã«ãŒãã³ã®ã¢ã¯ã»ã¹ããžãã¯ãäžè²«ããŠããªã
- WRITEãDELETEããŸãã¯STARTã³ãã³ãã®åã®æ€èšŒãæ¬ èœããŠããŸã
- ç¶æ 管çã匱ããæä»£é ãã®ç䌌äŒè©±ãããŒ
ãããã®ã«ãŒã«ã¯ãç°å¢ãæ¥åæ©èœãç£æ»åºæºã«åºã¥ããŠã«ã¹ã¿ãã€ãºã§ããŸããç¹ã«ãå€ãéçºããŒã ãæ®ãã誀ã£ãä»®å®ãç¹å®ããã®ã«äŸ¿å©ã§ãã
ã€ã³ãã¯ããã¬ãŒã¹ããã¯ã«ãã修埩ã®å é
è匱æ§ããã©ã°ä»ãããããšãä¿®åŸ©ã¯æ¬¡ã®ããã«å éãããŸãã SMART TS XLã®ãã¬ãŒã¹æ©èœãããžãã¯åå²ãããã°ã©ã 颿°ããšã«ã以äžã®æ å ±ã衚瀺ã§ããŸãã
- ããã«ã€ãªãããã¹ãŠã®ååŒ
- åŒã³åºããã¹ãŠã®ã¢ãžã¥ãŒã«
- äŸåãããã¹ãŠã®å€æ°
- ãã€ãã¹ãããã¢ã¯ã»ã¹ããžãã¯
ãã®ãã¬ãŒã¹ãããã¯ãéçºè ãç£æ»äººããæ¬ é¥ãå€ç«ãããã®ãªã®ãããããšãã·ã¹ãã å šäœã«é²åºãããã®ãªã®ããå³åº§ã«ææ¡ããã®ã«åœ¹ç«ã¡ãŸãããŸããäŸåé¢ä¿ãæåã§ãããã³ã°ããæéãççž®ãããããé©çšæã«æ°ããªãã°ãæ··å ¥ãããªã¹ã¯ã軜æžããŸãã
çµè«ã𿬡ã®ã»ãã¥ãªãã£ã¬ãã¥ãŒæé
ã¬ã¬ã·ãŒCICSã¢ããªã±ãŒã·ã§ã³ã¯éèŠãªããžãã¹ããžãã¯ãä¿æããŠããŸããããã®å€ããšè€éãããã«ãæšæºçãªæ¹æ³ã§ã¯èŠèœãšãããã¡ãªã»ãã¥ãªãã£äžã®ç²ç¹ãååšããŸããéçè§£æã¯ãç¹ã«æ§æãã³ãŒãã¹ããããã ãã§ãªãããã©ã³ã¶ã¯ã·ã§ã³å šäœã«ãããããåºç¯ãªå¶åŸ¡ãããŒãã¢ã¯ã»ã¹ã®æ³å®ã察象ãšããããšã§ãé ãããªã¹ã¯ãæªçšãããåã«ç¢ºå®ã«çºèŠããææ®µãšãªããŸãã
ãã®èšäºã§ã¯ãCICS ã·ã¹ãã ç¹æã®æ¬ é¥ã®çš®é¡ã«ã€ããŠæ€èšŒããŸããã
- ççµåããã°ã©ã ã«åæ£ãããèªèšŒããžãã¯
- æ€èšŒãªãã®ASSIGNãADDRESSãªã©ã®è匱ãªã³ãã³ããã¿ãŒã³
- éåžžã®ãã§ãã¯ããã€ãã¹ãããã©ãŒã«ããã¯ãã©ã³ã¶ã¯ã·ã§ã³ãšãããã°ãã¹
- åŒã³åºãå ããã®ä¿¡é Œã§ããå ¥åãåæãšããåå©çšã«ãŒãã³
å€§èŠæš¡ãªCICSããŒããã©ãªãªãéçšããçµç¹ã«ãšã£ãŠãã»ãã¥ãªãã£ã«å¯Ÿããæççãªã¢ãããŒãã¯ãã¯ãéçšããŸãããçŸä»£ã®è åšã¯ãæ°çŸãã®ã¢ãžã¥ãŒã«ã«åãããåäžã®èŠèœãšããæªçšããå¯èœæ§ããããŸãã詳现ãªã³ã³ããã¹ãèªèãåããéçåæãé©çšããããšã§ããããã®åé¡ãå®éã«çºçããåããããã¯ç£æ»ã«çŽé¢ããåã«ããããã®åé¡ãæããã«ããããšãã§ããŸãã
次ã®ã¹ããããšããŠæ€èšãã¹ãéèŠãªã¢ã¯ã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
- ãã¹ãŠã®XCTLããã³LINKãã¹ãå«ãå®å šãªãã©ã³ã¶ã¯ã·ã§ã³ã»ããã°ã©ã ããããäœæãã
- ç¹æš©æäœãå®è¡ããå ±æããžãã¹ ããžãã¯ãç¹å®ããŠãªãã¡ã¯ã¿ãªã³ã°ãã
- commarea ãã©ã°ãŸãã¯ã¿ãŒããã«ããŒã¹ã®æ±ºå®ã«ãã£ãŠåœ±é¿ãåãããã¹ãŠã®ãã©ã³ããç£æ»ããŸãã
- åãã©ã³ã¶ã¯ã·ã§ã³ã®ãšã³ããªãã€ã³ãã§ã»ãã¥ãªãã£æ€èšŒã確ç«ãã
- æå³ããªãé²åºã«å¯Ÿãããã©ãŒã«ããã¯ããžãã¯ãšç·æ¥ãã¹ã確èªãã
ãã®ããã»ã¹ãå éããæäœæ¥ã®åŽåãåæžãããããŒã ã«ãšã£ãŠã次ã®ãããªããŒã«ã¯ SMART TS XL CICS ã¢ãŒããã¯ãã£ã«åãããŠã«ã¹ã¿ãã€ãºãããéçåæãæäŸããå®å šãªãããŒè¿œè·¡å¯èœæ§ãåããå®å šãªãªãã¡ã¯ã¿ãªã³ã°ãå¯èœã«ããŸãã
ã¡ã€ã³ãã¬ãŒã ç°å¢ãä¿è·ããã«ã¯ãèŠæã ãã§ãªãå¯èŠæ§ãå¿ èŠã§ãããããŠãéçè§£æã¯ããã®äž¡æ¹ãå®çŸã§ããæ°å°ãªãææ³ã®äžã€ã§ãã