CICS TDQ概述2

1.8 寫臨時存儲隊列

對隊列增加一個新記錄項的命令為:

說明:

以上命令中 QUEUE(name): 指定隊列名,1-8個位元組

QNAME( name):同QUEUE,但可指定1-16 位元組長的隊列名字

FROM( data-area):指定要寫入QUEUE 的數據區

LENGTH( data-value):半字長二進位參數,指定要寫入的位元組數

ITEM( data-area):半字長二進位參數,指定要寫入的記錄號(與REWRITE 選項同時使用)

NUMITEMS( data-area):半字長二進位參數,CICS用來返回寫入後隊列里一共有多少 記錄

REWRITE:指明更新一條記錄的數據

MAIN:指明TSQ 數據存放在內/主存

1.9 讀取臨時存儲隊列

EXEC CICS READQ TS

QUEUE(name)

INTO(data-area)

LENGTH(data-area)

[ITEM(data area) | NEXT]

[NUMITEMS (data-area )]

END-EXEC

1.10臨時存儲隊列的刪除

1.11臨時存儲順序輸出例子

WORKI1NG-STORAGE SECTION

01 WRKFLDS

05 TS-RECL PIC S9(4) COMP VALUE 80.

05 TS-ERR CODE PIC S9(8) COMP.

05 TS-ITEMNO PIC S9(4) COMP.

05 TS- ID PIC X(8).

PROCEDURE DIVISION.

STRING EIBTRMID EIBTRNID DELIMITED BY SIZE INTO TS-ID.

EXEC CICS WRITEQ TS QUEUE(TS-ID)

FROM(TS-REC)

LENGTH(TS-RECL)

ITEM(TS-ITMENO)

RESP(TS-ER-CODE)

END EXEC.

IF TS-ERR-CODE NOT EQUAL DFHRESP(NORMAL)

PERFORM ERROR-ROUTINE

END-IF.

說明:

(1)該臨時存儲隊列ID是通過STRING命令動態構造的。開頭的四個位元組包含從EIB塊中的EIBTRMID欄位獲得的終端ID和結尾的四個字元包含從EIB獲得的事務ID。這描述了動態為在多終端上執行的事務創建唯一不重複臨時存儲ID的技術. (2)WRITEQ TS命令執行之後,TS-ITEMNO域包含了剛寫入的記錄的項目編號。我們可能希望把這個信息和其他記錄的標識一起存儲,以便以後對這個記錄的訪問和更 新。ITEM(TS-ITEMNO)將寫入的記錄的項目編號保存到 TS-ITEMNO變數中去。

1.12更新臨時存儲記錄例子

WORKING STORAGE SECTION

01 WRKFLDS

05 TS-RECL PIC S9(4) COMP VALUE S0.

05 TS-ERR-CODE PIC S9(8) COMP.

05 TS-ITEMNO PIC S9(4) COMP.

05 TS-ID PIC X(8).

01 TS-REC PIC X(80)

PROCEDURE DIVIS1ON

STRING EIBTRMID EIBTRNID DELIMITED BY SIZE INTO TS-ID.

MOVE 20 TO TS-ITEMNO.

EXEC CICS WRITEQ TSQ QUEUE(TS-ID)

REWRITE FROM(TS-REC)

LENGTH(TS-RECL)

ITEM(TS-ITEMNO)

RESP (TS-ERR-CODE )

END-EXEC.

IF TS-ERR-CODE NOT EQUAL DFHRESP(NORMAL)

PERFORM ERROR ROUT1NE

END-IF.

. . .

變數TS-ITEMNO用於WRITEQ命令的ITEM選項里。它必須包含要更新的隊列記錄的項目編號。

1.13 TSQ 和TDQ的區別

1、臨時存儲隊列的數據可以隨即讀取,而瞬時數據對列的數據必須順序讀取

2、臨時存儲隊列的數據可以反覆讀取,因為數據一直保持可用直到整個隊列被刪除;而瞬時數據隊列的數據只能讀一次

3、臨時存儲隊列中的數據可以修改,而瞬時數據隊列中的數據則不允許

4、臨時存儲隊列可以存儲到主存儲器或輔存,而瞬時數據隊列只能寫到磁碟上

5、臨時存儲隊列的名字可以動態定義,而瞬時數據隊列的名字必須事先定義到DCT中

6、臨時存儲隊列的名字長度最多為8個字元,而瞬時數據隊列為4個字元

1.14 CEBR命令

CICS為隊列的處理提供了一個專門的內部事務CEBR.

使用CEBR可以對當前CICS區域中的一些臨時存儲隊列的內容進行瀏覽。

CEBR默認打開與當前終端相關的TSQ。

CEBR命令在ENTER COMMAND===>後可輸入幾個命令:

1、         TERM 瀏覽其他終端的TSQ

2、         QUEUE 打開新的QUEUE

3、         PUT 把當前TSQ的內容拷貝到一個TDQ 中去

4、         GET 打開一個TDQ的內容來瀏覽

5、         PURGE 刪除當前TSQ的所有記錄

CICS隊列對於DFHCOMMAREA來說是存儲和比較信息的另一可選的方法。

在偽會話設計中,臨時存儲TS用作信息的存儲和比較的過程如圖所示.

1)在偽會話式的設計中,臨時存儲可能會被用於保留在第一部分的對話中提供給用戶的記錄數據。

2)當該記錄在會話的第二部分被讀出時,它就被與跟從臨時存儲器得到的存儲的數據相比較。

3)如果記錄沒有被其化的任務所修改,更新就會繼續;否則,用戶就會被提醒該記錄數據已被修改並且要選擇下一步要怎樣做。

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營

發表評論

您的電子郵箱地址不會被公開。 必填項已用*標註