【问题标题】:What are the advantages of pseudo conversational vs conversational CICS programming?伪会话与会话 CICS 编程的优势是什么?
【发布时间】:2012-02-07 06:57:18
【问题描述】:

我试图了解伪对话式和对话式 CICS 编程之间的区别。每种方法的优缺点是什么?

【问题讨论】:

  • 嘿downvoters...这是一个严肃的问题。如果 OP 询问 REST 或 MVC 的特点是什么,您会这么快就投反对票吗?
  • @NealB - 最初提出的问题有点粗糙,但现在应该处于更清晰的状态。
  • 这应该重新打开。这是一个非常清楚和合理的问题。
  • 这是一个完全可以理解的问题。任何在大型机上具有 CICS 编程经验的人都应该了解它

标签: cobol mainframe cics


【解决方案1】:

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. 用户执行某些操作(例如,按回车键/pk 键)。 中间时间- 释放所有资源

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

我倾向于像这样构建 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
   

在 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) {
          .......
       }
   }
 }

对于那些没有大型机背景的人来说,CICS 与任何 Web 服务器一样是一个应用程序服务器,但不是发送网页和接收 HTML 请求,而是 CIC 发送和 3270 终端屏幕并接收来自终端的响应。

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

【讨论】:

    【解决方案2】:

    这是一个链接comparing conversational and pseudo conversational CICS

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

    伪转换 CICS 经常用于在 CICS 中构建交互式应用程序。这种技术是资源有效的 因为内存和数据库锁是在用户“思考”时释放的——这是大多数时候。净收益是 更有效地使用资源,但管理数据库一致性需要更多的努力,因为它取决于 程序员确保事务完整性(由于在“对话”过程中丢失锁)。

    本大纲仅涵盖主题的本质。远不止于此,但这只是一个开始。

    【讨论】:

      【解决方案3】:

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

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

      还有更多细节,但仅此而已。

      【讨论】:

        猜你喜欢
        • 2010-09-30
        • 2012-05-12
        • 2018-08-27
        • 2014-05-24
        • 2010-10-03
        • 1970-01-01
        • 2017-08-31
        • 2011-10-27
        • 2015-10-12
        相关资源
        最近更新 更多