本版版主招募中

 
标题: 关于IBM CICS客户端开发求助
冰剑
LU新生
Rank: 1



UID 16427
精华 0
积分 2
帖子 4
活跃指数 1
LU金币 2008 个
LU金条 0 个
阅读权限 10
注册 2004-3-29
 
发表于 2004-4-7 11:28  资料  个人空间  短消息  加为好友 
现行的电力企业所使用的新系统是基于CICS的,客户端的开发使用的是IBM_CICS控件,我想请问那位高手有关于IBMCICS客户端开发控件下载!

顶部
dddbbbdyb
LU新生
Rank: 1



UID 17347
精华 0
积分 6
帖子 11
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2004-4-7
 
发表于 2004-4-7 12:28  资料  个人空间  短消息  加为好友 
ibm网站有得下。而且有很多版本的。

顶部
vanda_chensh
LU新生
Rank: 1



UID 17245
精华 0
积分 16
帖子 31
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2004-4-6
 
发表于 2004-4-7 23:53  资料  个人空间  短消息  加为好友 
/* 检测CICS状态 */
for( ip=0;ip<3;ip++)
{
printf("检测CICS状态..." );
rc = EciStateSync( pstPackage );
if (rc == ECI_NO_ERROR) break;

if ( ip >= 2 )
printf("CICS状态错误,交易放弃" );
else
printf("再次检测..." ) ;
}

if(rc !=ECI_NO_ERROR) return -1;

顶部
vanda_chensh
LU新生
Rank: 1



UID 17245
精华 0
积分 16
帖子 31
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2004-4-6
 
发表于 2004-4-7 23:59  资料  个人空间  短消息  加为好友 
/* 提交CICS交易 */
flag 通常为0, 除非有其他如在前台做commit等

switch( flag )
{
case 0 : mode = ECI_NO_EXTEND; luw = ECI_LUW_NEW; break;
case 1 : mode = ECI_EXTENDED; luw = ECI_LUW_NEW; break;
case 2 : mode = ECI_COMMIT; luw = EciParms.eci_luw_token; break;
case -1: mode = ECI_BACKOUT; luw = EciParms.eci_luw_token; break;
default: mode = ECI_NO_EXTEND; luw = ECI_LUW_NEW; break;
}

memset (&EciParms, 0, sizeof (ECI_PARMS));

EciParms.eci_version = ECI_VERSION_1A;
EciParms.eci_call_type = ECI_SYNC;
EciParms.eci_commarea = 通讯包;
EciParms.eci_commarea_length = 通讯包长度;
EciParms.eci_extend_mode = mode;
EciParms.eci_luw_token = luw;
EciParms.eci_timeout = 超时时间;
memcpy(&EciParms.eci_program_name, 后台PGM, 8);
memcpy(&EciParms.eci_system_name, 后台region,8);
memcpy(&EciParms.eci_userid, 后台cics用户,8);
memcpy(&EciParms.eci_tpn, 后台交易分类,4);

rc = CICS_ExternalCall (&EciParms);
Response1(result, rc, EciParms.eci_abend_code);
if (rc != ECI_NO_ERROR)
{
strcat(result, "AbendCode=" );
strncat(result, EciParms.eci_abend_code, 4);
}

return (rc==ECI_NO_ERROR)? 0:-1;

顶部
vanda_chensh
LU新生
Rank: 1



UID 17245
精华 0
积分 16
帖子 31
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2004-4-6
 
