- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EasyCICS编程入门
第二章 编程
我经常听一些人大谈把两层C/S结构的应用转为三层C/S结构的应用,无论说的,还是听的,都兴高采烈,频频点头:好,好!转吧。不过,具体怎么“转”呢?是不是把两层C/S结构的程序放到什么容器里“煮”一下,再取出来就可以“吃”了?当然不行,看来一个“转”字还颇有点儿学问。如果您原来靠游泳过河,那我教您一种划船过河的方法,这条船就是中间件CICS——当然您不能靠划船的经验来驱动它,CICS需要的是——编程。学划船很简单,学CICS编程也一样简单,读了本章的内容就会知道。
如果读者想用COBOL或JAVA来开发CICS的服务程序,请参阅CICS的其它技术资料,这里只提供了C语言的例子。不过,这里提供了几乎所有常用的前端开发工具作为CICS客户的例子,也许这正是您所需要的,那么,请认真阅读后面的内容。
如果您已经有足够多的预备知识,可以先阅读下一章,在建好一个实验环境后,再回到本章。
2.1 建立一个简单的CICS应用
2.1.1 您的第一个CICS程序:GETTIME
我们将要看到的这个CICS程序基本没有用到CICS强大的事务处理监控能力,所以更象是一个两层C/S的应用。但是因为它如此简单,我还是把它做为您学习CICS的入门程序。
做过UNIX或NT的服务程序(UNIX经常叫DAEMON程序)朋友,会发现CICS服务程序非常容易实现,因为您不必去处理Socket、Named Pipe或FIFO之类的东西。是的,如果不考虑价格因素,用CICS去实现许多一般的服务程序可是个省事的好办法。
设想某公司要投资开发一个叫GETTIME的服务程序,其功能是公布服务器的时间,供他们的各种前端客户程序使用。这些程序必须能运行于各种常用的UNIX平台和WINDOWS NT,甚至可以移植到AS400和IBM大型机上。正在公司的编程高手们纷纷摩拳擦掌,准备大干一场时,一个初级的CICS程序员突然宣布他已在5分钟内完成了任务,并将得到一笔可观的报酬——有这种好事吗?那我们不妨就来看看GETTIME的CICS解决方案。
这是C语言作的CICS服务程序的清单(注意,这个源程序可以不加修改的运行在支持CICS的各种操作系统平台上):
#include time.h
#include easycics.h
void main(){
struct tm *newtime;
time_t aclock;
if( InitEasyCics() ) ExitEasyCics(); /* [A] */
BeginWrite(); /* [B] */
time( aclock );
newtime= localtime( aclock );
SetValue( TIME, asctime(newtime) ); /* [C] */
ExitEasyCics(); /* [D] */
}
清单 2-1-1 (gettime.ccs)
客户程序更加简单,下面是一些例子:
1、ANSI C的客户程序见清单2-1-2:
#include ec.h
void main(){
char s[200];
ConnectServer( CICSNT01, TEST, TEST ); /* [A] */
CallProgramAndCommit(GETTIME); /* [B] */
GetValue( TIME, s ); /* [C] */
puts(s);
}
清单 2-1-2
以下是运行结果:
D:\cicsgettime
Thu Jan 27 17:35:14 2000
清单 2-1-3
2、使用OLE可以支持Windows上的各种开发工具,例如:Visual C,Visual Basic,Power Builder,Delphi,C++Builder,Lotus Notes,Internet Explorer等。下面是Visual Basic的例子(PowerBuilder和Delphi的客户程序几乎可以照搬这段代码):
Sub main()
Dim oEc As Object
Dim r%
Set oEc = CreateObject(EasyCics.App) ‘[A]
r = oEc.ConnectServer(CICSNT01, TEST, TEST) ‘[B]
oEc.CallProgramAndCommit GETTIME ‘[C]
MsgBox oEc.GetValue(TIME) ‘[D]
End Sub
清单 2-1-4
以下是运行结果:
图 2-1-1
3、如果使用JAVA,可以无须重新
文档评论(0)