伪会话与会话 CICS 编程的优势是啥?

Posted

技术标签:

【中文标题】伪会话与会话 CICS 编程的优势是啥?【英文标题】: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 编程经验的人都应该了解它 【参考方案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 键)。 伪对话程序仅在以下情况下运行
    由另一个程序启动/调用 用户执行某些操作(例如,按回车键/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 起)。

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

【讨论】:

以上是关于伪会话与会话 CICS 编程的优势是啥?的主要内容,如果未能解决你的问题,请参考以下文章

ssl缓存是啥意思

会话与会话工厂之间的差异 - 休眠?

缓存与会话的优势

会话数据的用途是啥?

Oracle的连接与会话

多点连接 - 以编程方式断开对等点