发表于 2004-4-8 00:06  资料  个人空间  短消息  加为好友 
EciStateSync( struct package *pstPackage )
{
char *Name = "ECI_STATE_SYNC";
short Rc;
char CommArea [ECI_STATUS_LENGTH];
ECI_STATUS EciStatus;
ECI_PARMS EciParms;
char *p, *q, *r;
char result[200];

memset (CommArea, '\0', ECI_STATUS_LENGTH);
memset (&EciParms, 0, sizeof (ECI_PARMS));

EciParms.eci_version = ECI_VERSION_1A;
EciParms.eci_call_type = ECI_STATE_SYNC;
EciParms.eci_commarea = CommArea;
EciParms.eci_commarea_length = ECI_STATUS_LENGTH;
EciParms.eci_extend_mode = ECI_STATE_IMMEDIATE;
EciParms.eci_luw_token = ECI_LUW_NEW;
EciParms.eci_timeout = 5;
memcpy(&EciParms.eci_system_name, pstPackage->sysd, 8);
memcpy(&EciParms.eci_userid, pstPackage->user, 8);

Rc = CICS_ExternalCall (&EciParms);
Response1(result, Rc, EciParms.eci_abend_code);

printf( "CICS状态检测结果[%s]: 主机[%s]用户[%s]密码[%s]",result , pstPackage->sysd, pstPackage->user, pstPackage->passwd
);

if (Rc == ECI_NO_ERROR)
{
memcpy (&EciStatus, CommArea, ECI_STATUS_LENGTH);
switch (EciStatus.ConnectionType)
{
case ECI_CONNECTED_NOWHERE:
p = "没有联接";
break;
case ECI_CONNECTED_TO_SERVER:
p = "主机端运行";
break;

case ECI_CONNECTED_TO_CLIENT:
p = "客户端运行";
break;
} /* endswitch */

switch (EciStatus.CicsServerStatus)
{
case ECI_SERVERSTATE_UNKNOWN:
q = "未知";
break;
case ECI_SERVERSTATE_UP:
q = "可用";
break;
case ECI_SERVERSTATE_DOWN:
q = "不可用";
break;
} /* endswitch */

switch (EciStatus.CicsClientStatus)
{
case ECI_CLIENTSTATE_UNKNOWN:
r = "未知";
break;
case ECI_CLIENTSTATE_UP:
r = "可用";
break;
case ECI_CLIENTSTATE_INAPPLICABLE:
r = "不可用";
break;
} /* endswitch */
printf( " 联接类型[%s] 主机状态[%s] 客户机状态[%s]" , p,q,r );
} /* endif */

return Rc;
}

顶部
vanda_chensh
LU新生
Rank: 1



UID 17245
精华 0
积分 16
帖子 31
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2004-4-6
 
