Beruflich Dokumente
Kultur Dokumente
John Tilling
CICS Technical Planning & Strategy IBM UK Laboratories Tilling@uk.ibm.com
IBM Corporation 2008. All Rights Reserved. The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBMs sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. The following are trademarks of the International Business Machines Corporation in the United States and/or other countries. For a complete list of IBM trademarks, see www.ibm.com/legal/copytrade.shtml AIX, CICS, CICSPlex, DB2, DB2 Universal Database, i5/OS, IBM, the IBM logo, IMS, iSeries, Lotus, OMEGAMON, OS/390, Parallel Sysplex, pureXML, Rational, RACF, Redbooks, Sametime, Smart SOA, System i, System i5, System z , Tivoli, WebSphere, and z/OS. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. Intel and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. 2008 IBM Corporation
Pseudo-conversational Commarea
Local and transaction routing
Placing data in Temporary Storage Placing data in WebSphere MQ Using BTS Containers
10
11
12
Inefficient transmission
Unnecessary data transmitted on DPLs
13
14
CONTAINER API
Created using PUT CONTAINER Read using GET CONTAINER
15
16
A group of Containers
17
Channels and Containers are only visible to the programs that create them and to the programs they are passed to. When these programs terminate, CICS will automatically destroy the Containers and release the storage they occupy.
18
A Simple Example
PROGA PUT CONTAINER('Employee') CHANNEL('Payroll') FROM(emp-data) PUT CONTAINER('Branch') CHANNEL('Payroll') FROM(branch-data) LINK PROGRAM('PROGB') CHANNEL('Payroll') GET CONTAINER('Payslip') CHANNEL('Payroll') INTO(pay-data)
19
20
10
21
22
11
Component Employee-Inquiry
Program A EXEC CICS LINK PROGRAM(PROGRAMB) CHANNEL(EMPLOYEE_INFO) Program B EXEC CICS LINK PROGRAM(PROGRAMC) CHANNEL(EMPLOYEE_INFO) Program C
23
24
12
Program A EXEC CICS LINK PROGRAM(PROGRAMB) CHANNEL(EMPLOYEE_INFO) EXEC CICS LINK PROGRAM(PROGRAMC) CHANNEL(PAYROLL_INFO)
Component Payroll-Inquiry
Program C
25
26
13
Component Employee-Inquiry
Component Info
Program Z Program Y EXEC CICS LINK PROGRAM(PROGRAMZ) CHANNEL(PRIVATE_INFO) 2008 IBM Corporation
27
28
14
29
30
15
31
32
16
* Channel name 01 INQUIRY-CHANNEL PIC X(16) VALUE inqcustrec. * Container names 01 CUSTOMER-NO PIC X(16) VALUE custno. 01 BRANCH-NO PIC X(16) VALUE branchno. 01 CUSTOMER-RECORD PIC X(16) VALUE custrec.
PIC S9(8). PIC S9(4). PIC S9(4). PIC PIC PIC PIC X(80). X(80). X(80). X(80). 33
34
17
35
36
18
37
38
19
Default for EXEC CICS commands that do not explicitly specify a Channel name
39
40
20
Current Channel
Program A EXEC CICS LINK PROGRAM(PROGRAMB) CHANNEL(EMPLOYEE_INFO)
41
42
21
43
44
22
Channel Scope
Scope of Channel EMPLOYEE_INFO
Program A EXEC CICS LINK PROGRAM(PROGRAMB) CHANNEL(EMPLOYEE_INFO)
45
46
23
47
48
24
API Commands
Container commands
PUT CONTAINER GET CONTAINER MOVE CONTAINER DELETE CONTAINER Inquiry commands
ASSIGN CHANNEL STARTBROWSE CONTAINER GETNEXT CONTAINER ENDBROWSE CONTAINER
49
50
25
Container Commands
EXEC CICS PUT CONTAINER
Copies data into a container within the channel Overwrites existing data if container already exists Creates channel if it does not already exist
EXEC CICS GET CONTAINER
Moves a container from one channel to another Can be used to rename a container
EXEC CICS DELETE CONTAINER
Deletes a container from the channel Does not delete the channel, even if no containers left
2008 IBM Corporation
51
52
26
53
54
27
Inquiry commands
ASSIGN CHANNEL(data-area)
Returns the name of the current channel Spaces returned if no current channel
Container browse commands
STARTBROWSE CONTAINER [CHANNEL(data-area)] GETNEXT CONTAINER (data-area) Container names returned in no particular order ENDBROWSE CONTAINER
55
56
28
57
58
29
Existence bits with channel name passed to exits XICEREQ, XICEREQC XPCREQ, XPCEREQC Channel name added to the PCUE parameter list XPCFTCH Exits cannot access contents of channels
59
60
30
61
62
31
Dynamic and distributed routing copybook DYRCHANL (new field) Name of channel associated with the request DYRACMAA (existing field) Address of Commarea or DFHROUTE Container data DYRLEVEL (existing field) Level of CICS AOR required to successfully process a routed request X03 requires a CICS TS 3.1 system DYRTYPE (existing request) Type of request for which the routing program is invoked 2 - Terminal related START with no data and no channel 3 - Terminal related START with data but no channel 4 Program link with no channel 6 Non-terminal related START with no channel 9 - Program link with a channel A -Terminal related START with a channel B - Non-terminal related START with a channel DYRVER (existing field) Version number of the dynamic routing program interface 2008 IBM Corporation CICS TS V3.1 number is 10
63
64
32
Problem Determination
Maintenance required on prior releases to add error messages
APARs required CICS TS 1.3 PQ93048 CICS TS 2.2 and 2.3 PQ92437 CICS TXSeries 5.0 IY63855 CICS TXSeries 5.1 IY63888 CICS TS for VSE PQ83049 CICS for Windows RQ95718 CICS for AS/400 5.3.0 SE15875 An attempt to ship a channel to a previous release will result in a transaction abend AXF9 AXTT AZTD
2008 IBM Corporation
65
66
33
67
EXEC CICS PUT CONTAINER copies the container data into 64-bit storage.
No 4K segmentation (Performance improvement over CICS TS 3.1) Data conversion performed in 64-bit storage if necessary (Performance improvement over 3.1)
EXEC CICS GET CONTAINER copies the container data from 64-bit to 31-bit storage for the application to access
Hence size of each container still limited by ECDSA
68
34
Summary
Channels and Containers allow more than 32k of data to be passed between CICS applications Program to program LINK and XCTL Transaction to transaction START and RETURN Allow better structuring of application data Different containers to prevent overloaded copybooks Minimal application changes required for exploitation Allow for data conversion between different code pages CICS TS 3.2 moves containers above the bar (64 bit storage) Copied into 31 bit storage for application use
69
Summary - Notes
Channels and Containers provide a significant benefit to the application programmer. The programmer now has the capability to exchange more than 32K of information between application programs and started tasks without resorting to non-standard methods.. The Channel and Container construct allows the application suite to be enhanced by adding additional Containers to the Channel without affecting programs that do not require the additional data. The capability to pass multiple Containers within a single Channel offers the opportunity to simplify the copybook layout making the program easier to understand and future changes simpler to implement.
70
35