2012-02-07 96 views
8

我想了解僞會話和會話CICS編程之間的差異。每種方法的優點和缺點是什麼?僞會話與會話CICS編程有什麼優勢?

+3

嘿downvoters ...這是一個嚴重的問題。如果OP詢問REST或MVC的特點,你會如此迅速地倒下嗎? – NealB 2012-02-07 12:47:08

+0

@NealB - 最初提出的問題有點粗糙,但現在應該處於更清潔的狀態。 – 2012-02-07 17:16:53

+3

這應該重新打開。這是一個非常明確和合法的問題。 – JackCColeman 2014-01-05 20:28:21

回答

1

簡而言之,僞轉換代碼不包含EXEC CICS發送映射,但不包含EXEC CICS接收映射,而沒有介入邏輯EXEC CICS RETURN。因此,您的程序在用戶「思考時間」期間不會佔用CICS資源。

當您的程序EXEC CICS RETURNs時,您可以將狀態信息保存在commarea(傳統)或帶有一個或多個容器(自CICS TS 3.1以後)的通道中。

還有更多的細節,但這是它的裸骨。

5

這裏是一個鏈接comparing conversational and pseudo conversational CICS

的基本區別在於,在會話CICS的處理(程序)是「活的」和保持的資源(例如存儲器, 數據庫鎖) 在等待一個事件(例如,用戶從屏幕圖提供的數據)。 在僞會話CICS中,進程「等待」(CICS RETURN),同時等待 以使事件發生。開始一個新的工作單元,並響應觸發事件重新分配資源。

僞對話式CICS經常用於在CICS中構建交互式應用程序。這種技術是資源高效的 ,因爲內存和數據庫鎖定在用戶「思考」時釋放 - 這是大部分時間。淨效益是 更有效地使用資源,但由於它要由程序員確保事務完整性(由於在「對話」過程中失去鎖定),因此需要更多努力來管理數據庫一致性。

本概述僅涵蓋該主題的精髓。除此之外還有更多,但它是一個開始。

8

NealB的回答是一個很好的,你應該閱讀

IBM's description

主要優勢僞談話節目減少計算機資源的使用,他們不能持有數據庫鎖。

-------------------------------------------------------------- 

我要去嘗試,並表示在非IBM大型機條款

在對話式編程的答案,該程序發送屏幕,並等待用戶響應。 該方案將堅持到內存,數據庫資源等

Send Screen and wait for a users response 
    Evaluate user-response 
    when PF2 
     Do Something 
    when PF3  
     Do Some Thing else 

僞對話式編程基本上是基於事件的編程的另一個名字。

  • 僞對話程序響應用戶操作或事件(即PF鍵)。當
    1. 發起者/由另一程序調用
    2. 用戶不特定動作(例如,點擊輸入/包鍵)
    3. 甲僞會話程序僅運行。 在兩者之間tims-所有資源被釋放

僞談話節目是有點像Java的揮杆的ActionListener(或任何其他Swing,網絡,SWT當量)

我傾向於像

Initialise and get-screen and user-action 
    Evaluate 
    when initial-entry 
     Initial stuff 
     Send initial screen 

    When PF2 /* Delete Action */ 
     Do Delete 
     Send Response 
    When PF3 /* Insert Action */ 
     ...... 
    end-evaluate 
    exit program 

在Java的迴轉體CICS可以編寫上面

Class MyScreen implements ActionListener { 

    public MyScreen() { 
     Initial stuff 
     Add this actionlistners to various buttons 
     Display screen 
    } 


    public void actionPerformed(ActionEvent e) { 

     if (e.getSource() == deleteButton) { 
      Do Delete 
      update screen 
     } else if (e.getSource() == insertButton) { 
      ....... 
     } 
    } 
} 

對於那些不是來自大型機背景的人,CICS像任何Web服務器一樣是一個應用程序服務器,但CIC不是發送網頁和接收HTML請求,而是發送和3270終端屏幕並接收來自終端的響應。

注意:CIC也可以用作Web服務器。