1

データ型 X(6),9(8) の 2 つの入力フィールドを持つマップがあります。これら 2 つの値を cobol-cics プログラムの以下の変数に格納します。

01 SCREEN-DATA.        
05 ACTNUM PIC X(6). 
05 AMOUNT PIC 9(8). 

ここで、これら 2 つの値を cobol-db2 プログラムに渡します。

CALL UPDATEPROG USING ACTNUM,AMOUNT.

私の更新プログラムでは:

LINKAGE SECTION.                                                 
01 DEPOSITPARAMS.                                                
05 ACTNUM PIC X(6).                                           
05 AMOUNT PIC 9(8).                                           
PROCEDURE DIVISION USING DEPOSITPARAMS.                          
MOVE ACTNUM TO ACCOUNT-NUMBER.

ACCOUNT-NUMBER は、作成したテーブルのホスト変数です。プログラムの実行には問題ありませんが、マップで詳細を入力して Enter キーを押すと、異常終了します。MOVE 071250 TO ACCOUNT-NUMBER のような静的な値を指定したとき。正常に動作しており、クエリを使用してテーブルから値を更新および取得できました。この異常終了の原因は何でしょうか。この問題で私を助けてください

これらは DCLGEN で作成された私のホスト変数です

01  DCLACCOUNT-MASTER.                            
10 ACCOUNT-NUMBER       PIC X(6).                   
10 ACCOUNT-HOLDER       PIC X(20).                  
10 ACCOUNT-BALANCE      PIC S9(8)V9(2) USAGE COMP-3.
10 LAST-UPDT-DATE       PIC X(10).                  
10 OPENNING-DATE        PIC X(10).     

私が行ったもう1つの観察は、ACTNUM変数、つまりリンケージセクション変数を使用している場所です。私は異常終了しています

4

3 に答える 3

4

異常終了コードのASRAを意味していると思います。

コア ダンプを調べます。TESTオプションを使用してコンパイルした場合は、ワーキング ストレージ、ローカル ストレージ、およびリンケージ セクションの変数とそれらの値を示す書式設定されたダンプが得られます。AMOUNT フィールドに数値以外の値が含まれていると思われます。

CICS では、コア ダンプは CESE 一時データ キューに書き込まれ、多くの場合、CICS システム プログラマによって CICS 領域の CEEMSG DD にマップされます。CEE3845 で検索を実行して、コア ダンプの先頭を見つけます。これは、言語環境プログラム メッセージのメッセージ ID であり、問​​題の原因と異常終了の原因の詳細な説明が含まれています。

于 2012-04-21T12:47:57.587 に答える
1

マップを読み取る領域の COBOL 定義が、マップによって返される領域と実際に一致することを確認します。CEDF を実行して、呼び出しから戻ったときに READ MAP が設定されている領域を注意深く確認することをお勧めします。不一致が見つかると思います。

于 2012-04-22T03:50:17.260 に答える
0

コードに、これを追加します。

リンケージセクション。
01 DEPOSITPARAMS.
05 LINKAGE-REF S9(4) COMP-3。

05 ACTNUM PIC X(6)。
05 AMOUNT PIC 9(8)。

于 2016-03-28T16:58:29.040 に答える