伪对话与对话CICS编程有什么优势?

Ric*_*ian 9 cobol mainframe cics

我试图理解伪对话和对话CICS编程之间的差异.每种方法的优点和缺点是什么?

Bru*_*tin 9

NealB的答案很好,你应该阅读

IBM的描述

伪会话程序的主要优点是减少了计算机资源的使用,并且它们无法保存数据库锁.

  --------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我将尝试在非IBM-Mainframe条款中表达答案

在对话编程中,程序发送一个屏幕并等待用户响应.该程序将保留内存,数据库资源等.

   Send Screen and wait for a users response
   Evaluate user-response
   when PF2
      Do Something
   when PF3    
      Do Some Thing else
Run Code Online (Sandbox Code Playgroud)

伪对话编程基本上是基于事件编程的另一个名称.

  • 伪对话程序响应用户操作或事件(即PF键).
  • 伪对话程序仅在运行时运行
    1. 由另一个程序启动/调用
    2. 用户执行某些操作(例如,命中输入/ pk-key).中间时间 - 所有资源都被释放

伪对话程序有点像Java swing中的ActionListener(或任何其他Swing,Web,SWT等价物)

我喜欢结构CICS

   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
Run Code Online (Sandbox Code Playgroud)

在java-Swing中你可以把上面写成

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) {
          .......
       }
   }
 }
Run Code Online (Sandbox Code Playgroud)

对于从大型机背景那些不,CICS是一个应用程序服务器像任何Web服务器,而不是发送网页和HTML recieving请求,中投公司将和3270终端屏幕和临危从终端的响应.

注意:CIC也可以用作Web服务器.


Nea*_*alB 5

这是一个比较会话和伪对话CICS的链接

基本区别在于,在会话CICS中,进程(程序)是"活动的"并且在等待事件时保持资源(例如,存储器,数据库锁)(例如,用户从屏幕图提供的数据).在伪对话CICS中,进程在等待事件发生时"死亡"(CICS RETURN).启动新的工作单元并重新分配资源以响应触发事件.

伪转换CICS经常用于在CICS中构建交互式应用程序.这种技术是资源高效的,因为在用户"思考"时释放内存和数据库锁 - 这在大多数情况下都是如此.净效益是更有效地使用资源,但是管理数据库一致性需要更多的努力,因为程序员需要确保事务完整性(由于在"会话"过程中失去锁定).

该大纲仅涵盖该主题的本质.除此之外还有很多东西,但这是一个开始.


csc*_*eid 1

简短的回答是,伪会话代码不包含 EXEC CICS SEND MAP,逻辑上后跟 EXEC CICS RECEIVE MAP,而无需介入逻辑 EXEC CICS RETURN。因此,您的程序在用户“思考时间”期间不会消耗 CICS 资源。

当您的程序 EXEC CICS RETURN 时,您可以将状态信息保存在逗号(传统)或具有一个或多个容器的通道中(自 CICS TS 3.1 起)。

还有更多细节,但这只是其基本内容。