发表于 2004-4-8 00:08  资料  个人空间  短消息  加为好友 
char * Response1(char *result, short Rc, char *Abend)
{
char *p=result;

switch (Rc)
{
case ECI_NO_ERROR:
strcpy(p, "OK ! "); break;
case ECI_ERR_INVALID_DATA_LENGTH:
strcpy(p, "ECI_ERR_INVALID_DATA_LENGTH"); break;
case ECI_ERR_INVALID_EXTEND_MODE:
strcpy(p, "ECI_ERR_INVALID_EXTEND_MODE"); break;
case ECI_ERR_NO_CICS:
strcpy(p, "ECI_ERR_NO_CICS "); break;
case ECI_ERR_CICS_DIED:
strcpy(p, "ECI_ERR_CICS_DIED "); break;
case ECI_ERR_REQUEST_TIMEOUT:
strcpy(p, "ECI_ERR_REQUEST_TIMEOUT "); break;
case ECI_ERR_RESPONSE_TIMEOUT:
strcpy(p, "ECI_ERR_RESPONSE_TIMEOUT "); break;
case ECI_ERR_TRANSACTION_ABEND:
strcpy(p, "ECI_ERR_TRANSACTION_ABEND "); break;
case ECI_ERR_EXEC_NOT_RESIDENT:
strcpy(p, "ECI_ERR_EXEC_NOT_RESIDENT "); break;
case ECI_ERR_SYSTEM_ERROR:
strcpy(p, "ECI_ERR_SYSTEM_ERROR "); break;
case ECI_ERR_NULL_WIN_HANDLE:
strcpy(p, "ECI_ERR_NULL_WIN_HANDLE "); break;
case ECI_ERR_NULL_MESSAGE_ID:
strcpy(p, "ECI_ERR_NULL_MESSAGE_ID "); break;
case ECI_ERR_THREAD_CREATE_ERROR:
strcpy(p, "ECI_ERR_THREAD_CREATE_ERROR"); break;
case ECI_ERR_INVALID_CALL_TYPE:
strcpy(p, "ECI_ERR_INVALID_CALL_TYPE "); break;
case ECI_ERR_ALREADY_ACTIVE:
strcpy(p, "ECI_ERR_ALREADY_ACTIVE "); break;
case ECI_ERR_RESOURCE_SHORTAGE:
strcpy(p, "ECI_ERR_RESOURCE_SHORTAGE "); break;
case ECI_ERR_NO_SESSIONS:
strcpy(p, "ECI_ERR_NO_SESSIONS "); break;
case ECI_ERR_NULL_SEM_HANDLE:

strcpy(p, "ECI_ERR_NULL_SEM_HANDLE "); break;
case ECI_ERR_INVALID_DATA_AREA:
strcpy(p, "ECI_ERR_INVALID_DATA_AREA "); break;
case ECI_ERR_INVALID_VERSION:
strcpy(p, "ECI_ERR_INVALID_VERSION "); break;
case ECI_ERR_UNKNOWN_SERVER:
strcpy(p, "ECI_ERR_UNKNOWN_SERVER "); break;
case ECI_ERR_CALL_FROM_CALLBACK:
strcpy(p, "ECI_ERR_CALL_FROM_CALLBACK "); break;
case ECI_ERR_INVALID_TRANSID:
strcpy(p, "ECI_ERR_INVALID_TRANSID "); break;
case ECI_ERR_MORE_SYSTEMS:
strcpy(p, "ECI_ERR_MORE_SYSTEMS "); break;
case ECI_ERR_NO_SYSTEMS:
strcpy(p, "ECI_ERR_NO_SYSTEMS "); break;
case ECI_ERR_SECURITY_ERROR:
strcpy(p, "ECI_ERR_SECURITY_ERROR "); break;
case ECI_ERR_MAX_SYSTEMS:
strcpy(p, "ECI_ERR_MAX_SYSTEMS "); break;
case ECI_ERR_MAX_SESSIONS:
strcpy(p, "ECI_ERR_MAX_SESSIONS "); break;
case ECI_ERR_ROLLEDBACK:
strcpy(p, "ECI_ERR_ROLLEDBACK "); break;
default:
sprintf(p,"Unknown Return Code : %-5d", Rc); break;
} /* endswitch */

return p;
}

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
冰剑
LU新生
Rank: 1



UID 16427
精华 0
积分 2
帖子 4
活跃指数 1
LU金币 2008 个
LU金条 0 个
阅读权限 10
注册 2004-3-29
 
发表于 2004-4-19 16:53  资料  个人空间  短消息  加为好友 
谢谢各们高手,但是我的意思不是手工的那种编程,我需要的是集成化的程序开发包

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
dagzhao
LU新生
Rank: 1



UID 7924
精华 0
积分 6
帖子 12
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 10
注册 2003-12-31
 
发表于 2004-4-27 17:42  资料  个人空间  短消息  加为好友 
QUOTE(冰剑 @ 2004-04-19 16:53:23)
谢谢各们高手,但是我的意思不是手工的那种编程,我需要的是集成化的程序开发包

EasyCics是IBM中国实验室针对IBM的CICS系统开发的一套简易的程序开发界面。它是主要目的是缓解数据交换的难度,便于各种前端开发工具访问CICS系统。EasyCics分为服务器和客户机两部分。服务器部分提供增强的C语言函数库和头文件,客户机部分提供C函数库和头文件,OLE组件,供C、VB、PB和DELPHI等开发者访问CICS时使用。
可以用这个,开发很简单的:)

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
 



当前时区 GMT+8, 现在时间是 2008-8-29 09:33
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.054497 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver