CICS事务失败,异常终止U4038



这是CICS COBOL程序:-

IDENTIFICATION DIVISION.            
PROGRAM-ID. ELECPRG.                
ENVIRONMENT DIVISION.               
INPUT-OUTPUT SECTION.               
FILE-CONTROL.                     
SELECT INFL ASSIGN TO INFLDD    
ORGANIZATION IS LINE SEQUENTIAL 
ACCESS MODE IS SEQUENTIAL       
FILE STATUS IS FS.              
DATA DIVISION.                      
FILE SECTION.                       
FD INFL.                            
01 ELEC-REC.                        
05 P-NUM PIC X(5).              
05 FILLER PIC X(1).             
05 C-NAME PIC X(10).            
05 FILLER PIC X(1).                           
05 C-UNIT PIC X(4).                           
WORKING-STORAGE SECTION.                          
COPY ELECMAP.                                   
01 WS-MSG PIC X(20) VALUE 'BILL PROD DB UPDATE'.
01 FS     PIC 9(2).                             
PROCEDURE DIVISION.                               
000-MAIN.                                         
MOVE LOW-VALUES TO ELBILLI, ELBILLO           
PERFORM 100-SEND-MAP.                         
PERFORM 200-RECEIVE-MAP.                      
PERFORM PROCESS-DATA.                         
PERFORM FILE-FUNC.                            
PERFORM 100-SEND-MAP.                         
PERFORM 300-RETURN.                           
STOP RUN.                                     
100-SEND-MAP.                                     
EXEC CICS         
SEND                                 
MAP('ELBILL') MAPSET('ELECMAP')      
ERASE                                
END-EXEC.                            
200-RECEIVE-MAP.                         
EXEC CICS                            
RECEIVE                              
MAP('ELBILL') MAPSET('ELECMAP')      
END-EXEC.                            
PROCESS-DATA.                            
MOVE CUSNOI TO CUSNOO.               
MOVE NAMEI TO NAMEO.                 
MOVE UNITSI TO UNITSO.               
MOVE UNITSI TO BILLO.                
MOVE WS-MSG TO MSGO.                 
FILE-FUNC.                               
OPEN OUTPUT INFL.                    
DISPLAY 'OPEN FILE STATUS IS' FS.   
MOVE CUSNOI TO P-NUM.               
MOVE NAMEI TO C-NAME.               
MOVE UNITSI TO C-UNIT.              
WRITE ELEC-REC.                     
DISPLAY 'WRITE FILE STATUS IS' FS.  
CLOSE INFL.                         
DISPLAY 'CLOSE FILE STATUS IS' FS.  
300-RETURN.                             
EXEC CICS                           
RETURN                              
END-EXEC.             

Mine编译jcl:-

//CICSCOB JOB CLASS=A,MSGCLASS=A,NOTIFY=&SYSUID,MSGLEVEL=(1,1)  
//PROCLIB JCLLIB ORDER=DFH320.CICS.SDFHPROC                     
//STEP01 EXEC PROC=DFHYITVL,                                    
//            INDEX='DFH320.CICS',                              
//            AD370HLQ='IGY410',                                
//            LE370HLQ='CEE',                                   
//            PROGLIB='DFH320.CICS.SDFHLOAD',                   
//            DSCTLIB='DFH320.CICS.SDFHMAC'                     
//TRN.SYSIN DD DISP=SHR,DSN=RAHUL.COBOL.PROGRAM(ELECPRG)        
//INFLDD DD DSN=RAHUL.CICS.OUTPUT,DISP=SHR                      
//LKED.SYSIN DD *                                               
NAME ELECPRG(R)                                          
/*      

编译完成一个条件代码=0004,很少有警告。但是,当我在CICS中执行事务时,它终止于CICS transaction ELEC失败,异常终止U4038。

我不明白这个问题的本质。我只想从CICS屏幕输入更新数据集RAHUL.CICS.OUTPUT。提供了输出文件位置。如果没有文件使用程序运行良好,就不会发生异常终止。

此程序是COBOL文件控制命令和CICS SEND/RECEIVE MAP命令的组合。CICS事务中不支持诸如OPEN、READ、WRITE和CLOSE之类的COBOL文件命令。在CICS程序中,您必须使用本文所述的CICS APIhttps://www.ibm.com/docs/en/cics-ts/5.5?topic=programs-理解文件控制

最新更新