2004-4-7 11:28
冰剑
现行的电力企业所使用的新系统是基于CICS的,客户端的开发使用的是IBM_CICS控件,我想请问那位高手有关于IBMCICS客户端开发控件下载!
2004-4-7 12:28
dddbbbdyb
ibm网站有得下。而且有很多版本的。
2004-4-7 23:53
vanda_chensh
/* 检测CICS状态 */<br /> for( ip=0;ip<3;ip++)<br /> {<br /> printf("检测CICS状态..." );<br /> rc = EciStateSync( pstPackage );<br /> if (rc == ECI_NO_ERROR) break;<br /> <br /> if ( ip >= 2 )<br /> printf("CICS状态错误,交易放弃" );<br /> else<br /> printf("再次检测..." ) ;<br /> }<br /> <br /> if(rc !=ECI_NO_ERROR) return -1;
2004-4-7 23:59
vanda_chensh
/* 提交CICS交易 */<br /> flag 通常为0, 除非有其他如在前台做commit等<br /><br /> switch( flag )<br /> {<br /> case 0 : mode = ECI_NO_EXTEND; luw = ECI_LUW_NEW; break;<br /> case 1 : mode = ECI_EXTENDED; luw = ECI_LUW_NEW; break;<br /> case 2 : mode = ECI_COMMIT; luw = EciParms.eci_luw_token; break;<br /> case -1: mode = ECI_BACKOUT; luw = EciParms.eci_luw_token; break;<br /> default: mode = ECI_NO_EXTEND; luw = ECI_LUW_NEW; break;<br /> }<br /> <br /> memset (&EciParms, 0, sizeof (ECI_PARMS));<br /> <br /> EciParms.eci_version = ECI_VERSION_1A;<br /> EciParms.eci_call_type = ECI_SYNC;<br /> EciParms.eci_commarea = 通讯包;<br /> EciParms.eci_commarea_length = 通讯包长度;<br /> EciParms.eci_extend_mode = mode;<br /> EciParms.eci_luw_token = luw;<br /> EciParms.eci_timeout = 超时时间;<br /> memcpy(&EciParms.eci_program_name, 后台PGM, 8);<br /> memcpy(&EciParms.eci_system_name, 后台region,8);<br /> memcpy(&EciParms.eci_userid, 后台cics用户,8);<br /> memcpy(&EciParms.eci_tpn, 后台交易分类,4);<br /> <br /> rc = CICS_ExternalCall (&EciParms);<br /> Response1(result, rc, EciParms.eci_abend_code);<br /> if (rc != ECI_NO_ERROR)<br /> {<br /> strcat(result, "AbendCode=" );<br /> strncat(result, EciParms.eci_abend_code, 4);<br /> }<br /> <br /> return (rc==ECI_NO_ERROR)? 0:-1;
2004-4-8 00:06
vanda_chensh
EciStateSync( struct package *pstPackage )<br />{<br /> char *Name = "ECI_STATE_SYNC";<br /> short Rc;<br /> char CommArea [ECI_STATUS_LENGTH];<br /> ECI_STATUS EciStatus;<br /> ECI_PARMS EciParms;<br /> char *p, *q, *r;<br /> char result[200];<br /> <br /> memset (CommArea, '\0', ECI_STATUS_LENGTH);<br /> memset (&EciParms, 0, sizeof (ECI_PARMS));<br /> <br /> EciParms.eci_version = ECI_VERSION_1A;<br /> EciParms.eci_call_type = ECI_STATE_SYNC;<br /> EciParms.eci_commarea = CommArea;<br /> EciParms.eci_commarea_length = ECI_STATUS_LENGTH;<br /> EciParms.eci_extend_mode = ECI_STATE_IMMEDIATE;<br /> EciParms.eci_luw_token = ECI_LUW_NEW;<br /> EciParms.eci_timeout = 5;<br /> memcpy(&EciParms.eci_system_name, pstPackage->sysd, 8);<br /> memcpy(&EciParms.eci_userid, pstPackage->user, 8);<br /> <br /> Rc = CICS_ExternalCall (&EciParms);<br /> Response1(result, Rc, EciParms.eci_abend_code);<br /> <br /> printf( "CICS状态检测结果[%s]: 主机[%s]用户[%s]密码[%s]",result , pstPackage->sysd, pstPackage->user, pstPackage->passwd<br />);<br /> <br /> if (Rc == ECI_NO_ERROR)<br /> {<br /> memcpy (&EciStatus, CommArea, ECI_STATUS_LENGTH);<br /> switch (EciStatus.ConnectionType)<br /> {<br /> case ECI_CONNECTED_NOWHERE:<br /> p = "没有联接";<br /> break;<br /> case ECI_CONNECTED_TO_SERVER:<br /> p = "主机端运行";<br /> break;<br /><br /> case ECI_CONNECTED_TO_CLIENT:<br /> p = "客户端运行";<br /> break;<br /> } /* endswitch */<br /> <br /> switch (EciStatus.CicsServerStatus)<br /> {<br /> case ECI_SERVERSTATE_UNKNOWN:<br /> q = "未知";<br /> break;<br /> case ECI_SERVERSTATE_UP:<br /> q = "可用";<br /> break;<br /> case ECI_SERVERSTATE_DOWN:<br /> q = "不可用";<br /> break;<br /> } /* endswitch */<br /> <br /> switch (EciStatus.CicsClientStatus)<br /> {<br /> case ECI_CLIENTSTATE_UNKNOWN:<br /> r = "未知";<br /> break;<br /> case ECI_CLIENTSTATE_UP:<br /> r = "可用";<br /> break;<br /> case ECI_CLIENTSTATE_INAPPLICABLE:<br /> r = "不可用";<br /> break;<br /> } /* endswitch */<br /> printf( " 联接类型[%s] 主机状态[%s] 客户机状态[%s]" , p,q,r );<br /> } /* endif */<br /> <br /> return Rc;<br />}
2004-4-8 00:08
vanda_chensh
char * Response1(char *result, short Rc, char *Abend)<br />{<br /> char *p=result;<br /> <br /> switch (Rc)<br /> {<br /> case ECI_NO_ERROR:<br /> strcpy(p, "OK ! "); break;<br /> case ECI_ERR_INVALID_DATA_LENGTH:<br /> strcpy(p, "ECI_ERR_INVALID_DATA_LENGTH"); break;<br /> case ECI_ERR_INVALID_EXTEND_MODE:<br /> strcpy(p, "ECI_ERR_INVALID_EXTEND_MODE"); break;<br /> case ECI_ERR_NO_CICS:<br /> strcpy(p, "ECI_ERR_NO_CICS "); break;<br /> case ECI_ERR_CICS_DIED:<br /> strcpy(p, "ECI_ERR_CICS_DIED "); break;<br /> case ECI_ERR_REQUEST_TIMEOUT:<br /> strcpy(p, "ECI_ERR_REQUEST_TIMEOUT "); break;<br /> case ECI_ERR_RESPONSE_TIMEOUT:<br /> strcpy(p, "ECI_ERR_RESPONSE_TIMEOUT "); break;<br /> case ECI_ERR_TRANSACTION_ABEND:<br /> strcpy(p, "ECI_ERR_TRANSACTION_ABEND "); break;<br /> case ECI_ERR_EXEC_NOT_RESIDENT:<br /> strcpy(p, "ECI_ERR_EXEC_NOT_RESIDENT "); break;<br /> case ECI_ERR_SYSTEM_ERROR:<br /> strcpy(p, "ECI_ERR_SYSTEM_ERROR "); break;<br /> case ECI_ERR_NULL_WIN_HANDLE:<br /> strcpy(p, "ECI_ERR_NULL_WIN_HANDLE "); break;<br /> case ECI_ERR_NULL_MESSAGE_ID:<br /> strcpy(p, "ECI_ERR_NULL_MESSAGE_ID "); break;<br /> case ECI_ERR_THREAD_CREATE_ERROR:<br /> strcpy(p, "ECI_ERR_THREAD_CREATE_ERROR"); break;<br /> case ECI_ERR_INVALID_CALL_TYPE:<br /> strcpy(p, "ECI_ERR_INVALID_CALL_TYPE "); break;<br /> case ECI_ERR_ALREADY_ACTIVE:<br /> strcpy(p, "ECI_ERR_ALREADY_ACTIVE "); break;<br /> case ECI_ERR_RESOURCE_SHORTAGE:<br /> strcpy(p, "ECI_ERR_RESOURCE_SHORTAGE "); break;<br /> case ECI_ERR_NO_SESSIONS:<br /> strcpy(p, "ECI_ERR_NO_SESSIONS "); break;<br /> case ECI_ERR_NULL_SEM_HANDLE:<br /><br /> strcpy(p, "ECI_ERR_NULL_SEM_HANDLE "); break;<br /> case ECI_ERR_INVALID_DATA_AREA:<br /> strcpy(p, "ECI_ERR_INVALID_DATA_AREA "); break;<br /> case ECI_ERR_INVALID_VERSION:<br /> strcpy(p, "ECI_ERR_INVALID_VERSION "); break;<br /> case ECI_ERR_UNKNOWN_SERVER:<br /> strcpy(p, "ECI_ERR_UNKNOWN_SERVER "); break;<br /> case ECI_ERR_CALL_FROM_CALLBACK:<br /> strcpy(p, "ECI_ERR_CALL_FROM_CALLBACK "); break;<br /> case ECI_ERR_INVALID_TRANSID:<br /> strcpy(p, "ECI_ERR_INVALID_TRANSID "); break;<br /> case ECI_ERR_MORE_SYSTEMS:<br /> strcpy(p, "ECI_ERR_MORE_SYSTEMS "); break;<br /> case ECI_ERR_NO_SYSTEMS:<br /> strcpy(p, "ECI_ERR_NO_SYSTEMS "); break;<br /> case ECI_ERR_SECURITY_ERROR:<br /> strcpy(p, "ECI_ERR_SECURITY_ERROR "); break;<br /> case ECI_ERR_MAX_SYSTEMS:<br /> strcpy(p, "ECI_ERR_MAX_SYSTEMS "); break;<br /> case ECI_ERR_MAX_SESSIONS:<br /> strcpy(p, "ECI_ERR_MAX_SESSIONS "); break;<br /> case ECI_ERR_ROLLEDBACK:<br /> strcpy(p, "ECI_ERR_ROLLEDBACK "); break;<br /> default:<br /> sprintf(p,"Unknown Return Code : %-5d", Rc); break;<br /> } /* endswitch */<br /> <br /> return p;<br />}
2004-4-19 16:53
冰剑
谢谢各们高手,但是我的意思不是手工的那种编程,我需要的是集成化的程序开发包
2004-4-27 17:42
dagzhao
<!--QuoteBegin-冰剑+2004-04-19 16:53:23--><div class='quotetop'>QUOTE(冰剑 @ 2004-04-19 16:53:23)</div><div class='quotemain'><!--QuoteEBegin--> 谢谢各们高手,但是我的意思不是手工的那种编程,我需要的是集成化的程序开发包 <!--QuoteEnd--></div><!--QuoteEEnd--><br />EasyCics是IBM中国实验室针对IBM的CICS系统开发的一套简易的程序开发界面。它是主要目的是缓解数据交换的难度,便于各种前端开发工具访问CICS系统。EasyCics分为服务器和客户机两部分。服务器部分提供增强的C语言函数库和头文件,客户机部分提供C函数库和头文件,OLE组件,供C、VB、PB和DELPHI等开发者访问CICS时使用。<br />可以用这个,开发很简单的:)
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.