|
|
1 | (10) |
|
|
1 | (1) |
|
1.2 X/Open Communication Resource Manager Interfaces |
|
|
2 | (1) |
|
1.3 Naming Conventions: Calls, Characteristics, Variables and Values |
|
|
3 | (2) |
|
1.4 History of CPI Communications |
|
|
5 | (1) |
|
1.5 Functional Levels of CPI Communications |
|
|
6 | (5) |
|
|
6 | (1) |
|
|
6 | (1) |
|
1.5.3 X/Open Extensions to CPI-C |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
7 | (4) |
|
Chapter 2 Model and Definitions |
|
|
11 | (6) |
|
|
11 | (4) |
|
2.1.1 Functional Components |
|
|
12 | (1) |
|
2.1.2 Interfaces between Functional Components |
|
|
13 | (2) |
|
|
15 | (2) |
|
|
15 | (1) |
|
2.2.2 Transaction Properties |
|
|
15 | (1) |
|
2.2.3 Distributed Transaction Processing |
|
|
15 | (1) |
|
2.2.4 Global Transactions |
|
|
16 | (1) |
|
2.2.5 Transaction Branches |
|
|
16 | (1) |
|
Chapter 3 Interface Overview |
|
|
17 | (46) |
|
3.1 Communication across a Network |
|
|
18 | (1) |
|
|
19 | (1) |
|
|
19 | (1) |
|
|
20 | (1) |
|
3.4.1 Identifying the Partner Program |
|
|
20 | (1) |
|
3.5 Operating Environment |
|
|
21 | (3) |
|
|
22 | (1) |
|
|
22 | (2) |
|
|
24 | (2) |
|
3.7 Establishing a Conversation |
|
|
26 | (3) |
|
3.7.1 Multiple Conversations |
|
|
26 | (3) |
|
3.7.1.1 Naming of Partner Programs |
|
|
26 | (1) |
|
3.7.1.2 Multiple Outbound Conversations |
|
|
27 | (1) |
|
3.7.1.3 Multiple Inbound Conversations |
|
|
27 | (2) |
|
3.8 Conversation Characteristics |
|
|
29 | (11) |
|
3.8.1 Modifying and Viewing Characteristics |
|
|
29 | (7) |
|
3.8.2 Characteristic Values and CRMs |
|
|
36 | (1) |
|
3.8.3 Characteristic Values and Send-Receive Modes |
|
|
37 | (1) |
|
3.8.4 Characteristic Values and Resource Recovery Interfaces |
|
|
38 | (1) |
|
3.8.5 Automatic Conversion of Characteristics |
|
|
38 | (2) |
|
3.9 Concurrent Operations |
|
|
40 | (3) |
|
3.9.1 Use of Multiple Program Threads |
|
|
40 | (3) |
|
3.10 Non-blocking Operations |
|
|
43 | (4) |
|
3.10.1 Conversation-level Non-blocking |
|
|
44 | (1) |
|
3.10.2 Queue-level Non-blocking |
|
|
44 | (2) |
|
3.10.2.1 Working with Wait Facility |
|
|
45 | (1) |
|
3.10.2.2 Using Callback Function |
|
|
45 | (1) |
|
3.10.3 Cancel Outstanding Operations |
|
|
46 | (1) |
|
3.11 Conversation Security |
|
|
47 | (1) |
|
|
48 | (1) |
|
3.13 Program Flow: States and Transitions |
|
|
49 | (2) |
|
3.14 Support for Resource Recovery Interfaces |
|
|
51 | (12) |
|
3.14.1 Coordination with Resource Recovery Interfaces |
|
|
51 | (1) |
|
3.14.2 Take-commit and Take-backout Notifications |
|
|
52 | (3) |
|
3.14.3 The Backout-Required Condition |
|
|
55 | (2) |
|
3.14.4 Responses to Take-commit and Take-backout Notifications |
|
|
57 | (1) |
|
3.14.5 Chained and Unchained Transactions |
|
|
58 | (1) |
|
3.14.6 Joining a Transaction |
|
|
59 | (1) |
|
3.14.7 Superior and Subordinate Programs |
|
|
60 | (1) |
|
3.14.8 Additional CPI Communications States |
|
|
61 | (1) |
|
3.14.9 Valid States for Resource Recovery Calls |
|
|
62 | (1) |
|
3.14.10 TX Extensions for CPI Communications |
|
|
62 | (1) |
|
Chapter 4 Program-to-Program Communication Tutorial |
|
|
63 | (52) |
|
4.1 Interpreting the Flow Diagrams |
|
|
63 | (1) |
|
|
64 | (6) |
|
4.2.1 Data Flow in One Direction |
|
|
65 | (3) |
|
4.2.2 Data Flow in Both Directions |
|
|
68 | (2) |
|
4.3 Advanced-function Flows |
|
|
70 | (45) |
|
4.3.1 Data Buffering and Transmission |
|
|
71 | (1) |
|
4.3.2 The Sending Program Changes the Data Flow Direction |
|
|
72 | (2) |
|
4.3.3 Validation and Confirmation of Data Reception |
|
|
74 | (2) |
|
4.3.4 The Receiving Program Changes the Data Flow Direction |
|
|
76 | (2) |
|
|
78 | (2) |
|
4.3.6 Error Direction and Send-Pending State |
|
|
80 | (2) |
|
4.3.7 Multiple Conversations Using Blocking Calls |
|
|
82 | (2) |
|
4.3.8 Multiple Conversations Using Conversation-level Non-blocking Calls |
|
|
84 | (2) |
|
4.3.9 Establishing a Full-duplex Conversation |
|
|
86 | (2) |
|
4.3.10 Using a Full-duplex Conversation |
|
|
88 | (2) |
|
4.3.11 Terminating a Full-duplex Conversation |
|
|
90 | (2) |
|
4.3.12 Using Queue-level Non-blocking |
|
|
92 | (2) |
|
4.3.13 Sending Program Issues a Commit |
|
|
94 | (6) |
|
4.3.14 Two Chained Transactions |
|
|
100 | (6) |
|
4.3.15 Unchained Transactions |
|
|
106 | (6) |
|
4.3.16 Successful Commit with Conversation State Change |
|
|
112 | (3) |
|
Chapter 5 Call Reference Section |
|
|
115 | (214) |
|
|
116 | (1) |
|
5.2 Programming Language Considerations |
|
|
117 | (1) |
|
|
117 | (1) |
|
|
117 | (1) |
|
5.3 How to Use the Call References |
|
|
118 | (1) |
|
5.4 Locations of Key Topics |
|
|
119 | (210) |
|
Accept_Conversation (CMACCP) |
|
|
125 | (2) |
|
|
127 | (3) |
|
|
130 | (5) |
|
Cancel_Conversation (CMCANC) |
|
|
135 | (2) |
|
|
137 | (4) |
|
|
141 | (2) |
|
Convert_Incoming (CMCNVI) |
|
|
143 | (2) |
|
Convert_Outgoing (CMCNVO) |
|
|
145 | (2) |
|
|
147 | (11) |
|
Deferred_Deallocate (CMDFDE) |
|
|
158 | (2) |
|
Extract_AE_Qualifier (CMEAEQ) |
|
|
160 | (2) |
|
Extract_AP_Title (CMEAPT) |
|
|
162 | (2) |
|
Extract_Application_Context_Name (CMEACN) |
|
|
164 | (2) |
|
Extract_Conversation_State (CMECS) |
|
|
166 | (2) |
|
Extract_Conversation_Type (CMECT) |
|
|
168 | (2) |
|
Extract_Initialization_Data (CMEID) |
|
|
170 | (2) |
|
Extract_Maximum_Buffer_Size (CMEMBS) |
|
|
172 | (1) |
|
Extract_Mode_Name (CMEMN) |
|
|
173 | (2) |
|
Extract_Partner_LU_Name (CMEPLN) |
|
|
175 | (2) |
|
Extract_Secondary_Information (CMESI) |
|
|
177 | (3) |
|
Extract_Security_User_ID (CMESUI) |
|
|
180 | (2) |
|
Extract_Send_Receive_Mode (CMESRM) |
|
|
182 | (2) |
|
Extract_Sync_Level (CMESL) |
|
|
184 | (2) |
|
|
186 | (2) |
|
Extract_Transaction_Control (CMETC) |
|
|
188 | (2) |
|
|
190 | (3) |
|
Include_Partner_In_Transaction (CMINCL) |
|
|
193 | (2) |
|
Initialize_Conversation (CMINIT) |
|
|
195 | (2) |
|
Initialize_For_Incoming (CMINIC) |
|
|
197 | (2) |
|
|
199 | (3) |
|
Prepare_To_Receive (CMPTR) |
|
|
202 | (6) |
|
|
208 | (15) |
|
Receive_Expedited_Data (CMRCVX) |
|
|
223 | (3) |
|
Release_Local_TP_Name (CMRLTP) |
|
|
226 | (1) |
|
|
227 | (3) |
|
|
230 | (10) |
|
|
240 | (10) |
|
Send_Expedited_Data (CMSNDX) |
|
|
250 | (3) |
|
Set_AE_Qualifier (CMSAEQ) |
|
|
253 | (2) |
|
Set_Allocate_Confirm (CMSAC) |
|
|
255 | (2) |
|
|
257 | (2) |
|
Set_Application_Context_Name (CMSACN) |
|
|
259 | (2) |
|
Set_Begin_Transaction (CMSBT) |
|
|
261 | (2) |
|
Set_Confirmation_Urgency (CMSCU) |
|
|
263 | (2) |
|
Set_Conversation_Security_Password (CMSCSP) |
|
|
265 | (2) |
|
Set_Conversation_Security_Type (CMSCST) |
|
|
267 | (2) |
|
Set_Conversation_Security_User_ID (CMSCSU) |
|
|
269 | (2) |
|
Set_Conversation_Type (CMSCT) |
|
|
271 | (2) |
|
Set_Deallocate_Type (CMSDT) |
|
|
273 | (4) |
|
Set_Error_Direction (CMSED) |
|
|
277 | (2) |
|
|
279 | (2) |
|
Set_Initialization_Data (CMSID) |
|
|
281 | (2) |
|
Set_Join_Transaction (CMSJT) |
|
|
283 | (2) |
|
|
285 | (2) |
|
|
287 | (2) |
|
Set_Partner_LU_Name (CMSPLN) |
|
|
289 | (2) |
|
Set_Prepare_Data_Permitted (CMSPDP) |
|
|
291 | (2) |
|
Set_Prepare_To_Receive_Type (CMSPTR) |
|
|
293 | (2) |
|
Set_Processing_Mode (CMSPM) |
|
|
295 | (2) |
|
Set_Queue_Callback_Function (CMSQCF) |
|
|
297 | (3) |
|
Set_Queue_Processing_Mode (CMSQPM) |
|
|
300 | (4) |
|
|
304 | (1) |
|
Set_Return_Control (CMSRC) |
|
|
305 | (2) |
|
Set_Send_Receive_Mode (CMSSRM) |
|
|
307 | (2) |
|
|
309 | (2) |
|
|
311 | (2) |
|
|
313 | (2) |
|
Set_Transaction_Control (CMSTC) |
|
|
315 | (2) |
|
Specify_Local_TP_Name (CMSLTP) |
|
|
317 | (2) |
|
Test_Request_To_Send_Received (CMTRTS) |
|
|
319 | (3) |
|
Wait_For_Completion (CMWCMP) |
|
|
322 | (3) |
|
Wait_For_Conversation (CMWAIT) |
|
|
325 | (4) |
|
Appendix A Variables and Characteristics |
|
|
329 | (16) |
|
A.1 Pseudonyms and Integer Values |
|
|
330 | (7) |
|
|
337 | (3) |
|
|
340 | (5) |
|
|
340 | (1) |
|
|
340 | (5) |
|
Appendix B Return Codes and Secondary Information |
|
|
345 | (34) |
|
|
346 | (16) |
|
B.2 Secondary Information |
|
|
362 | (17) |
|
B.2.1 Application-oriented Information |
|
|
364 | (1) |
|
B.2.2 CPI Communications-defined Information |
|
|
364 | (13) |
|
B.2.3 CRM-specific Information |
|
|
377 | (1) |
|
B.2.4 Implementation-related Information |
|
|
378 | (1) |
|
|
379 | (38) |
|
C.1 How to Use the State Tables |
|
|
380 | (2) |
|
|
381 | (1) |
|
C.2 Explanation of Half-duplex State Table Abbreviations |
|
|
382 | (9) |
|
C.2.1 Conversation Characteristics () |
|
|
383 | (2) |
|
C.2.2 Conversation Queues () |
|
|
385 | (1) |
|
C.2.3 Return Code Values [ ] |
|
|
386 | (3) |
|
C.2.4 data_received and status_received {,} |
|
|
389 | (1) |
|
C.2.5 Table Symbols for the Half-duplex State Table |
|
|
390 | (1) |
|
C.3 Half-duplex State Table |
|
|
391 | (7) |
|
C.4 Effects of Calls on Half-duplex Conversations to X/Open TX Interface |
|
|
398 | (2) |
|
C.5 Effects of Calls to the SAA RRI on Half-duplex Conversations |
|
|
400 | (1) |
|
C.6 Explanation of Full-duplex State Table Abbreviations |
|
|
401 | (8) |
|
C.6.1 Conversation Characteristics () |
|
|
402 | (1) |
|
C.6.2 Conversation Queues () |
|
|
403 | (1) |
|
C.6.3 Return Code Values [ ] |
|
|
404 | (3) |
|
C.6.4 data_received and status_received {,} |
|
|
407 | (1) |
|
C.6.5 Table Symbols for the Full-duplex State Table |
|
|
408 | (1) |
|
C.7 Full-duplex State Table |
|
|
409 | (5) |
|
C.8 Effects of Calls on Full-duplex Conversations to X/Open TX Interface |
|
|
414 | (2) |
|
C.9 Effects of Calls to the SAA RRI on Full-duplex Conversations |
|
|
416 | (1) |
|
Appendix D Mapping to OSI TP and LU 6.2 CRMs |
|
|
417 | (72) |
|
D.1 OSI TP CRMs (Half-duplex) |
|
|
418 | (35) |
|
D.1.1 Summary of CPI-C ASE Services |
|
|
418 | (1) |
|
D.1.2 Mapping CPI-C to OSI TP Services |
|
|
418 | (24) |
|
D.1.3 Mapping OSI TP Services to CPI-C for Half-duplex Conversations |
|
|
442 | (10) |
|
D.1.4 Sequencing Rules and State Tables |
|
|
452 | (1) |
|
D.1.5 CPI-C ASE Protocol Definition |
|
|
452 | (1) |
|
D.1.6 CPI-C ASE Structure and Encoding of APDUs |
|
|
452 | (1) |
|
D.2 OSI TP CRMs (Full-duplex) |
|
|
453 | (27) |
|
D.2.1 Mapping OSI TP Services to CPI-C for Full-duplex Conversations |
|
|
468 | (11) |
|
D.2.2 Sequencing Rules and State Tables |
|
|
479 | (1) |
|
D.2.3 CPI-C ASE Protocol Definition |
|
|
479 | (1) |
|
D.2.4 CPI-C ASE Structure and Encoding of APDUs |
|
|
479 | (1) |
|
|
480 | (9) |
|
D.3.1 Send-Pending State and the error_direction Characteristic |
|
|
481 | (1) |
|
D.3.2 Can CPI-C Programs Communicate with APPC Programs? |
|
|
481 | (1) |
|
D.3.3 SNA Service Transaction Programs |
|
|
481 | (1) |
|
D.3.4 Relationship between LU 6.2 Verbs and CPI Communications Calls |
|
|
482 | (7) |
|
Appendix E Pseudonym Files |
|
|
489 | (24) |
|
E.1 C Pseudonym File (CMC or CPIC.H) |
|
|
490 | (15) |
|
E.2 COBOL Pseudonym File (CMCOBOL) |
|
|
505 | (8) |
|
Appendix F Sample Programs |
|
|
513 | (12) |
|
F.1 SALESRPT (Initiator of the Conversation) |
|
|
514 | (4) |
|
F.2 CREDRPT (Acceptor of the Conversation) |
|
|
518 | (5) |
|
F.3 Results of Successful Program Execution |
|
|
523 | (2) |
|
Appendix G Application Migration from CPI-C to CPI-C, Version 2 |
|
|
525 | (2) |
Glossary |
|
527 | (4) |
Index |
|
531 | |