4. TXSeries应用程序开发
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Storage services –ADDRESS –FREEMAIN –GETMAIN –LOAD –RELEASE –LUW Services –RETURN –SYNCPOINT
例子1
#include <stdio.h> #define commarea_len 30 char sysid[4]; char* commarea;
memcpy(&EciParms.eci_system_name, Server, 8);
EciParms.eci_commarea
= CommArea;
EciParms.eci_commarea_length
= COMMAREA_SIZE;
EciParms.eci_extend_mode
= ECI_NO_EXTEND;
▪ A typical transactional processing application will be based
on a three-tier architectures which includes:
– Presentation Logic (Client) • Communication between end user and transaction processing system.
1
主题
▪ CICS应用开发介绍 ▪ 客户端应用开发
– ECI Programming
▪ 服务端应用开发
– CICS API – 开发流程 – 程序控制
– 程序调试
▪ CICS应用开发注意事项 ▪ CICS的资源管理器编程 ▪ 开发工具RDp介绍
2
Transaction processing applications
▪ Translated into the appropriate host language program by a pre-compiler.
CICS API
▪ Similar to Embedded SQL ▪ Uses the Key word EXEC CICS
int status; EXEC CICS INQUIRE PROGRAM(program) STATUS(status); if (status) { .................. }
Error handling –ABEND –HANDLE ABEND –HANDLE CONDITION –IGNORE CONDITION
Debugging services –TRACE –ENTER –DUMP
Performance monitoring –COLLECT STATISTICS –INQUIRE STATISTICS –PERFORM STATISTICS RECORD –SET STATISTICS
Web
5
CICS Programming model (Contd.,)
▪ Client Side program responsible for • User interface service • Data input/output service • Send input through COMMAREA / Channels and Containers to server
Delimiter
Here comes a command What you want CICS to do How CICS should do it
Language dependent
14
CICS API Services
Presentation Services
Using BMS
–SEND TEXT –SEND CONTROL –SEND MAP –RECEIVE MAP
A typical CICS based client/server system
Application Program Presentation Logic
Client API CICS Client
Client
Application Program Business Logic
CICS API CICS Region
int main(void){ EXEC CICS ADDRESS EIB(dfheiptr); EXEC CICS ADDRESS COMMAREA(commarea); EXEC CICS INQUIRE SYSTEM SYSID(sysid); ... EXEC SQL ... ... EXEC CICS SYNCPOINT RESP(respCode); if (respCode != DFHRESP(NORMAL)) { …; EXEC CICS RETURN; }
6
主题
▪ CICS应用开发介绍 ▪ 客户端应用开发
– ECI Programming
▪ 服务端应用开发
– CICS API – 开发流程 – 程序控制
– 程序调试
▪ CICS应用开发注意事项 ▪ CICS的资源管理器编程 ▪ 开发工具RDp介绍
7
Client Side Programming
▪ There are different ways a server program can be accessed from the client. • External Call Interface (ECI) • External Presentation Interface (EPI) • Terminal Emulator - HostBridge or Telnet 3270 client
non-Java
External
PresentationCICS Trຫໍສະໝຸດ nsactionLogic
Gateway
ECI
Java
Single program using COMMAREA Interface
Read Input COMMAREA Run Business Logic Return output COMMAREA
EXEC CICS LINK PROGRAM(program) RESP(resp_code) END EXEC IF resp_code == .... THEN ......
CICS API syntax
▪ CICS command syntax
EXEC CICS Command
Option (argument) Option (argument)
EciParms.eci_luw_token
= ECI_LUW_NEW;
EciParms.eci_timeout
= 0;
……
…….
Rc = CICS_ExternalCall (&EciParms);
}
10
1 Declare ECI structure
2 Fill ECI structure
3 Call ECI function
EciParms.eci_call_type
= ECI_SYNC;
memcpy(&EciParms.eci_program_name, Program, 8);
memcpy(&EciParms.eci_userid, UserID, 8);
memcpy(&EciParms.eci_password, PassWd, 8);
Data Services
External resource/RDBMS Uses SQL in the form of Embedded SQL
File Services –READ –WRITE –BROWSE
Queue Services –TSQ –TDQ
15
Problem Determination Services
使用交易分类tclass?11个交易类110none默认?交易类110可以限制并发运行数?tclass定义在tdstanza建议?用户交易定义tclass?cics交易使用none?maxserverssumclassmaxtasks示例?1instanceoftrn2
TXSeries编程
高俊华 IBM CICS实验室 2014/10
▪ Common API for all CICS family members.
▪ The CICS API supported by distributed CICS is an old level of the mainframe
CICS API.
▪ It provides a whole range of CICS specific facilities but also provides an
– Business Logic (Application layer) • Performs data manipulations and computations for transactions.
– Data Services (Data source layer) • Retrieve and update data.
Business Logic Services
Program Execution –LINK –RETURN –XCTL
Timer Service –ASKTIME –CANCEL –DELAY –FORMATTIME –START
Synchronization Services –DEQ –ENQ
abstraction for standard programming facilities such as a file system, user I/O (terminals), users (security) and client or distributed region communications
fprintf (stderr, "%s\n", commarea); memset(commarea, '\0', commarea_len); memcpy(commarea, "CALLED Run in ", 14); memcpy(commarea+14, sysid, 4); EXEC CICS RETURN; }
Server
Database Files Queues
Gateways
Resource Manager
CICS Programming Model
SELECT
QUERY
UPDATE
GUI
Client Side programming
Server Side programming
CICS Business Logic
▪ Server Side program responsible for • Accept COMMAREA / Channels and Containers as input from client • Business logic • Data access • Send the output back through COMMAREA / Channels and Containers to client
ECI_PARMS EciParms;
Main()
{
memset (CommArea, '\0', COMMAREA_SIZE);
strcpy (CommArea, "
");
memset (&EciParms, 0, sizeof (ECI_PARMS));
EciParms.eci_version
= ECI_VERSION_1A;
主题
▪ CICS应用开发介绍 ▪ 客户端应用开发
– ECI Programming
▪ 服务端应用开发
– CICS API – 开发流程 – 程序控制
– 程序调试
▪ CICS应用开发注意事项 ▪ CICS的资源管理器编程 ▪ 开发工具RDp介绍
11
CICS API
CICS Region Application Programming Interface
Containers to a CICS server and receive the reply.
▪ Supports COBOL, PL/I, C, C++ and Java applications.
Client Side Programming (Contd.,)
▪ Sample ECI program
8
External Call Interface (ECI)
▪ Enables, a non-CICS application running on client, to call a CICS
application running on a CICS region.
▪ It provides the capability to pass a CICS COMMAREA / Channels and
例子1
#include <stdio.h> #define commarea_len 30 char sysid[4]; char* commarea;
memcpy(&EciParms.eci_system_name, Server, 8);
EciParms.eci_commarea
= CommArea;
EciParms.eci_commarea_length
= COMMAREA_SIZE;
EciParms.eci_extend_mode
= ECI_NO_EXTEND;
▪ A typical transactional processing application will be based
on a three-tier architectures which includes:
– Presentation Logic (Client) • Communication between end user and transaction processing system.
1
主题
▪ CICS应用开发介绍 ▪ 客户端应用开发
– ECI Programming
▪ 服务端应用开发
– CICS API – 开发流程 – 程序控制
– 程序调试
▪ CICS应用开发注意事项 ▪ CICS的资源管理器编程 ▪ 开发工具RDp介绍
2
Transaction processing applications
▪ Translated into the appropriate host language program by a pre-compiler.
CICS API
▪ Similar to Embedded SQL ▪ Uses the Key word EXEC CICS
int status; EXEC CICS INQUIRE PROGRAM(program) STATUS(status); if (status) { .................. }
Error handling –ABEND –HANDLE ABEND –HANDLE CONDITION –IGNORE CONDITION
Debugging services –TRACE –ENTER –DUMP
Performance monitoring –COLLECT STATISTICS –INQUIRE STATISTICS –PERFORM STATISTICS RECORD –SET STATISTICS
Web
5
CICS Programming model (Contd.,)
▪ Client Side program responsible for • User interface service • Data input/output service • Send input through COMMAREA / Channels and Containers to server
Delimiter
Here comes a command What you want CICS to do How CICS should do it
Language dependent
14
CICS API Services
Presentation Services
Using BMS
–SEND TEXT –SEND CONTROL –SEND MAP –RECEIVE MAP
A typical CICS based client/server system
Application Program Presentation Logic
Client API CICS Client
Client
Application Program Business Logic
CICS API CICS Region
int main(void){ EXEC CICS ADDRESS EIB(dfheiptr); EXEC CICS ADDRESS COMMAREA(commarea); EXEC CICS INQUIRE SYSTEM SYSID(sysid); ... EXEC SQL ... ... EXEC CICS SYNCPOINT RESP(respCode); if (respCode != DFHRESP(NORMAL)) { …; EXEC CICS RETURN; }
6
主题
▪ CICS应用开发介绍 ▪ 客户端应用开发
– ECI Programming
▪ 服务端应用开发
– CICS API – 开发流程 – 程序控制
– 程序调试
▪ CICS应用开发注意事项 ▪ CICS的资源管理器编程 ▪ 开发工具RDp介绍
7
Client Side Programming
▪ There are different ways a server program can be accessed from the client. • External Call Interface (ECI) • External Presentation Interface (EPI) • Terminal Emulator - HostBridge or Telnet 3270 client
non-Java
External
PresentationCICS Trຫໍສະໝຸດ nsactionLogic
Gateway
ECI
Java
Single program using COMMAREA Interface
Read Input COMMAREA Run Business Logic Return output COMMAREA
EXEC CICS LINK PROGRAM(program) RESP(resp_code) END EXEC IF resp_code == .... THEN ......
CICS API syntax
▪ CICS command syntax
EXEC CICS Command
Option (argument) Option (argument)
EciParms.eci_luw_token
= ECI_LUW_NEW;
EciParms.eci_timeout
= 0;
……
…….
Rc = CICS_ExternalCall (&EciParms);
}
10
1 Declare ECI structure
2 Fill ECI structure
3 Call ECI function
EciParms.eci_call_type
= ECI_SYNC;
memcpy(&EciParms.eci_program_name, Program, 8);
memcpy(&EciParms.eci_userid, UserID, 8);
memcpy(&EciParms.eci_password, PassWd, 8);
Data Services
External resource/RDBMS Uses SQL in the form of Embedded SQL
File Services –READ –WRITE –BROWSE
Queue Services –TSQ –TDQ
15
Problem Determination Services
使用交易分类tclass?11个交易类110none默认?交易类110可以限制并发运行数?tclass定义在tdstanza建议?用户交易定义tclass?cics交易使用none?maxserverssumclassmaxtasks示例?1instanceoftrn2
TXSeries编程
高俊华 IBM CICS实验室 2014/10
▪ Common API for all CICS family members.
▪ The CICS API supported by distributed CICS is an old level of the mainframe
CICS API.
▪ It provides a whole range of CICS specific facilities but also provides an
– Business Logic (Application layer) • Performs data manipulations and computations for transactions.
– Data Services (Data source layer) • Retrieve and update data.
Business Logic Services
Program Execution –LINK –RETURN –XCTL
Timer Service –ASKTIME –CANCEL –DELAY –FORMATTIME –START
Synchronization Services –DEQ –ENQ
abstraction for standard programming facilities such as a file system, user I/O (terminals), users (security) and client or distributed region communications
fprintf (stderr, "%s\n", commarea); memset(commarea, '\0', commarea_len); memcpy(commarea, "CALLED Run in ", 14); memcpy(commarea+14, sysid, 4); EXEC CICS RETURN; }
Server
Database Files Queues
Gateways
Resource Manager
CICS Programming Model
SELECT
QUERY
UPDATE
GUI
Client Side programming
Server Side programming
CICS Business Logic
▪ Server Side program responsible for • Accept COMMAREA / Channels and Containers as input from client • Business logic • Data access • Send the output back through COMMAREA / Channels and Containers to client
ECI_PARMS EciParms;
Main()
{
memset (CommArea, '\0', COMMAREA_SIZE);
strcpy (CommArea, "
");
memset (&EciParms, 0, sizeof (ECI_PARMS));
EciParms.eci_version
= ECI_VERSION_1A;
主题
▪ CICS应用开发介绍 ▪ 客户端应用开发
– ECI Programming
▪ 服务端应用开发
– CICS API – 开发流程 – 程序控制
– 程序调试
▪ CICS应用开发注意事项 ▪ CICS的资源管理器编程 ▪ 开发工具RDp介绍
11
CICS API
CICS Region Application Programming Interface
Containers to a CICS server and receive the reply.
▪ Supports COBOL, PL/I, C, C++ and Java applications.
Client Side Programming (Contd.,)
▪ Sample ECI program
8
External Call Interface (ECI)
▪ Enables, a non-CICS application running on client, to call a CICS
application running on a CICS region.
▪ It provides the capability to pass a CICS COMMAREA / Channels and