我试图了解伪会话和会话 CICS 编程之间的区别。每种方法的优点和缺点是什么?
3 回答
NealB 的回答很好,你应该阅读
伪对话程序的主要优点是减少了计算机资源的使用,并且它们不能持有数据库锁。
--------------------------------------------------------------
我将尝试在非 IBM 大型机术语中表达答案
在对话式编程中,程序发送一个屏幕并等待用户响应。该程序将保留内存、数据库资源等。
IE
Send Screen and wait for a users response
Evaluate user-response
when PF2
Do Something
when PF3
Do Some Thing else
伪对话编程基本上是基于事件的编程的另一个名称。
- 一个伪会话程序响应用户操作或事件(即 PF 键)。
- 伪对话程序仅在以下情况下运行
- 由另一个程序启动/调用
- 用户执行某些操作(例如按回车键/pk 键)。在 tims 之间 - 所有资源都被释放
伪会话程序有点像 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 服务器。
这是一个比较会话和伪会话 CICS的链接
基本区别在于,在对话式 CICS 中,进程(程序)是“活动的”并在等待事件(例如,用户从屏幕地图提供的数据)时持有资源(例如内存、数据库锁)。在伪会话 CICS 中,进程在等待事件发生时“死亡”(CICS RETURN)。启动新的工作单元并重新分配资源以响应触发事件。
伪转换 CICS 经常用于在 CICS 中构建交互式应用程序。这种技术是资源高效的,因为内存和数据库锁是在用户“思考”时释放的——这是大多数时间。净收益是更有效地使用资源,但管理数据库一致性需要更多的努力,因为由程序员来确保事务完整性(由于在“对话”过程中失去锁定)。
本大纲仅涵盖该主题的本质。它的意义远不止于此,但它只是一个开始。
简短的回答是,伪对话代码不包含逻辑上后跟 EXEC CICS RECEIVE MAP 的 EXEC CICS SEND MAP,而没有中间的逻辑 EXEC CICS RETURN。因此,您的程序在用户“思考时间”期间不会消耗 CICS 资源。
当您的程序 EXEC CICS RETURNs 时,您可以将状态信息保存在逗号区域(传统)或具有一个或多个容器的通道中(自 CICS TS 3.1 起)。
还有更多细节,但这就是它的基本内容。