ITKeyword,专注技术干货聚合推荐

注册 | 登录

CICS Client编程

kraussyin 分享于 2009-07-23

2020腾讯云共同战“疫”,助力行业复工(优惠前所未有!),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1053

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

1.概念

两种方式:

External Call Interface,ECI;

External Presentation Interface,EPI。

ECI:COMMAREA;

EPI:3270数据流。

 

2.Client API

CICS_ExternalCall:

cics_sshort_t CICSCALL CICS_ExternalCall(ECI_PARMS CICSPTR
*EciParms);

只有一个参数,通过它进行控制。

参数域说明:

eci_call_type:控制调用类型:同步/异步程序执行调用、同步/异步状态查询调用、回复查询调用。

eci_system_name:CICS Server名称。

Region Name(RPC Client)。

Client定义的Server Instance名称(Universal Client)。

eci_userid。

eci_password。

eci_commarea:通讯数据区(线性缓冲区),调用前存放将要传至Server的数据,调用返回后,其中存放Server传回的数据。

eci_commarea_length:数据区的长度,该值应设为上传和返回数据长度两者中的较大值,若上传实际数据长度小于该值,数据后的空间应以NULL字符填充。

 

3.程序执行调用

eci_program_name:请求执行的Server程序名;

同步调用:eci_call_type = ECI_SYNC;

异步调用:eci_call_type = ECI_ASYNC;

eci_message_qualifier = xxxx (可选)标示每一个异步调用,回复查询调用时使用,以便获得特定的调用返回结果;

eci_callback:回调函数。

 

4.LUW的管理

LUW可以由唯一一个程序执行调用构成或通过扩展(Extend)调用由多个顺序执行的程序调用构成。

eci_luw_token:标识LUW。eci_luw_token取值由ECI自动生成,LUW中的第一个程序调用时,eci_luw_token应设为ECI_LUW_NEW,该调用返回后,eci_luw_token中即保存了ECI生成的数值,该LUW中后续程序调用的eci_luw_token应保持该值不变。

eci_extend_mode:栏位LUW是否扩展、提交或回滚。可选值:

  • ECI_NO_EXTEND;
  • ECI_EXTENDED;
  • ECI_COMMIT(不能和eci_program_name)栏位同时设置;
  • ECI_BACKOUT(不能和eci_program_name)栏位同时设置。

当程序出错时,eci_extend_mode的值表示LUW的状态。

 

5.状态查询

eci_commarea:指向ECI状态模块的指针,返回结果存放其中;

eci_commarea_length =ECI_STATUS_LENGTH;

eci_extend_mode=ECI_STATE_IMMEDIATE;

同步调用:eci_call_type = ECI_STATE_SYNC;

异步调用:eci_call_type = ECI_STATE_ASYNC;

eci_message_qualifier =xxxx(可选)标示每一个异步调用,回复查询调用时使用以便获得特定的调用返回结果。

 

6.检测状态变化

为ECI指定一个特定的状态,一旦ECI实际状态与指定状态不符将得到提示。只能是异步调用。

eci_commarea:指向ECI状态模块的指针,返回结果存放其中;

eci_commarea_length=ECI_STATUS_LENGTH;

eci_extend_mode=ECI_STATE_CHANGED;

eci_call_type=ECI_STATE_ASYNC;

eci_message_qualifier=xxxx(可选),标示每一个异步调用,回复查询调用时使用以便获得特定的调用返回结果;

eci_luw_token=ECI_LUW_NEW。

调用返回后,该栏位存放一个有ECI生成的值,标示该检测。用于取消检测时,指定操作对象。

 

7.取消状态检测

eci_commarea=NULL;

eci_commarea_length=0;

eci_extend_mode=ECI_STATE_CANCEL;

eci_call_type=ECI_STATE_SYNC;

eci_luw_token:请求检测状态调用该栏位的返回值。

 

8.回复查询调用

获得异步调用的返回结果。

回复查询调用分为如下类型(eci_call_type):

  • ECI_GET_REPLY:获得任何异步调用的返回结果,若无回应,立即返回;
  • ECI_GET_REPLY_WAIT:获得任何异步调用的返回结果,若无回应,等待;
  • ECI_GET_SPECIFIC_REPLY:获得指定异步调用的返回结果,若无回应,立即返回;
  • ECI_GET_SPECIFIC_REPLY_WAIT:获得指定异步调用的返回结果,若无回应,等待。

eci_message_qualifier:设为相应异步调用该栏位的返回值;

eci_commarea:若取得程序执行调用的回复,其中存放Server返回的数据,若取得状态查询调用的回复,其中存放ECI状态模块;

eci_commarea_length:相应COMMAREA的长度。

 

9.Client程序编译

包含CICS_ECI.h,链接相应库。

1.概念 两种方式: External Call Interface,ECI; External Presentation Interface,EPI。 ECI:COMMAREA; EPI:3270数据流。   2.Client API CICS_ExternalCall: cics_sshort_t CICSCALL

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。