Duangw

CICS Client编程

索引:

  1. 概念
  2. Client API
  3. 程序执行调用
  4. LUW的管理
  5. 状态查询
  6. 检测状态变化
  7. 取消状态检测
  8. 回复查询调用
  9. Client程序编译

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_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_message_qualifier:设为相应异步调用该栏位的返回值;

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

eci_commarea_length:相应COMMAREA的长度。

 

9.Client程序编译

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