我试图理解伪对话和对话CICS编程之间的区别。每种方法的优点和缺点是什么?
答案 0 :(得分:9)
NealB的答案很好,你应该阅读
伪对话程序的主要优点是减少了计算机资源的使用,并且无法保存数据库锁。
--------------------------------------------------------------
我将尝试在非IBM-Mainframe条款中表达答案
在对话式编程中,程序发送一个屏幕并等待用户响应。 该程序将保留内存,数据库资源等。
即
Send Screen and wait for a users response
Evaluate user-response
when PF2
Do Something
when PF3
Do Some Thing else
伪对话编程基本上是基于事件编程的另一个名称。
伪对话程序有点像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
在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请求,而是发送和3270终端屏幕,并从终端接收响应。
注意:CIC也可以用作Web服务器。
答案 1 :(得分:5)
这是一个链接comparing conversational and pseudo conversational CICS
基本区别在于,在会话CICS中,一个进程(程序)是“活着的”并且持有资源(例如内存, 数据库锁) 在等待事件时(例如,用户从屏幕地图提供的数据)。 在伪对话CICS中,进程在等待时“死”(CICS RETURN) 发生事件。启动新的工作单元并重新分配资源以响应触发事件。
Pseudo converstional CICS经常用于在CICS中构建交互式应用程序。该技术是资源有效的 因为在用户“思考”时释放内存和数据库锁 - 这在大多数情况下都是如此。净收益是 更有效地使用资源,但管理数据库一致性需要更多的努力,因为它取决于 程序员,以确保交易的完整性(由于在“对话”过程中失去锁定)。
本大纲仅涵盖该主题的精髓。除此之外还有很多东西,但这是一个开始。
答案 2 :(得分:1)
简短的回答是,伪对话代码不包含EXEC CICS SEND MAP,逻辑上后跟EXEC CICS RECEIVE MAP,没有介入的逻辑EXEC CICS RETURN。因此,在用户“思考时间”期间,您的程序不会消耗CICS资源。
当您的程序执行CICS RETURN时,您可以将状态信息保存在逗号(传统)或具有一个或多个容器的通道中(自CICS TS 3.1起)。
还有更多细节,但这只是它的基础。