home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cicsprog.zip / DFHZAD.INF (.txt)
OS/2 Help File  |  1999-02-28  |  242KB  |  7,519 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. CICS Family: Client/Server Programming ΓòÉΓòÉΓòÉ
  3.  
  4.  
  5. ΓòÉΓòÉΓòÉ 2. Version Notice ΓòÉΓòÉΓòÉ
  6.  
  7. First edition (January, 1995) 
  8.  
  9. This edition applies to the following releases of the IBM licensed program 
  10. Customer Information Control System (CICS): 
  11.  
  12. o IBM CICS Client for DOS, Version 1, program number 5622-543 
  13.  
  14. o IBM CICS Client for OS/2, Version 1, program number 5622-543 
  15.  
  16. o IBM CICS Client for Windows, Version 1, program number 5622-543 
  17.  
  18. o IBM CICS Client for Macintosh, Version 1, program number 5622-543 
  19.  
  20. o IBM CICS for OS/2, Version 2.0.1, program number 5648-036 
  21.  
  22. o IBM Transaction Server for OS/2 Warp, Version 4, program number 5622-808 
  23.  
  24. o IBM CICS for Windows NT, Version 2, program number 5622-347 
  25.  
  26. o IBM CICS Client for Sun Systems, Release 1, program number 5765-290 
  27.  
  28. o IBM AIX CICS/6000, Version 1.2, program number 5765-148 
  29.  
  30. o IBM AIX Client for CICS/6000, Version 1.2, program number 5765-152 
  31.  
  32. o IBM CICS for AIX Version 2.1, program number 5765-553 
  33.  
  34. It will also apply to any subsequent versions, releases, and modifications 
  35. until otherwise indicated in new editions. Consult the latest edition of the 
  36. applicable IBM system bibliography for current information on these products. 
  37.  
  38. Order publications through your IBM representative or the IBM branch office 
  39. serving your locality. Publications are not stocked at the address given below. 
  40.  
  41. A form for reader's comments appears at the back of this publication. If the 
  42. form has been removed, address your comments to: 
  43.  
  44. IBM United Kingdom Laboratories Limited, Information Development,
  45. Mail Point 095, Hursley Park, Winchester, Hampshire, England, SO21 2JN.
  46.  
  47. When you send information to IBM, you grant IBM a nonexclusive right to use or 
  48. distribute the information in any way it believes appropriate without incurring 
  49. any obligation to you. 
  50.  
  51. (c) Copyright International Business Machines Corporation 1989, 1996. All 
  52. rights reserved. 
  53.  
  54. Note to U.S. Government Users - Documentation related to restricted rights - 
  55. Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP 
  56. Schedule Contract with IBM Corp. 
  57.  
  58.  
  59. ΓòÉΓòÉΓòÉ 3. Notices ΓòÉΓòÉΓòÉ
  60.  
  61. The following paragraph does not apply in any country where such provisions are 
  62. inconsistent with local law: 
  63. INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" 
  64. WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT 
  65. LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A 
  66. PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied 
  67. warranties in certain transactions, therefore this statement may not apply to 
  68. you. 
  69.  
  70. References in this publication to IBM products, programs, or services do not 
  71. imply that IBM intends to make these available in all countries in which IBM 
  72. operates. 
  73.  
  74. Any reference to an IBM licensed program or other IBM product in this 
  75. publication is not intended to state or imply that only IBM's program or other 
  76. product may be used. Any functionally equivalent program that does not infringe 
  77. any of IBM's intellectual property rights may be used instead of the IBM 
  78. product. Evaluation and verification of operation in conjunction with other 
  79. products, except those expressly designated by IBM, is the user's 
  80. responsibility. 
  81.  
  82. Licensees of this program who wish to have information about it for the purpose 
  83. of enabling: (i) the exchange of information between independently created 
  84. programs and other programs (including this one) and (ii) the mutual use of the 
  85. information which has been exchanged, should contact Laboratory Counsel, MP151, 
  86. IBM United Kingdom Laboratories, Hursley Park, Winchester, Hampshire, England 
  87. SO21 2JN. Such information may be available, subject to appropriate terms and 
  88. conditions, including in some cases, payment of a fee. 
  89.  
  90. IBM may have patents or pending patent applications covering subject matter in 
  91. this document. The furnishing of this document does not give you any license to 
  92. these patents. You can send license inquiries, in writing, to the IBM Director 
  93. of Licensing, IBM Corporation, 500 Columbus Avenue, Thornwood, New York 10594, 
  94. U.S.A. 
  95.  
  96.  
  97. ΓòÉΓòÉΓòÉ 3.1. Programming interface information ΓòÉΓòÉΓòÉ
  98.  
  99. This book is intended to help you to write application programs that use the 
  100. features provided by various members of the CICS family. This book documents 
  101. General-use Programming Interface and Associated Guidance Information provided 
  102. by various members of the CICS family. 
  103.  
  104. General-use programming interfaces allow the customer to write programs that 
  105. obtain the services of various members of the CICS family. 
  106.  
  107.  
  108. ΓòÉΓòÉΓòÉ 3.2. Trademarks and service marks ΓòÉΓòÉΓòÉ
  109.  
  110. The following terms, used in this publication, are trademarks or service marks 
  111. of IBM Corporation in the United States or other countries or both: 
  112.  
  113. CICS             CICS/ESA          CICS/MVS
  114. CICS OS/2          CICS/VSE          CICS/400
  115. CICS/6000          IBM             OS/2
  116. Presentation Manager     AIX             IBMLink
  117. VisualAge
  118.  
  119. The following terms used in this publication are trademarks of other companies: 
  120.  
  121. Microsoft Corporation:    Microsoft          Windows
  122.               Microsoft Windows      Windows NT
  123. Sun Systems:         SunOS            Sun
  124. Apple Computer Corp.:    Macintosh          Apple Macintosh
  125. Open Software Foundation:  Motif
  126. Novell Inc.:         Open Look
  127. Hewlett-Packard Company:   HP-UX            HP 9000
  128. Micro Focus Limited:     Micro Focus         Micro Focus Object COBOL
  129.  
  130.  
  131. ΓòÉΓòÉΓòÉ 4. Summary of changes ΓòÉΓòÉΓòÉ
  132.  
  133. Information about ECI and EPI user exits for IBM CICS on Open Systems Version 2 
  134. has been added as a appendix. 
  135.  
  136. Information about IBM Transaction Server for OS/2 Warp, Version 4 has been 
  137. added. 
  138.  
  139. Corrections have been made to the list of related publications in the preface. 
  140.  
  141. More information about security in the ECI and the EPI has been added. 
  142.  
  143. A correction has been made to the description of the eci_transid field in the 
  144. ECI parameter block. 
  145.  
  146. A correction has been made to the description of the Transid parameter of 
  147. CICS_EpiStartTran. 
  148.  
  149. Various minor technical corrections have been made. 
  150.  
  151. Small typographical errors have been corrected. 
  152.  
  153.  
  154. ΓòÉΓòÉΓòÉ 5. Preface ΓòÉΓòÉΓòÉ
  155.  
  156.  
  157. ΓòÉΓòÉΓòÉ 5.1. What this book is about ΓòÉΓòÉΓòÉ
  158.  
  159. This book is about the CICS Family programming interfaces to enable non-CICS 
  160. applications to use CICS facilities in a client-server environment. The 
  161. interfaces described are: 
  162.  
  163. o External call interface (ECI) 
  164. o External presentation interface (EPI). 
  165.  
  166.  
  167. ΓòÉΓòÉΓòÉ 5.2. Who this book is for ΓòÉΓòÉΓòÉ
  168.  
  169. This book is for application designers and application programmers in a 
  170. client-server environment. 
  171.  
  172.  
  173. ΓòÉΓòÉΓòÉ 5.3. What you need to know to understand this book ΓòÉΓòÉΓòÉ
  174.  
  175. You should have a good knowledge of: 
  176.  
  177. o CICS, and the CICS servers that the applications will use 
  178. o The concepts of client/server programming 
  179. o The programming language in which the applications will be written 
  180. o The programming environment in which the programs will operate. 
  181.  
  182.  
  183. ΓòÉΓòÉΓòÉ 5.4. Definitions ΓòÉΓòÉΓòÉ
  184.  
  185. In this book, `CICS on Open Systems' is used to refer to the following 
  186. products, subject to availability: 
  187.  
  188. o CICS/6000 
  189. o CICS for AIX Version 2 
  190. o CICS for HP 9000 
  191. o CICS for Digital UNIX 
  192.  
  193. `CICS on System/390' is used to refer to: 
  194.  
  195. o CICS/VSE 
  196. o CICS/MVS 
  197. o CICS/ESA 
  198.  
  199.  
  200. ΓòÉΓòÉΓòÉ 5.5. Typographical conventions ΓòÉΓòÉΓòÉ
  201.  
  202. The presentation of names of program elements is as follows: 
  203.  
  204.  1. When a program element is in lowercase, or mixed case, it is always written 
  205.     in this book in a bold face: eci_userid, CICS_EpiAddTerminal. 
  206.  
  207.  2. When a program element is in uppercase, it is always written in this book 
  208.     in a normal face: ECI_ERR_LUW_TOKEN, CICS_EPI_EVENT_END_TERM. 
  209.  
  210.  
  211. ΓòÉΓòÉΓòÉ 5.6. Related publications ΓòÉΓòÉΓòÉ
  212.  
  213.  
  214. ΓòÉΓòÉΓòÉ 5.6.1. General ΓòÉΓòÉΓòÉ
  215.  
  216. o CICS Family: Library Guide, GC33-0356 
  217. o CICS Family: Interproduct Communication, SC33-0824. 
  218.  
  219.  
  220. ΓòÉΓòÉΓòÉ 5.6.2. Setting up client/server systems ΓòÉΓòÉΓòÉ
  221.  
  222. o IBM CICS Clients Administration, SC33-1436 
  223. o IBM CICS/6000 Version 1.2 Planning and Installation Guide, GC33-0816 
  224. o IBM CICS for AIX Version 2.1 Planning and Installation Guide, GC33-1561 
  225. o IBM CICS/6000 Version 1.2 Administration Guide, SC33-1532 
  226. o IBM CICS for AIX Version 2.1 Administration Guide, SC33-1562 
  227. o IBM CICS on Open Systems Version 1.2 Intercommunication Guide, SC33-0815 
  228. o IBM CICS on Open Systems Version 2.1 Intercommunication Guide, SC33-1564 
  229. o CICS for OS/2 Customization, SC33-0880 (Version 2), SC33-1581 (Version 3) 
  230. o CICS for OS/2 Intercommunication, SC33-0826 (Version 2), SC33-1583 (Version 
  231.   3) 
  232. o CICS for Windows NT Customization, SC33-1421 
  233. o CICS for Windows NT Intercommunication, SC33-1423 
  234. o CICS/400 Administration and Operations Guide, SC33-1387 
  235. o CICS/400 Intercommunication, SC33-1388 
  236. o CICS/ESA Resource Definition Guide, SC33-1165 
  237. o CICS/ESA Customization Guide, SC33-1166 
  238. o CICS/MVS Resource Definition (Online), SC33-0508 
  239. o CICS/MVS Customization Guide, SC33-0507 
  240. o CICS/VSE Resource Definition (Online), SC33-0708 
  241. o CICS/VSE Customization Guide, SC33-0707. 
  242.  
  243.  
  244. ΓòÉΓòÉΓòÉ 5.6.3. Application programming on CICS servers ΓòÉΓòÉΓòÉ
  245.  
  246. This section lists books that describe the programming environment of the CICS 
  247. servers. 
  248.  
  249. o CICS for OS/2 Application Programming, SC33-0883 (Version 2), SC33-1585 
  250.   (Version 3) 
  251. o CICS for OS/2 Problem Determination, SC33-1005 (Version 2), SC33-1584 
  252.   (Version 3) 
  253. o CICS Application Programming Primer (VS COBOL II), SC33-0674 
  254. o CICS/VSE Problem Determination Guide, SC33-0716 
  255. o CICS/400 Application Programming Guide, SC33-1386 
  256. o CICS/ESA Application Programming Guide, SC33-1169 
  257. o CICS/ESA Application Programming Reference, SC33-1170 
  258. o CICS/ESA Problem Determination Guide, SC33-0678 
  259. o CICS/MVS Application Programmer's Reference, SC33-0139 
  260. o CICS/MVS Application Programming Primer, SC33-0512 
  261. o CICS for Windows NT Application Programming, SC33-1425 
  262. o CICS on Open Systems Version 1.2 Application Programming Guide, SC33-0814 
  263. o CICS on Open Systems Version 2.1 Application Programming Guide, SC33-1568 
  264. o CICS on Open Systems Version 1.2 Application Programming Reference, SC33-0886 
  265. o CICS on Open Systems Version 2.1 Application Programming Reference, SC33-1569 
  266. o CICS on Open Systems Version 1.2 Problem Determination, SC33-0818 
  267. o CICS on Open Systems Version 2.1 Problem Determination Guide, SC33-1565. 
  268.  
  269.  
  270. ΓòÉΓòÉΓòÉ 5.6.4. Miscellaneous ΓòÉΓòÉΓòÉ
  271.  
  272. o An Introduction to the IBM 3270 Information Display System, GA27-2739 
  273. o IBM 3270 Information Display System Data Stream Programmer's Reference, 
  274.   GA23-0059 
  275. o PL/I for OS/2 Language Reference, SC26-8003 
  276. o PL/I for OS/2 Programming Guide, SC26-8001. 
  277. o Guide to Writing DCE Applications, by John Shirley, published by O'Reilly 
  278.   Associates, Sebastopol, CA, USA, ISBN 1-56592-004-X 
  279.  
  280.  
  281. ΓòÉΓòÉΓòÉ 6. Introducing the external access interfaces ΓòÉΓòÉΓòÉ
  282.  
  283. This chapter introduces CICS Family Client/Server Programming, which comprises 
  284. two application programming interfaces (APIs) that provide external access to 
  285. CICS facilities: 
  286.  
  287. o External call interface (ECI) 
  288. o External presentation interface (EPI) 
  289.  
  290. The chapter is organized as follows: 
  291.  
  292. Overview 
  293. External call interface 
  294. External presentation interface 
  295. Using the external access interfaces 
  296. ECI and EPI exits (CICS on Open Systems Version 2) 
  297.  
  298.  
  299. ΓòÉΓòÉΓòÉ 6.1. Overview ΓòÉΓòÉΓòÉ
  300.  
  301. The ECI and EPI allow your non-CICS applications to gain access to CICS 
  302. facilities and data. 
  303.  
  304. External access interfaces in CICS client/server configurations illustrates the 
  305. use of the external interfaces by a non-CICS application in a client system. 
  306. This application is using the facilities of CICS in a server system. The CICS 
  307. client software processes the application's ECI and EPI requests, and transmits 
  308. them to the server system using an appropriate communication protocol. Although 
  309. the figure shows the client system and server system as separate workstations, 
  310. it is possible for the whole configuration to be on a single workstation. 
  311.  
  312.  
  313. External access interfaces in CICS client/server configurations
  314.  
  315. Some members of the CICS family provide the external interfaces to non-CICS 
  316. applications without the use of a CICS client. The non-CICS application must be 
  317. on the same workstation as the server, and is not able to communicate with 
  318. other servers. This is illustrated in Server implementation of the external 
  319. interfaces. In this case the application is using the server implementation of 
  320. the external interfaces. 
  321.  
  322.  
  323. Server implementation of the external interfaces
  324.  
  325. The following can be client systems that can connect to any CICS server. In 
  326. these systems an appropriate CICS client must be installed. See the CICS 
  327. Clients Administration manual. 
  328.  
  329. o OS/2 - IBM CICS Client for OS/2 
  330. o DOS - IBM CICS Client for DOS 
  331. o Microsoft Windows - IBM CICS Client for Windows 
  332. o Apple Macintosh - IBM CICS Client for Macintosh 
  333.  
  334. The following can be client systems that connect only to CICS on Open Systems 
  335. servers: 
  336.  
  337. o AIX - IBM AIX Client for CICS/6000 
  338. o SunOS - IBM CICS Client for Sun Systems (See note below.) 
  339. o HP-UX - CICS for HP 9000 
  340. o Digital UNIX - CICS for Digital UNIX 
  341.  
  342. Note:  For programming information for the SunOS environment, see the 
  343.        Installation and User's Guide for IBM CICS Client for Sun Systems. 
  344.  
  345. The following server systems provide a server implementation of the external 
  346. interfaces: 
  347.  
  348. o IBM CICS for OS/2 
  349. o IBM CICS for Windows NT 
  350.  
  351. Any member of the CICS family can be a server, though CICS on System/390 
  352. servers support only the ECI. 
  353.  
  354. The CICS on Open Systems servers are: 
  355.  
  356. o IBM CICS/6000 
  357. o IBM CICS for AIX Version 2 
  358. o CICS for HP 9000 
  359. o CICS for Digital UNIX 
  360.  
  361.  
  362. ΓòÉΓòÉΓòÉ 6.2. External call interface ΓòÉΓòÉΓòÉ
  363.  
  364. The ECI allows a non-CICS application to call a CICS program in a CICS server. 
  365. The application can be connected to several servers at the same time, and it 
  366. can have several program calls outstanding at the same time. 
  367.  
  368. The CICS program cannot perform terminal I/O, but can access and update all 
  369. other CICS resources. 
  370.  
  371. External call interface illustrated shows that the same CICS program can be 
  372. called by a non-CICS application using the external call interface, or by a 
  373. CICS program using EXEC CICS LINK. Data is exchanged between the two programs 
  374. by means of a COMMAREA, in a similar way to CICS interprogram communication. 
  375.  
  376.  
  377. External call interface illustrated
  378.  
  379. Calls may be made synchronously or asynchronously. Synchronous calls return 
  380. control when the called program completes, and the information returned is 
  381. immediately available. Asynchronous calls return control without reference to 
  382. the completion of the called program, and the application can ask to be 
  383. notified when the information becomes available. 
  384.  
  385. Calls may also be extended. That is, a single logical unit of work may cover 
  386. two or more successive calls, though only one call can be active for each 
  387. logical unit of work at any time. The application can manage many logical units 
  388. of work concurrently if it uses asynchronous calls. 
  389.  
  390. The called program can update resources on its own system, it can use 
  391. distributed program link (DPL) to call CICS programs on other systems, and it 
  392. can access resources on other CICS systems by function shipping, by distributed 
  393. transaction processing (DTP), or (in the CICS/MVS and CICS/ESA environments) by 
  394. the front end programming interface (FEPI). 
  395.  
  396.  
  397. ΓòÉΓòÉΓòÉ 6.3. External presentation interface ΓòÉΓòÉΓòÉ
  398.  
  399. The EPI allows a non-CICS application program to be viewed as a 3270 terminal 
  400. by a CICS server system to which it is connected. External presentation 
  401. interface shows how both an EPI application and a CICS terminal can schedule 
  402. transactions in a CICS server. 
  403.  
  404.  
  405. External presentation interface
  406.  
  407. The application can be using the facilities of several servers at the same 
  408. time, and can act as if it were many different 3270 terminals. 
  409.  
  410. The application can schedule CICS transactions, and for these transactions it 
  411. is the principal facility. 
  412.  
  413. With CICS servers that support access through the EPI, other CICS transactions 
  414. running in the server can use the CICS START command to schedule transactions 
  415. that use the non-CICS application as their initiating terminal. 
  416.  
  417. When a non-CICS application uses the EPI to start a transaction in a CICS 
  418. server, 3270 data streams and events are passed between the server and the 
  419. application. The application can present the contents of the terminal I/O to 
  420. its user in any manner appropriate to the application's operating environment. 
  421.  
  422. Transactions can be routed to other CICS systems by standard transaction 
  423. routing. Resources on other CICS systems can be accessed by function shipping. 
  424.  
  425. Note that server transactions can be existing transactions that use 3270 input 
  426. and output (with some restrictions). 
  427.  
  428.  
  429. ΓòÉΓòÉΓòÉ 6.4. Using the external access interfaces ΓòÉΓòÉΓòÉ
  430.  
  431. The external interfaces allow non-CICS applications to access and update CICS 
  432. resources by initiating CICS transactions or calling CICS programs. When used 
  433. in conjunction with the CICS communication facilities, they enable non-CICS 
  434. programs to access and update resources on any CICS system. This supports such 
  435. activities as: 
  436.  
  437.  1. Developing graphical user interface (GUI) front ends for CICS applications, 
  438.     using Presentation Manager or other presentation systems 
  439.  
  440.  2. Connecting external devices such as bar-code readers to CICS systems 
  441.  
  442.  3. Allowing the integration of CICS systems and non-CICS systems. 
  443.  
  444. The EPI allows you to develop GUIs, either for existing CICS systems or for new 
  445. applications. It is particularly useful for developing new GUI front ends for 
  446. existing CICS transactions, which need not be changed. The application can use 
  447. the EPI to communicate with a CICS transaction, and can exploit the 
  448. presentation facilities of the client system to communicate with the end user. 
  449.  
  450. If you attach an external device such as a bar code reader, the application can 
  451. deal with device input and output, and can use the EPI to start a transaction, 
  452. perhaps one already written to deal with the kind of data that the external 
  453. device produces. The application converts the input from the external device 
  454. into a 3270 data stream to start the transaction and pass the data to it. 
  455. Output from the transaction, in the form of a 3270 data stream, is then 
  456. converted into the signals and data streams that operate the external device. 
  457.  
  458. The integration of CICS and non-CICS systems usually involves passing 
  459. user-defined data between the programs of the non-CICS system and a CICS 
  460. program, and the ECI can be used for this. 
  461.  
  462. In any of these cases, the choice between EPI and ECI is not always clear-cut, 
  463. because both interfaces can be used to pass data between a non-CICS application 
  464. and a CICS program. However, the mechanism is different in the two cases: 3270 
  465. data streams for EPI; application-defined formats in a COMMAREA for ECI. 
  466.  
  467.  
  468. ΓòÉΓòÉΓòÉ 6.5. ECI and EPI exits (CICS on Open Systems Version 2) ΓòÉΓòÉΓòÉ
  469.  
  470. The operation of the EPI and ECI can be customized by the user exits described 
  471. in ECI and EPI exits (CICS on Open Systems, Version 2). 
  472.  
  473.  
  474. ΓòÉΓòÉΓòÉ 7. External call interface ΓòÉΓòÉΓòÉ
  475.  
  476. This chapter provides reference information about the external call interface 
  477. (ECI). 
  478.  
  479. The interface is described here in a language-independent manner, though the 
  480. names chosen for the elements of the interface-functions, parameters, data 
  481. structures, fields, constants, and so on-are similar to those provided for 
  482. programming. Language-dependent information is in Creating ECI and EPI 
  483. application programs. 
  484.  
  485. On some platforms, the ECI provides facilities that are not part of CICS Family 
  486. Client/Server Programming, and these are summarized in ECI extensions that are 
  487. environment-dependent. 
  488.  
  489. The chapter is organized as follows: 
  490.  
  491. Overview 
  492. Program link calls 
  493. Status information calls 
  494. Reply solicitation calls 
  495. CICS_ExternalCall 
  496. ECI status block 
  497. CICS_EciListSystems. 
  498.  
  499.  
  500. ΓòÉΓòÉΓòÉ 7.1. Overview ΓòÉΓòÉΓòÉ
  501.  
  502.  
  503. ΓòÉΓòÉΓòÉ 7.1.1. ECI function ΓòÉΓòÉΓòÉ
  504.  
  505. The ECI allows a non-CICS application program to call a CICS program in a CICS 
  506. server. The non-CICS application does not issue any CICS commands itself; the 
  507. CICS commands are issued by the called program running in the server. The 
  508. called program thus appears to have been called by EXEC CICS LINK with the 
  509. COMMAREA option. An ECI application can make use of existing CICS programs that 
  510. obey the rules for distributed program link, or new CICS programs can be 
  511. written to be called by ECI applications. The called programs must follow the 
  512. rules for CICS programs called by DPL. In particular they must make no explicit 
  513. use of the EXEC CICS SYNCPOINT or EXEC CICS SYNCPOINT ROLLBACK commands. 
  514.  
  515. In some circumstances it is possible for the application to be running more 
  516. than one CICS program concurrently, and these programs might be distributed 
  517. across several CICS servers. 
  518.  
  519. The function provided by the ECI is packaged in two parts as follows: 
  520.  
  521. CICS_ExternalCall 
  522.           Provides most of the function of the ECI. It has a single parameter, 
  523.           the ECI parameter block, in which various fields describe the 
  524.           function to be performed and the inputs and outputs. Most of the 
  525.           following sections are concerned with the use of CICS_ExternalCall. 
  526.  
  527. CICS_EciListSystems 
  528.           Used to find out about available servers to which CICS_ExternalCall 
  529.           requests can be directed. It is described in CICS_EciListSystems. 
  530.  
  531.  
  532. ΓòÉΓòÉΓòÉ 7.1.2. Types of ECI calls ΓòÉΓòÉΓòÉ
  533.  
  534. The calls to CICS_ExternalCall are of three types: 
  535.  
  536. o Program link calls 
  537. o Status information calls 
  538. o Reply solicitation calls. 
  539.  
  540. The type of call to CICS_ExternalCall is controlled by the setting of the 
  541. eci_call_type parameter in the ECI parameter block. 
  542.  
  543. Restrictions on call type for particular operating environments are discussed 
  544. in the descriptions of each call type. 
  545.  
  546.  
  547. ΓòÉΓòÉΓòÉ 7.1.2.1. Program link calls ΓòÉΓòÉΓòÉ
  548.  
  549. Program link calls cause a CICS program to be executed on a CICS server. These 
  550. calls can be: 
  551.  
  552. o Synchronous - the application waits until the called program has finished. 
  553.   Returned information is immediately available. 
  554.  
  555. o Asynchronous - the application gets control back without reference to the 
  556.   completion of the called program. The application can ask to be notified 
  557.   later when the information is available. It must use a reply solicitation 
  558.   call to determine the outcome of the asynchronous request. 
  559.  
  560.  
  561. ΓòÉΓòÉΓòÉ 7.1.2.2. Status information calls ΓòÉΓòÉΓòÉ
  562.  
  563. Status information calls retrieve status information about the type of system 
  564. on which the application is running and its status. These calls can be: 
  565.  
  566. o Synchronous - the application waits until the information has been made 
  567.   available. 
  568.  
  569. o Asynchronous - the application gets control back while the information is 
  570.   being retrieved. The application can ask to be notified later when the 
  571.   information is available. It must use a reply solicitation call to determine 
  572.   the outcome of the asynchronous request. 
  573.  
  574.  
  575. ΓòÉΓòÉΓòÉ 7.1.2.3. Reply solicitation calls ΓòÉΓòÉΓòÉ
  576.  
  577. Reply solicitation calls get information back after asynchronous program link 
  578. or asynchronous status information calls. Reply solicitation calls can be: 
  579.  
  580. o General - retrieving any piece of outstanding information 
  581. o Specific -  retrieving information for a named asynchronous request. 
  582.  
  583. An application that uses the asynchronous method of calling may have several 
  584. program link and status information calls outstanding at any time. The 
  585. eci_message_qualifier parameter in the ECI parameter block can be used on an 
  586. asynchronous call to provide a user-defined identifier for the call. The use of 
  587. different identifiers for different asynchronous calls within a single 
  588. application is the programmer's responsibility. When a general reply 
  589. solicitation call is made, the ECI uses the eci_message_qualifier field to 
  590. return the name of the call to which the reply belongs. When a specific reply 
  591. solicitation call is made, you must supply a value in the eci_message_qualifier 
  592. field to identify the asynchronous call about which information is begin 
  593. sought. 
  594.  
  595.  
  596. ΓòÉΓòÉΓòÉ 7.2. Program link calls ΓòÉΓòÉΓòÉ
  597.  
  598. Program link calls can be either synchronous or asynchronous. For asynchronous 
  599. calls, it is the responsibility of the calling application to solicit the reply 
  600. using one of the reply solicitation calls. (See Reply solicitation calls.) 
  601.  
  602.  
  603. ΓòÉΓòÉΓòÉ 7.2.1. Managing logical units of work ΓòÉΓòÉΓòÉ
  604.  
  605. An ECI application is often concerned with updating recoverable resources on 
  606. the server, and the application programmer needs to understand the facilities 
  607. that the ECI provides for managing logical units of work. A logical unit of 
  608. work is all the processing in the server that is needed to establish a set of 
  609. updates to recoverable resources. When the logical unit of work ends normally, 
  610. the changes will all be committed. When the logical unit of work ends 
  611. abnormally, for instance because a program abends, the changes are all backed 
  612. out. You can use the ECI to start and end logical units of work on the server. 
  613.  
  614. The changes to recoverable resources in a logical unit of work might be 
  615. effected by: 
  616.  
  617. o A single program link call, or 
  618. o A sequence of program link calls. 
  619.  
  620. On successful return from the first of a sequence of calls for a logical unit 
  621. of work, the eci_luw_token field in the control block contains a token that 
  622. should be used for all later calls related to the same logical unit of work. 
  623. All program link calls for the same logical unit of work will be sent to the 
  624. same server. 
  625.  
  626. Attention: You should be careful when extending a logical unit of work across 
  627. multiple program link calls that may span a long time (for example, over user 
  628. think time). The reason is that the logical unit of work holds various locks 
  629. and other CICS resources on the server, and this may cause delays to other 
  630. users who are waiting for those same locks and resources. 
  631.  
  632. When a logical unit of work ends, the CICS server attempts to commit the 
  633. changes. The last, or only, program link call of a logical unit of work is 
  634. advised whether the attempt was successful. 
  635.  
  636. Only one program link call per logical unit of work can be outstanding at any 
  637. time. (An asynchronous program link call is outstanding until a reply 
  638. solicitation call has processed the reply.) 
  639.  
  640. Logical units of work in the ECI shows how you can use combinations of 
  641. eci_extend_mode, eci_program_name, and eci_luw_token parameter values to 
  642. perform tasks associated with managing logical units of work through the ECI. 
  643. In each case you must also store appropriate values in other fields for the 
  644. call type you have chosen. 
  645.  
  646. Each logical unit of work ties up one CICS non-facility task for the duration 
  647. of its execution. This means that you must define enough free tasks in the CICS 
  648. server to service the maximum expected number of concurrent calls. 
  649.  
  650. Asynchronous program link calls with message qualifiers and LUW tokens shows an 
  651. application program using asynchronous program calls. The program has two calls 
  652. outstanding in one server and one call in another. To keep track of its 
  653. requests, the program is using message qualifiers that it has generated itself, 
  654. and LUW tokens returned in the eci_luw_token field. 
  655.  
  656.  
  657. Asynchronous program link calls with message qualifiers and LUW tokens
  658.  
  659. For more details of the program link calls, you should study the descriptions 
  660. of the individual call types: 
  661.  
  662. ECI_SYNC for a synchronous program link call 
  663.  
  664. ECI_ASYNC for an asynchronous program link call. 
  665.  
  666.  
  667. ΓòÉΓòÉΓòÉ 7.2.1.1. Logical units of work in the ECI ΓòÉΓòÉΓòÉ
  668.  
  669. Call a program that is to be the only program of a logical unit of work. 
  670.           Set up the parameters as follows: 
  671.  
  672.    o eci_extend_mode: ECI_NO_EXTEND 
  673.    o eci_program_name: provide it 
  674.    o eci_luw_token: zero 
  675.  
  676. Call a program that is to start a new logical unit of work that is to be 
  677. extended. 
  678.           Set up the parameters as follows: 
  679.  
  680.    o eci_extend_mode: ECI_EXTENDED 
  681.    o eci_program_name: provide it 
  682.    o eci_luw_token: zero 
  683.  
  684.           Afterwards, save the token from eci_luw_token. 
  685.  
  686. Call a program that is to continue an existing logical unit of work. 
  687.           Set up the parameters as follows: 
  688.  
  689.    o eci_extend_mode: ECI_EXTENDED 
  690.    o eci_program_name: provide it 
  691.    o eci_luw_token: provide it 
  692.  
  693. Call a program that is to be the last program of an existing logical unit of 
  694. work, and commit the changes. 
  695.           Set up the parameters as follows: 
  696.  
  697.    o eci_extend_mode: ECI_NO_EXTEND 
  698.    o eci_program_name: provide it 
  699.    o eci_luw_token: provide it 
  700.  
  701. End an existing logical unit of work, without calling another program, and 
  702. commit changes to recoverable resources. 
  703.           Set up the parameters as follows: 
  704.  
  705.    o eci_extend_mode: ECI_COMMIT 
  706.    o eci_program_name: null 
  707.    o eci_luw_token: provide it 
  708.  
  709. End an existing logical unit of work, without calling another program, and back 
  710. out changes to recoverable resources. 
  711.           Set up the parameters as follows: 
  712.  
  713.    o eci_extend_mode: ECI_BACKOUT 
  714.    o eci_program_name: null 
  715.    o eci_luw_token: provide it 
  716.  
  717.  
  718. ΓòÉΓòÉΓòÉ 7.2.2. Security in the ECI ΓòÉΓòÉΓòÉ
  719.  
  720. Not all CICS servers require the client to supply a userid and password for 
  721. ECI_SYNC and ECI_ASYNC call types. Some CICS servers have configuration options 
  722. to decide whether the userid and password are required. You should consult the 
  723. publications for the appropriate server for more information. 
  724.  
  725. Some client environments support the use of userids and passwords in files, so 
  726. that the userid and password need not be supplied by the non-CICS application. 
  727. Some client environments support the use of dialogs with the workstation 
  728. operator to determine userids and passwords. You should consult the 
  729. publications for the appropriate client environment for more information. 
  730.  
  731. In the CICS on Open Systems environment, the operator might need DCE 
  732. authorization to use the ECI application, depending on the local configuration. 
  733. If the ECI program runs for a long time, for example longer than thirty 
  734. minutes, you must make sure that the credential lifetime and renewable lifetime 
  735. of the DCE principal are long enough to cover the maximum allowed duration of 
  736. the ECI program. 
  737.  
  738. Whether userids and passwords are encrypted depends on the communications 
  739. protocol being used between client and server. 
  740.  
  741.  
  742. ΓòÉΓòÉΓòÉ 7.3. Status information calls ΓòÉΓòÉΓòÉ
  743.  
  744. Status information calls can be either synchronous or asynchronous. For 
  745. asynchronous calls, it is the responsibility of the calling application to 
  746. obtain the reply using a reply solicitation call (see Reply solicitation 
  747. calls). 
  748.  
  749.  
  750. ΓòÉΓòÉΓòÉ 7.3.1. How status information is supplied and used ΓòÉΓòÉΓòÉ
  751.  
  752. Status information is supplied in the ECI status block, which is passed across 
  753. the interface in the eci_commarea parameter. 
  754.  
  755. The following status information is held in the ECI status block. For a more 
  756. detailed description, see ECI status block. 
  757.  
  758. o The type of connection (whether the ECI program is locally connected to a 
  759.   CICS server, a CICS client, or nothing) 
  760.  
  761. o The state of the CICS server (available, unavailable, or unknown) 
  762.  
  763. o The state of the CICS client (available, not applicable, or unknown). 
  764.  
  765. The status information calls allow you to perform three tasks: 
  766.  
  767. o Enquire on the type of system the application is running on, and its 
  768.   connection with a given server. For this you need to provide a COMMAREA in 
  769.   which the status is returned. 
  770.  
  771. o Set up a request to be notified when the status changes from some specified 
  772.   value. For this you need to provide a COMMAREA in which the specified status 
  773.   is described. When the status is different from the status specified, you are 
  774.   notified of the new status. Only asynchronous calls can be used for this 
  775.   purpose. 
  776.  
  777. o Cancel a request for notification of status change. For this no COMMAREA is 
  778.   required. 
  779.  
  780. Status enquiries with CICS_ExternalCall shows how you can use combinations of 
  781. eci_extend_mode, eci_commarea, eci_commarea_length, and eci_luw_token parameter 
  782. values to perform tasks associated with status enquiries. In each case you must 
  783. also store appropriate values in other fields for the call type you have 
  784. chosen. 
  785.  
  786. For more details of the status information calls, you should study the 
  787. descriptions of the individual call types: 
  788.  
  789. ECI_STATE_SYNC for a synchronous status information call 
  790.  
  791. ECI_STATE_ASYNC for an asynchronous status information call. 
  792.  
  793.  
  794. ΓòÉΓòÉΓòÉ 7.3.1.1. Status enquiries with CICS_ExternalCall ΓòÉΓòÉΓòÉ
  795.  
  796. Find the current status. 
  797.           Set up the parameters as follows: 
  798.  
  799.    o eci_commarea: nulls 
  800.    o eci_commarea_length: length of ECI_STATUS 
  801.    o eci_extend_mode: ECI_STATE_IMMEDIATE 
  802.  
  803.           Afterwards, consult the contents of the COMMAREA to find the status. 
  804.  
  805. Set up a request to find out about status change. 
  806.           Set up the parameters as follows: 
  807.  
  808.    o eci_commarea: specified status 
  809.    o eci_commarea_length: length of ECI_STATUS 
  810.    o eci_extend_mode: ECI_STATE_CHANGED 
  811.    o eci_luw_token: zero 
  812.  
  813.           Afterwards, save the token from eci_luw_token so that you can cancel 
  814.           the request later. 
  815.  
  816. Cancel a request to find out about status change. 
  817.           Set up the parameters as follows: 
  818.  
  819.    o eci_commarea: none 
  820.    o eci_commarea_length: zero 
  821.    o eci_extend_mode: ECI_STATE_CANCEL 
  822.    o eci_luw_token: provide it 
  823.  
  824.  
  825. ΓòÉΓòÉΓòÉ 7.4. Reply solicitation calls ΓòÉΓòÉΓòÉ
  826.  
  827. After an asynchronous program link call or asynchronous status information 
  828. call, it is the responsibility of the calling application to solicit the reply. 
  829. All calls return any outstanding reply that meets the selection criteria 
  830. specified in the call. 
  831.  
  832. For more details of the reply solicitation calls, you should study the 
  833. descriptions of the individual call types: 
  834.  
  835. ECI_GET_REPLY for a reply solicitation call that gets any outstanding reply for 
  836. any asynchronous call, if any reply is available. 
  837.  
  838. ECI_GET_REPLY_WAIT for a reply solicitation call that gets any outstanding 
  839. reply for any asynchronous call, waiting if no replies are available. 
  840.  
  841. ECI_GET_SPECIFIC_REPLY for a reply solicitation call that gets any outstanding 
  842. reply for a given asynchronous call, if any reply is available. 
  843.  
  844. ECI_GET_SPECIFIC_REPLY_WAIT for a reply solicitation call that gets any 
  845. outstanding reply for a given asynchronous call, waiting if no replies are 
  846. available. 
  847.  
  848.  
  849. ΓòÉΓòÉΓòÉ 7.5. CICS_ExternalCall ΓòÉΓòÉΓòÉ
  850.  
  851. CICS_ExternalCall 
  852.  
  853. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  854. Γöé CICS_ExternalCall           Γöé ECI_Parms               Γöé
  855. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  856.  
  857.  Purpose 
  858.  
  859.           CICS_ExternalCall gives access to the program link calls, status 
  860.           information calls, and reply solicitation calls described above. The 
  861.           function performed is controlled by the eci_call_type field in the 
  862.           ECI parameter block. 
  863.  
  864.  Parameters 
  865.  
  866.           ECI_Parms 
  867.                     A pointer to the ECI parameter block. The parameter block 
  868.                     must be set to nulls before use. The parameter block fields 
  869.                     that are used as input and output are described in detail 
  870.                     for each call type in the following sections. A brief 
  871.                     summary of the fields is given next: 
  872.  
  873.              eci_call_type 
  874.                        An integer field defining the type of call being made. 
  875.                        For details of the functions provided, see Types of ECI 
  876.                        calls. 
  877.  
  878.              eci_program_name 
  879.                        The name of a program to be called. 
  880.  
  881.              eci_userid 
  882.                        Userid for security checking. 
  883.  
  884.              eci_password 
  885.                        Password for security checking. 
  886.  
  887.              eci_transid 
  888.                        A transaction identifier. 
  889.  
  890.              eci_abend_code 
  891.                        Abend code for a failed program. 
  892.  
  893.              eci_commarea 
  894.                        A COMMAREA for use by a called program, or for returned 
  895.                        status information. 
  896.  
  897.              eci_commarea_length 
  898.                        The length of the COMMAREA. 
  899.  
  900.              eci_timeout 
  901.                        This field is provided for migration of existing ECI 
  902.                        applications, and should normally be set to zero. 
  903.  
  904.              eci_sys_return_code 
  905.                        A return code giving more information about an 
  906.                        unexpected error. 
  907.  
  908.              eci_extend_mode 
  909.                        A field that qualifies the function to be performed in 
  910.                        various ways. 
  911.  
  912.              eci_message_qualifier 
  913.                        A user-provided reference to an asynchronous call. 
  914.  
  915.              eci_luw_token 
  916.                        An identifier for a logical unit of work. 
  917.  
  918.              eci_sysid 
  919.                        Reserved for future use, leave null. 
  920.  
  921.              eci_version 
  922.                        The version of the ECI for which the application is 
  923.                        coded. In the CICS on Open Systems environment, only 
  924.                        ECI_VERSION_1 may be specified. In other environments, 
  925.                        you may use the values ECI_VERSION_1 or ECI_VERSION_1A. 
  926.                        Facilities available only in version 1A are noted where 
  927.                        they occur. The use of the value ECI_VERSION_0 is 
  928.                        confined to programs migrated from previous versions of 
  929.                        the ECI. 
  930.  
  931.              eci_system_name 
  932.                        The name of a CICS server. 
  933.  
  934.              eci_callback 
  935.                        A pointer to a callback routine for an asynchronous 
  936.                        request. 
  937.  
  938.              eci_userid2 
  939.                        Userid for security checking. 
  940.  
  941.              eci_password2 
  942.                        Password for security checking. 
  943.  
  944.              eci_tpn 
  945.                        A transaction identifier for a mirror transaction. This 
  946.                        field is available only when eci_version has the value 
  947.                        ECI_VERSION_1A. 
  948.  
  949.  Return codes 
  950.  
  951.           In addition to the return codes described for each call type in the 
  952.           following sections, the following return codes are possible. 
  953.  
  954.           ECI_ERR_INVALID_CALL_TYPE 
  955.                     The call type was not one of the valid call types. 
  956.  
  957.           ECI_ERR_CALL_FROM_CALLBACK 
  958.                     The call was made from a callback routine. 
  959.  
  960.           ECI_ERR_SYSTEM_ERROR 
  961.                     An internal system error occurred. The error might have 
  962.                     been in the client or in the server. The programmer should 
  963.                     save the information returned in the eci_sys_return_code 
  964.                     field, as this will help service personnel to diagnose the 
  965.                     error. 
  966.  
  967.           ECI_ERR_INVALID_VERSION 
  968.                     The value supplied for eci_version was invalid. 
  969.  
  970.           ECI_ERR_REQUEST_TIMEOUT 
  971.                     The value in the eci_timeout field of the ECI parameter 
  972.                     block is negative. 
  973.  
  974.           In some implementations, some of the return codes documented here and 
  975.           for each call type will never be returned. 
  976.  
  977.  
  978. ΓòÉΓòÉΓòÉ 7.5.1. ECI_SYNC call type ΓòÉΓòÉΓòÉ
  979.  
  980. ECI_SYNC call type 
  981.  
  982.  Environment 
  983.  
  984.           The ECI_SYNC call type is available in all environments. 
  985.  
  986.  Purpose 
  987.  
  988.           The ECI_SYNC call type provides a synchronous program link call to 
  989.           start, continue, or end a logical unit of work. The calling 
  990.           application does not get control back until the called CICS program 
  991.           has run to completion. 
  992.  
  993.  ECI parameter block fields 
  994.  
  995.           The ECI parameter block should be set to nulls before setting the 
  996.           input parameter fields. 
  997.  
  998.           eci_call_type 
  999.                     Required input parameter. 
  1000.  
  1001.                     Must be set to ECI_SYNC. 
  1002.  
  1003.           eci_program_name 
  1004.                     Input parameter, required except when eci_extend_mode is 
  1005.                     ECI_COMMIT or ECI_BACKOUT. (See Logical units of work in 
  1006.                     the ECI.) 
  1007.  
  1008.                     An 8-character field containing the name of the program to 
  1009.                     be called. Unused characters should be padded with spaces. 
  1010.                     This field is transmitted to the server without conversion 
  1011.                     to uppercase. 
  1012.  
  1013.           eci_userid 
  1014.                     Required input parameter. 
  1015.  
  1016.                     An 8-character field containing a userid. Unused characters 
  1017.                     should be padded with spaces. On CICS on Open Systems 
  1018.                     clients, this field is transmitted to the server without 
  1019.                     conversion to uppercase. In other environments, you should 
  1020.                     consult the documentation for the client and the server to 
  1021.                     check whether this field is converted to upper case before 
  1022.                     being transmitted to the server. (If a userid or password 
  1023.                     longer than 8 characters is required, eci_version must not 
  1024.                     be ECI_VERSION_0; and eci_userid and eci_password must be 
  1025.                     set to nulls, and the fields eci_userid2 and eci_password2 
  1026.                     used instead.) 
  1027.  
  1028.                     If a userid is supplied, then the server uses the userid 
  1029.                     and any supplied password to authenticate the user. The 
  1030.                     supplied userid and password are used in subsequent 
  1031.                     security checking in the server. 
  1032.  
  1033.           eci_password 
  1034.                     Required input parameter. 
  1035.  
  1036.                     An 8-character field containing a password. Unused 
  1037.                     characters should be padded with spaces. On CICS on Open 
  1038.                     Systems clients, this field is transmitted to the server 
  1039.                     without conversion to uppercase. In other environments, you 
  1040.                     should consult the documentation for the client and the 
  1041.                     server to check whether this field is converted to upper 
  1042.                     case before being transmitted to the server. (If a userid 
  1043.                     or password longer than 8 characters is required, this 
  1044.                     field and eci_userid must be set to nulls, and the fields 
  1045.                     eci_userid2 and eci_password2 used instead.) 
  1046.  
  1047.           eci_transid 
  1048.                     Optional input parameter 
  1049.  
  1050.                     A 4-character field optionally containing the ID of a CICS 
  1051.                     transaction. Unused characters should be padded with 
  1052.                     spaces. This field is transmitted to the server without 
  1053.                     conversion to uppercase. The use of this parameter depends 
  1054.                     on the server to which the request is directed. 
  1055.  
  1056.              o For a CICS on Open Systems server, this is the name of the 
  1057.                transaction that will be used to service the request. The name 
  1058.                you choose must be defined as a transaction name on the server, 
  1059.                and must be associated with the program DFHMIRS. 
  1060.  
  1061.              o For other CICS servers, this is the name of the transaction 
  1062.                under which the called program will run. This name is available 
  1063.                to the called program for querying the transaction ID; use it if 
  1064.                the CICS program issues a distributed program link, and if the 
  1065.                transaction ID under which the program runs is important. Some 
  1066.                servers use the transaction ID to determine security and 
  1067.                performance attributes for the called program. You are 
  1068.                recommended to use this parameter to control the processing of 
  1069.                your called programs. 
  1070.  
  1071.                     If the ECI request is extended (see the description of 
  1072.                     eci_extend_mode), all calls in the same logical unit of 
  1073.                     work must use the same value for eci_transid. 
  1074.  
  1075.                     If the field is all nulls, the default server transaction 
  1076.                     ID is used. 
  1077.  
  1078.           eci_abend_code 
  1079.                     Output parameter. 
  1080.  
  1081.                     A 4-character field in which a CICS abend code is returned 
  1082.                     if the transaction that executes the called program abends. 
  1083.                     Unused characters are padded with spaces. 
  1084.  
  1085.           eci_commarea 
  1086.                     Optional input parameter. 
  1087.  
  1088.                     A pointer to the data to be passed to the called CICS 
  1089.                     program as its COMMAREA. The COMMAREA will be used by the 
  1090.                     called program to return information to the application. 
  1091.  
  1092.                     If no COMMAREA is required, supply a null pointer and set 
  1093.                     the length (specified in eci_commarea_length) to zero. 
  1094.  
  1095.                     If the code page of the application is different from the 
  1096.                     code page of the server, data conversion must be performed 
  1097.                     at the server. To do this, you need to make use of 
  1098.                     CICS-supplied resource conversion capabilities, such as the 
  1099.                     DFHCNV macro definitions. 
  1100.  
  1101.           eci_commarea_length 
  1102.                     Optional input parameter. 
  1103.  
  1104.                     The length of the COMMAREA in bytes. This value may not 
  1105.                     exceed 32500. (Some client-server combinations may allow 
  1106.                     larger COMMAREAs, but this is not guaranteed to work as 
  1107.                     part of CICS Family Client/Server Programming.) 
  1108.  
  1109.                     If no COMMAREA is required, set this field to zero and 
  1110.                     supply a null pointer in eci_commarea. 
  1111.  
  1112.           eci_sys_return_code 
  1113.                     Output parameter. 
  1114.  
  1115.                     An integer field containing additional information when the 
  1116.                     return code is ECI_ERR_SYSTEM_ERROR. The meaning of this 
  1117.                     information depends on the software and hardware platform. 
  1118.                     You should save this information, as it will help service 
  1119.                     personnel to diagnose the error. 
  1120.  
  1121.           eci_extend_mode 
  1122.                     Required input parameter. 
  1123.  
  1124.                     An integer field determining whether a logical unit of work 
  1125.                     is terminated at the end of this call. (See Logical units 
  1126.                     of work in the ECI.) 
  1127.  
  1128.                     The values for this field (shown by their symbolic names) 
  1129.                     are as follows: 
  1130.  
  1131.              ECI_NO_EXTEND 
  1132.  
  1133.                  1. If the input eci_luw_token field is zero, this is the only 
  1134.                     call for a logical unit of work. 
  1135.  
  1136.                  2. If the input eci_luw_token field is not zero, this is the 
  1137.                     last call for the specified logical unit of work. 
  1138.  
  1139.                   In either case, changes to recoverable resources are 
  1140.                   committed by a CICS end-of-task syncpoint, and the logical 
  1141.                   unit of work ends. 
  1142.  
  1143.              ECI_EXTENDED 
  1144.  
  1145.                  1. If the input eci_luw_token field is zero, this is the first 
  1146.                     call for a logical unit of work that is to be continued. 
  1147.  
  1148.                  2. If the input eci_luw_token field is not zero, this call is 
  1149.                     intended to continue the specified logical unit of work. 
  1150.  
  1151.                   In either case the logical unit of work continues after the 
  1152.                   called program completes successfully, and changes to 
  1153.                   recoverable resources remain uncommitted. 
  1154.  
  1155.              ECI_COMMIT 
  1156.                   Terminate the current logical unit of work, identified by the 
  1157.                   input eci_luw_token field, and commit all changes made to 
  1158.                   recoverable resources. 
  1159.  
  1160.              ECI_BACKOUT 
  1161.                   Terminate the logical unit of work identified by the input 
  1162.                   eci_luw_token field, and back out all changes made to 
  1163.                   recoverable resources. 
  1164.  
  1165.           eci_luw_token 
  1166.                     Required input and output parameter. 
  1167.  
  1168.                     An integer field used for identifying the logical unit of 
  1169.                     work to which a call belongs. It must be set to zero at the 
  1170.                     start of a logical unit of work (regardless of whether the 
  1171.                     logical unit of work is going to be extended). If the 
  1172.                     logical unit of work is to be extended, the ECI updates 
  1173.                     eci_luw_token with a valid value on the first call of the 
  1174.                     logical unit of work, and this value should be used as 
  1175.                     input to all later calls related to the same logical unit 
  1176.                     of work. (See Logical units of work in the ECI.) 
  1177.  
  1178.                     If the return code is not ECI_NO_ERROR, and the call was 
  1179.                     continuing or ending an existing logical unit of work, this 
  1180.                     field is used as output to report the condition of the 
  1181.                     logical unit of work. If it is set to zero, the logical 
  1182.                     unit of work has ended, and its updates have been backed 
  1183.                     out. If it is nonzero, it is the same as the input value, 
  1184.                     the logical unit of work is continuing, and its updates are 
  1185.                     still pending. 
  1186.  
  1187.           eci_sysid 
  1188.                     Required input parameter. 
  1189.  
  1190.                     Reserved for future use, but this field should be 
  1191.                     initialized with nulls before the start of each logical 
  1192.                     unit of work. 
  1193.  
  1194.           eci_version 
  1195.                     Required input parameter. 
  1196.  
  1197.                     The version of the ECI for which the application is coded. 
  1198.                     In the CICS on Open Systems environment, only ECI_VERSION_1 
  1199.                     may be specified. In other environments, you may use the 
  1200.                     values ECI_VERSION_1 or ECI_VERSION_1A. All the facilities 
  1201.                     of version 1 are available in version 1A. Facilities 
  1202.                     available only in version 1A are noted where they occur. 
  1203.                     (ECI_VERSION_0 is provided to allow applications written 
  1204.                     for previous versions of the ECI to continue to execute, 
  1205.                     but many of the facilities of CICS Client/Server 
  1206.                     Programming are not available if eci_version has this 
  1207.                     value.) 
  1208.  
  1209.           eci_system_name 
  1210.                     Optional input parameter. 
  1211.  
  1212.                     An 8-character field that specifies the name of the server 
  1213.                     to which the ECI request is to be directed. Unused 
  1214.                     characters should be padded with spaces. If supplied, it 
  1215.                     should be one of the server names returned by 
  1216.                     CICS_EciListSystems. The value may be supplied whenever 
  1217.                     eci_luw_token is set to zero. (If it is supplied when 
  1218.                     eci_luw_token is not zero, it is ignored, because the 
  1219.                     server was established at the start of the logical unit of 
  1220.                     work.) 
  1221.  
  1222.                     If the field is set to nulls, then a server, currently the 
  1223.                     default server, is selected; the name of the chosen server 
  1224.                     is returned in this field, and must be used in subsequent 
  1225.                     related ECI requests. If ECI requests made in different 
  1226.                     logical units of work must be directed to the same server, 
  1227.                     then eci_system_name must identify that server by name. 
  1228.  
  1229.           eci_userid2 
  1230.                     Optional input parameter. 
  1231.  
  1232.                     If the eci_userid field is set to nulls, then the 
  1233.                     eci_userid2 field specifies the userid (if any) to be used 
  1234.                     at the server for any authority validation. The userid can 
  1235.                     be up to 16 characters. eci_version must not be 
  1236.                     ECI_VERSION_0. 
  1237.  
  1238.                     See the description of the eci_userid field for information 
  1239.                     about how the userid is used. 
  1240.  
  1241.           eci_password2 
  1242.                     Optional input parameter. 
  1243.  
  1244.                     If the eci_password field is set to nulls, the 
  1245.                     eci_password2 field specifies the password (if any) to be 
  1246.                     used at the server for any authority validation. The 
  1247.                     password can be up to 16 characters. eci_version must not 
  1248.                     be ECI_VERSION_0. 
  1249.  
  1250.                     See the description of the eci_password field for 
  1251.                     information about how the password is used. 
  1252.  
  1253.           eci_tpn 
  1254.                     Optional input parameter. Available only if the value of 
  1255.                     eci_version is ECI_VERSION_1A. 
  1256.  
  1257.                     A 4-character field that specifies the transaction ID of 
  1258.                     the transaction that will be used in the server to process 
  1259.                     the ECI request. This transaction must be defined in the 
  1260.                     server as a CICS mirror transaction. If the field is not 
  1261.                     set, the default mirror transaction CAMI is used. 
  1262.  
  1263.                     If the ECI request is extended (see the description of 
  1264.                     eci_extend_mode), you need specify this only for the first 
  1265.                     request. If you specify a value for subsequent requests, it 
  1266.                     is ignored, and the value specified for the first request 
  1267.                     is reused. 
  1268.  
  1269.  Return codes 
  1270.  
  1271.           See also the general list of return codes for CICS_ExternalCall in 
  1272.           CICS_ExternalCall. 
  1273.  
  1274.           ECI_NO_ERROR 
  1275.                     The call completed successfully. 
  1276.  
  1277.           ECI_ERR_INVALID_DATA_LENGTH 
  1278.                     The value in eci_commarea_length field is outside the valid 
  1279.                     range, or is inconsistent with the value in eci_commarea, 
  1280.                     being zero for a non-null eci_commarea pointer, or non-zero 
  1281.                     for a null eci_commarea pointer. 
  1282.  
  1283.           ECI_ERR_INVALID_EXTEND_MODE 
  1284.                     The value in eci_extend_mode field is not valid. 
  1285.  
  1286.           ECI_ERR_NO_CICS 
  1287.                     The client is unavailable, or the server implementation is 
  1288.                     unavailable, or a logical unit of work was to be begun, but 
  1289.                     the CICS server specified in eci_system_name is not 
  1290.                     available. No resources have been updated. 
  1291.  
  1292.           ECI_ERR_CICS_DIED 
  1293.                     A logical unit of work was to be begun or continued, but 
  1294.                     the CICS server was no longer available. If eci_extend_mode 
  1295.                     was ECI_EXTENDED, the changes are backed out, and the 
  1296.                     logical unit of work ends. If eci_extend_mode was 
  1297.                     ECI_NO_EXTEND, ECI_COMMIT, or ECI_BACKOUT, the application 
  1298.                     cannot determine whether the changes have been committed or 
  1299.                     backed out, and must log this condition to aid future 
  1300.                     manual recovery. 
  1301.  
  1302.           ECI_ERR_TRANSACTION_ABEND 
  1303.                     The CICS transaction that executed the requested program 
  1304.                     abended. The abend code will be found in eci_abend_code. 
  1305.                     For information about abend codes and their meaning, you 
  1306.                     should consult the documentation for the server system to 
  1307.                     which the request was directed. 
  1308.  
  1309.           ECI_ERR_LUW_TOKEN 
  1310.                     The value supplied in  eci_luw_token is invalid. 
  1311.  
  1312.           ECI_ERR_ALREADY_ACTIVE 
  1313.                     An attempt was made to continue an existing logical unit of 
  1314.                     work, but there was an outstanding asynchronous call for 
  1315.                     the same logical unit of work. 
  1316.  
  1317.           ECI_ERR_RESOURCE_SHORTAGE 
  1318.                     The server implementation or the client did not have enough 
  1319.                     resources to complete the request. 
  1320.  
  1321.           ECI_ERR_NO_SESSIONS 
  1322.                     A new logical unit of work was being created, but the 
  1323.                     application already has as many outstanding logical units 
  1324.                     of work as the configuration will support. 
  1325.  
  1326.           ECI_ERR_INVALID_DATA_AREA 
  1327.                     Either the pointer to the ECI parameter block is invalid, 
  1328.                     or the pointer supplied in eci_commarea is invalid. 
  1329.  
  1330.           ECI_ERR_ROLLEDBACK 
  1331.                     An attempt was made to commit a logical unit of work, but 
  1332.                     the server was unable to commit the changes, and backed 
  1333.                     them out instead. 
  1334.  
  1335.           ECI_ERR_UNKNOWN_SERVER 
  1336.                     The requested server could not be located. Only servers 
  1337.                     returned by CICS_EciListSystems are acceptable. 
  1338.  
  1339.           ECI_ERR_INVALID_TRANSID 
  1340.                     A logical unit of work was being extended, but the value 
  1341.                     supplied in eci_transid differed from the value used when 
  1342.                     the logical unit of work was started. 
  1343.  
  1344.           ECI_ERR_MAX_SESSIONS 
  1345.                     There were not enough communication resources to satisfy 
  1346.                     the request. You should consult the documentation for your 
  1347.                     client or server to see how to control communication 
  1348.                     resources. 
  1349.  
  1350.           ECI_ERR_MAX_SYSTEMS 
  1351.                     You attempted to start requests to more servers than your 
  1352.                     configuration allows. You should consult the documentation 
  1353.                     for your client or server to see how to control the number 
  1354.                     of servers you can use. 
  1355.  
  1356.           ECI_ERR_SECURITY_ERROR 
  1357.                     You did not supply a valid combination of userid and 
  1358.                     password, though the server expects it. 
  1359.  
  1360.  
  1361. ΓòÉΓòÉΓòÉ 7.5.2. ECI_ASYNC call type ΓòÉΓòÉΓòÉ
  1362.  
  1363. ECI_ASYNC call type 
  1364.  
  1365.  Environment 
  1366.  
  1367.           The ECI_ASYNC call type is available in all environments except DOS. 
  1368.  
  1369.  Purpose 
  1370.  
  1371.           The ECI_ASYNC call type provides an asynchronous program link call to 
  1372.           start, continue, or end a logical unit of work. The calling 
  1373.           application gets control back when the ECI has accepted the request. 
  1374.           At this point the parameters have been validated; however, the 
  1375.           request might still be queued for later processing. 
  1376.  
  1377.           If no callback routine is provided, the application must use a reply 
  1378.           solicitation call to determine that the request has ended and what 
  1379.           the outcome was. 
  1380.  
  1381.           If a callback routine is provided, the callback routine eci_callback 
  1382.           is invoked when a response is available. 
  1383.  
  1384.           Note:  Some compilers do not support the use of callback routines. 
  1385.                  Consult your compiler documentation for more information. 
  1386.  
  1387.           When the callback routine is called, it is passed a single 
  1388.           parameter-the value specified in eci_message_qualifier. Use of this 
  1389.           parameter enables the callback routine to identify the asynchronous 
  1390.           call that is completing. Note the following guidelines on the use of 
  1391.           the callback routine: 
  1392.  
  1393.            1. The minimum possible processing should be performed within the 
  1394.               callback routine. 
  1395.  
  1396.            2. ECI functions cannot be invoked from within the callback routine. 
  1397.  
  1398.            3. The callback routine should indicate to the main body of the 
  1399.               application that the reply is available using an appropriate 
  1400.               technique for the operating system upon which the ECI application 
  1401.               is executing. For example, in a multithreaded environment like 
  1402.               OS/2, the callback routine might post a semaphore to signal 
  1403.               another thread that an event has occurred. In a Presentation 
  1404.               Manager environment, it might post a message to a window to 
  1405.               indicate to the window procedure that an event has occurred. 
  1406.               Other actions would be appropriate for other environments. 
  1407.  
  1408.            4. In a CICS on Open Systems environment, only thread-safe 
  1409.               facilities should be used. 
  1410.  
  1411.            5. The application, not the callback routine, must use a reply 
  1412.               solicitation call to receive the actual response. 
  1413.  
  1414.  ECI parameter block fields 
  1415.  
  1416.           The ECI parameter block should be set to nulls before setting the 
  1417.           input parameter fields. 
  1418.  
  1419.           eci_call_type 
  1420.                     Required input parameter. 
  1421.  
  1422.                     Must be set to ECI_ASYNC. 
  1423.  
  1424.           eci_program_name 
  1425.                     Input only, required parameter except when eci_extend_mode 
  1426.                     is ECI_COMMIT or ECI_BACKOUT. (See Logical units of work in 
  1427.                     the ECI.) 
  1428.  
  1429.                     An 8-character field containing the name of the program to 
  1430.                     be called. Unused characters should be padded with spaces. 
  1431.                     This field is transmitted to the server without conversion 
  1432.                     to uppercase. 
  1433.  
  1434.           eci_userid 
  1435.                     Required input parameter. 
  1436.  
  1437.                     An 8-character field containing a userid. Unused characters 
  1438.                     should be padded with spaces. On CICS on Open Systems 
  1439.                     clients, this field is transmitted to the server without 
  1440.                     conversion to uppercase. In other environments, you should 
  1441.                     consult the documentation for the client and the server to 
  1442.                     check whether this field is converted to upper case before 
  1443.                     being transmitted to the server. (If a userid or password 
  1444.                     longer than 8 characters is required, eci_version must not 
  1445.                     be ECI_VERSION_0; and eci_userid and eci_password must be 
  1446.                     set to nulls, and the fields eci_userid2 and eci_password2 
  1447.                     used instead.) 
  1448.  
  1449.                     If a userid is supplied, then the userid and any supplied 
  1450.                     password will be used by the server to validate the 
  1451.                     authority of the user to execute the ECI request. The form 
  1452.                     of this validation is defined by the server. 
  1453.  
  1454.           eci_password 
  1455.                     Required input parameter. 
  1456.  
  1457.                     An 8-character field containing a password. Unused 
  1458.                     characters should be padded with spaces. On CICS on Open 
  1459.                     Systems clients, this field is transmitted to the server 
  1460.                     without conversion to uppercase. In other environments, you 
  1461.                     should consult the documentation for the client and the 
  1462.                     server to check whether this field is converted to upper 
  1463.                     case before being transmitted to the server. (If a userid 
  1464.                     or password longer than 8 characters is required, this 
  1465.                     field and eci_userid must be set to nulls, and the fields 
  1466.                     eci_userid2 and eci_password2 used instead.) 
  1467.  
  1468.           eci_transid 
  1469.                     Optional input parameter. 
  1470.  
  1471.                     A 4-character field optionally containing a CICS 
  1472.                     transaction ID. Unused characters should be padded with 
  1473.                     spaces. This field is transmitted to the server without 
  1474.                     conversion to uppercase. The use of this parameter depends 
  1475.                     on the server to which the request is directed. 
  1476.  
  1477.              o For a CICS on Open Systems server, this is the name of the 
  1478.                transaction that will be used to service the request. The name 
  1479.                you choose must be defined as a transaction name on the server, 
  1480.                and must be associated with the program DFHMIRS. 
  1481.  
  1482.              o For other CICS servers, this is the name of the transaction 
  1483.                under which the called program will run. This name is available 
  1484.                to the called program for querying the transaction ID; use it if 
  1485.                the CICS program issues a distributed program link, and if the 
  1486.                transaction ID under which the program runs is important. Some 
  1487.                servers use the transaction ID to determine security and 
  1488.                performance attributes for the called program. You are 
  1489.                recommended to use this parameter to control the processing of 
  1490.                your called programs. 
  1491.  
  1492.                     If the ECI request is extended (see the description of 
  1493.                     eci_extend_mode), all calls in the same logical unit of 
  1494.                     work must use the same value for eci_transid. 
  1495.  
  1496.                     If the field is all nulls, the default server transaction 
  1497.                     ID is used. 
  1498.  
  1499.           eci_commarea 
  1500.                     Required input parameter. 
  1501.  
  1502.                     A pointer to the data to be passed to the called CICS 
  1503.                     program as its COMMAREA. 
  1504.  
  1505.                     If no COMMAREA is required, supply a null pointer and set 
  1506.                     the length (specified in eci_commarea_length) to zero. 
  1507.  
  1508.                     If the code page of the application is different from the 
  1509.                     code page of the server, data conversion must be performed 
  1510.                     at the server. To do this, you need to make use of 
  1511.                     CICS-supplied resource conversion capabilities, such as the 
  1512.                     DFHCNV macro definitions. 
  1513.  
  1514.           eci_commarea_length 
  1515.                     Required input parameter. 
  1516.  
  1517.                     The length of the COMMAREA in bytes. This value may not 
  1518.                     exceed 32500. (Some client-server combinations may allow 
  1519.                     larger COMMAREAs, but this is not guaranteed to work as 
  1520.                     part of CICS Family Client/Server Programming.) 
  1521.  
  1522.                     If no COMMAREA is required, set this field to zero and 
  1523.                     supply a null pointer in eci_commarea. 
  1524.  
  1525.           eci_sys_return_code 
  1526.                     Output parameter. 
  1527.  
  1528.                     An integer field containing additional information when the 
  1529.                     return code is ECI_ERR_SYSTEM_ERROR. The meaning of this 
  1530.                     information depends on the software and hardware platform. 
  1531.                     You should save this information, as it will help service 
  1532.                     personnel to diagnose the error. 
  1533.  
  1534.           eci_extend_mode 
  1535.                     Required input parameter. 
  1536.  
  1537.                     An integer field determining whether a logical unit of work 
  1538.                     is terminated at the end of this call. (See Logical units 
  1539.                     of work in the ECI.) 
  1540.  
  1541.                     Values (shown by their symbolic names) for this field are 
  1542.                     as follows: 
  1543.  
  1544.              ECI_NO_EXTEND 
  1545.  
  1546.                  1. If the input eci_luw_token field is zero, this is the only 
  1547.                     call for a logical unit of work. 
  1548.  
  1549.                  2. If the input eci_luw_token field is not zero, this is the 
  1550.                     last call for the specified logical unit of work. 
  1551.  
  1552.                   In either case, changes to recoverable resources are 
  1553.                   committed by a CICS end-of-task syncpoint, and the logical 
  1554.                   unit of work ends. 
  1555.  
  1556.              ECI_EXTENDED 
  1557.  
  1558.                  1. If the input eci_luw_token field is zero, this is the first 
  1559.                     call for a logical unit of work that is to be continued. 
  1560.  
  1561.                  2. If the input eci_luw_token field is not zero, this call is 
  1562.                     intended to continue the specified logical unit of work. 
  1563.  
  1564.                   In either case the logical unit of work continues after the 
  1565.                   called program completes, and changes to recoverable 
  1566.                   resources remain uncommitted. 
  1567.  
  1568.              ECI_COMMIT 
  1569.                   Terminate the current logical unit of work, identified by the 
  1570.                   input eci_luw_token field, and commit all changes made to 
  1571.                   recoverable resources. 
  1572.  
  1573.              ECI_BACKOUT 
  1574.                   Terminate the logical unit of work identified by the input 
  1575.                   eci_luw_token field, and back out all changes made to 
  1576.                   recoverable resources. 
  1577.  
  1578.           eci_message_qualifier 
  1579.                     Optional input parameter. 
  1580.  
  1581.                     An integer field allowing the application to identify each 
  1582.                     asynchronous call if it is making more than one. If a 
  1583.                     callback routine is specified, the value in this field is 
  1584.                     returned to the callback routine during the notification 
  1585.                     process. 
  1586.  
  1587.           eci_luw_token 
  1588.                     Required input and output parameter. 
  1589.  
  1590.                     An integer field used for identifying the logical unit of 
  1591.                     work to which a call belongs. It must be set to zero at the 
  1592.                     start of a logical unit of work (regardless of whether the 
  1593.                     logical unit of work is going to be extended), and the ECI 
  1594.                     updates it with a valid value on the first or only call of 
  1595.                     the logical unit of work. If the logical unit of work is to 
  1596.                     be extended, this value should be used as input to all 
  1597.                     later calls related to the same logical unit of work. See 
  1598.                     Logical units of work in the ECI. 
  1599.  
  1600.                     If the return code is not ECI_NO_ERROR, and the call was 
  1601.                     continuing or ending an existing logical unit of work, this 
  1602.                     field is used as output to report the condition of the 
  1603.                     logical unit of work. If it is set to zero, the logical 
  1604.                     unit of work has ended, and its updates have been backed 
  1605.                     out. If it is nonzero, it is the same as the input value, 
  1606.                     the logical unit of work is continuing, and its updates are 
  1607.                     still pending. 
  1608.  
  1609.           eci_sysid 
  1610.                     Required input parameter. 
  1611.  
  1612.                     Reserved for future use, but this field should be 
  1613.                     initialized with nulls before the start of each logical 
  1614.                     unit of work. 
  1615.  
  1616.           eci_version 
  1617.                     Required input parameter. 
  1618.  
  1619.                     The version of the ECI for which the application is coded. 
  1620.                     In the CICS on Open Systems environment, only ECI_VERSION_1 
  1621.                     may be specified. In other environments, you may use the 
  1622.                     values ECI_VERSION_1 or ECI_VERSION_1A. All the facilities 
  1623.                     of version 1 are available in version 1A. Facilities 
  1624.                     available only in version 1A are noted where they occur. 
  1625.                     (ECI_VERSION_0 is provided to allow applications written 
  1626.                     for previous versions of the ECI to continue to execute, 
  1627.                     but many of the facilities of CICS Client/Server 
  1628.                     Programming are not available if eci_version has this 
  1629.                     value.) 
  1630.  
  1631.           eci_system_name 
  1632.                     Optional input parameter. 
  1633.  
  1634.                     An 8-character field that specifies the name of the server 
  1635.                     to which the ECI request is to be directed. Unused 
  1636.                     characters should be padded with spaces. The value may be 
  1637.                     supplied whenever eci_luw_token is set to zero. (If it is 
  1638.                     supplied when eci_luw_token is not zero, it is ignored, 
  1639.                     because the server was established at the start of the 
  1640.                     logical unit of work.) 
  1641.  
  1642.                     If the field is set to nulls, then a server, currently the 
  1643.                     default server, is selected. You can obtain the name of the 
  1644.                     chosen server from the eci_system_name field of the reply 
  1645.                     solicitation call you use to get the result of this 
  1646.                     asynchronous request. (If later ECI requests made in 
  1647.                     different logical units of work must be directed to the 
  1648.                     same server as this request, then eci_system_name in those 
  1649.                     requests must identify that server by name.) 
  1650.  
  1651.           eci_callback 
  1652.                     Optional input parameter. 
  1653.  
  1654.                     A pointer to the routine to be called when the asynchronous 
  1655.                     request completes. (The callback routine will be called 
  1656.                     only if the return code is ECI_NO_ERROR, and the pointer is 
  1657.                     not null.) 
  1658.  
  1659.           eci_userid2 
  1660.                     Optional input parameter. 
  1661.  
  1662.                     If the eci_userid field is set to nulls, then the 
  1663.                     eci_userid2 field specifies the userid (if any) to be used 
  1664.                     at the server for any authority validation. The userid can 
  1665.                     be up to 16 characters. eci_version must not be 
  1666.                     ECI_VERSION_0. 
  1667.  
  1668.                     See the description of the eci_userid field for information 
  1669.                     about how the userid is used. 
  1670.  
  1671.           eci_password2 
  1672.                     Optional input parameter. 
  1673.  
  1674.                     If the eci_password field is set to nulls, the 
  1675.                     eci_password2 field specifies the password (if any) to be 
  1676.                     used at the server for any authority validation. The 
  1677.                     password can be up to 16 characters. eci_version must not 
  1678.                     be ECI_VERSION_0. 
  1679.  
  1680.                     See the description of the eci_password field for 
  1681.                     information about how the password is used. 
  1682.  
  1683.           eci_tpn 
  1684.                     Optional input parameter. Available only if the value of 
  1685.                     eci_version is ECI_VERSION_1A. 
  1686.  
  1687.                     A 4-character field that specifies the transaction ID of 
  1688.                     the transaction that will be used in the server to process 
  1689.                     the ECI request. This transaction must be defined in the 
  1690.                     server as a CICS mirror transaction. If the field is not 
  1691.                     set, the default mirror transaction CAMI is used. 
  1692.  
  1693.                     If the ECI request is extended (see the description of 
  1694.                     eci_extend_mode), you need specify this only for the first 
  1695.                     request. If you specify a value for subsequent requests, it 
  1696.                     is ignored, and the value specified for the first request 
  1697.                     is reused. 
  1698.  
  1699.  Return codes 
  1700.  
  1701.           See also the general list of return codes for CICS_ExternalCall in 
  1702.           CICS_ExternalCall. 
  1703.  
  1704.           If the return code is not ECI_NO_ERROR, the callback routine will not 
  1705.           be called, and there will be no asynchronous reply for this request. 
  1706.  
  1707.           ECI_NO_ERROR 
  1708.                     The call to the ECI completed successfully. No errors have 
  1709.                     yet been detected. The callback routine will be called when 
  1710.                     the request completes. 
  1711.  
  1712.           ECI_ERR_INVALID_DATA_LENGTH 
  1713.                     The value in eci_commarea_length field is outside the valid 
  1714.                     range, or is inconsistent with the value in eci_commarea, 
  1715.                     being zero for a non-null eci_commarea pointer, or non-zero 
  1716.                     for a null eci_commarea pointer. 
  1717.  
  1718.           ECI_ERR_INVALID_EXTEND_MODE 
  1719.                     The value in eci_extend_mode field is not valid. 
  1720.  
  1721.           ECI_ERR_NO_CICS 
  1722.                     Either the client or the server implementation is not 
  1723.                     available. 
  1724.  
  1725.           ECI_ERR_LUW_TOKEN 
  1726.                     The value supplied in  eci_luw_token is invalid. 
  1727.  
  1728.           ECI_ERR_THREAD_CREATE_ERROR 
  1729.                     The server implementation or the client failed to create a 
  1730.                     thread to process the request. 
  1731.  
  1732.           ECI_ERR_ALREADY_ACTIVE 
  1733.                     An attempt was made to continue an existing logical unit of 
  1734.                     work, but there was an outstanding asynchronous call for 
  1735.                     the same logical unit of work. 
  1736.  
  1737.           ECI_ERR_RESOURCE_SHORTAGE 
  1738.                     The server implementation or the client did not have enough 
  1739.                     resources to complete the request. 
  1740.  
  1741.           ECI_ERR_NO_SESSIONS 
  1742.                     A new logical unit of work was being created, but the 
  1743.                     application already has as many outstanding logical units 
  1744.                     of work as the configuration will support. 
  1745.  
  1746.           ECI_ERR_INVALID_DATA_AREA 
  1747.                     Either the pointer to the ECI parameter block is invalid, 
  1748.                     or the pointer supplied in eci_commarea is invalid. 
  1749.  
  1750.           ECI_ERR_INVALID_TRANSID 
  1751.                     A logical unit of work was being extended, but the value 
  1752.                     supplied in eci_transid differed from the value used when 
  1753.                     the logical unit of work was started. 
  1754.  
  1755.  
  1756. ΓòÉΓòÉΓòÉ 7.5.3. ECI_STATE_SYNC call type ΓòÉΓòÉΓòÉ
  1757.  
  1758. ECI_STATE_SYNC call type 
  1759.  
  1760.  Environment 
  1761.  
  1762.           The ECI_STATE_SYNC call type is available in all environments. 
  1763.  
  1764.  Purpose 
  1765.  
  1766.           The ECI_STATE_SYNC call type provides a synchronous status 
  1767.           information call. 
  1768.  
  1769.  ECI parameter block fields 
  1770.  
  1771.           The ECI parameter block should be set to nulls before setting the 
  1772.           input parameter fields. 
  1773.  
  1774.           eci_call_type 
  1775.                     Required input parameter. 
  1776.  
  1777.                     Must be set to ECI_STATE_SYNC. 
  1778.  
  1779.           eci_commarea 
  1780.                     Input parameter, required except when eci_extend_mode has 
  1781.                     the value ECI_STATE_CANCEL. 
  1782.  
  1783.                     A pointer to the area of storage where the application 
  1784.                     receives the returned COMMAREA containing status 
  1785.                     information (see Status information calls and ECI status 
  1786.                     block for more details). 
  1787.  
  1788.                     If eci_extend_mode has the value ECI_STATE_CANCEL, supply a 
  1789.                     null pointer and set the length (specified in 
  1790.                     eci_commarea_length) to zero. 
  1791.  
  1792.           eci_commarea_length 
  1793.                     Required input and output parameter, except when 
  1794.                     eci_extend_mode has the value ECI_STATE_CANCEL. 
  1795.  
  1796.                     The length of the COMMAREA in bytes, which must be the 
  1797.                     length of the ECI_STATUS structure that gives the layout of 
  1798.                     the status information COMMAREA (see Status information 
  1799.                     calls and ECI status block for more details). 
  1800.  
  1801.                     If no COMMAREA is required, set this field to zero and 
  1802.                     supply a null pointer in eci_commarea. 
  1803.  
  1804.           eci_sys_return_code 
  1805.                     Output parameter. 
  1806.  
  1807.                     An integer field containing additional information when the 
  1808.                     return code is ECI_ERR_SYSTEM_ERROR. The meaning of this 
  1809.                     information depends on the software and hardware platform. 
  1810.                     You should save this information, as it will help service 
  1811.                     personnel to diagnose the error. 
  1812.  
  1813.           eci_extend_mode 
  1814.                     Required input parameter. 
  1815.  
  1816.                     An integer field further qualifying the call type. (See 
  1817.                     Status enquiries with CICS_ExternalCall.) The values for 
  1818.                     this field (shown by their symbolic names) are as follows: 
  1819.  
  1820.              ECI_STATE_IMMEDIATE 
  1821.                   Force a status reply to be sent immediately it is available. 
  1822.                   The layout of the returned COMMAREA is defined in the 
  1823.                   ECI_STATUS structure (see Status information calls and ECI 
  1824.                   status block). 
  1825.  
  1826.              ECI_STATE_CHANGED 
  1827.                   Force a status reply to be sent only when the status changes. 
  1828.                   The supplied COMMAREA must contain the status as perceived by 
  1829.                   the application. A reply is sent only when there is a change 
  1830.                   from the status that the application supplied. The layout of 
  1831.                   the COMMAREA is defined in the ECI_STATUS structure (see 
  1832.                   Status information calls and ECI status block for more 
  1833.                   details). The eci_luw_token field that is returned on the 
  1834.                   immediate response provides a token to identify the request. 
  1835.  
  1836.              ECI_STATE_CANCEL 
  1837.                   Cancel an ECI_STATE_CHANGED type of operation. No COMMAREA is 
  1838.                   required for this request. The eci_luw_token field must 
  1839.                   contain the token that was received during the 
  1840.                   ECI_STATE_CHANGED call. 
  1841.  
  1842.           eci_luw_token 
  1843.                     Optional input and output parameter. 
  1844.  
  1845.                     When a deferred status request is being set up 
  1846.                     (eci_extend_mode set to ECI_STATE_CHANGED), the token 
  1847.                     identifying the request is returned in the eci_luw_token 
  1848.                     field. 
  1849.  
  1850.                     When a deferred status request is being cancelled 
  1851.                     (eci_extend_mode set to ECI_STATE_CANCEL), the 
  1852.                     eci_luw_token field must contain the token that was 
  1853.                     received during the ECI_STATE_CHANGED call. 
  1854.  
  1855.                     This field is not used when other values of eci_extend_mode 
  1856.                     are specified. 
  1857.  
  1858.           eci_sysid 
  1859.                     Required input parameter. 
  1860.  
  1861.                     Reserved for future use, but this field should be 
  1862.                     initialized with nulls before the start of each logical 
  1863.                     unit of work. 
  1864.  
  1865.           eci_version 
  1866.                     Required input parameter. 
  1867.  
  1868.                     The version of the ECI for which the application is coded. 
  1869.                     In the CICS on Open Systems environment, only ECI_VERSION_1 
  1870.                     may be specified. In other environments, you may use the 
  1871.                     values ECI_VERSION_1 or ECI_VERSION_1A. All the facilities 
  1872.                     of version 1 are available in version 1A. Facilities 
  1873.                     available only in version 1A are noted where they occur. 
  1874.                     (ECI_VERSION_0 is provided to allow applications written 
  1875.                     for previous versions of the ECI to continue to execute, 
  1876.                     but many of the facilities of CICS Client/Server 
  1877.                     Programming are not available if eci_version has this 
  1878.                     value.) 
  1879.  
  1880.           eci_system_name 
  1881.                     Optional input parameter. 
  1882.  
  1883.                     An 8-character field that specifies the name of the server 
  1884.                     for which status information is required. Unused characters 
  1885.                     should be padded with spaces. If supplied, it should be one 
  1886.                     of the server names returned by CICS_EciListSystems. The 
  1887.                     value may be supplied whenever eci_luw_token is set to 
  1888.                     zero. 
  1889.  
  1890.                     If the field is set to nulls, then a server, currently the 
  1891.                     default server, is selected; the name of the chosen server 
  1892.                     is returned in this 
  1893.  
  1894.  Return codes 
  1895.  
  1896.           See also the general list of return codes for CICS_ExternalCall in 
  1897.           CICS_ExternalCall. 
  1898.  
  1899.           ECI_NO_ERROR 
  1900.                     The call completed successfully. 
  1901.  
  1902.           ECI_ERR_INVALID_DATA_LENGTH 
  1903.                     The value in eci_commarea_length field is outside the valid 
  1904.                     range, or is inconsistent with the value in eci_commarea, 
  1905.                     being zero for a non-null eci_commarea pointer, or non-zero 
  1906.                     for a null eci_commarea pointer. 
  1907.  
  1908.           ECI_ERR_INVALID_EXTEND_MODE 
  1909.                     The value in eci_extend_mode field is not valid. 
  1910.  
  1911.           ECI_ERR_LUW_TOKEN 
  1912.                     The value supplied in  eci_luw_token is invalid. 
  1913.  
  1914.           ECI_ERR_INVALID_DATA_AREA 
  1915.                     Either the pointer to the ECI parameter block is invalid, 
  1916.                     or the pointer supplied in eci_commarea is invalid. 
  1917.  
  1918.           ECI_ERR_UNKNOWN_SERVER 
  1919.                     The requested server could not be located. Only servers 
  1920.                     returned by CICS_EciListSystems are acceptable. 
  1921.  
  1922.  
  1923. ΓòÉΓòÉΓòÉ 7.5.4. ECI_STATE_ASYNC call type ΓòÉΓòÉΓòÉ
  1924.  
  1925. ECI_STATE_ASYNC call type 
  1926.  
  1927.  Environment 
  1928.  
  1929.           The ECI_STATE_ASYNC call type is available in all environments except 
  1930.           DOS. 
  1931.  
  1932.  Purpose 
  1933.  
  1934.           The ECI_STATE_ASYNC call type provides an asynchronous status 
  1935.           information call. The calling application gets control back when the 
  1936.           ECI accepts the request. At this point the parameters have been 
  1937.           validated; however, the request might still be queued for later 
  1938.           processing. 
  1939.  
  1940.           If no callback routine is provided, the application must use a reply 
  1941.           solicitation call to determine that the request has ended and what 
  1942.           the outcome was. 
  1943.  
  1944.           If a callback routine is provided, the callback routine eci_callback 
  1945.           is invoked when a response is available. 
  1946.  
  1947.           Note:  Some compilers do not support the use of callback routines. 
  1948.                  Consult your compiler documentation for more information. 
  1949.  
  1950.           When the callback routine is called, it is passed a single 
  1951.           parameter-the value specified in eci_message_qualifier. Use of this 
  1952.           parameter enables the callback routine to identify the asynchronous 
  1953.           call that is completing. Note the following guidelines on the use of 
  1954.           the callback routine: 
  1955.  
  1956.            1. The minimum possible processing should be performed within the 
  1957.               callback routine. 
  1958.  
  1959.            2. ECI functions cannot be invoked from within the callback routine. 
  1960.  
  1961.            3. The callback routine should indicate to the main body of the 
  1962.               application that the reply is available using an appropriate 
  1963.               technique for the operating system upon which the ECI application 
  1964.               is executing. For example, in a multithreaded environment like 
  1965.               OS/2, the callback routine might post a semaphore to signal 
  1966.               another thread that an event has occurred. In a Presentation 
  1967.               Manager environment, it might post a message to a window to 
  1968.               indicate to the window procedure that an event has occurred. 
  1969.               Other actions would be appropriate for other environments. 
  1970.  
  1971.            4. In a CICS on Open Systems environment, only thread-safe 
  1972.               facilities should be used. 
  1973.  
  1974.            5. The application, not the callback routine, must use a reply 
  1975.               solicitation call to receive the actual response. 
  1976.  
  1977.  ECI parameter block fields 
  1978.  
  1979.           The ECI parameter block should be set to nulls before setting the 
  1980.           input parameter fields. 
  1981.  
  1982.           eci_call_type 
  1983.                     Required input parameter. 
  1984.  
  1985.                     Must be set to ECI_STATE_ASYNC. 
  1986.  
  1987.           eci_commarea 
  1988.                     Input parameter, required except when eci_extend_mode has 
  1989.                     the value ECI_STATE_CANCEL. 
  1990.  
  1991.                     A pointer to the area of storage where the application 
  1992.                     receives the returned COMMAREA containing status 
  1993.                     information (see Status information calls and ECI status 
  1994.                     block for more details). 
  1995.  
  1996.                     If eci_extend_mode has the value ECI_STATE_CANCEL, supply a 
  1997.                     null pointer and set the length (specified in 
  1998.                     eci_commarea_length) to zero. 
  1999.  
  2000.           eci_commarea_length 
  2001.                     Required input parameter, except when eci_extend_mode has 
  2002.                     the value ECI_STATE_CANCEL. 
  2003.  
  2004.                     The length of the COMMAREA in bytes, which must be the 
  2005.                     length of the ECI_STATUS structure that gives the layout of 
  2006.                     the status information COMMAREA (see Status information 
  2007.                     calls and ECI status block for more details). 
  2008.  
  2009.                     If no COMMAREA is required, set this field to zero and 
  2010.                     supply a null pointer in eci_commarea. 
  2011.  
  2012.           eci_sys_return_code 
  2013.                     Output parameter. 
  2014.  
  2015.                     An integer field containing additional information when the 
  2016.                     return code is ECI_ERR_SYSTEM_ERROR. The meaning of this 
  2017.                     information depends on the software and hardware platform. 
  2018.                     You should save this information, as it will help service 
  2019.                     personnel to diagnose the error. 
  2020.  
  2021.           eci_extend_mode 
  2022.                     Required input parameter. 
  2023.  
  2024.                     An integer field further qualifying the call type. (See 
  2025.                     Status enquiries with CICS_ExternalCall.) The values for 
  2026.                     this field (shown by their symbolic names) are as follows: 
  2027.  
  2028.              ECI_STATE_IMMEDIATE 
  2029.                   Force a status reply to be sent immediately it is available. 
  2030.                   The layout of the returned COMMAREA is defined in the 
  2031.                   ECI_STATUS structure (see Status information calls and ECI 
  2032.                   status block 
  2033.  
  2034.              ECI_STATE_CHANGED 
  2035.                   Force a status reply to be sent only when the status changes. 
  2036.                   The supplied COMMAREA must contain the status as perceived by 
  2037.                   the application. A reply is sent only when there is a change 
  2038.                   from the status that the application supplied. The layout of 
  2039.                   the COMMAREA is defined in the ECI_STATUS structure (see 
  2040.                   Status information calls and ECI status block for more 
  2041.                   details). The eci_luw_token field that is returned on the 
  2042.                   immediate response identifies the logical unit of work to 
  2043.                   which this call belongs. 
  2044.  
  2045.              ECI_STATE_CANCEL 
  2046.                   Cancel an ECI_STATE_CHANGED type of operation. No COMMAREA is 
  2047.                   required for this request. The eci_luw_token field must 
  2048.                   contain the token that was received during the 
  2049.                   ECI_STATE_CHANGED call. 
  2050.  
  2051.           eci_message_qualifier 
  2052.                     Optional input parameter. 
  2053.  
  2054.                     An integer field allowing you to identify each asynchronous 
  2055.                     call if you are making more than one. If a callback routine 
  2056.                     is specified, the value in this field is returned to the 
  2057.                     callback routine during the notification process. 
  2058.  
  2059.           eci_luw_token 
  2060.                     Optional input and output parameter. 
  2061.  
  2062.                     When a deferred status request is being set up 
  2063.                     (eci_extend_mode set to ECI_STATE_CHANGED), the token 
  2064.                     identifying the request is returned in the eci_luw_token 
  2065.                     field. 
  2066.  
  2067.                     When a deferred status request is being cancelled 
  2068.                     (eci_extend_mode set to ECI_STATE_CANCEL), the 
  2069.                     eci_luw_token field must contain the token that was 
  2070.                     received during the ECI_STATE_CHANGED call. 
  2071.  
  2072.                     This field is not used when other values of eci_extend_mode 
  2073.                     are specified. 
  2074.  
  2075.           eci_sysid 
  2076.                     Required input parameter. 
  2077.  
  2078.                     Reserved for future use, but this field should be 
  2079.                     initialized with nulls before the start of each logical 
  2080.                     unit of work. 
  2081.  
  2082.           eci_version 
  2083.                     Required input parameter. 
  2084.  
  2085.                     The version of the ECI for which the application is coded. 
  2086.                     In the CICS on Open Systems environment, only ECI_VERSION_1 
  2087.                     may be specified. In other environments, you may use the 
  2088.                     values ECI_VERSION_1 or ECI_VERSION_1A. All the facilities 
  2089.                     of version 1 are available in version 1A. Facilities 
  2090.                     available only in version 1A are noted where they occur. 
  2091.                     (ECI_VERSION_0 is provided to allow applications written 
  2092.                     for previous versions of the ECI to continue to execute, 
  2093.                     but many of the facilities of CICS Client/Server 
  2094.                     Programming are not available if eci_version has this 
  2095.                     value.) 
  2096.  
  2097.           eci_system_name 
  2098.                     Optional input parameter. 
  2099.  
  2100.                     An 8-character field that specifies the name of the server 
  2101.                     for which status information is requested. Unused 
  2102.                     characters should be padded with spaces. If supplied, it 
  2103.                     should be one of the server names returned by 
  2104.                     CICS_EciListSystems. The value may be supplied whenever 
  2105.                     eci_luw_token is set to zero. 
  2106.  
  2107.                     If the field is set to nulls, then a server, currently the 
  2108.                     default server, is selected. You can find out the name of 
  2109.                     the server from the eci_system_name field of the reply 
  2110.                     solicitation call you use to get the result of this 
  2111.                     asynchronous request. field. 
  2112.  
  2113.           eci_callback 
  2114.                     Optional input parameter. 
  2115.  
  2116.                     A pointer to the routine to be called when the asynchronous 
  2117.                     request completes. (The callback routine will be called 
  2118.                     only if the return code is ECI_NO_ERROR, and the pointer is 
  2119.                     not null.) 
  2120.  
  2121.  Return codes 
  2122.  
  2123.           See also the general list of return codes for CICS_ExternalCall in 
  2124.           CICS_ExternalCall. 
  2125.  
  2126.           If the return code is not ECI_NO_ERROR, the callback routine will not 
  2127.           be called, and there will be no asynchronous reply for this request. 
  2128.  
  2129.           ECI_NO_ERROR 
  2130.                     The call completed successfully. 
  2131.  
  2132.           ECI_ERR_INVALID_DATA_LENGTH 
  2133.                     The value in eci_commarea_length field is outside the valid 
  2134.                     range, or is inconsistent with the value in eci_commarea, 
  2135.                     being zero for a non-null eci_commarea pointer, or non-zero 
  2136.                     for a null eci_commarea pointer. 
  2137.  
  2138.           ECI_ERR_INVALID_EXTEND_MODE 
  2139.                     The value in eci_extend_mode field is not valid. 
  2140.  
  2141.           ECI_ERR_LUW_TOKEN 
  2142.                     The value supplied in  eci_luw_token is invalid. 
  2143.  
  2144.           ECI_ERR_INVALID_DATA_AREA 
  2145.                     Either the pointer to the ECI parameter block is invalid, 
  2146.                     or the pointer supplied in eci_commarea is invalid. 
  2147.  
  2148.  
  2149. ΓòÉΓòÉΓòÉ 7.5.5. ECI_GET_REPLY call type ΓòÉΓòÉΓòÉ
  2150.  
  2151. ECI_GET_REPLY call type 
  2152.  
  2153.  Environment 
  2154.  
  2155.           The ECI_GET_REPLY call type is available in all environments except 
  2156.           DOS. 
  2157.  
  2158.  Purpose 
  2159.  
  2160.           The ECI_GET_REPLY call type provides a reply solicitation call to 
  2161.           return information appropriate to any outstanding reply for any 
  2162.           asynchronous request. If there is no such reply, ECI_ERR_NO_REPLY is 
  2163.           returned. (To cause the application to wait until a reply is 
  2164.           available, you should use call type ECI_GET_REPLY_WAIT instead.) 
  2165.  
  2166.  ECI parameter block fields 
  2167.  
  2168.           The ECI parameter block should be set to nulls before setting the 
  2169.           input parameter fields. 
  2170.  
  2171.           The following fields are the fields of the ECI parameter block that 
  2172.           might be supplied as input. 
  2173.  
  2174.           In the course of an  ECI_GET_REPLY call, the ECI parameter block is 
  2175.           updated as follows: 
  2176.  
  2177.            1. All the outputs from the reply, some of which overwrite input 
  2178.               fields, are added. These fields are those that are output from 
  2179.               the corresponding synchronous version of the asynchronous 
  2180.               request. 
  2181.  
  2182.            2. The eci_message_qualifier value supplied as input to the 
  2183.               asynchronous request to which this reply relates is restored. 
  2184.  
  2185.            3. Any inputs that are not updated become undefined, except the 
  2186.               pointer to the COMMAREA. You should not use the contents of these 
  2187.               fields again. 
  2188.  
  2189.           eci_call_type 
  2190.                     Required input parameter. 
  2191.  
  2192.                     Must be set to ECI_GET_REPLY. 
  2193.  
  2194.           eci_commarea 
  2195.                     Optional input parameter. 
  2196.  
  2197.                     A pointer to the area of storage where the application 
  2198.                     receives the returned COMMAREA. The contents of the 
  2199.                     returned commarea depend on the type of asynchronous call 
  2200.                     to which a reply is being sought. For a program link call, 
  2201.                     it is the COMMAREA expected to be returned from the called 
  2202.                     program, if any. For a status information call, except when 
  2203.                     eci_extend_mode has the value ECI_STATE_CANCEL, it is a 
  2204.                     COMMAREA containing status information (see Status 
  2205.                     information calls and ECI status block for more details). 
  2206.  
  2207.                     If no COMMAREA is required, supply a null pointer and set 
  2208.                     the length (specified in eci_commarea_length) to zero. 
  2209.  
  2210.                     If the code page of the application is different from the 
  2211.                     code page of the server, data conversion must be performed 
  2212.                     at the server. To do this, you need to make use of 
  2213.                     CICS-supplied resource conversion capabilities, such as the 
  2214.                     DFHCNV macro definitions. 
  2215.  
  2216.           eci_commarea_length 
  2217.                     Required input parameter. 
  2218.  
  2219.                     The length of the COMMAREA in bytes. This value may not 
  2220.                     exceed 32500. (Some client-server combinations may allow 
  2221.                     larger COMMAREAs, but this is not guaranteed to work as 
  2222.                     part of CICS Family Client/Server Programming.) 
  2223.  
  2224.                     If no COMMAREA is required, set this field to zero and 
  2225.                     supply a null pointer in eci_commarea. 
  2226.  
  2227.           eci_sysid 
  2228.                     Required input parameter. 
  2229.  
  2230.                     Reserved for future use, but this field should be 
  2231.                     initialized with nulls before the start of each logical 
  2232.                     unit of work. 
  2233.  
  2234.           eci_version 
  2235.                     Required input parameter. 
  2236.  
  2237.                     The version of the ECI for which the application is coded. 
  2238.                     In the CICS on Open Systems environment, only ECI_VERSION_1 
  2239.                     may be specified. In other environments, you may use the 
  2240.                     values ECI_VERSION_1 or ECI_VERSION_1A. All the facilities 
  2241.                     of version 1 are available in version 1A. Facilities 
  2242.                     available only in version 1A are noted where they occur. 
  2243.                     (ECI_VERSION_0 is provided to allow applications written 
  2244.                     for previous versions of the ECI to continue to execute, 
  2245.                     but many of the facilities of CICS Client/Server 
  2246.                     Programming are not available if eci_version has this 
  2247.                     value.) 
  2248.  
  2249.  Return codes 
  2250.  
  2251.           See also the general list of return codes for CICS_ExternalCall in 
  2252.           CICS_ExternalCall. 
  2253.  
  2254.           ECI_NO_ERROR 
  2255.                     The asynchronous request to which this reply relates 
  2256.                     completed successfully. 
  2257.  
  2258.           ECI_ERR_INVALID_DATA_LENGTH 
  2259.                     The value in eci_commarea_length field is unacceptable for 
  2260.                     one of the following reasons: 
  2261.  
  2262.              o It is outside the valid range. 
  2263.  
  2264.              o It is inconsistent with the value in eci_commarea, being zero 
  2265.                for a non-null eci_commarea pointer, or non-zero for a null 
  2266.                eci_commarea pointer. 
  2267.  
  2268.              o It is not large enough for the output COMMAREA from the 
  2269.                asynchronous request to which this reply relates. 
  2270.  
  2271.                     In the last case, you can use the output 
  2272.                     eci_commarea_length to allocate more storage for the 
  2273.                     COMMAREA, and then use the output eci_message_qualifier (if 
  2274.                     it identifies the asynchronous request uniquely) with an 
  2275.                     ECI_GET_SPECIFIC_REPLY call type to retrieve the reply. 
  2276.  
  2277.           ECI_ERR_NO_CICS 
  2278.                     The CICS server specified in eci_system_name in the 
  2279.                     asynchronous request to which this reply relates is not 
  2280.                     available. No resources have been updated. 
  2281.  
  2282.           ECI_ERR_CICS_DIED 
  2283.                     A logical unit of work was to be begun or continued by the 
  2284.                     asynchronous request to which this reply relates, but the 
  2285.                     CICS server was no longer available. If eci_extend_mode was 
  2286.                     ECI_EXTENDED, the changes are backed out, and the logical 
  2287.                     unit of work ends. If eci_extend_mode was ECI_NO_EXTEND, 
  2288.                     ECI_COMMIT, or ECI_BACKOUT, the application cannot 
  2289.                     determine whether the changes have been committed or backed 
  2290.                     out, and must log this condition to aid future manual 
  2291.                     recovery. 
  2292.  
  2293.           ECI_ERR_NO_REPLY 
  2294.                     There was no outstanding reply. 
  2295.  
  2296.           ECI_ERR_TRANSACTION_ABEND 
  2297.                     The asynchronous request to which this reply relates caused 
  2298.                     a program to be executed in the server, but the CICS 
  2299.                     transaction that executed the requested program abended. 
  2300.                     The abend code will be found in eci_abend_code. For 
  2301.                     information about abend codes and their meaning, you should 
  2302.                     consult the documentation for the server system to which 
  2303.                     the request was directed. 
  2304.  
  2305.           ECI_ERR_THREAD_CREATE_ERROR 
  2306.                     The CICS server or client failed to create the thread to 
  2307.                     process the asynchronous call to which this reply relates. 
  2308.  
  2309.           ECI_ERR_RESOURCE_SHORTAGE 
  2310.                     The server implementation or client did not have enough 
  2311.                     resources to complete the asynchronous request to which 
  2312.                     this reply relates. 
  2313.  
  2314.           ECI_ERR_INVALID_DATA_AREA 
  2315.                     Either the pointer to the ECI parameter block is invalid, 
  2316.                     or the pointer supplied in eci_commarea is invalid. 
  2317.  
  2318.           ECI_ERR_ROLLEDBACK 
  2319.                     The asynchronous request to which this reply relates 
  2320.                     attempted to commit a logical unit of work, but the server 
  2321.                     was unable to commit the changes, and backed them out 
  2322.                     instead. 
  2323.  
  2324.           ECI_ERR_UNKNOWN_SERVER 
  2325.                     The asynchronous request to which this reply relates 
  2326.                     specified a server that could not be located. Only servers 
  2327.                     returned by CICS_EciListSystems are acceptable. 
  2328.  
  2329.           ECI_ERR_MAX_SESSIONS 
  2330.                     There were not enough communication resources to satisfy 
  2331.                     the asynchronous request to which this reply relates. You 
  2332.                     should consult the documentation for your client or server 
  2333.                     to see how to control communication resources. 
  2334.  
  2335.           ECI_ERR_MAX_SYSTEMS 
  2336.                     The asynchronous request to which this reply relates 
  2337.                     attempted to start requests to more servers than your 
  2338.                     configuration allows. You should consult the documentation 
  2339.                     for your client or server to see how to control the number 
  2340.                     of servers you can use. 
  2341.  
  2342.           ECI_ERR_SECURITY_ERROR 
  2343.                     You did not supply a valid combination of userid and 
  2344.                     password on the asynchronous request to which this reply 
  2345.                     relates, though the server expects it. 
  2346.  
  2347.  
  2348. ΓòÉΓòÉΓòÉ 7.5.6. ECI_GET_REPLY_WAIT call type ΓòÉΓòÉΓòÉ
  2349.  
  2350. ECI_GET_REPLY_WAIT call type 
  2351.  
  2352.  Environment 
  2353.  
  2354.           The ECI_GET_REPLY_WAIT call type is available in all environments 
  2355.           except DOS. 
  2356.  
  2357.  Purpose 
  2358.  
  2359.           The ECI_GET_REPLY_WAIT call type provides a reply solicitation call 
  2360.           to return information appropriate to any outstanding reply for any 
  2361.           asynchronous request. If there is no such reply, the application 
  2362.           waits until there is. (In all environments except DOS, you can get an 
  2363.           indication that no reply is available by using call type 
  2364.           ECI_GET_REPLY instead.) 
  2365.  
  2366.  ECI parameter block fields 
  2367.  
  2368.           Same as for ECI_GET_REPLY, but eci_call_type must be set to 
  2369.           ECI_GET_REPLY_WAIT. 
  2370.  
  2371.  Return codes 
  2372.  
  2373.           Same as for ECI_GET_REPLY, except that ECI_ERR_NO_REPLY cannot be 
  2374.           returned. 
  2375.  
  2376.  
  2377. ΓòÉΓòÉΓòÉ 7.5.7. ECI_GET_SPECIFIC_REPLY call type ΓòÉΓòÉΓòÉ
  2378.  
  2379. ECI_GET_SPECIFIC_REPLY call type 
  2380.  
  2381.  Environment 
  2382.  
  2383.           The ECI_GET_SPECIFIC_REPLY call type is available in all environments 
  2384.           except DOS. 
  2385.  
  2386.  Purpose 
  2387.  
  2388.           The ECI_GET_SPECIFIC_REPLY call type provides a reply solicitation 
  2389.           call to return information appropriate to any outstanding reply that 
  2390.           matches the eci_message_qualifier input. If there is no such reply, 
  2391.           ECI_ERR_NO_REPLY is returned. (To cause the application to wait until 
  2392.           a reply is available, you should use call type ECI_GET_REPLY_WAIT 
  2393.           instead.) 
  2394.  
  2395.  ECI parameter block fields 
  2396.  
  2397.           The ECI parameter block should be set to nulls before setting the 
  2398.           input parameter fields. 
  2399.  
  2400.           The following fields are the fields of the ECI parameter block that 
  2401.           might be supplied as input. 
  2402.  
  2403.           In the course of an  ECI_GET_REPLY call, the ECI parameter block is 
  2404.           updated as follows: 
  2405.  
  2406.            1. All the outputs from the reply, some of which overwrite input 
  2407.               fields, are added. These fields are those that are output from 
  2408.               the corresponding synchronous version of the asynchronous 
  2409.               request. 
  2410.  
  2411.            2. Any inputs that are not updated become undefined, except the 
  2412.               pointer to the COMMAREA and the input eci_message_qualifier. You 
  2413.               should not use the contents of these fields again. 
  2414.  
  2415.           eci_call_type 
  2416.                     Required input parameter. 
  2417.  
  2418.                     Must be set to ECI_GET_SPECIFIC_REPLY. 
  2419.  
  2420.           eci_commarea 
  2421.                     Optional input parameter. 
  2422.  
  2423.                     A pointer to the area of storage where the application 
  2424.                     receives the returned COMMAREA. The contents of the 
  2425.                     returned commarea depend on the type of asynchronous call 
  2426.                     to which a reply is being sought. For a program link call, 
  2427.                     it is the COMMAREA expected to be returned from the called 
  2428.                     program, if any. For a status information call, except one 
  2429.                     in which eci_extend_mode had the value ECI_STATE_CANCEL, it 
  2430.                     is a COMMAREA containing status information (see Status 
  2431.                     information calls and ECI status block for more details). 
  2432.  
  2433.                     If the code page of the application is different from the 
  2434.                     code page of the server, data conversion must be performed 
  2435.                     at the server. To do this, you need to make use of 
  2436.                     CICS-supplied resource conversion capabilities, such as the 
  2437.                     DFHCNV macro definitions. 
  2438.  
  2439.           eci_commarea_length 
  2440.                     Required input parameter. 
  2441.  
  2442.                     The length of the COMMAREA in bytes. This value may not 
  2443.                     exceed 32500. (Some client-server combinations may allow 
  2444.                     larger COMMAREAs, but this is not guaranteed to work as 
  2445.                     part of CICS Family Client/Server Programming.) 
  2446.  
  2447.           eci_message_qualifier 
  2448.                     Required input parameter. 
  2449.  
  2450.                     An integer field that identifies the asynchronous call for 
  2451.                     which a reply is being solicited. 
  2452.  
  2453.           eci_sysid 
  2454.                     Required input parameter. 
  2455.  
  2456.                     Reserved for future use, but this field should be 
  2457.                     initialized with nulls before the start of each logical 
  2458.                     unit of work. 
  2459.  
  2460.           eci_version 
  2461.                     Required input parameter. 
  2462.  
  2463.                     The version of the ECI for which the application is coded. 
  2464.                     In the CICS on Open Systems environment, only ECI_VERSION_1 
  2465.                     may be specified. In other environments, you may use the 
  2466.                     values ECI_VERSION_1 or ECI_VERSION_1A. All the facilities 
  2467.                     of version 1 are available in version 1A. Facilities 
  2468.                     available only in version 1A are noted where they occur. 
  2469.                     (ECI_VERSION_0 is provided to allow applications written 
  2470.                     for previous versions of the ECI to continue to execute, 
  2471.                     but many of the facilities of CICS Client/Server 
  2472.                     Programming are not available if eci_version has this 
  2473.                     value.) 
  2474.  
  2475.  Return codes 
  2476.  
  2477.           See also the general list of return codes for CICS_ExternalCall in 
  2478.           CICS_ExternalCall. 
  2479.  
  2480.           ECI_NO_ERROR 
  2481.                     The call completed successfully. 
  2482.  
  2483.           ECI_ERR_INVALID_DATA_LENGTH 
  2484.                     The value in eci_commarea_length field is unacceptable for 
  2485.                     one of the following reasons: 
  2486.  
  2487.              o It is outside the valid range. 
  2488.  
  2489.              o It is inconsistent with the value in eci_commarea, being zero 
  2490.                for a non-null eci_commarea pointer, or non-zero for a null 
  2491.                eci_commarea pointer. 
  2492.  
  2493.              o It is not large enough for the output COMMAREA from the 
  2494.                asynchronous request to which this reply relates. 
  2495.  
  2496.                     In the last case, you can use the output 
  2497.                     eci_commarea_length to allocate more storage for the 
  2498.                     COMMAREA, and then retry the ECI_GET_SPECIFIC_REPLY call. 
  2499.  
  2500.           ECI_ERR_NO_CICS 
  2501.                     The CICS server specified in eci_system_name in the 
  2502.                     asynchronous request to which this reply relates is not 
  2503.                     available. No resources have been updated. 
  2504.  
  2505.           ECI_ERR_CICS_DIED 
  2506.                     A logical unit of work was to be begun or continued by the 
  2507.                     asynchronous request to which this reply relates, but the 
  2508.                     CICS server was no longer available. If eci_extend_mode was 
  2509.                     ECI_EXTENDED, the changes are backed out, and the logical 
  2510.                     unit of work ends. If eci_extend_mode was ECI_NO_EXTEND, 
  2511.                     ECI_COMMIT, or ECI_BACKOUT, the application cannot 
  2512.                     determine whether the changes have been committed or backed 
  2513.                     out, and must log this condition to aid future manual 
  2514.                     recovery. 
  2515.  
  2516.           ECI_ERR_NO_REPLY 
  2517.                     There was no outstanding reply that matched the input 
  2518.                     eci_message_qualifier. 
  2519.  
  2520.           ECI_ERR_TRANSACTION_ABEND 
  2521.                     The asynchronous request to which this reply relates caused 
  2522.                     a program to be executed in the server, but the CICS 
  2523.                     transaction that executed the requested program abended. 
  2524.                     The abend code will be found in eci_abend_code. For 
  2525.                     information about abend codes and their meaning, you should 
  2526.                     consult the documentation for the server system to which 
  2527.                     the request was directed. 
  2528.  
  2529.           ECI_ERR_THREAD_CREATE_ERROR 
  2530.                     The CICS server or client failed to create the thread to 
  2531.                     process the asynchronous request to which this reply 
  2532.                     relates. 
  2533.  
  2534.           ECI_ERR_RESOURCE_SHORTAGE 
  2535.                     The CICS server or client did not have enough resources to 
  2536.                     complete the asynchronous request to which this reply 
  2537.                     relates. 
  2538.  
  2539.           ECI_ERR_INVALID_DATA_AREA 
  2540.                     Either the pointer to the ECI parameter block is invalid, 
  2541.                     or the pointer supplied in eci_commarea is invalid. 
  2542.  
  2543.           ECI_ERR_ROLLEDBACK 
  2544.                     The asynchronous request to which this reply relates 
  2545.                     attempted to commit a logical unit of work, but the server 
  2546.                     was unable to commit the changes, and backed them out 
  2547.                     instead. 
  2548.  
  2549.           ECI_ERR_UNKNOWN_SERVER 
  2550.                     The asynchronous request to which this reply relates 
  2551.                     specified a server that could not be located. Only servers 
  2552.                     returned by CICS_EciListSystems are acceptable. 
  2553.  
  2554.           ECI_ERR_MAX_SESSIONS 
  2555.                     There were not enough communication resources to satisfy 
  2556.                     the asynchronous request to which this reply relates. You 
  2557.                     should consult the documentation for your client or server 
  2558.                     to see how to control communication resources. 
  2559.  
  2560.           ECI_ERR_MAX_SYSTEMS 
  2561.                     The asynchronous request to which this reply relates 
  2562.                     attempted to start requests to more servers than your 
  2563.                     configuration allows. You should consult the documentation 
  2564.                     for your client or server to see how to control the number 
  2565.                     of servers you can use. 
  2566.  
  2567.           ECI_ERR_SECURITY_ERROR 
  2568.                     You did not supply a valid combination of userid and 
  2569.                     password on the asynchronous request to which this reply 
  2570.                     relates, though the server expects it. 
  2571.  
  2572.  
  2573. ΓòÉΓòÉΓòÉ 7.5.8. ECI_GET_SPECIFIC_REPLY_WAIT call type ΓòÉΓòÉΓòÉ
  2574.  
  2575. ECI_GET_SPECIFIC_REPLY_WAIT call type 
  2576.  
  2577.  Environment 
  2578.  
  2579.           The ECI_GET_SPECIFIC_REPLY_WAIT call type is available in all 
  2580.           environments except DOS. 
  2581.  
  2582.  Purpose 
  2583.  
  2584.           The ECI_GET_SPECIFIC_REPLY_WAIT call type provides a reply 
  2585.           solicitation call to return information appropriate to any 
  2586.           outstanding reply that matches the input eci_message_qualifier. If 
  2587.           there is no such reply, the application waits until there is. (In all 
  2588.           environments except DOS, you can get an indication that no reply is 
  2589.           available by using call type ECI_GET_SPECIFIC_REPLY instead.) 
  2590.  
  2591.  ECI parameter block fields 
  2592.  
  2593.           Same as for ECI_GET_SPECIFIC_REPLY, but eci_call_type must be set to 
  2594.           ECI_GET_SPECIFIC_REPLY_WAIT. 
  2595.  
  2596.  Return codes 
  2597.  
  2598.           Same as for ECI_GET_SPECIFIC_REPLY, except that ECI_ERR_NO_REPLY 
  2599.           cannot be returned. 
  2600.  
  2601.  
  2602. ΓòÉΓòÉΓòÉ 7.6. ECI status block ΓòÉΓòÉΓòÉ
  2603.  
  2604. The ECI status block is used in status information calls to pass information to 
  2605. and from the ECI. It contains the following fields: 
  2606.  
  2607.  ConnectionType 
  2608.            An integer field specifying the type of system on which the 
  2609.            application is running, with the following possible values: 
  2610.  
  2611.     ECI_CONNECTED_NOWHERE 
  2612.               Application is not connected to anything. 
  2613.  
  2614.     ECI_CONNECTED_TO_CLIENT 
  2615.               Application is running on a client system. 
  2616.  
  2617.     ECI_CONNECTED_TO_SERVER 
  2618.               Application is using a server implementation of the ECI. 
  2619.  
  2620.  CicsServerStatus 
  2621.            An integer field specifying the state of the CICS server, with the 
  2622.            following possible values: 
  2623.  
  2624.     ECI_SERVERSTATE_UNKNOWN 
  2625.               The CICS server state could not be determined. 
  2626.  
  2627.     ECI_SERVERSTATE_UP 
  2628.               The CICS server is available to run programs. 
  2629.  
  2630.     ECI_SERVERSTATE_DOWN 
  2631.               The CICS server is not available to run programs. 
  2632.  
  2633.  CicsClientStatus 
  2634.            An integer field specifying the state of the client, with the 
  2635.            following possible values: 
  2636.  
  2637.     ECI_CLIENTSTATE_UNKNOWN 
  2638.               The client state could not be determined. 
  2639.  
  2640.     ECI_CLIENTSTATE_UP 
  2641.               The client is available to receive ECI calls. 
  2642.  
  2643.     ECI_CLIENTSTATE_INAPPLICABLE 
  2644.               The application is using a server implementation of the ECI. 
  2645.  
  2646.  
  2647. ΓòÉΓòÉΓòÉ 7.7. CICS_EciListSystems ΓòÉΓòÉΓòÉ
  2648.  
  2649. CICS_EciListSystems 
  2650.  
  2651. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2652. Γöé CICS_EciListSystems          Γöé NameSpace               Γöé
  2653. Γöé                    Γöé Systems                Γöé
  2654. Γöé                    Γöé List                 Γöé
  2655. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2656.  
  2657.  Purpose 
  2658.  
  2659.           The CICS_EciListSystems function provides a list of CICS servers to 
  2660.           which CICS_ExternalCall requests may be directed. There is no 
  2661.           guarantee that a communications link exists between the client and 
  2662.           any server in the list, or that any of the servers is available to 
  2663.           process requests. 
  2664.  
  2665.           The list of servers is returned as an array of system information 
  2666.           structures, one element for each CICS server. The structure is called 
  2667.           CICS_EciSystem_t, and it defines the following fields. 
  2668.  
  2669.           SystemName 
  2670.                     A pointer to a null-terminated string specifying the name 
  2671.                     of a CICS server. If the name is shorter than 
  2672.                     CICS_ECI_SYSTEM_MAX, it is padded with nulls to a length of 
  2673.                     CICS_ECI_SYSTEM_MAX + 1. 
  2674.  
  2675.           Description 
  2676.                     A pointer to a null-terminated string that provides a 
  2677.                     description of the system, if one is available. If the 
  2678.                     description is shorter than CICS_ECI_DESCRIPTION_MAX 
  2679.                     characters, it is padded with nulls to a length of 
  2680.                     CICS_ECI_DESCRIPTION_MAX + 1. 
  2681.  
  2682.  Parameters 
  2683.  
  2684.           NameSpace 
  2685.                     A pointer reserved for future use. Ensure that this is a 
  2686.                     null pointer. 
  2687.  
  2688.           Systems 
  2689.                     On entry to the function, this parameter specifies the 
  2690.                     number of elements in the array provided in the List 
  2691.                     parameter. On return it contains the actual number of 
  2692.                     systems found. 
  2693.  
  2694.           List 
  2695.                     An array of CICS_EciSystem_t structures that are filled in 
  2696.                     and returned by the function. The application must provide 
  2697.                     the storage for the array, and must set the Systems 
  2698.                     parameter to indicate the number of elements in the array. 
  2699.                     The first name in the list is the default server. However, 
  2700.                     the way in which the default is defined is operating system 
  2701.                     dependent. 
  2702.  
  2703.  Return codes 
  2704.  
  2705.           ECI_NO_ERROR 
  2706.                     The function completed successfully. The number of systems 
  2707.                     found is at least one, and does not exceed the value 
  2708.                     supplied as input in the Systems parameter. 
  2709.  
  2710.           ECI_ERR_MORE_SYSTEMS 
  2711.                     There was not enough space in the List array to store the 
  2712.                     information. The supplied array has been filled, and the 
  2713.                     Systems parameter has been updated to contain the total 
  2714.                     number of systems found, so that you can reallocate an 
  2715.                     array of suitable size and try the function again. 
  2716.  
  2717.           ECI_ERR_NO_SYSTEMS 
  2718.                     No CICS servers can be located. In this case, the value 
  2719.                     returned in Systems is zero. 
  2720.  
  2721.           ECI_ERR_NO_CICS 
  2722.                     The client is not active. 
  2723.  
  2724.           ECI_ERR_INVALID_DATA_LENGTH 
  2725.                     The value specified in the Systems parameter is so large 
  2726.                     that the length of storage for the List parameter exceeds 
  2727.                     32767. 
  2728.  
  2729.           ECI_ERR_CALL_FROM_CALLBACK 
  2730.                     The call was made from a callback routine. 
  2731.  
  2732.           ECI_ERR_SYSTEM_ERROR 
  2733.                     An internal system error occurred. 
  2734.  
  2735.  
  2736. ΓòÉΓòÉΓòÉ 8. External presentation interface ΓòÉΓòÉΓòÉ
  2737.  
  2738. This chapter provides reference information about the external presentation 
  2739. interface (EPI). 
  2740.  
  2741. The interface is described here in a language-independent manner, though the 
  2742. names chosen for the elements of the interface-functions, parameters, data 
  2743. structures, fields, constants, and so on-are similar to those provided for 
  2744. programming. For language-dependent information, see Creating ECI and EPI 
  2745. application programs. 
  2746.  
  2747. Any restrictions applicable to particular operating environments are identified 
  2748. under the functions to which they apply. 
  2749.  
  2750. The chapter is organized as follows: 
  2751.  
  2752.  Overview 
  2753.  How to use the EPI 
  2754.  EPI constants and data structures 
  2755.  EPI functions 
  2756.  EPI events 
  2757.  3270 data streams for the EPI 
  2758.  Microsoft Windows considerations. 
  2759.  
  2760.  
  2761. ΓòÉΓòÉΓòÉ 8.1. Overview ΓòÉΓòÉΓòÉ
  2762.  
  2763. The EPI allows a non-CICS application program to have access to one or more 
  2764. CICS servers. In each CICS server, the application can establish one or more 
  2765. terminal resources. The application acts as the operator of these terminal 
  2766. resources, starting CICS transactions, and sending and receiving standard 3270 
  2767. data streams associated with those transactions. 
  2768.  
  2769. The following points should be borne in mind when designing client/server 
  2770. implementations using the EPI. 
  2771.  
  2772.   1. A CICS transaction that sends data to an EPI application must not use the 
  2773.      IMMEDIATE option of EXEC CICS RETURN. 
  2774.  
  2775.   2. The EPI application can use the EPI to determine the default screen size 
  2776.      of the terminal resource definition, but not the alternate screen size. 
  2777.  
  2778.   3. The EPI application cannot use the EPI to determine whether it is to send 
  2779.      or receive double byte character set (DBCS) data streams to or from the 
  2780.      CICS transaction. 
  2781.  
  2782.   4. The 3270 data streams produced by CICS transactions must not contain 
  2783.      structured fields. 
  2784.  
  2785.   5. If a CICS transaction is run with execution diagnostic facility (EDF) 
  2786.      enabled at an EPI application's terminal resource, the events reported to 
  2787.      the EPI application are different from those reported when EDF is not 
  2788.      enabled. 
  2789.  
  2790.   6. If a CICS transaction uses EXEC CICS START with the DELAY option to 
  2791.      schedule transactions to a terminal resource autoinstalled by an EPI 
  2792.      application, the EPI application should exercise caution in deleting the 
  2793.      terminal resource, or delayed ATI requests might be lost. You should 
  2794.      consult your server documentation to determine the effects of deleting a 
  2795.      terminal resource when delayed ATI requests are outstanding. 
  2796.  
  2797.  The application is responsible for the presentation of the 3270 data received. 
  2798.  The application may present the data in the normal way by emulating a 3270 
  2799.  terminal, or it may present a very different view. For example: 
  2800.  
  2801.  o An OS/2 application may use Presentation Manager. 
  2802.  o An application for the CICS on Opens Systems environment may use Motif. 
  2803.  o A SunOS application may use Open Look. 
  2804.  o An Apple application may use Macintosh Toolbox. 
  2805.  
  2806.  
  2807. ΓòÉΓòÉΓòÉ 8.2. How to use the EPI ΓòÉΓòÉΓòÉ
  2808.  
  2809. The EPI provides a separate function name for each of its functions. 
  2810.  
  2811.  
  2812. ΓòÉΓòÉΓòÉ 8.2.1. Initialization and termination ΓòÉΓòÉΓòÉ
  2813.  
  2814. Any application requiring to use the EPI must call the CICS_EpiInitialize 
  2815. function to initialize the EPI. Until this call is made, no other EPI function 
  2816. is allowed. The CICS_EpiInitialize function takes a parameter indicating the 
  2817. version of the EPI for which the application was coded. This is to ensure that 
  2818. existing applications continue to execute without change if the EPI is 
  2819. extended. 
  2820.  
  2821. Before an EPI application ends, it should call the CICS_EpiTerminate function 
  2822. to terminate the EPI cleanly. 
  2823.  
  2824.  
  2825. ΓòÉΓòÉΓòÉ 8.2.2. Listing the configured servers ΓòÉΓòÉΓòÉ
  2826.  
  2827. After calling CICS_EpiInitialize successfully, the application should call 
  2828. CICS_EpiListSystems to check which CICS servers are configured for use by the 
  2829. application. 
  2830.  
  2831.  
  2832. ΓòÉΓòÉΓòÉ 8.2.3. Adding and deleting terminal resources ΓòÉΓòÉΓòÉ
  2833.  
  2834. The primary purpose of the EPI is to allow an application to appear to a CICS 
  2835. server as one or more 3270 terminals. The application should make a 
  2836. CICS_EpiAddTerminal call for each terminal resource it needs to define. 
  2837.  
  2838. The application must specify the server in which the terminal resource is to be 
  2839. installed, and may specify the terminal resource to be installed by supplying 
  2840. one of the following: 
  2841.  
  2842.  o The netname of an existing terminal resource in the server. This terminal 
  2843.    resource should be one that is not currently in use. 
  2844.  
  2845.  o The name of a model terminal definition. In this case a new terminal 
  2846.    resource is autoinstalled. 
  2847.  
  2848.  o Nothing. In this case the server generates a netname and autoinstalls a 
  2849.    terminal resource with that name, using a default model terminal definition. 
  2850.  
  2851.  Once an application has established its use of a terminal resource with 
  2852.  CICS_EpiAddTerminal, no other application can use that terminal resource until 
  2853.  the first application releases it with CICS_EpiDelTerminal. 
  2854.  
  2855.  The CICS_EpiAddTerminal call returns a terminal index, which must be passed on 
  2856.  subsequent EPI function calls to indicate the terminal resource to which the 
  2857.  function is to apply. Each index identifies a combination of server and 
  2858.  terminal resource. The terminal index supplied is the first available integer 
  2859.  starting from 0. This allows the application to maintain a mapping between 
  2860.  terminal indexes and terminal resource information, using array lookup. 
  2861.  
  2862.  Terminal indexes are unique within an application, but not across 
  2863.  applications, so each application gets terminal index zero for the first 
  2864.  terminal it installs, and so on. 
  2865.  
  2866.  Using terminal indexes shows an application with three terminal resources, one 
  2867.  in one server and two in another. The application uses the terminal indexes to 
  2868.  operate the terminal resources, sending and receiving 3270 data streams. The 
  2869.  order of the indexes shows the order in which the terminal resources were 
  2870.  installed with CICS_EpiAddTerminal. 
  2871.  
  2872.  
  2873.   Using terminal indexes
  2874.  
  2875.  If a terminal resource is no longer required, it can be deleted by making a 
  2876.  CICS_EpiDelTerminal call. This call can succeed only if the terminal resource 
  2877.  is not currently running a transaction; if a transaction is in progress, the 
  2878.  call returns an error code. Deleting a terminal resource is like signing off 
  2879.  from the terminal by running the CESF transaction. When deletion is complete, 
  2880.  the terminal index value becomes free and can be reissued by a subsequent 
  2881.  CICS_EpiAddTerminal call. If the terminal resource was added by way of a model 
  2882.  terminal definition, the CICS_EpiDelTerminal call also deletes the terminal 
  2883.  resource from the server. 
  2884.  
  2885.  
  2886. ΓòÉΓòÉΓòÉ 8.2.4. Starting transactions ΓòÉΓòÉΓòÉ
  2887.  
  2888. When an application has defined a terminal resource, it can start a transaction 
  2889. from that terminal resource. To the CICS server it appears as if a terminal 
  2890. user had typed a transaction code on the screen and pressed an AID key. To 
  2891. start a transaction, the CICS_EpiStartTran function is called. There are two 
  2892. ways of specifying the transaction to be started and the data to be associated 
  2893. with it. 
  2894.  
  2895.   1. Supply the transaction identifier as a parameter to the call (TransId), 
  2896.      and supply any transaction data in the Data parameter. 
  2897.  
  2898.   2. Combine a transaction identifier and transaction data into a 3270 data 
  2899.      stream, and supply the data stream as a parameter to the call (Data). 
  2900.  
  2901.  
  2902. ΓòÉΓòÉΓòÉ 8.2.5. Events and callbacks ΓòÉΓòÉΓòÉ
  2903.  
  2904. When an application has defined a terminal resource, several events can happen 
  2905. to it because of actions in the CICS server, rather than actions of the 
  2906. application. The application cannot predict when those events may happen, but 
  2907. it is the responsibility of the application to collect and process the events 
  2908. as appropriate. Events are held by the EPI in a first-in-first-out queue until 
  2909. they are collected, one by one, by the application making calls to the 
  2910. CICS_EpiGetEvent function. During such a call, the EPI puts information in a 
  2911. CICS_EpiEventData_t structure to indicate the event that occurred and any 
  2912. associated data. It also indicates whether there are more events still waiting 
  2913. in the queue. 
  2914.  
  2915. The application can synchronize the processing of these events with its other 
  2916. activities in one of three ways: 
  2917.  
  2918.  o Polling 
  2919.  o Blocking 
  2920.  o Callback notification. 
  2921.  
  2922.  
  2923. ΓòÉΓòÉΓòÉ 8.2.5.1. Polling ΓòÉΓòÉΓòÉ
  2924.  
  2925. The CICS_EpiGetEvent call can be made in a polling mode by specifying 
  2926. CICS_EPI_NOWAIT for the Wait parameter. If no event is waiting to be collected, 
  2927. the function returns immediately with an error code. This is the mechanism that 
  2928. you would have to adopt in a single-user single-threaded environment, such as 
  2929. DOS, where the application might alternately poll the keyboard for user 
  2930. activity and poll the EPI for event activity. 
  2931.  
  2932.  
  2933. ΓòÉΓòÉΓòÉ 8.2.5.2. Blocking ΓòÉΓòÉΓòÉ
  2934.  
  2935. The CICS_EpiGetEvent call can be made in a blocking mode by specifying 
  2936. CICS_EPI_WAIT for the Wait parameter. If no event is waiting to be collected, 
  2937. the function waits and does not return until an event becomes available. You 
  2938. could use this mechanism in a multithreaded environment, where a secondary 
  2939. thread could be dedicated to event processing. It could also be used after a 
  2940. notification by callback, because the event information is known to be 
  2941. available. 
  2942.  
  2943.  
  2944. ΓòÉΓòÉΓòÉ 8.2.5.3. Callback notification ΓòÉΓòÉΓòÉ
  2945.  
  2946. When the terminal resource is defined with the CICS_EpiAddTerminal call, the 
  2947. optional parameter NotifyFn may be used to provide the address of a callback 
  2948. routine that the EPI calls whenever an event occurs against that terminal 
  2949. resource. Callback notification is not supported under DOS and Microsoft 
  2950. Windows. Under DOS and Microsoft Windows, the parameter can be specified, but 
  2951. it is ignored, and the application must poll for events. 
  2952.  
  2953. Note:  Some compilers do not support the use of callback routines. Consult your 
  2954.        compiler documentation for more information. 
  2955.  
  2956.  An application should carry out the minimum of processing in its callback 
  2957.  routine, and never block in the specified routine before returning to the EPI. 
  2958.  The routine itself cannot make EPI calls. You decide what it should do when 
  2959.  the notification is received. For example, in a multithreaded environment like 
  2960.  OS/2, it might post a semaphore to signal another thread that an event has 
  2961.  occurred. In a Presentation Manager environment, it might post a message to a 
  2962.  window to indicate to the window procedure that an event has occurred. Other 
  2963.  actions will be appropriate for other environments. In a CICS on Open Systems 
  2964.  environment, only thread-safe facilities should be used. 
  2965.  
  2966.  When the callback routine is called, it is passed a single parameter-the 
  2967.  terminal index of the terminal resource against which the event occurred. This 
  2968.  allows the same callback routine to be used for more than one terminal 
  2969.  resource. 
  2970.  
  2971.  
  2972. ΓòÉΓòÉΓòÉ 8.2.6. Processing the events ΓòÉΓòÉΓòÉ
  2973.  
  2974. On return from the CICS_EpiGetEvent function, the CICS_EpiEventData_t structure 
  2975. contains the details of the event that occurred. The Event field in this 
  2976. structure indicates the event, and can take one of the following values: 
  2977.  
  2978.  o CICS_EPI_EVENT_SEND 
  2979.  o CICS_EPI_EVENT_CONVERSE 
  2980.  o CICS_EPI_EVENT_END_TRAN 
  2981.  o CICS_EPI_EVENT_START_ATI 
  2982.  o CICS_EPI_EVENT_END_TERM 
  2983.  o CICS_EPI_EVENT_HELP. 
  2984.  
  2985.  The application should attempt to process events as quickly as possible, 
  2986.  because some events describe the state of the terminal resource. If these 
  2987.  events are not processed, the application may receive unexpected error return 
  2988.  codes when it tries to issue EPI functions, because the state maintained 
  2989.  inside the EPI might not match the state maintained in the application. For 
  2990.  example, an application can start a transaction only if the terminal resource 
  2991.  is not currently running another transaction. The CICS_EPI_EVENT_END_TRAN 
  2992.  event signals the end of a transaction, and so the application and the EPI 
  2993.  enter a state in which new transactions can be started for that terminal 
  2994.  resource. The CICS_EPI_EVENT_START_ATI event indicates that an ATI transaction 
  2995.  has started at the terminal resource, and therefore that the terminal resource 
  2996.  has entered a state in which the starting of transactions is no longer 
  2997.  allowed. If the application calls CICS_EpiStartTran after the 
  2998.  CICS_EPI_EVENT_START_ATI event has been notified, but before the event has 
  2999.  been retrieved, the CICS_EpiStartTran call fails, even though, to the 
  3000.  application, it may appear that it is still in a state in which it should 
  3001.  succeed. 
  3002.  
  3003.  
  3004. ΓòÉΓòÉΓòÉ 8.2.7. Sending and receiving data ΓòÉΓòÉΓòÉ
  3005.  
  3006. When a transaction sends data to a terminal resource, the EPI generates either 
  3007. a CICS_EPI_EVENT_SEND event or a CICS_EPI_EVENT_CONVERSE event. 
  3008.  
  3009. The CICS_EPI_EVENT_SEND event indicates that data was sent but that no reply is 
  3010. required. Typically this would result from an EXEC CICS SEND command, but in 
  3011. some servers it would result from an EXEC CICS CONVERSE command. (In the latter 
  3012. case, a CICS_EPI_EVENT_CONVERSE event occurs later to tell the application to 
  3013. send a data stream back to the transaction in the server.) 
  3014.  
  3015. The CICS_EPI_EVENT_CONVERSE event indicates that a reply is required, and would 
  3016. typically result from an EXEC CICS RECEIVE or EXEC CICS CONVERSE command. The 
  3017. application should respond to this event by issuing a CICS_EpiReply call to 
  3018. provide the response data. The CICS_EpiReply function should be issued only to 
  3019. respond to a CICS_EPI_EVENT_CONVERSE event; if it is issued at any other time, 
  3020. an error is returned. 
  3021.  
  3022.  
  3023. ΓòÉΓòÉΓòÉ 8.2.8. Managing pseudoconversations ΓòÉΓòÉΓòÉ
  3024.  
  3025. CICS transactions can operate in a pseudoconversational mode. The conversation 
  3026. between a terminal resource and a server is broken up into a number of 
  3027. segments, each of which is a separate transaction. As each transaction ends, it 
  3028. provides the name of the transaction to be run to process the next input from 
  3029. the terminal resource. (It uses EXEC CICS RETURN with the TRANSID option to do 
  3030. this.) The CICS_EPI_EVENT_END_TRAN event tells the application whether the 
  3031. transaction just ended has specified a transaction to process the next input, 
  3032. and which transaction has been specified. The application must not attempt to 
  3033. start a different transaction, but must use CICS_EpiStartTran to start the 
  3034. transaction specified by the CICS_EPI_EVENT_END_TRAN event. 
  3035.  
  3036.  
  3037. ΓòÉΓòÉΓòÉ 8.2.9. Security in the EPI ΓòÉΓòÉΓòÉ
  3038.  
  3039. The EPI has no interface for the non-CICS application to supply userids or 
  3040. passwords to the server. Not all CICS servers require the client to supply a 
  3041. userid and password for EPI calls. Some CICS servers have configuration options 
  3042. to decide whether the userid and password are required. You should consult the 
  3043. publications for the appropriate server for more information. 
  3044.  
  3045. Some client environments support the use of userids and passwords in files, so 
  3046. that the userid and password need not be supplied by the non-CICS application. 
  3047. Some client environments support the use of dialogs with the workstation 
  3048. operator to determine userids and passwords. You should consult the 
  3049. publications for the appropriate client environment for more information. 
  3050.  
  3051. In the CICS on Open Systems environment, the operator might need DCE 
  3052. authorization to use the EPI application, depending on the local configuration. 
  3053. If the EPI program runs for a long time, for example longer than thirty 
  3054. minutes, you must make sure that the credential lifetime and renewable lifetime 
  3055. of the DCE principal are long enough to cover the maximum allowed duration of 
  3056. the EPI program. 
  3057.  
  3058. Authorization to use protected transactions can only be achieved by using 
  3059. CICS_EpiStartTran for the CESN transaction, specifying userid and password. 
  3060.  
  3061. Whether userids and passwords are encrypted depends on the communications 
  3062. protocol being used between client and server. 
  3063.  
  3064.  
  3065. ΓòÉΓòÉΓòÉ 8.3. EPI constants and data structures ΓòÉΓòÉΓòÉ
  3066.  
  3067. This section describes the constants and data structures that you will need to 
  3068. use the EPI. They are referred to in EPI functions. 
  3069.  
  3070.  
  3071. ΓòÉΓòÉΓòÉ 8.3.1. EPI constants ΓòÉΓòÉΓòÉ
  3072.  
  3073. The following constants are referred to symbolically in the descriptions of the 
  3074. EPI data structures, functions, and events in this chapter. Their values are 
  3075. given here to help you understand the descriptions. However, your code should 
  3076. always use the symbolic names of EPI constants provided for the programming 
  3077. language you are using. 
  3078.  
  3079. Lengths of fields 
  3080.  
  3081.  o CICS_EPI_SYSTEM_MAX (8) 
  3082.  o CICS_EPI_DESCRIPTION_MAX (60) 
  3083.  o CICS_EPI_NETNAME_MAX (8) 
  3084.  o CICS_EPI_TRANSID_MAX (4) 
  3085.  o CICS_EPI_ABEND_MAX (4) 
  3086.  o CICS_EPI_DEVTYPE_MAX (16) 
  3087.  o CICS_EPI_ERROR_MAX (60). 
  3088.  
  3089.  Relating to TermIndex 
  3090.  
  3091.  o CICS_EPI_TERM_INDEX_NONE  0xFFFF. 
  3092.  Version numbers (See EPI versions) 
  3093.  
  3094.  o CICS_EPI_VERSION_100 
  3095.  o CICS_EPI_VERSION_101. 
  3096.  
  3097.  
  3098. ΓòÉΓòÉΓòÉ 8.3.2. EPI data structures ΓòÉΓòÉΓòÉ
  3099.  
  3100. The following data structures are available for use with the EPI. 
  3101.  
  3102.  o CICS_EpiSystem_t 
  3103.  o CICS_EpiDetails_t 
  3104.  o CICS_EpiEventData_t 
  3105.  o CICS_EpiSysError_t. 
  3106.  
  3107.  In the descriptions of the fields in the data structures, fields described as 
  3108.  strings are null-terminated strings. 
  3109.  
  3110.  
  3111. ΓòÉΓòÉΓòÉ 8.3.3. CICS_EpiSystem_t ΓòÉΓòÉΓòÉ
  3112.  
  3113. CICS_EpiSystem_t 
  3114.  
  3115.  Purpose 
  3116.  
  3117.            The CICS_EpiSystem_t structure contains the name and description of 
  3118.           a CICS server. An array of these structures is returned from the 
  3119.           CICS_EpiListSystems function. 
  3120.  
  3121.  Fields 
  3122.  
  3123.           SystemName 
  3124.                     A string naming the CICS server. It can be passed as a 
  3125.                     parameter to the CICS_EpiAddTerminal function, to identify 
  3126.                     the CICS server in which the terminal resource should be 
  3127.                     installed. If the name is shorter than CICS_EPI_SYSTEM_MAX 
  3128.                     characters, it is padded with nulls to a length of 
  3129.                     CICS_EPI_SYSTEM_MAX + 1. 
  3130.  
  3131.           Description 
  3132.                     A string giving a brief description of the server. If the 
  3133.                     description is shorter than CICS_EPI_DESCRIPTION_MAX, it is 
  3134.                     padded with nulls to a length of CICS_EPI_DESCRIPTION_MAX + 
  3135.                     1. 
  3136.  
  3137.  
  3138. ΓòÉΓòÉΓòÉ 8.3.4. CICS_EpiDetails_t ΓòÉΓòÉΓòÉ
  3139.  
  3140. CICS_EpiDetails_t 
  3141.  
  3142.  Purpose 
  3143.  
  3144.            The CICS_EpiDetails_t structure holds information about a terminal 
  3145.           resource installed by CICS_EpiAddTerminal. 
  3146.  
  3147.  Fields 
  3148.  
  3149.           NetName 
  3150.                     A string specifying the VTAM-style netname of the terminal 
  3151.                     resource. If the name is shorter than CICS_EPI_NETNAME_MAX 
  3152.                     characters, it is padded with nulls to a length of 
  3153.                     CICS_EPI_NETNAME_MAX + 1. 
  3154.  
  3155.           NumLines 
  3156.                     The number of rows supported by the terminal resource. 
  3157.  
  3158.           NumColumns 
  3159.                     The number of columns supported by the terminal resource. 
  3160.  
  3161.           MaxData 
  3162.                     The maximum possible size of the data that CICS will send 
  3163.                     to this terminal resource. 
  3164.  
  3165.           ErrLastLine 
  3166.                     1 if the terminal resource should display error messages on 
  3167.                     its last row, 0 otherwise. 
  3168.  
  3169.           ErrIntensify 
  3170.                     1 if the terminal resource should display error messages 
  3171.                     intensified, 0 otherwise. 
  3172.  
  3173.           ErrColor 
  3174.                     The 3270 attribute defining the color to be used to display 
  3175.                     error messages. 
  3176.  
  3177.           ErrHilight 
  3178.                     The 3270 attribute defining the highlight value to be used 
  3179.                     to display error messages. 
  3180.  
  3181.           Hilight 
  3182.                     1 if the terminal resource is defined to support extended 
  3183.                     highlighting, 0 otherwise. 
  3184.  
  3185.           Color 
  3186.                     1 if the terminal resource is defined to support color, 0 
  3187.                     otherwise. 
  3188.  
  3189.           Printer 
  3190.                     1 if the terminal resource is defined to be a printer, 0 
  3191.                     otherwise. 
  3192.  
  3193.  
  3194. ΓòÉΓòÉΓòÉ 8.3.5. CICS_EpiEventData_t ΓòÉΓòÉΓòÉ
  3195.  
  3196. CICS_EpiEventData_t 
  3197.  
  3198.  Purpose 
  3199.  
  3200.            The CICS_EpiEventData_t structure holds details of a 
  3201.           terminal-related event. Not all fields are valid for all events, and 
  3202.           fields that are not valid are set to nulls. This structure is an 
  3203.           output from CICS_EpiGetEvent. 
  3204.  
  3205.  Fields 
  3206.  
  3207.           TermIndex 
  3208.                     The terminal index for the terminal resource against which 
  3209.                     this event occurred. 
  3210.  
  3211.           Event 
  3212.                     The event indicator; that is, one of the event codes listed 
  3213.                     in EPI events. 
  3214.  
  3215.           EndReason 
  3216.                     The reason for termination, if the event is a 
  3217.                     CICS_EPI_EVENT_END_TERM event (see page 
  3218.                     CICS_EPI_EVENT_CONVERSE). 
  3219.  
  3220.           TransId 
  3221.                     A string specifying a transaction name. If the name is 
  3222.                     shorter than CICS_EPI_TRANSID_MAX characters, it is padded 
  3223.                     with spaces to this length, followed by a single null 
  3224.                     character. 
  3225.  
  3226.           AbendCode 
  3227.                     A string specifying an abend code. 
  3228.  
  3229.           Data 
  3230.                     A pointer to a buffer that is updated with any terminal 
  3231.                     data stream associated with the event. 
  3232.  
  3233.           Size 
  3234.                     The maximum size of the buffer addressed by Data. On return 
  3235.                     from the CICS_EpiGetEvent call, this contains the actual 
  3236.                     length of data returned. 
  3237.  
  3238.           Note:  The Data and Size fields should be set before the call to 
  3239.                  CICS_EpiGetEvent is made. 
  3240.  
  3241.  
  3242. ΓòÉΓòÉΓòÉ 8.3.6. CICS_EpiSysError_t ΓòÉΓòÉΓòÉ
  3243.  
  3244. CICS_EpiSysError_t 
  3245.  
  3246.  Purpose 
  3247.  
  3248.            The CICS_EpiSysError_t structure holds system error information. It 
  3249.           is an output of CICS_EpiGetSysError. 
  3250.  
  3251.  Fields 
  3252.  
  3253.           Cause 
  3254.                     A value, specific to the operating environment, indicating 
  3255.                     the cause of the last error. 
  3256.  
  3257.           Value 
  3258.                     A value, specific to the operating environment, indicating 
  3259.                     the nature of the last error. 
  3260.  
  3261.           Msg 
  3262.                     A text message, specific to the operating environment, 
  3263.                     describing the last error. If the message is shorter than 
  3264.                     CICS_EPI_ERROR_MAX, it is padded with nulls to a length of 
  3265.                     CICS_EPI_ERROR_MAX + 1. 
  3266.  
  3267.  
  3268. ΓòÉΓòÉΓòÉ 8.4. EPI versions ΓòÉΓòÉΓòÉ
  3269.  
  3270. The following descriptions of EPI functions include information about two 
  3271. versions of the EPI. You should consult the documentation for your client or 
  3272. server environment to determine which versions of the EPI they provide. You 
  3273. establish the version of the EPI that you need by using the Version parameter 
  3274. on the CICS_EpiInitialize function. 
  3275.  
  3276. The function described in the following sections is the function for 
  3277. CICS_EPI_VERSION_101. If you initialize the EPI with CICS_EPI_VERSION_100, the 
  3278. following restrictions apply: 
  3279.  
  3280.  o The CICS_EpiInquireSystem function is not supported. 
  3281.  
  3282.  o The return codes EPI_ERR_IN_CALLBACK, EPI_ERR_NULL_PARM, and 
  3283.    EPI_ERR_SECURITY are not supported. EPI_ERR_FAILED will be returned instead. 
  3284.  
  3285.  o The System parameter of CICS_EpiAddTerminal must specify a non-null string, 
  3286.    as the mechanism for finding a default server is not supported. (If a null 
  3287.    string is specified, CICS_EPI_ERR_SYSTEM is returned.) 
  3288.  
  3289.  
  3290. ΓòÉΓòÉΓòÉ 8.5. EPI functions ΓòÉΓòÉΓòÉ
  3291.  
  3292. This section describes the functions provided by the EPI that can be called 
  3293. from an application program: 
  3294.  
  3295.  o CICS_EpiInitialize 
  3296.  o CICS_EpiTerminate 
  3297.  o CICS_EpiListSystems 
  3298.  o CICS_EpiAddTerminal 
  3299.  o CICS_EpiInquireSystem 
  3300.  o CICS_EpiDelTerminal 
  3301.  o CICS_EpiStartTran 
  3302.  o CICS_EpiReply 
  3303.  o CICS_EpiATIState 
  3304.  o CICS_EpiSenseCode 
  3305.  o CICS_EpiGetEvent 
  3306.  o CICS_EpiGetSysError. 
  3307.  
  3308.  Summary of EPI functions summarizes the functions of the interface, the 
  3309.  parameters passed to each function, and the possible return codes from each 
  3310.  function. 
  3311.  
  3312.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3313.   Γöé Table 1. Summary of EPI functions                       Γöé
  3314.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3315.   Γöé Function name         Γöé Parameters   Γöé Return codes:         Γöé
  3316.   Γöé                Γöé        Γöé CICS_EPI_           Γöé
  3317.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3318.   Γöé CICS_EpiInitialize       Γöé Version    Γöé ERR_FAILED          Γöé
  3319.   Γöé                Γöé        Γöé ERR_IS_INIT          Γöé
  3320.   Γöé                Γöé        Γöé ERR_VERSION          Γöé
  3321.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3322.   Γöé                Γöé        Γöé NORMAL            Γöé
  3323.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3324.   Γöé CICS_EpiTerminate       Γöé none      Γöé ERR_FAILED          Γöé
  3325.   Γöé                Γöé        Γöé ERR_NOT_INIT         Γöé
  3326.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3327.   Γöé                Γöé        Γöé NORMAL            Γöé
  3328.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3329.   Γöé CICS_EpiListSystems      Γöé NameSpace   Γöé ERR_FAILED          Γöé
  3330.   Γöé                Γöé Systems    Γöé ERR_MORE_SYSTEMS       Γöé
  3331.   Γöé                Γöé List      Γöé ERR_NO_SYSTEMS        Γöé
  3332.   Γöé                Γöé        Γöé ERR_NOT_INIT         Γöé
  3333.   Γöé                Γöé        Γöé ERR_NULL_PARM         Γöé
  3334.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3335.   Γöé                Γöé        Γöé NORMAL            Γöé
  3336.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3337.   Γöé CICS_EpiAddTerminal      Γöé NameSpace   Γöé ERR_FAILED          Γöé
  3338.   Γöé                Γöé System     Γöé ERR_MAX_TERMS         Γöé
  3339.   Γöé                Γöé NetName    Γöé ERR_NOT_INIT         Γöé
  3340.   Γöé                Γöé DevType    Γöé ERR_SYSTEM          Γöé
  3341.   Γöé                Γöé NotifyFn    Γöé ERR_SECURITY         Γöé
  3342.   Γöé                Γöé Details    Γöé ERR_NULL_PARM         Γöé
  3343.   Γöé                Γöé TermIndex   Γöé ERR_IN_CALLBACK        Γöé
  3344.   Γöé                Γöé        Γöé NORMAL            Γöé
  3345.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3346.   Γöé CICS_EpiInquireSystem     Γöé TermIndex   Γöé ERR_BAD_INDEX         Γöé
  3347.   Γöé                Γöé System     Γöé ERR_FAILED          Γöé
  3348.   Γöé                Γöé        Γöé ERR_NOT_INIT         Γöé
  3349.   Γöé                Γöé        Γöé ERR_NULL_PARM         Γöé
  3350.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3351.   Γöé                Γöé        Γöé NORMAL            Γöé
  3352.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3353.   Γöé CICS_EpiDelTerminal      Γöé TermIndex   Γöé ERR_BAD_INDEX         Γöé
  3354.   Γöé                Γöé        Γöé ERR_FAILED          Γöé
  3355.   Γöé                Γöé        Γöé ERR_NOT_INIT         Γöé
  3356.   Γöé                Γöé        Γöé ERR_TRAN_ACTIVE        Γöé
  3357.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3358.   Γöé                Γöé        Γöé NORMAL            Γöé
  3359.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3360.   Γöé CICS_EpiStartTran       Γöé TermIndex   Γöé ERR_ATI_ACTIVE        Γöé
  3361.   Γöé                Γöé TransId    Γöé ERR_BAD_INDEX         Γöé
  3362.   Γöé                Γöé Data      Γöé ERR_FAILED          Γöé
  3363.   Γöé                Γöé Size      Γöé ERR_NO_DATA          Γöé
  3364.   Γöé                Γöé        Γöé ERR_NOT_INIT         Γöé
  3365.   Γöé                Γöé        Γöé ERR_TTI_ACTIVE        Γöé
  3366.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3367.   Γöé                Γöé        Γöé NORMAL            Γöé
  3368.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3369.   Γöé CICS_EpiReply         Γöé TermIndex   Γöé ERR_BAD_INDEX         Γöé
  3370.   Γöé                Γöé Data      Γöé ERR_FAILED          Γöé
  3371.   Γöé                Γöé Size      Γöé ERR_NO_CONVERSE        Γöé
  3372.   Γöé                Γöé        Γöé ERR_NO_DATA          Γöé
  3373.   Γöé                Γöé        Γöé ERR_NOT_INIT         Γöé
  3374.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3375.   Γöé                Γöé        Γöé NORMAL            Γöé
  3376.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3377.   Γöé CICS_EpiATIState        Γöé TermIndex   Γöé ERR_ATI_STATE         Γöé
  3378.   Γöé                Γöé ATIState    Γöé ERR_BAD_INDEX         Γöé
  3379.   Γöé                Γöé        Γöé ERR_FAILED          Γöé
  3380.   Γöé                Γöé        Γöé ERR_NOT_INIT         Γöé
  3381.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3382.   Γöé                Γöé        Γöé NORMAL            Γöé
  3383.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3384.   Γöé CICS_EpiSenseCode       Γöé TermIndex   Γöé ERR_BAD_INDEX         Γöé
  3385.   Γöé                Γöé SenseCode   Γöé ERR_FAILED          Γöé
  3386.   Γöé                Γöé        Γöé ERR_NOT_INIT         Γöé
  3387.   Γöé                Γöé        Γöé ERR_SENSE_CODE        Γöé
  3388.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3389.   Γöé                Γöé        Γöé NORMAL            Γöé
  3390.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3391.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3392.   Γöé Table 1. Summary of EPI functions                       Γöé
  3393.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3394.   Γöé CICS_EpiGetEvent        Γöé TermIndex   Γöé ERR_BAD_INDEX         Γöé
  3395.   Γöé                Γöé Wait      Γöé ERR_FAILED          Γöé
  3396.   Γöé                Γöé Event     Γöé ERR_MORE_DATA         Γöé
  3397.   Γöé                Γöé        Γöé ERR_MORE_EVENTS        Γöé
  3398.   Γöé                Γöé        Γöé ERR_NO_EVENT         Γöé
  3399.   Γöé                Γöé        Γöé ERR_NOT_INIT         Γöé
  3400.   Γöé                Γöé        Γöé ERR_WAIT           Γöé
  3401.   Γöé                Γöé        Γöé ERR_NULL_PARM         Γöé
  3402.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3403.   Γöé                Γöé        Γöé NORMAL            Γöé
  3404.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3405.   Γöé CICS_EpiGetSysError      Γöé TermIndex   Γöé ERR_NOT_INIT         Γöé
  3406.   Γöé                Γöé SysErr     Γöé ERR_BAD_INDEX         Γöé
  3407.   Γöé                Γöé        Γöé ERR_FAILED          Γöé
  3408.   Γöé                Γöé        Γöé ERR_NULL_PARM         Γöé
  3409.   Γöé                Γöé        Γöé ERR_IN_CALLBACK        Γöé
  3410.   Γöé                Γöé        Γöé NORMAL            Γöé
  3411.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3412.  
  3413.  Refer to the definitions of the functions to discover the types and usage of 
  3414.  the parameters, the data structures used by the functions, and the meanings of 
  3415.  the return codes. 
  3416.  
  3417.  
  3418. ΓòÉΓòÉΓòÉ 8.5.1. CICS_EpiInitialize ΓòÉΓòÉΓòÉ
  3419.  
  3420. CICS_EpiInitialize 
  3421.  
  3422. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3423. Γöé CICS_EpiInitialize           Γöé Version                Γöé
  3424. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3425.  
  3426.  Purpose 
  3427.  
  3428.           The CICS_EpiInitialize function initializes the EPI. All other EPI 
  3429.           calls from this application are invalid before this call is made. 
  3430.  
  3431.      Microsoft Windows only 
  3432.  
  3433.      See Microsoft Windows considerations for further details of the use of 
  3434.      this function in a Microsoft Windows environment. 
  3435.  
  3436.  Parameters 
  3437.  
  3438.           Version 
  3439.                     The version of the EPI for which this application is coded. 
  3440.                     This makes it possible for old applications to remain 
  3441.                     compatible with future versions of the EPI. The version 
  3442.                     described here is CICS_EPI_VERSION_101. (See EPI versions 
  3443.                     for more information.) 
  3444.  
  3445.                     The EPI uses this parameter only for input. 
  3446.  
  3447.  Return codes 
  3448.  
  3449.           CICS_EPI_ERR_FAILED 
  3450.                     The function failed for an unexpected reason. 
  3451.  
  3452.           CICS_EPI_ERR_IS_INIT 
  3453.                     The EPI is already initialized. 
  3454.  
  3455.           CICS_EPI_ERR_VERSION 
  3456.                     The EPI cannot support the version requested. 
  3457.  
  3458.           CICS_EPI_ERR_IN_CALLBACK 
  3459.                     The function was called from a callback routine. 
  3460.  
  3461.           CICS_EPI_NORMAL 
  3462.                     The function completed successfully. 
  3463.  
  3464.  
  3465. ΓòÉΓòÉΓòÉ 8.5.2. CICS_EpiTerminate ΓòÉΓòÉΓòÉ
  3466.  
  3467. CICS_EpiTerminate 
  3468.  
  3469. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3470. Γöé CICS_EpiTerminate           Γöé                    Γöé
  3471. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3472.  
  3473.  Purpose 
  3474.  
  3475.           The CICS_EpiTerminate function ends the application's use of the EPI, 
  3476.           typically just before the application terminates. All other EPI calls 
  3477.           (except for CICS_EpiInitialize) are invalid when this call has 
  3478.           completed. 
  3479.  
  3480.           The application should issue CICS_EpiDelTerminal calls before 
  3481.           terminating, to ensure that any terminal resources are deleted. 
  3482.  
  3483.  Parameters 
  3484.  
  3485.           None. 
  3486.  
  3487.  Return codes 
  3488.  
  3489.           CICS_EPI_ERR_FAILED 
  3490.                     The function failed for an unexpected reason. 
  3491.  
  3492.           CICS_EPI_ERR_NOT_INIT 
  3493.                     CICS_EpiInitialize has not been executed. 
  3494.  
  3495.           CICS_EPI_ERR_IN_CALLBACK 
  3496.                     The function was called from a callback routine. 
  3497.  
  3498.           CICS_EPI_NORMAL 
  3499.                     The function completed successfully. 
  3500.  
  3501.  
  3502. ΓòÉΓòÉΓòÉ 8.5.3. CICS_EpiListSystems ΓòÉΓòÉΓòÉ
  3503.  
  3504. CICS_EpiListSystems 
  3505.  
  3506. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3507. Γöé CICS_EpiListSystems          Γöé NameSpace               Γöé
  3508. Γöé                    Γöé Systems                Γöé
  3509. Γöé                    Γöé List                 Γöé
  3510. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3511.  
  3512.  Purpose 
  3513.  
  3514.           The CICS_EpiListSystems function returns a list of CICS servers that 
  3515.           are candidates to act as servers for EPI requests. There is no 
  3516.           guarantee that a communications link exists between the client and 
  3517.           any server in the list, or that any of the servers is available to 
  3518.           process requests. 
  3519.  
  3520.           The list is returned as an array of system information structures, 
  3521.           one element for each CICS server. See CICS_EpiSystem_t for the 
  3522.           contents of the structure. 
  3523.  
  3524.           EPI applications should call this function immediately after each 
  3525.           CICS_EpiInitialize call made to determine which CICS servers are 
  3526.           available. 
  3527.  
  3528.  Parameters 
  3529.  
  3530.           NameSpace 
  3531.                     A pointer reserved for future use. Ensure that this is a 
  3532.                     null pointer. 
  3533.  
  3534.           Systems 
  3535.                     A pointer to a number. On entry to the function, this 
  3536.                     number specifies the number of elements in the array 
  3537.                     specified in the List parameter. This value should 
  3538.                     accurately reflect the amount of storage that is available 
  3539.                     to the EPI to store the result. On return, it contains the 
  3540.                     actual number of servers found. 
  3541.  
  3542.                     The EPI uses this parameter for both input and output. 
  3543.  
  3544.           List 
  3545.                     An array of CICS_EpiSystem_t structures that are filled in 
  3546.                     and returned by the function. The application should 
  3547.                     provide the storage for the array and must set the Systems 
  3548.                     parameter to indicate the number of elements in the array. 
  3549.                     The first name in the list is the default server. However, 
  3550.                     the way in which the default is defined is operating system 
  3551.                     dependent. 
  3552.  
  3553.                     The EPI uses this parameter only for output. 
  3554.  
  3555.  Return codes 
  3556.  
  3557.           CICS_EPI_ERR_FAILED 
  3558.                     The function failed for an unexpected reason. 
  3559.  
  3560.           CICS_EPI_ERR_MORE_SYSTEMS 
  3561.                     There was not enough space in the List array to store the 
  3562.                     details of all the CICS servers found. The supplied array 
  3563.                     has been filled, and the Systems parameter has been updated 
  3564.                     to contain the total number of servers found, thus allowing 
  3565.                     you to reallocate an array of suitable size and try the 
  3566.                     function again. 
  3567.  
  3568.           CICS_EPI_ERR_NO_SYSTEMS 
  3569.                     No CICS servers can be located. In this case, the value 
  3570.                     returned in Systems is zero. 
  3571.  
  3572.           CICS_EPI_ERR_NOT_INIT 
  3573.                     CICS_EpiInitialize has not been executed. 
  3574.  
  3575.           CICS_EPI_ERR_NULL_PARM 
  3576.                     Systems is a null pointer. 
  3577.  
  3578.           CICS_EPI_ERR_IN_CALLBACK 
  3579.                     The function was called from a callback routine. 
  3580.  
  3581.           CICS_EPI_NORMAL 
  3582.                     The function completed successfully. The number of systems 
  3583.                     found is at least one, and does not exceed the value 
  3584.                     supplied as input in the Systems parameter. 
  3585.  
  3586.  
  3587. ΓòÉΓòÉΓòÉ 8.5.4. CICS_EpiAddTerminal ΓòÉΓòÉΓòÉ
  3588.  
  3589. CICS_EpiAddTerminal 
  3590.  
  3591. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3592. Γöé CICS_EpiAddTerminal          Γöé NameSpace               Γöé
  3593. Γöé                    Γöé System                Γöé
  3594. Γöé                    Γöé NetName                Γöé
  3595. Γöé                    Γöé DevType                Γöé
  3596. Γöé                    Γöé NotifyFn               Γöé
  3597. Γöé                    Γöé Details                Γöé
  3598. Γöé                    Γöé TermIndex               Γöé
  3599. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3600.  
  3601.  Purpose 
  3602.  
  3603.           The CICS_EpiAddTerminal function installs a new terminal resource, or 
  3604.           reserves an existing terminal resource, for the application's use. It 
  3605.           provides a terminal index, which should be used to identify the 
  3606.           terminal resource on all further EPI calls. It also provides the 
  3607.           information defined in the CICS_EpiDetails_t data structure. 
  3608.  
  3609.      Microsoft Windows only 
  3610.  
  3611.      See Microsoft Windows considerations for further details of the use of 
  3612.      this function in a Microsoft Windows environment. 
  3613.  
  3614.  Parameters 
  3615.  
  3616.           NameSpace 
  3617.                     A pointer reserved for future use. Ensure that this is a 
  3618.                     null pointer. 
  3619.  
  3620.           System 
  3621.                     A pointer to a null-terminated string that specifies the 
  3622.                     name of the server in which the terminal resource is to be 
  3623.                     installed or reserved. If the name is shorter than 
  3624.                     CICS_EPI_SYSTEM_MAX characters, it must be padded with 
  3625.                     nulls to a length of CICS_EPI_SYSTEM_MAX + 1. 
  3626.  
  3627.                     If the string is all nulls, then a server, currently the 
  3628.                     default server, is selected by the EPI. To determine the 
  3629.                     name of the server chosen, use CICS_EpiInquireSystem. 
  3630.                     (Specifying a null string is allowed only if the EPI was 
  3631.                     initialized with EPI_VERSION_101.) 
  3632.  
  3633.                     The EPI uses this parameter only for input. 
  3634.  
  3635.           NetName 
  3636.                     A pointer to a null-terminated string that specifies the 
  3637.                     name of the terminal resource to be installed or reserved, 
  3638.                     or null. The interpretation of this name is 
  3639.                     server-dependent. 
  3640.  
  3641.                     If a string is supplied that is shorter than 
  3642.                     CICS_EPI_NETNAME_MAX, it must be padded with nulls to a 
  3643.                     length of CICS_EPI_NETNAME_MAX + 1. 
  3644.  
  3645.                     The string is transmitted to the server without conversion 
  3646.                     to uppercase. 
  3647.  
  3648.                     The use of NetName is as follows: 
  3649.  
  3650.               1. If a name is supplied using the NetName, and it matches the 
  3651.                  name of an existing terminal resource in the server, the 
  3652.                  server attempts to reserve that terminal resource. 
  3653.  
  3654.               2. If a name is supplied, but it does not match the name of an 
  3655.                  existing terminal resource in the server, the processing 
  3656.                  depends on the server as follows: 
  3657.  
  3658.                 o In a CICS on Open Systems server, the server installs a 
  3659.                   resource using a default model terminal definition, and gives 
  3660.                   it the input name. 
  3661.  
  3662.                 o On other CICS servers, the server installs a terminal 
  3663.                   resource using the model terminal definition specified by the 
  3664.                   DevType parameter described below, and gives it the input 
  3665.                   name. (If DevType is a null pointer, CICS_EPI_ERR_FAILED is 
  3666.                   returned.) 
  3667.  
  3668.               3. If NetName is a null pointer, then a terminal resource is 
  3669.                  installed using the model terminal definition specified in 
  3670.                  DevType, or a default model terminal definition if DevType is 
  3671.                  a null pointer. The name of the terminal resource is returned 
  3672.                  in the NetName field of the CICS_EpiDetails_t structure. 
  3673.  
  3674.                     The EPI uses this parameter only for input. 
  3675.  
  3676.           DevType 
  3677.                     A pointer to a null-terminated string that is used in the 
  3678.                     server to select a model terminal definition from which a 
  3679.                     terminal resource definition is generated, or a null 
  3680.                     pointer. 
  3681.  
  3682.                     If a string is supplied that is shorter than 
  3683.                     CICS_EPI_DEVTYPE_MAX characters, it should be padded with 
  3684.                     nulls to a length of CICS_EPI_DEVTYPE_MAX + 1. 
  3685.  
  3686.                     The string is transmitted to the server without conversion 
  3687.                     to uppercase. 
  3688.  
  3689.                     The EPI uses this parameter only for input. 
  3690.  
  3691.           NotifyFn 
  3692.                     A pointer to a callback routine that is called whenever an 
  3693.                     event occurs for the terminal resource, such as the arrival 
  3694.                     of an ATI request. If a callback routine is not required, 
  3695.                     this parameter should be set to null. 
  3696.  
  3697.                     The EPI uses this parameter only for input. 
  3698.  
  3699.      DOS and Microsoft Windows The function is ignored and never called even if 
  3700.      specified. 
  3701.  
  3702.           Details 
  3703.                     A pointer to the CICS_EpiDetails_t structure that on return 
  3704.                     contains various details about the terminal resource that 
  3705.                     was installed or reserved. 
  3706.  
  3707.                     The EPI uses the fields in this structure only for output. 
  3708.  
  3709.           TermIndex 
  3710.                     A pointer to a terminal index for the terminal resource 
  3711.                     just installed or reserved. The returned terminal index 
  3712.                     must be used as input to all further EPI function calls to 
  3713.                     identify the terminal resource to which the function is 
  3714.                     directed. The terminal index supplied is the first 
  3715.                     available integer starting from 0. 
  3716.  
  3717.                     The EPI uses this parameter only for output. 
  3718.  
  3719.  Return codes 
  3720.  
  3721.           CICS_EPI_ERR_FAILED 
  3722.                     The function failed for an unexpected reason. 
  3723.  
  3724.           CICS_EPI_ERR_MAX_TERMS 
  3725.                     The maximum number of terminal resources supported by the 
  3726.                     EPI for this process has been reached. 
  3727.  
  3728.           CICS_EPI_ERR_NOT_INIT 
  3729.                     CICS_EpiInitialize has not been executed. 
  3730.  
  3731.           CICS_EPI_ERR_SYSTEM 
  3732.                     The specified server is not known to the client. 
  3733.  
  3734.           CICS_EPI_ERR_SECURITY 
  3735.                     The server rejected the attempt for security reasons. 
  3736.  
  3737.           CICS_EPI_ERR_NULL_PARM 
  3738.                     TermIndex was a null pointer. 
  3739.  
  3740.           CICS_EPI_ERR_IN_CALLBACK 
  3741.                     The function was called from a callback routine. 
  3742.  
  3743.           CICS_EPI_NORMAL 
  3744.                     The function completed successfully. 
  3745.  
  3746.  
  3747. ΓòÉΓòÉΓòÉ 8.5.5. CICS_EpiInquireSystem ΓòÉΓòÉΓòÉ
  3748.  
  3749. CICS_EpiInquireSystem 
  3750.  
  3751. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3752. Γöé CICS_EpiInquireSystem         Γöé TermIndex               Γöé
  3753. Γöé                    Γöé System                Γöé
  3754. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3755.  
  3756.  Purpose 
  3757.  
  3758.           The CICS_EpiInquireSystem function returns the name of the server on 
  3759.           which a given terminal resource (identified by its terminal index) is 
  3760.           installed. 
  3761.  
  3762.  Parameters 
  3763.  
  3764.           TermIndex 
  3765.                     The terminal index of the terminal resource whose location 
  3766.                     is to be determined. 
  3767.  
  3768.                     The EPI uses this parameter only for input. 
  3769.  
  3770.           System 
  3771.                     A pointer to a string of length CICS_ECI_SYSTEM_MAX + 1 in 
  3772.                     which the name of the server will be returned. 
  3773.  
  3774.                     The EPI uses this parameter only for output. 
  3775.  
  3776.  Return codes 
  3777.  
  3778.           CICS_EPI_ERR_BAD_INDEX 
  3779.                     The TermIndex value is not a valid terminal index. 
  3780.  
  3781.           CICS_EPI_ERR_FAILED 
  3782.                     The function failed for an unexpected reason. 
  3783.  
  3784.           CICS_EPI_ERR_NOT_INIT 
  3785.                     CICS_EpiInitialize has not been executed. 
  3786.  
  3787.           CICS_EPI_ERR_NULL_PARM 
  3788.                     System was a null pointer. 
  3789.  
  3790.           CICS_EPI_ERR_IN_CALLBACK 
  3791.                     The function was called from a callback routine. 
  3792.  
  3793.           CICS_EPI_NORMAL 
  3794.                     The function completed successfully. The name of the server 
  3795.                     is returned in the System parameter padded with nulls to a 
  3796.                     length of CICS_EPI_SYSTEM_MAX +1. 
  3797.  
  3798.  
  3799. ΓòÉΓòÉΓòÉ 8.5.6. CICS_EpiDelTerminal ΓòÉΓòÉΓòÉ
  3800.  
  3801. CICS_EpiDelTerminal 
  3802.  
  3803. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3804. Γöé CICS_EpiDelTerminal          Γöé TermIndex               Γöé
  3805. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3806.  
  3807.  Purpose 
  3808.  
  3809.           The CICS_EpiDelTerminal function deletes a previously added terminal 
  3810.           resource. The application should not consider the deletion complete 
  3811.           until it receives the corresponding CICS_EPI_EVENT_END_TERM event. A 
  3812.           call to this function fails if the terminal resource is currently 
  3813.           running a transaction. To ensure that a terminal resource is deleted, 
  3814.           the application must wait until the current transaction finishes and 
  3815.           process all outstanding events before issuing the CICS_EpiDelTerminal 
  3816.           call. 
  3817.  
  3818.           If the terminal resource was autoinstalled, its definition is deleted 
  3819.           from the server. When a CICS_EpiDelTerminal call has completed 
  3820.           successfully for a terminal resource, use of the terminal index is 
  3821.           restricted to CICS_EpiGetEvent and CICS_EpiGetSysError calls until 
  3822.           the application has received the corresponding 
  3823.           CICS_EPI_EVENT_END_TERM event. 
  3824.  
  3825.  Parameters 
  3826.  
  3827.           TermIndex 
  3828.                     The terminal index of the terminal resource to be deleted. 
  3829.  
  3830.                     The EPI uses this parameter only for input. 
  3831.  
  3832.  Return codes 
  3833.  
  3834.           CICS_EPI_ERR_BAD_INDEX 
  3835.                     The TermIndex value is not a valid terminal index. 
  3836.  
  3837.           CICS_EPI_ERR_FAILED 
  3838.                     The function failed for an unexpected reason. 
  3839.  
  3840.           CICS_EPI_ERR_NOT_INIT 
  3841.                     CICS_EpiInitialize has not been executed. 
  3842.  
  3843.           CICS_EPI_ERR_TRAN_ACTIVE 
  3844.                     A transaction is currently running against the terminal 
  3845.                     resource, or there are unprocessed events for the terminal 
  3846.                     resource. 
  3847.  
  3848.           CICS_EPI_ERR_IN_CALLBACK 
  3849.                     The function was called from a callback routine. 
  3850.  
  3851.           CICS_EPI_NORMAL 
  3852.                     The function completed successfully. 
  3853.  
  3854.  
  3855. ΓòÉΓòÉΓòÉ 8.5.7. CICS_EpiStartTran ΓòÉΓòÉΓòÉ
  3856.  
  3857. CICS_EpiStartTran 
  3858.  
  3859. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3860. Γöé CICS_EpiStartTran           Γöé TermIndex               Γöé
  3861. Γöé                    Γöé TransId                Γöé
  3862. Γöé                    Γöé Data                 Γöé
  3863. Γöé                    Γöé Size                 Γöé
  3864. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3865.  
  3866.  Purpose 
  3867.  
  3868.           The CICS_EpiStartTran function starts a new transaction from a 
  3869.           terminal resource, or continues a pseudoconversation. 
  3870.  
  3871.           o Starting a new transaction-do this after CICS_EpiAddTerminal, or 
  3872.             after a CICS_EPI_EVENT_END_TRAN event indicated that the previous 
  3873.             transaction did not specify a transaction to process the next input 
  3874.             from the terminal resource. 
  3875.  
  3876.           o Continuing a pseudoconversation-do this after a 
  3877.             CICS_EPI_EVENT_END_TRAN event that indicated that the previous 
  3878.             transaction specified did specify a transaction to process the next 
  3879.             input from the terminal resource. 
  3880.  
  3881.           If the call is successful, no further start requests can be issued 
  3882.           for this terminal resource until the transaction ends; this is 
  3883.           indicated by the CICS_EPI_EVENT_END_TRAN event. 
  3884.  
  3885.  Parameters 
  3886.  
  3887.           TermIndex 
  3888.                     The terminal index of the terminal resource that is to run 
  3889.                     the transaction. 
  3890.  
  3891.                     The EPI uses this parameter only for input. 
  3892.  
  3893.           TransId 
  3894.                     A pointer to a string specifying the transaction to be run, 
  3895.                     or the null pointer. If a new transaction is being started, 
  3896.                     and this input is the null pointer, the name of the 
  3897.                     transaction is extracted from the data stream supplied in 
  3898.                     the Data parameter. If a pseudoconversation is being 
  3899.                     continued, and the pointer is not null, the string must be 
  3900.                     the name of the transaction returned in the preceding 
  3901.                     CICS_EPI_EVENT_END_TRAN event for this terminal resource. 
  3902.                     If the pointer is not null, and the string is shorter than 
  3903.                     CICS_EPI_TRANSID_MAX characters, it should be padded with 
  3904.                     spaces to this length. 
  3905.  
  3906.                     The EPI uses this parameter only for input. 
  3907.  
  3908.           Data 
  3909.                     A pointer to the 3270 data stream to be associated with the 
  3910.                     transaction. This parameter must not be a null pointer, 
  3911.                     because the data stream must contain at least an AID byte. 
  3912.  
  3913.                     If a new transaction is being started, and the TransId 
  3914.                     parameter is the null pointer, the data stream must be at 
  3915.                     least 4 bytes long, must contain the name of the 
  3916.                     transaction to be started, and might contain data to be 
  3917.                     supplied to the transaction on its first EXEC CICS RECEIVE 
  3918.                     command. 
  3919.  
  3920.                     If a new transaction is being started, and the TransId 
  3921.                     parameter is not the null pointer, the data stream might be 
  3922.                     only one  byte (an AID byte), or 3 bytes (an AID byte and a 
  3923.                     cursor address), or longer than 3 bytes (an AID byte, a 
  3924.                     cursor address, and data and SBA commands). In the last 
  3925.                     case, the data is supplied to the transaction program on 
  3926.                     the first EXEC CICS RECEIVE command. 
  3927.  
  3928.                     If a pseudoconversation is being continued, the data stream 
  3929.                     might be only one byte (an AID byte), or 3 bytes (an AID 
  3930.                     byte and a cursor address), or longer than 3 bytes (an AID 
  3931.                     byte, a cursor address, and data and SBA commands). In the 
  3932.                     last case the data is supplied to the transaction program 
  3933.                     on the first EXEC CICS RECEIVE command. 
  3934.  
  3935.                     The details of the format of 3270 data streams for CICS are 
  3936.                     described in 3270 data streams for the EPI. 
  3937.  
  3938.                     The EPI uses this parameter only for input. 
  3939.  
  3940.           Size 
  3941.                     The size in bytes of the initial data to be passed to the 
  3942.                     transaction. 
  3943.  
  3944.                     The EPI uses this parameter only for input. 
  3945.  
  3946.           Note:  The application might expect a terminal resource to be free to 
  3947.                  start a transaction and yet get an unexpected return code of 
  3948.                  CICS_EPI_ERR_ATI_ACTIVE from a call to CICS_EpiStartTran. If 
  3949.                  this happens, it means that the EPI has started an ATI request 
  3950.                  against the terminal resource and issued the corresponding 
  3951.                  CICS_EPI_EVENT_START_ATI event, but the application has not 
  3952.                  yet retrieved the event by issuing a CICS_EpiGetEvent call. 
  3953.  
  3954.  Return codes 
  3955.  
  3956.           CICS_EPI_ERR_ATI_ACTIVE 
  3957.                     An ATI transaction is active for this terminal resource. 
  3958.  
  3959.           CICS_EPI_ERR_BAD_INDEX 
  3960.                     The TermIndex value is not a valid terminal index. 
  3961.  
  3962.           CICS_EPI_ERR_FAILED 
  3963.                     The function failed for an unexpected reason. 
  3964.  
  3965.           CICS_EPI_ERR_NO_DATA 
  3966.                     No initial data was supplied. 
  3967.  
  3968.           CICS_EPI_ERR_NOT_INIT 
  3969.                     CICS_EpiInitialize has not been executed. 
  3970.  
  3971.           CICS_EPI_ERR_TTI_ACTIVE 
  3972.                     A transaction started from the EPI is already active for 
  3973.                     this terminal resource. 
  3974.  
  3975.           CICS_EPI_ERR_IN_CALLBACK 
  3976.                     The function was called from a callback routine. 
  3977.  
  3978.           CICS_EPI_NORMAL 
  3979.                     The function completed successfully. 
  3980.  
  3981.  
  3982. ΓòÉΓòÉΓòÉ 8.5.8. CICS_EpiReply ΓòÉΓòÉΓòÉ
  3983.  
  3984. CICS_EpiReply 
  3985.  
  3986. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3987. Γöé CICS_EpiReply             Γöé TermIndex               Γöé
  3988. Γöé                    Γöé Data                 Γöé
  3989. Γöé                    Γöé Size                 Γöé
  3990. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3991.  
  3992.  Purpose 
  3993.  
  3994.           The CICS_EpiReply function sends data from a terminal resource to a 
  3995.           CICS transaction. It should only be issued in response to a 
  3996.           CICS_EPI_EVENT_CONVERSE event. 
  3997.  
  3998.  Parameters 
  3999.  
  4000.           TermIndex 
  4001.                     The terminal index of the terminal resource from which the 
  4002.                     data is being sent. 
  4003.  
  4004.                     The EPI uses this parameter only for input. 
  4005.  
  4006.           Data 
  4007.                     A pointer to the 3270 data stream to be sent to the 
  4008.                     transaction. This parameter must not be a null pointer, 
  4009.                     because the data stream must contain at least an AID byte. 
  4010.                     The data stream might be one byte (an AID byte), 3 bytes 
  4011.                     (an AID byte and a cursor address), or more than 3 bytes 
  4012.                     (an AID byte, a cursor address, and data and SBA commands). 
  4013.                     In the last case, what follows the cursor address is 
  4014.                     supplied to the transaction program on the first EXEC CICS 
  4015.                     RECEIVE command. 
  4016.  
  4017.                     The EPI uses this parameter only for input. 
  4018.  
  4019.           Size 
  4020.                     The size of the data in bytes. 
  4021.  
  4022.                     The EPI uses this parameter only for input. 
  4023.  
  4024.  Return codes 
  4025.  
  4026.           CICS_EPI_ERR_BAD_INDEX 
  4027.                     The TermIndex value is not a valid terminal index. 
  4028.  
  4029.           CICS_EPI_ERR_FAILED 
  4030.                     The function failed for an unexpected reason. 
  4031.  
  4032.           CICS_EPI_ERR_NO_CONVERSE 
  4033.                     No reply is expected by the terminal resource. 
  4034.  
  4035.           CICS_EPI_ERR_NO_DATA 
  4036.                     No reply data was supplied. 
  4037.  
  4038.           CICS_EPI_ERR_NOT_INIT 
  4039.                     CICS_EpiInitialize has not been executed. 
  4040.  
  4041.           CICS_EPI_ERR_IN_CALLBACK 
  4042.                     The function was called from a callback routine. 
  4043.  
  4044.           CICS_EPI_NORMAL 
  4045.                     The function completed successfully. 
  4046.  
  4047.  
  4048. ΓòÉΓòÉΓòÉ 8.5.9. CICS_EpiATIState ΓòÉΓòÉΓòÉ
  4049.  
  4050. CICS_EpiATIState 
  4051.  
  4052. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4053. Γöé CICS_EpiATIState            Γöé TermIndex               Γöé
  4054. Γöé                    Γöé ATIState               Γöé
  4055. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4056.  
  4057.  Purpose 
  4058.  
  4059.           The CICS_EpiATIState function allows the calling application to query 
  4060.           and alter the way in which ATI requests for a terminal resource are 
  4061.           handled. If ATI requests are enabled (CICS_EPI_ATI_ON) and an ATI 
  4062.           request is issued in the server, the request is started when the 
  4063.           terminal resource becomes free. If ATI requests are held 
  4064.           (CICS_EPI_ATI_HOLD), any ATI requests issued are queued, and started 
  4065.           when ATI requests are next enabled. 
  4066.  
  4067.           The state for ATI requests after a CICS_EpiAddTerminal call is 
  4068.           CICS_EPI_ATI_HOLD. The EPI application may change the state to 
  4069.           CICS_EPI_ATI_ON when it is ready to allow ATI requests to be 
  4070.           processed. (The server also maintains a ATI state for terminal 
  4071.           resources, which is independent of the ATI state maintained in the 
  4072.           EPI. Changes to the ATI state on the server do not affect the ATI 
  4073.           status in the EPI.) 
  4074.  
  4075.  Parameters 
  4076.  
  4077.           TermIndex 
  4078.                     The terminal index of the terminal resource whose ATI state 
  4079.                     is required. 
  4080.  
  4081.                     The EPI uses this parameter only for input. 
  4082.  
  4083.           ATIState 
  4084.                     The EPI uses this parameter for both input and output 
  4085.                     depending on the input value as follows: 
  4086.  
  4087.              CICS_EPI_ATI_ON 
  4088.                        Enable ATI requests, and return the previous ATI state 
  4089.                        in this parameter. 
  4090.  
  4091.              CICS_EPI_ATI_HOLD 
  4092.                        Hold ATI requests until they are next enabled, and 
  4093.                        return the previous ATI state in this parameter. 
  4094.  
  4095.              CICS_EPI_ATI_QUERY 
  4096.                        Do not change the ATI state; just return the current 
  4097.                        state in this parameter. 
  4098.  
  4099.  Return codes 
  4100.  
  4101.           CICS_EPI_ERR_ATI_STATE 
  4102.                     An invalid ATIState value was provided. 
  4103.  
  4104.           CICS_EPI_ERR_BAD_INDEX 
  4105.                     The TermIndex value is not a valid terminal index. 
  4106.  
  4107.           CICS_EPI_ERR_FAILED 
  4108.                     The function failed for an unexpected reason. 
  4109.  
  4110.           CICS_EPI_ERR_NOT_INIT 
  4111.                     CICS_EpiInitialize has not been executed. 
  4112.  
  4113.           CICS_EPI_ERR_IN_CALLBACK 
  4114.                     The function was called from a callback routine. 
  4115.  
  4116.           CICS_EPI_NORMAL 
  4117.                     The function completed successfully. 
  4118.  
  4119.  
  4120. ΓòÉΓòÉΓòÉ 8.5.10. CICS_EpiSenseCode ΓòÉΓòÉΓòÉ
  4121.  
  4122. CICS_EpiSenseCode 
  4123.  
  4124. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4125. Γöé CICS_EpiSenseCode           Γöé TermIndex               Γöé
  4126. Γöé                    Γöé SenseCode               Γöé
  4127. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4128.  
  4129.  Purpose 
  4130.  
  4131.           In the CICS on Open Systems environment, the CICS_EpiSenseCode 
  4132.           function allows the calling application to inform the EPI of any 
  4133.           errors in the 3270 data sent by a transaction. 
  4134.  
  4135.           In other environments, the function has no effect. 
  4136.  
  4137.  Parameters 
  4138.  
  4139.           TermIndex 
  4140.                     The terminal index of the terminal resource for which the 
  4141.                     error is to be raised. 
  4142.  
  4143.                     The EPI uses this parameter only for input. 
  4144.  
  4145.           SenseCode 
  4146.                     The sense code failure reason, which can be one of the 
  4147.                     following values: 
  4148.  
  4149.              CICS_EPI_SENSE_OPCHECK 
  4150.                        Errors were detected in the 3270 data stream. 
  4151.  
  4152.              CICS_EPI_SENSE_REJECT 
  4153.                        Invalid 3270 commands were received. 
  4154.  
  4155.                     The EPI uses this parameter only for input. 
  4156.  
  4157.  Return codes 
  4158.  
  4159.           CICS_EPI_ERR_BAD_INDEX 
  4160.                     The TermIndex value is not a valid terminal index. 
  4161.  
  4162.           CICS_EPI_ERR_FAILED 
  4163.                     The function failed for an unexpected reason. 
  4164.  
  4165.           CICS_EPI_ERR_NOT_INIT 
  4166.                     CICS_EpiInitialize has not been executed. 
  4167.  
  4168.           CICS_EPI_ERR_SENSE_CODE 
  4169.                     An invalid sense code was provided. 
  4170.  
  4171.           CICS_EPI_ERR_IN_CALLBACK 
  4172.                     The function was called from a callback routine. 
  4173.  
  4174.           CICS_EPI_NORMAL 
  4175.                     The function completed successfully. 
  4176.  
  4177.  
  4178. ΓòÉΓòÉΓòÉ 8.5.11. CICS_EpiGetEvent ΓòÉΓòÉΓòÉ
  4179.  
  4180. CICS_EpiGetEvent 
  4181.  
  4182. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4183. Γöé CICS_EpiGetEvent            Γöé TermIndex               Γöé
  4184. Γöé                    Γöé Wait                 Γöé
  4185. Γöé                    Γöé Event                 Γöé
  4186. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4187.  
  4188.  Purpose 
  4189.  
  4190.           The CICS_EpiGetEvent function obtains information about an event that 
  4191.           has occurred for a terminal resource. 
  4192.  
  4193.           Remember that this call may be attempted only from the application, 
  4194.           not from the callback routine. 
  4195.  
  4196.      Microsoft Windows only 
  4197.  
  4198.      In a Microsoft Windows environment, the application should call this 
  4199.      function after receiving a message with wParam set to CICS_EPI_WIN_EVENT. 
  4200.      See Microsoft Windows considerations for further details of the use of 
  4201.      this function in a Microsoft Windows environment, including the format of 
  4202.      Windows messages posted by the EPI. 
  4203.  
  4204.  Parameters 
  4205.  
  4206.           TermIndex 
  4207.                     The terminal index of the terminal resource for which to 
  4208.                     obtain an event. This can be set to the constant 
  4209.                     CICS_EPI_TERM_INDEX_NONE to indicate that the next event 
  4210.                     for any terminal resource used by this application is to be 
  4211.                     returned. The application can examine the TermIndex field 
  4212.                     in the returned CICS_EpiEventData_t structure to determine 
  4213.                     the terminal resource against which the event was 
  4214.                     generated. 
  4215.  
  4216.                     The EPI uses this parameter for both input and output. 
  4217.  
  4218.           Wait 
  4219.                     An indication of what should happen if no event has been 
  4220.                     generated for the terminal resource. One of the following 
  4221.                     values should be used: 
  4222.  
  4223.              CICS_EPI_WAIT 
  4224.                        Do not return until the next event occurs. (This value 
  4225.                        should not be used in the Microsoft Windows or DOS 
  4226.                        environments.) 
  4227.  
  4228.              CICS_EPI_NOWAIT 
  4229.                        Return immediately with an error code. This option is 
  4230.                        used if the application elects to poll for events. 
  4231.  
  4232.                     The EPI uses this parameter only for input. 
  4233.  
  4234.           Event 
  4235.                     A pointer to a CICS_EpiEventData_t structure that on return 
  4236.                     contains the details of the event that occurred. The Data 
  4237.                     field in the structure should be set to point to the data 
  4238.                     buffer that is updated with any terminal data stream 
  4239.                     associated with the event. The Size field should be set to 
  4240.                     indicate the maximum size of this buffer, and is updated to 
  4241.                     contain the actual length of data returned. 
  4242.  
  4243.  Return codes 
  4244.  
  4245.           CICS_EPI_ERR_BAD_INDEX 
  4246.                     The TermIndex value is not a valid terminal index. 
  4247.  
  4248.           CICS_EPI_ERR_FAILED 
  4249.                     The function failed for an unexpected reason. 
  4250.  
  4251.           CICS_EPI_ERR_MORE_DATA 
  4252.                     The supplied data buffer was not large enough to contain 
  4253.                     the terminal data; the data has been truncated. 
  4254.  
  4255.           CICS_EPI_ERR_MORE_EVENTS 
  4256.                     An event was successfully obtained, but there are more 
  4257.                     events outstanding against this terminal resource. 
  4258.  
  4259.           CICS_EPI_ERR_NO_EVENT 
  4260.                     No events are outstanding for this terminal resource. 
  4261.  
  4262.           CICS_EPI_ERR_NOT_INIT 
  4263.                     CICS_EpiInitialize has not been executed. 
  4264.  
  4265.           CICS_EPI_ERR_WAIT 
  4266.                     The Wait parameter is not valid. 
  4267.  
  4268.           CICS_EPI_ERR_NULL_PARM 
  4269.                     Event is a null pointer. 
  4270.  
  4271.           CICS_EPI_ERR_IN_CALLBACK 
  4272.                     The function was called from a callback routine. 
  4273.  
  4274.           CICS_EPI_NORMAL 
  4275.                     The function completed successfully, and there are no more 
  4276.                     events. 
  4277.  
  4278.  
  4279. ΓòÉΓòÉΓòÉ 8.5.12. CICS_EpiGetSysError ΓòÉΓòÉΓòÉ
  4280.  
  4281. CICS_EpiGetSysError 
  4282.  
  4283. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4284. Γöé CICS_EpiGetSysError          Γöé TermIndex               Γöé
  4285. Γöé                    Γöé SysErr                Γöé
  4286. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4287.  
  4288.  Purpose 
  4289.  
  4290.           The CICS_EpiGetSysError function obtains detailed information 
  4291.           describing the last error that occurred when the CICS_EPI_ERR_FAILED 
  4292.           return code was generated. The values returned in the Cause and Value 
  4293.           fields in the supplied SysErr parameter can be used to further 
  4294.           qualify the return code from any other EPI function. These values are 
  4295.           environment-dependent. You might need to consult documentation for 
  4296.           your client environment, and the documentation for the appropriate 
  4297.           CICS server. 
  4298.  
  4299.           The Msg field in the supplied SysErr parameter may return a message, 
  4300.           specific to the operating environment, describing the error that 
  4301.           occurred. If no message is available, this field is set to nulls. 
  4302.  
  4303.  Parameters 
  4304.  
  4305.           TermIndex 
  4306.                     The terminal index of the terminal resource for which to 
  4307.                     obtain the detailed error code. This parameter may be set 
  4308.                     to the constant CICS_EPI_TERM_INDEX_NONE, if further error 
  4309.                     information associated with a CICS_EpiInitialize, 
  4310.                     CICS_EpiTerminate, CICS_EpiListSystems, or 
  4311.                     CICS_EpiAddTerminal call is required. 
  4312.  
  4313.                     The EPI uses this parameter only for input. 
  4314.  
  4315.           SysErr 
  4316.                     A pointer to a CICS_EpiSysError_t structure that on return 
  4317.                     contains the system error information. 
  4318.  
  4319.                     The EPI uses the structure only for output. 
  4320.  
  4321.  Return codes 
  4322.  
  4323.           CICS_EPI_ERR_NOT_INIT 
  4324.                     CICS_EpiInitialize has never been called. (If a 
  4325.                     CICS_EpiInitialize call is made and fails, 
  4326.                     CICS_EpiGetSysError will still succeed.) 
  4327.  
  4328.           CICS_EPI_ERR_BAD_INDEX 
  4329.                     The TermIndex value is not a valid terminal index. 
  4330.  
  4331.           CICS_EPI_ERR_FAILED 
  4332.                     The function failed for an unexpected reason. 
  4333.  
  4334.           CICS_EPI_ERR_NULL_PARM 
  4335.                     SysErr is a null pointer. 
  4336.  
  4337.           CICS_EPI_ERR_IN_CALLBACK 
  4338.                     The function was called from a callback routine. 
  4339.  
  4340.           CICS_EPI_NORMAL 
  4341.                     The function completed successfully. 
  4342.  
  4343.  
  4344. ΓòÉΓòÉΓòÉ 8.6. EPI events ΓòÉΓòÉΓòÉ
  4345.  
  4346. EPI events occur when CICS has data to pass to the EPI application. The 
  4347. application can handle EPI events in a variety of ways. (See Events and 
  4348. callbacks.) Whichever mechanism is used, the data from CICS is obtained by 
  4349. calling CICS_EpiGetEvent. 
  4350.  
  4351.  
  4352. ΓòÉΓòÉΓòÉ 8.6.1. CICS_EPI_EVENT_SEND ΓòÉΓòÉΓòÉ
  4353.  
  4354. CICS_EPI_EVENT_SEND 
  4355.  
  4356.  Purpose 
  4357.  
  4358.           The CICS_EPI_EVENT_SEND event indicates that a transaction has sent 
  4359.           some 3270 data to a terminal resource, typically as a result of an 
  4360.           EXEC CICS SEND command. No reply is expected, and none should be 
  4361.           attempted. 
  4362.  
  4363.           (The reply might be data from the transaction, or it might be 
  4364.           messages produced by the server, including error messages. You should 
  4365.           consult your server documentation to see what messages are possible.) 
  4366.  
  4367.  Fields completed 
  4368.  
  4369.           Event 
  4370.                     The CICS_EPI_EVENT_SEND event code. 
  4371.  
  4372.           Data 
  4373.                     A pointer to the buffer that is updated to contain the data 
  4374.                     sent by the transaction. See 3270 data streams for the EPI 
  4375.                     for details of the data stream format. 
  4376.  
  4377.           Size 
  4378.                     The length of the data in the Data buffer. 
  4379.  
  4380.  
  4381. ΓòÉΓòÉΓòÉ 8.6.2. CICS_EPI_EVENT_CONVERSE ΓòÉΓòÉΓòÉ
  4382.  
  4383. CICS_EPI_EVENT_CONVERSE 
  4384.  
  4385.  Purpose 
  4386.  
  4387.           The CICS_EPI_EVENT_CONVERSE event indicates that a transaction is 
  4388.           expecting a reply as a result of either an EXEC CICS RECEIVE command, 
  4389.           or an EXEC CICS CONVERSE command. 
  4390.  
  4391.           The application should issue a CICS_EpiReply call to return the data 
  4392.           to CICS, as follows: 
  4393.  
  4394.           o If the transaction has issued an EXEC CICS RECEIVE command without 
  4395.             specifying the BUFFER option, the buffer might contain data sent 
  4396.             from the transaction, or it might be empty. If there is data to 
  4397.             process, you should deal with it before replying. The reply should 
  4398.             be sent when the data to be sent is available. 
  4399.  
  4400.           o If the transaction has issued an EXEC CICS RECEIVE BUFFER command, 
  4401.             the data buffer contains the 3270 Read Buffer command and the Size 
  4402.             field is set to 1. The reply should be sent immediately. 
  4403.  
  4404.  Fields completed 
  4405.  
  4406.           Event 
  4407.                     The CICS_EPI_EVENT_CONVERSE event code. 
  4408.  
  4409.           Data 
  4410.                     A pointer to the buffer that is updated to contain the data 
  4411.                     sent by the transaction, as defined above. 
  4412.  
  4413.           Size 
  4414.                     The length of the data in the buffer. This may be set to 
  4415.                     zero to indicate that no data was sent, but a reply is 
  4416.                     still expected. 
  4417.  
  4418.  
  4419. ΓòÉΓòÉΓòÉ 8.6.3. CICS_EPI_EVENT_END_TRAN ΓòÉΓòÉΓòÉ
  4420.  
  4421. CICS_EPI_EVENT_END_TRAN 
  4422.  
  4423.  Purpose 
  4424.  
  4425.           The CICS_EPI_EVENT_END_TRAN event indicates the end of a transaction 
  4426.           that was running against a terminal resource. If the transaction 
  4427.           abended, it indicates the abend code; if the transaction completed 
  4428.           normally, the AbendCode field is set to spaces. If the transaction 
  4429.           was pseudoconversational, the TransId field contains the name of the 
  4430.           next transaction required. The application should start this 
  4431.           transaction by issuing a CICS_EpiStartTran call. 
  4432.  
  4433.  Fields completed 
  4434.  
  4435.           Event 
  4436.                     The CICS_EPI_EVENT_END_TRAN event code. 
  4437.  
  4438.           TransId 
  4439.                     The name of the next transaction to start, if the previous 
  4440.                     transaction was pseudoconversational. This name is 4 
  4441.                     characters long and null-terminated. If there is no next 
  4442.                     transaction, the field is set to nulls. 
  4443.  
  4444.           AbendCode 
  4445.                     The abend code, if the transaction abended. This code is 4 
  4446.                     characters long and null-terminated. If the transaction 
  4447.                     completed normally, the field is set to spaces. 
  4448.  
  4449.  
  4450. ΓòÉΓòÉΓòÉ 8.6.4. CICS_EPI_EVENT_START_ATI ΓòÉΓòÉΓòÉ
  4451.  
  4452. CICS_EPI_EVENT_START_ATI 
  4453.  
  4454.  Purpose 
  4455.  
  4456.           The CICS_EPI_EVENT_START_ATI event indicates that an ATI transaction 
  4457.           has been started against the terminal resource. If the terminal 
  4458.           resource receives an ATI request while it is running another 
  4459.           transaction, the request is held until the transaction ends. The 
  4460.           transaction is then started on behalf of the terminal resource, and 
  4461.           the CICS_EPI_EVENT_START_ATI event is generated to inform the 
  4462.           application. 
  4463.  
  4464.  Fields completed 
  4465.  
  4466.           Event 
  4467.                     The CICS_EPI_EVENT_START_ATI event code. 
  4468.  
  4469.           TransId 
  4470.                     The name of the transaction that was started. This name is 
  4471.                     4 characters long and null-terminated. 
  4472.  
  4473.  
  4474. ΓòÉΓòÉΓòÉ 8.6.5. CICS_EPI_EVENT_END_TERM ΓòÉΓòÉΓòÉ
  4475.  
  4476. CICS_EPI_EVENT_END_TERM 
  4477.  
  4478.  Purpose 
  4479.  
  4480.           The CICS_EPI_EVENT_END_TERM event indicates that a terminal resource 
  4481.           no longer exists. After this event, the terminal index that was 
  4482.           previously used for the terminal resource is not valid. If the EPI 
  4483.           detects that a CICS server has shut down, CICS_EPI_EVENT_END_TERM 
  4484.           events are generated for all terminal resources that the application 
  4485.           has installed in that server and not subsequently deleted. 
  4486.  
  4487.  Fields completed 
  4488.  
  4489.           Event 
  4490.                     The CICS_EPI_EVENT_END_TERM event code. 
  4491.  
  4492.           EndReason 
  4493.                     An indication of why the terminal resource was deleted. It 
  4494.                     can be one of the following values: 
  4495.  
  4496.              CICS_EPI_END_SIGNOFF 
  4497.                        The terminal resource was signed off. This can be as a 
  4498.                        result of running the CESF transaction or of calling the 
  4499.                        CICS_EpiDelTerminal function. 
  4500.  
  4501.              CICS_EPI_END_SHUTDOWN 
  4502.                        The CICS server is shutting down. 
  4503.  
  4504.              CICS_EPI_END_OUTSERVICE 
  4505.                        The terminal resource has been switched out of service. 
  4506.  
  4507.              CICS_EPI_END_UNKNOWN 
  4508.                        An unexpected error has occurred. 
  4509.  
  4510.              CICS_EPI_END_FAILED 
  4511.                        An attempt to delete a terminal resource failed. 
  4512.  
  4513.           AbendCode 
  4514.                     A string specifying the abend code for the failure, if the 
  4515.                     EndReason field is set to CICS_EPI_END_FAILED. 
  4516.  
  4517.  
  4518. ΓòÉΓòÉΓòÉ 8.6.6. CICS_EPI_EVENT_HELP ΓòÉΓòÉΓòÉ
  4519.  
  4520. CICS_EPI_EVENT_HELP 
  4521.  
  4522.      Note This event is presented only in the CICS on Open Systems environment. 
  4523.  
  4524.  Purpose 
  4525.  
  4526.           The CICS_EPI_EVENT_HELP event indicates that a transaction has 
  4527.           requested that help information be displayed. It provides a text 
  4528.           string indicating the topic corresponding to the help request. The 
  4529.           application may be able to invoke an operating system help facility 
  4530.           to display the help information. 
  4531.  
  4532.  Fields completed 
  4533.  
  4534.           Event 
  4535.                     The CICS_EPI_EVENT_HELP event code. 
  4536.  
  4537.           Data 
  4538.                     A pointer to the buffer that is updated to contain a 
  4539.                     null-terminated string describing the requested help topic. 
  4540.  
  4541.           Size 
  4542.                     The length of the help topic string, excluding the 
  4543.                     terminating null. 
  4544.  
  4545.  
  4546. ΓòÉΓòÉΓòÉ 8.7. 3270 data streams for the EPI ΓòÉΓòÉΓòÉ
  4547.  
  4548. The data streams implemented for the EPI follow those defined in the 3270 Data 
  4549. Stream Programmer's Reference. All data flows for the EPI are in ASCII format, 
  4550. and structured fields are not supported. Data flows are defined under the 
  4551. following topics in the 3270 Data Stream Programmer's Reference: 
  4552.  
  4553.  o Introduction to the 3270 data stream (excluding structured fields) 
  4554.  o 3270 data stream commands 
  4555.  o Character sets, orders and attributes 
  4556.  o Keyboard and printer operations. 
  4557.  The use of 3270 data streams within the EPI, and some nonstandard orders and 
  4558.  attributes, are defined here. 
  4559.  
  4560.  Except in the CICS on Open Systems environment, the supplied C header file 
  4561.  CICS3270.H, COBOL copybook CICS3270.CBL, and PL/I include file CICS3270.INC 
  4562.  contain constants and conversion tables that you will find useful in handling 
  4563.  3270 data streams. (These files are not supplied in the CICS on Open Systems 
  4564.  environment.) 
  4565.  
  4566.  Note that if a CICS user transaction issues EXEC CICS SEND and EXEC CICS 
  4567.  RECEIVE commands, CICS does not process the data (after the initial control 
  4568.  bytes) that is passed between the EPI application and the CICS transaction. In 
  4569.  this case, the data buffer may be used to pass user-specified data between the 
  4570.  programs. Be aware that the contents of the data buffer may be code-page 
  4571.  converted if the buffer is passed between CICS systems, in which case the data 
  4572.  should be limited to ASCII and EBCDIC characters. 
  4573.  
  4574.  If a CICS transaction issues EXEC CICS SEND MAP and EXEC CICS RECEIVE MAP 
  4575.  commands, CICS converts the data from the BMS structure to a 3270 data stream. 
  4576.  In this case, the application receives 3270 data from CICS and should return 
  4577.  valid 3270 data to be converted for the transaction. 
  4578.  
  4579.  
  4580. ΓòÉΓòÉΓòÉ 8.7.1. Inbound data streams (EPI to CICS) ΓòÉΓòÉΓòÉ
  4581.  
  4582. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4583. Γöé  AID   Γöé  Cursor  Γöé     Data buffer    Γöé
  4584. Γöé (1 byte) Γöé  address Γöé    (variable length)   Γöé
  4585. Γöé      Γöé (2 bytes)Γöé              Γöé
  4586. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4587.  
  4588. EPI applications send 3270 data to CICS on calls to the following functions: 
  4589.  
  4590.  o CICS_EpiStartTran 
  4591.  o CICS_EpiReply. 
  4592.  
  4593.  The format in both cases is the same. The data stream must be a minimum of 3 
  4594.  non-null bytes, representing the AID and cursor address; the sole exception to 
  4595.  this is if the AID represents the CLEAR key or a PA key, when the data stream 
  4596.  may consist of the AID only. These fields are passed to the CICS transaction 
  4597.  in the EIBAID and EIBCPOSN fields of the EIB. 
  4598.  
  4599.  The contents of the data buffer consist of: 
  4600.  
  4601.  o ASCII displayable characters with embedded 3270 control characters, when it 
  4602.    is passed to an EXEC CICS RECEIVE MAP command. 
  4603.  
  4604.  o User-specified data, when it is passed to an EXEC CICS RECEIVE command. 
  4605.  
  4606.  On starting a transaction, the transaction ID is extracted from the start of 
  4607.  the data buffer as follows: 
  4608.  
  4609.  o If a set buffer address (SBA) order is present at the start of the data 
  4610.    buffer, the transaction ID is extracted from the 4th through 7th bytes of 
  4611.    the buffer. 
  4612.  
  4613.  o If an SBA is not present at the start of the data buffer, the transaction ID 
  4614.    is extracted from the 1st through 4th bytes of the buffer. 
  4615.  
  4616.  In either case, the transaction ID may be shorter than 4 bytes, being 
  4617.  delimited by either another SBA, an ASCII space, or the end of the string. 
  4618.  
  4619.  The contents of the data buffer passed on the start of a CICS transaction are 
  4620.  available to the transaction in response to an initial EXEC CICS RECEIVE 
  4621.  command. 
  4622.  
  4623.  When the application replies, the contents of the data buffer are available in 
  4624.  an unconverted form in response to an EXEC CICS RECEIVE command or converted 
  4625.  to a BMS structure in response to an EXEC CICS RECEIVE MAP command. 
  4626.  
  4627.  Note:  It is the EPI programmer's responsibility in the latter case to ensure 
  4628.         that the data is formatted correctly so that the conversion succeeds. 
  4629.  
  4630.  
  4631. ΓòÉΓòÉΓòÉ 8.7.2. Outbound data streams (CICS to EPI) ΓòÉΓòÉΓòÉ
  4632.  
  4633. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4634. Γöé Command Γöé Write control Γöé    Data buffer    Γöé
  4635. Γöé (1 byte)Γöé  character  Γöé  (variable length)  Γöé
  4636. Γöé     Γöé  (1 byte)   Γöé            Γöé
  4637. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4638.  
  4639. The 3270 commands are either write or read commands, instructing the EPI to 
  4640. process the data or to reply with data respectively. 
  4641.  
  4642. On a CICS_EPI_EVENT_SEND event, the command is one of the following 3270 write 
  4643. commands: 
  4644.  
  4645.  o Write 
  4646.  o Erase/Write 
  4647.  o Erase/Write Alternate 
  4648.  o Erase All Unprotected. 
  4649.  
  4650.  The first three commands are followed by a write control character (WCC) and 
  4651.  data. An Erase All Unprotected command has neither WCC nor data. The Write 
  4652.  Structured Field command is not generated by CICS and is therefore not 
  4653.  supported for the EPI. 
  4654.  
  4655.  The contents of the data buffer consist of: 
  4656.  
  4657.  o ASCII displayable characters with embedded 3270 control characters, when it 
  4658.    is passed from an EXEC CICS SEND MAP command. 
  4659.  
  4660.  o User-specified data, when it is passed from an EXEC CICS SEND command. 
  4661.  
  4662.  A CICS_EPI_EVENT_CONVERSE event specifies a read command. The contents of the 
  4663.  data stream vary with the source of the event, as follows: 
  4664.  
  4665.  o If the event is the result of an EXEC CICS RECEIVE command, the data buffer 
  4666.    might contain data sent by the transaction, or it might be empty. The EPI 
  4667.    program should reply when the data to be sent is available. 
  4668.  
  4669.  o If the event is the result of an EXEC CICS RECEIVE BUFFER command, the data 
  4670.    buffer contains the 3270 Read Buffer command. This should be processed as 
  4671.    described in the 3270 Data Stream Programmer's Reference. 
  4672.  
  4673.  The Read Modified and Read Modified All commands are not generated by CICS and 
  4674.  are therefore not supported for the EPI. 
  4675.  
  4676.  
  4677. ΓòÉΓòÉΓòÉ 8.7.3. 3270 order codes ΓòÉΓòÉΓòÉ
  4678.  
  4679. 3270 orders are included in both inbound and outbound data streams to provide 
  4680. additional control function. Order codes occurring in 3270 data streams lists 
  4681. the order codes that may occur in 3270 data streams, and shows whether they 
  4682. relate to inbound or outbound data streams, or both. 
  4683.  
  4684. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4685. Γöé Table 2. Order codes occurring in 3270 data streams              Γöé
  4686. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4687. Γöé Order code                   Γöé Inbound    Γöé Outbound   Γöé
  4688. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4689. Γöé Start field (SF)                Γöé Yes      Γöé Yes      Γöé
  4690. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4691. Γöé Start field extended (SFE)           Γöé Yes      Γöé Yes      Γöé
  4692. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4693. Γöé Set buffer address (SBA)            Γöé Yes      Γöé Yes      Γöé
  4694. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4695. Γöé Set attribute (SA)               Γöé Yes      Γöé Yes      Γöé
  4696. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4697. Γöé Modify field (MF)               Γöé No       Γöé Yes      Γöé
  4698. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4699. Γöé Insert cursor (IC)               Γöé No       Γöé Yes      Γöé
  4700. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4701. Γöé Program tab (TB)                Γöé No       Γöé Yes      Γöé
  4702. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4703. Γöé Repeat to address (RA)             Γöé No       Γöé Yes      Γöé
  4704. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4705. Γöé Erase unprotected to address (EUA)       Γöé No       Γöé Yes      Γöé
  4706. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4707. Γöé Graphic escape (GE)              Γöé No       Γöé No      Γöé
  4708. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4709.  
  4710. Note:  The 3270 Data Stream Programmer's Reference states that the SFE, SA, and 
  4711.        MF orders are not supported in ASCII. However, they do occur in 3270 
  4712.        data streams for the EPI, where they take the following values: 
  4713.  
  4714.               SFE     X'10'
  4715.               SA      X'1F'
  4716.               MF      X'1A'
  4717.  
  4718. MF was formerly assigned the value X'1E'. However the Field Mark format control 
  4719. order is assigned the same value. Without the change to X'1A', an EPI 
  4720. application would be unable to distinguish between MF and FM. 
  4721.  
  4722. Each of these orders is followed by one or more attribute type-value pairs. The 
  4723. count of attribute pairs and the attribute type are both binary values, and are 
  4724. thus as defined in the 3270 Data Stream Programmer's Reference. However, the 
  4725. contents of the attribute value field may vary from those defined in the 3270 
  4726. Data Stream Programmer's Reference as follows: 
  4727.  
  4728.  o If the attribute type is less than or equal to X'C0' (for example, a color), 
  4729.    the attribute value is defined as an EBCDIC value in the 3270 Data Stream 
  4730.    Programmer's Reference. The EPI uses the ASCII equivalent of the EBCDIC 
  4731.    value; for example, red is defined as X'F2' in the 3270 Data Stream 
  4732.    Programmer's Reference, and should be defined as X'32' in the EPI data 
  4733.    stream. 
  4734.  
  4735.  o If the attribute type is greater than X'C0' (for example, field outlining), 
  4736.    the attribute value is a binary value. The EPI uses the values defined in 
  4737.    the 3270 Data Stream Programmer's Reference. 
  4738.  
  4739.  Further details of 3270 orders and other control characters are supplied in 
  4740.  the files named in the following table. 
  4741.  
  4742.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4743.   Γöé             Γöé CICS for AIX Version 2.1 Γöé Other environments    Γöé
  4744.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4745.   Γöé COBOL copybook      Γöé N/A            Γöé CICS3270.CBL       Γöé
  4746.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4747.   Γöé C header file      Γöé cics3270.h        Γöé CICS3270.H        Γöé
  4748.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4749.   Γöé PL/I include file    Γöé N/A            Γöé CICS3270.INC       Γöé
  4750.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4751.  
  4752.  In the CICS on Open Systems environment, 3270 support files are not available 
  4753.  before CICS for AIX Version 2.1. 
  4754.  
  4755.  
  4756. ΓòÉΓòÉΓòÉ 8.8. Microsoft Windows considerations ΓòÉΓòÉΓòÉ
  4757.  
  4758.      Note The following information applies only to the IBM CICS Client for 
  4759.      Windows. 
  4760.  
  4761.  The CICS_EpiInitialize function has two additional parameters: 
  4762.  
  4763.  hWnd 
  4764.            The handle of the Microsoft Windows window to which EPI messages 
  4765.            will be posted. 
  4766.  
  4767.  MsgId 
  4768.            The message identifier to be used for posting EPI messages to the 
  4769.            window specified in the hWnd parameter. 
  4770.  
  4771.  The EPI application is posted a Windows message (using the hWnd and MsgId 
  4772.  values) in any of the following situations: 
  4773.  
  4774.  o The CICS_EpiInitialize call has completed. 
  4775.  
  4776.  o The CICS_EpiAddTerminal call has completed. 
  4777.  
  4778.  o An incoming event for a terminal resource has been received. 
  4779.    (CICS_EpiGetEvent should be called to receive the event data.) 
  4780.  
  4781.  Values are assigned to the wParam and lParam parameters within these messages 
  4782.  as follows. In the case of lParam, the LOWORD of this parameter is used. 
  4783.  
  4784.  wParam 
  4785.  
  4786.     CICS_EPI_WIN_INITIALIZED 
  4787.               CICS_EpiInitialize complete 
  4788.  
  4789.     CICS_EPI_WIN_INSTALLED 
  4790.               CICS_EpiAddTerminal complete 
  4791.  
  4792.     CICS_EPI_WIN_EVENT 
  4793.               An incoming terminal event 
  4794.  
  4795.  lParam 
  4796.  
  4797.     X'0000' 
  4798.               CICS_EpiInitialize has completed. 
  4799.  
  4800.     Terminal index 
  4801.               Index number of the terminal resource installed by a successful 
  4802.               CICS_EpiAddTerminal, or of the terminal resource to which an 
  4803.               incoming event belongs. 
  4804.  
  4805.     X'FFFF' 
  4806.               CICS_EpiAddTerminal has completed, but terminal resource 
  4807.               installation failed. 
  4808.  
  4809.  After receiving a message with wParam set to CICS_EPI_WIN_INITIALIZED, the 
  4810.  application should call CICS_EpiGetSysError to check for any install errors. 
  4811.  
  4812.  If lParam is set to X'FFFF', CICS_EpiGetSysError should be called with the 
  4813.  TermIndex parameter set to CICS_EPI_TERM_INDEX_NONE. (A terminal index will 
  4814.  not have been allocated if the terminal resource install failed.) 
  4815.  
  4816.  If lParam is not set to X'FFFF', CICS_EpiGetSysError should be called with the 
  4817.  TermIndex parameter set to the lParam value. 
  4818.  
  4819.  Under Microsoft Windows, the EPI functions CICS_EpiInitialize and 
  4820.  CICS_EpiAddTerminal are asynchronous (all other functions are synchronous). 
  4821.  This means that the application should wait for a message to be posted before 
  4822.  continuing after each of these two calls. 
  4823.  
  4824.  
  4825. ΓòÉΓòÉΓòÉ 9. Creating ECI and EPI application programs ΓòÉΓòÉΓòÉ
  4826.  
  4827. This chapter contains language-dependent information about the external access 
  4828. interfaces, and is organized as follows: 
  4829.  
  4830.  Writing the non-CICS applications 
  4831.  Making ECI calls 
  4832.  Making EPI calls 
  4833.  Compiling and linking applications 
  4834.  
  4835.  This chapter does not deal with testing or debugging ECI and EPI applications. 
  4836.  You should refer to the programming manuals for the environment in which you 
  4837.  are working. These are listed in the Related publications section of the 
  4838.  preface of this book. 
  4839.  
  4840.  
  4841. ΓòÉΓòÉΓòÉ 9.1. Writing the non-CICS applications ΓòÉΓòÉΓòÉ
  4842.  
  4843. ECI and EPI applications are standard stand-alone programs that can be run on 
  4844. any of the client systems, and can use the server implementations of the ECI 
  4845. and EPI on CICS for OS/2 and CICS for Windows NT servers. Programs that do not 
  4846. make operating-system-specific calls are portable between these environments. 
  4847. The sample programs and associated build files for your environment illustrate 
  4848. much of what is discussed here. 
  4849.  
  4850. An application program may use the facilities of both ECI and EPI. 
  4851.  
  4852. Applications may be written in C (or C++), COBOL, or PL/I, though not all these 
  4853. languages are available in every environment. 
  4854.  
  4855. The following table shows for each programming environment 
  4856.  
  4857.  o the names of the C header file, COBOL copybook, or PL/I include file for the 
  4858.    ECI 
  4859.  
  4860.  o the names of the C header file, COBOL copybook, or PL/I include file for the 
  4861.    EPI 
  4862.  
  4863.  o the names of the type definition files for either interface for C and PL/I 
  4864.    programs. (Type definition files are not used with COBOL.) 
  4865.  
  4866.  The entry N/A in the table indicates that the combination of language and 
  4867.  interface are not supported. 
  4868.  
  4869.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4870.   Γöé Use           Γöé CICS on Open Systems   Γöé Other environments    Γöé
  4871.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4872.   Γöé ECI: C programs     Γöé cics_eci.h        Γöé CICS_ECI.H        Γöé
  4873.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4874.   Γöé ECI: COBOL programs   Γöé CICS-ECI         Γöé CICSECI.CBL       Γöé
  4875.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4876.   Γöé ECI: PL/I programs    Γöé cics_eci.inc (AIX only)  Γöé CICS_ECI.INC       Γöé
  4877.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4878.   Γöé EPI: C programs     Γöé cics_epi.h        Γöé CICS_EPI.H        Γöé
  4879.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4880.   Γöé EPI: COBOL programs   Γöé N/A            Γöé CICSEPI.CBL       Γöé
  4881.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4882.   Γöé EPI: PL/I programs    Γöé N/A            Γöé CICS_EPI.INC       Γöé
  4883.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4884.   Γöé Type definitions: C   Γöé cicstype.h        Γöé CICSTYPE.H        Γöé
  4885.   Γöé programs         Γöé              Γöé             Γöé
  4886.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4887.   Γöé Type definitions: PL/I  Γöé cicstype.inc       Γöé CICSTYPE.INC       Γöé
  4888.   Γöé programs         Γöé              Γöé             Γöé
  4889.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4890.  
  4891.  You should study the contents of the file appropriate to the language you 
  4892.  intend to use. Each file contains the definitions of all the entry points, 
  4893.  types, data structures, and constants needed for writing programs for the 
  4894.  corresponding interface. 
  4895.  
  4896.  The naming conventions for the structures, fields, and constants of the 
  4897.  interfaces in the different languages are as follows: 
  4898.  
  4899.  o PL/I and C-the names are the same as the names used earlier in this book to 
  4900.    describe the interfaces. 
  4901.  
  4902.  o COBOL-the names are upper-case versions of the names used earlier in this 
  4903.    book to describe the interfaces with hyphens instead of underscores. 
  4904.  
  4905.  There are a few exceptions to this convention, and these are noted where they 
  4906.  occur. 
  4907.  
  4908.  When compiling C programs, you may need to ensure that the structures passed 
  4909.  to the CICS external facilities are packed. If this is necessary, the C header 
  4910.  files will contain the #pragma pack directive, which should not be changed. 
  4911.  
  4912.  
  4913. ΓòÉΓòÉΓòÉ 9.2. Making ECI calls ΓòÉΓòÉΓòÉ
  4914.  
  4915. ECI functions are called in the manner described below. 
  4916.  
  4917. COBOL applications must ensure that the ECI function calls are statically 
  4918. linked at link time by using the system linkage convention. 
  4919.  
  4920.  o For IBM VisualAge for COBOL for OS/2, you should use the default 
  4921.    CALLINTERFACE(System) linkage. 
  4922.  
  4923.  o For Micro Focus Object COBOL, you should use call-convention 8 for every 
  4924.    program call, or use the default call-convention 0 and compile using the 
  4925.    LITLINK compiler directive. 
  4926.  
  4927.  
  4928. ΓòÉΓòÉΓòÉ 9.2.1. CICS_ExternalCall ΓòÉΓòÉΓòÉ
  4929.  
  4930. The method of calling CICS_ExternalCall is shown here for COBOL, C, and for 
  4931. PL/I. The ECI parameter block (ECI-PARMS for COBOL, ECI_PARMS for C, and 
  4932. ECI_PARMS for PL/I) is used for passing parameters to the ECI. The format of 
  4933. the call and associated declarations is as follows: 
  4934.  
  4935.  
  4936. ΓòÉΓòÉΓòÉ 9.2.1.1. For C programs: ΓòÉΓòÉΓòÉ
  4937.  
  4938.   ECI_PARMS      EciBlock;
  4939.   cics_ushort_t  Response;
  4940.   .
  4941.   .
  4942.   .
  4943.   Response = CICS_ExternalCall(&EciBlock);
  4944.  
  4945.  
  4946. ΓòÉΓòÉΓòÉ 9.2.1.2. For COBOL programs: ΓòÉΓòÉΓòÉ
  4947.  
  4948.   CALL  'CICSEXTERNALCALL'
  4949.   USING BY REFERENCE ECI-PARMS
  4950.   RETURNING ECI-RETURN-CODE.
  4951.  
  4952. The name '_CICS_ExternalCall' may also be used with the Micro Focus Object 
  4953. COBOL compiler, but it is not recommended. 
  4954.  
  4955.  
  4956. ΓòÉΓòÉΓòÉ 9.2.1.3. For PL/I programs: ΓòÉΓòÉΓòÉ
  4957.  
  4958.   dcl Response fixed bin(15);
  4959.   dcl EciBlock type ECI_PARMS;
  4960.   .
  4961.   .
  4962.   .
  4963.   Response = CICS_ExternalCall(EciBlock);
  4964.  
  4965.  
  4966. ΓòÉΓòÉΓòÉ 9.2.1.4. For REXX programs: ΓòÉΓòÉΓòÉ
  4967.  
  4968. Before using CICS_ExternalCall, the REXX program must add the function for 
  4969. CICS_ExternalCall to its environment as follows: 
  4970.  
  4971.   Call RxFuncAdd 'CICS_ExternalCall', 'cclrxeci', 'RxCICS_ExternalCall'
  4972.  
  4973. Once the function has been added, the program may use it any number of times. 
  4974.  
  4975. The format of the call is as follows: 
  4976.  
  4977.   retcode = CICS_ExternalCall('ECI_PARMS.')
  4978.  
  4979. where ECI_PARMS is the name chosen for the REXX stem representing the ECI 
  4980. parameter block. Do not omit the period at the end of the name, or the single 
  4981. quotation marks surrounding it. 
  4982.  
  4983. The values for eci_call_type, eci_extend_mode, and eci_version in the ECI 
  4984. parameter block, and for ConnectionType, CicsServerStatus, and CicsClientStatus 
  4985. in the ECI status block are character literals that match the names used 
  4986. earlier in this book. The following sample assignment statement shows how, 
  4987. having chosen ECI_PARMS as the stem name, the eci_call_type field in the ECI 
  4988. parameter block is set to ECI_SYNC. 
  4989.  
  4990. ECI_PARMS.eci_call_type = 'ECI_SYNC'
  4991.  
  4992. The return code values ECI_NO_ERROR, and so on, are defined in the file 
  4993. RXECI.MSG supplied with the samples. 
  4994.  
  4995.  
  4996. ΓòÉΓòÉΓòÉ 9.2.2. Callback routines ΓòÉΓòÉΓòÉ
  4997.  
  4998. Each callback routine has only one parameter. You should consult the sample 
  4999. programs for examples of writing callback routines. 
  5000.  
  5001.  
  5002. ΓòÉΓòÉΓòÉ 9.2.3. CICS_EciListSystems ΓòÉΓòÉΓòÉ
  5003.  
  5004. The format of the call in the different programming languages is as follows: 
  5005.  
  5006.  
  5007. ΓòÉΓòÉΓòÉ 9.2.3.1. For C programs: ΓòÉΓòÉΓòÉ
  5008.  
  5009.   #define MAX_SYS 5
  5010.   cics_sshort_t    Response;
  5011.   cics_ushort_t    Count;
  5012.   CICS_EciSystem_t List[MAX_SYS];
  5013.   .
  5014.   Count = MAX_SYS;
  5015.   .
  5016.   Response = CICS_EciListSystems(NULL, &Count, List);
  5017.  
  5018.  
  5019. ΓòÉΓòÉΓòÉ 9.2.3.2. For COBOL programs: ΓòÉΓòÉΓòÉ
  5020.  
  5021. The COBOL name of the system information structure is CICS-ECISYSTEM, which is 
  5022. contrary to the naming convention stated earlier. In the CICS on Open Systems 
  5023. environment, the array of CICS-ECISYSTEM structures is made part of 
  5024. CICS-ECISYSARRAY to comply with the requirements of the ANSI standard for 
  5025. COBOL. However the array can still be referred to using the name 
  5026. CICS-ECISYSTEM, as shown in the example below. 
  5027.  
  5028.   01 LIST-SIZE PIC 9(4) COMP-5.
  5029.  
  5030.   CALL 'CICSECILISTSYSTEMS'
  5031.   USING
  5032.     BY REFERENCE NULL-PTR
  5033.     BY REFERENCE LIST-SIZE
  5034.     BY REFERENCE CICS-ECISYSTEM
  5035.   RETURNING ECI-RETURN-CODE.
  5036.  
  5037. The name '_CICS_EciListSystems' may also be used with the Micro Focus Object 
  5038. COBOL compiler, but it is not recommended. 
  5039.  
  5040.  
  5041. ΓòÉΓòÉΓòÉ 9.2.3.3. For PL/I programs: ΓòÉΓòÉΓòÉ
  5042.  
  5043.   dcl EciRetCode fixed bin(15);
  5044.   dcl count fixed bin(15);
  5045.   dcl list type CICS_EciSystem_t;
  5046.   .
  5047.   .
  5048.   .
  5049.   EciRetCode = CICS_EciListSystems(null(), count, list);
  5050.  
  5051.  
  5052. ΓòÉΓòÉΓòÉ 9.2.3.4. For REXX programs: ΓòÉΓòÉΓòÉ
  5053.  
  5054. Before using CICS_EciListSystems, the REXX program must add the function for 
  5055. CICS_EciListSystems to its environment as follows: 
  5056.  
  5057.   Call RxFuncAdd 'CICS_EciListSystems', 'cclrxeci', 'RxCICS_EciListSystems'
  5058.  
  5059. Once the function has been added, the program may use it any number of times. 
  5060.  
  5061. The format of the call is as follows: 
  5062.  
  5063.   retcode = CICS_EciListSystems(, 'count', 'LIST.')
  5064.  
  5065. No parameter need be supplied for NameSpace, count is the name of the REXX 
  5066. variable chosen for Systems, and LIST is the name chosen for the REXX stem 
  5067. representing List. Do not omit the period at the end of the name, or the single 
  5068. quotation marks surrounding it. 
  5069.  
  5070. On return from the call, the names LIST.1.SystemName, and LIST.1.Description, 
  5071. are used to refer to the fields in the first array element, and so on. 
  5072.  
  5073.  
  5074. ΓòÉΓòÉΓòÉ 9.2.4. Debugging with REXX ΓòÉΓòÉΓòÉ
  5075.  
  5076. Special debugging facilities are provided for ECI applications using REXX. 
  5077.  
  5078. Setting the REXX variable DEBUG to any non-zero value will cause debug 
  5079. information to be sent to a log file. The path name of the file can be 
  5080. specified in the REXX variable DEBUGFILE, and the default is the file 
  5081. CCLRXECI.LOG in the directory where CCLRXECI.DLL is executing. If the file 
  5082. exists already, debug information is appended to it. 
  5083.  
  5084.  
  5085. ΓòÉΓòÉΓòÉ 9.3. Making EPI calls ΓòÉΓòÉΓòÉ
  5086.  
  5087.  
  5088. ΓòÉΓòÉΓòÉ 9.3.1. EPI functions ΓòÉΓòÉΓòÉ
  5089.  
  5090. EPI functions are called in a standard manner. Examples of calling the 
  5091. CICS_EpiListSystems function follow. 
  5092.  
  5093. COBOL applications must ensure that the EPI function calls are statically 
  5094. linked at link time by using the system linkage convention. 
  5095.  
  5096.  o For IBM VisualAge for COBOL for OS/2, you should use the default 
  5097.    CALLINTERFACE(System) linkage. 
  5098.  
  5099.  o For Micro Focus Object COBOL, you should use call-convention 8 for every 
  5100.    program call, or use the default call-convention 0 and compile using the 
  5101.    LITLINK compiler directive. 
  5102.  
  5103.  
  5104. ΓòÉΓòÉΓòÉ 9.3.1.1. For C programs: ΓòÉΓòÉΓòÉ
  5105.  
  5106.   #define MAX_SYS 5
  5107.   CICS_EpiSystem_t System;
  5108.   cics_ushort-t    Count;
  5109.   cics_sshort_t    Response;
  5110.   .
  5111.   Count = MAX_SYS;
  5112.   .
  5113.   Response = CICS_EpiListSystems(NULL, &Count, &System);
  5114.  
  5115.  
  5116. ΓòÉΓòÉΓòÉ 9.3.1.2. For COBOL programs: ΓòÉΓòÉΓòÉ
  5117.  
  5118. Except in the CICS on Open Systems environment, in which EPI calls from COBOL 
  5119. are not supported, the following may be used: 
  5120.  
  5121.   01 COUNT      PIC 9(4)  COMP-5.
  5122.   01 NAMESPACE  POINTER.
  5123.   .
  5124.   .
  5125.   .
  5126.   CALL 'CICSEPILISTSYSTEMS'
  5127.     USING BY VALUE NAMESPACE
  5128.       BY REFERENCE COUNT
  5129.       BY REFERENCE CICS-EPISYSTEM
  5130.     RETURNING EPI-RETURN-CODE.
  5131.  
  5132.  
  5133. ΓòÉΓòÉΓòÉ 9.3.1.3. For PL/I programs: ΓòÉΓòÉΓòÉ
  5134.  
  5135. Except in the CICS on Open Systems environment, in which EPI calls from PL/I 
  5136. are not supported, the following may be used: 
  5137.  
  5138.   dcl System type CICS_EpiSystem_t,
  5139.       Count fixed bin(15),
  5140.       Response fixed bin(15);
  5141.   .
  5142.   .
  5143.   .
  5144.   Response = CICS_EpiListSystems(null(), Count, System);
  5145.  
  5146.  
  5147. ΓòÉΓòÉΓòÉ 9.3.1.4. For REXX programs: ΓòÉΓòÉΓòÉ
  5148.  
  5149. EPI functions are not available in REXX. 
  5150.  
  5151.  
  5152. ΓòÉΓòÉΓòÉ 9.3.2. Callback routines ΓòÉΓòÉΓòÉ
  5153.  
  5154. Each callback routine has only one parameter. You should consult the sample 
  5155. programs for examples of writing callback routines. 
  5156.  
  5157.  
  5158. ΓòÉΓòÉΓòÉ 9.4. Compiling and linking applications ΓòÉΓòÉΓòÉ
  5159.  
  5160. This section gives some examples showing how to compile and link typical ECI 
  5161. and EPI applications in the various client environments. These are examples 
  5162. only, and may refer to specific compilers and linkers. 
  5163.  
  5164. You should refer to the samples supplied with your environment for more 
  5165. information about compiling and linking programs. 
  5166.  
  5167.  
  5168. ΓòÉΓòÉΓòÉ 9.4.1. IBM CICS Client for DOS ΓòÉΓòÉΓòÉ
  5169.  
  5170. For examples of programs that call the ECI and EPI, refer to the samples 
  5171. supplied with the client in the following libraries: 
  5172.  
  5173.  o \CICSCLI\SAMPLES\C 
  5174.  o \CICSCLI\SAMPLES\COBOL 
  5175.  
  5176.  
  5177. ΓòÉΓòÉΓòÉ 9.4.1.1. For C programs: ΓòÉΓòÉΓòÉ
  5178.  
  5179.   cl /c /DCICS_DOS program.c
  5180.  
  5181.   link program.obj,,,ccldos.lib;
  5182.  
  5183. Notes: 
  5184.  
  5185.  o Example compiler used is Microsoft C Optimizing Compiler Version 6.00A. 
  5186.  
  5187.  o The constant CICS_DOS must be defined to the compiler using the /DCICS_DOS 
  5188.    option. 
  5189.  
  5190.  o Programs may use any of the standard memory models. 
  5191.  
  5192.  o The application must be linked with the CCLDOS.LIB library in addition to 
  5193.    the standard C runtime libraries. 
  5194.  
  5195.  o Callback functions are not supported in DOS. 
  5196.  
  5197.  
  5198. ΓòÉΓòÉΓòÉ 9.4.1.2. For COBOL programs: ΓòÉΓòÉΓòÉ
  5199.  
  5200.   cobol program,,,,
  5201.  
  5202.   link program.obj,,,lcobol.lib+cobapi.lib+ccldos.lib;
  5203.  
  5204. Notes: 
  5205.  
  5206.  o Example compiler used is Micro Focus COBOL Version 3.0. 
  5207.  
  5208.  o Programs should use the LARGE memory model. 
  5209.  
  5210.  o ECI and EPI function calls should be linked using call-convention 8. 
  5211.  
  5212.  o The application must be linked with the CCLDOS.LIB library and must use the 
  5213.    COBOL static link libraries. 
  5214.  
  5215.  o Callback functions are not supported in DOS or COBOL. 
  5216.  
  5217.  
  5218. ΓòÉΓòÉΓòÉ 9.4.2. IBM CICS Client for Windows ΓòÉΓòÉΓòÉ
  5219.  
  5220. For examples of programs that call the ECI and EPI, refer to the samples 
  5221. supplied with the client in the following library: 
  5222.  
  5223.  o \CICSCLI\SAMPLES\C 
  5224.  
  5225.  
  5226. ΓòÉΓòÉΓòÉ 9.4.2.1. For C programs: ΓòÉΓòÉΓòÉ
  5227.  
  5228.   cl /c /Gsw /DCICS_WIN program.c
  5229.  
  5230.   link program.obj,,,cclwin.lib,program.def
  5231.  
  5232. Notes: 
  5233.  
  5234.  o Example compiler used is Microsoft C/C++ Optimizing Compiler Version 7.00. 
  5235.  
  5236.  o The constant CICS_WIN must be defined to the compiler using the /DCICS_WIN 
  5237.    option. 
  5238.  
  5239.  o The /Gsw options are recommended for compiling Windows programs. 
  5240.  
  5241.  o Programs may use any of the standard memory models. 
  5242.  
  5243.  o The application must be linked with the CCLWIN.LIB library in addition to 
  5244.    the standard C runtime and Windows libraries. 
  5245.  
  5246.  o A STACKSIZE of at least 8K is recommended in the linker .DEF file. 
  5247.  
  5248.  o Callback functions must be declared using the CICSEXIT calling convention 
  5249.    and must be created using the Windows function MakeProcInstance()-see 
  5250.    samples for details. 
  5251.  
  5252.  o The Windows resource compiler will also be required to create a functional 
  5253.    Windows program, as normal. 
  5254.  
  5255.  
  5256. ΓòÉΓòÉΓòÉ 9.4.3. IBM CICS Client for OS/2 ΓòÉΓòÉΓòÉ
  5257.  
  5258. For examples of programs that call the ECI and EPI, refer to the samples 
  5259. supplied with the client in the following libraries: 
  5260.  
  5261.  o \CICSCLI\SAMPLES\C 
  5262.  o \CICSCLI\SAMPLES\COBOL 
  5263.  o \CICSCLI\SAMPLES\PLI 
  5264.  
  5265.  
  5266. ΓòÉΓòÉΓòÉ 9.4.3.1. For 32-bit C programs: ΓòÉΓòÉΓòÉ
  5267.  
  5268.   icc /C /Gt+ /DCICS_OS2 program.c
  5269.  
  5270.   link386 program.obj,,,cclos232.lib,program.def
  5271.  
  5272. Notes: 
  5273.  
  5274.  o Example compiler used is IBM C/Set++. 
  5275.  
  5276.  o The constant CICS_OS2 must be defined to the compiler using the /DCICS_OS2 
  5277.    option. 
  5278.  
  5279.  o The /Gt+ options is recommended to ensure any data items passed to the ECI 
  5280.    or EPI do not span a 64K boundary. 
  5281.  
  5282.  o The application must be linked with the CCLOS232.LIB library (since it is a 
  5283.    32-bit application) in addition to the standard C runtime and OS/2 
  5284.    libraries. 
  5285.  
  5286.  o A STACKSIZE of at least 16K is recommended in the linker .DEF file. 
  5287.  
  5288.  o Callback functions must be declared using the CICSEXIT calling 
  5289.    convention-see samples for details. 
  5290.  
  5291.  
  5292. ΓòÉΓòÉΓòÉ 9.4.3.2. For 16-bit C programs: ΓòÉΓòÉΓòÉ
  5293.  
  5294.   cl /c /Gs /DCICS_OS2 program.c
  5295.  
  5296.   link program.obj,,,cclos2.lib,program.def
  5297.  
  5298. Notes: 
  5299.  
  5300.  o Example compiler used is Microsoft C Optimizing Compiler Version 6.00A. 
  5301.  
  5302.  o The constant CICS_OS2 must be defined to the compiler using the /DCICS_OS2 
  5303.    option. 
  5304.  
  5305.  o The /Gs option is recommended if callback functions are to be used. 
  5306.  
  5307.  o The application must be linked with the CCLOS2.LIB library (since it is a 
  5308.    16-bit application) in addition to the standard C runtime and OS/2 
  5309.    libraries. 
  5310.  
  5311.  o A STACKSIZE of at least 16K is recommended in the linker .DEF file. 
  5312.  
  5313.  o Callback functions must be declared using the CICSEXIT calling 
  5314.    convention-see samples for details. 
  5315.  
  5316.  
  5317. ΓòÉΓòÉΓòÉ 9.4.3.3. For 32-bit COBOL programs: ΓòÉΓòÉΓòÉ
  5318.  
  5319. If you are using IBM VisualAge for COBOL for OS/2: 
  5320.  
  5321.   cob2 -c -qapost -qnosequence -qlib. prog.cbl
  5322.  
  5323.   ilink /NOFREE /NOD /NOI /MAP prog.obj,,,OS2386 iwzrlib cclos232,prog.def
  5324.  
  5325. If you are using Micro Focus Object COBOL: 
  5326.  
  5327.   cobol prog.cbl;
  5328.  
  5329.   cblnames -mPROG -oPROG.CBJ prog
  5330.  
  5331.   link386 /NOD /NOI prog.obj prog.cbj,,,OS2386 mfrts32 cclos232,prog.def
  5332.  
  5333. Notes: 
  5334.  
  5335.  o You must resolve ECI and EPI function calls at link time using the system 
  5336.    linkage convention. This is the default linkage for IBM VisualAge for COBOL 
  5337.    for OS/2. If you use Micro Focus Object COBOL, you must use call-convention 
  5338.    8 on all ECI and EPI functions, or use the default call-convention 0 and 
  5339.    compile using the LITLINK compiler directive. 
  5340.  
  5341.  
  5342. ΓòÉΓòÉΓòÉ 9.4.3.4. For 16-bit COBOL programs: ΓòÉΓòÉΓòÉ
  5343.  
  5344.   cobol program,,,,
  5345.  
  5346.   link program.obj,,,coblib.lib+cclos2.lib,program.def
  5347.  
  5348. Notes: 
  5349.  
  5350.  o Example compiler used is Micro Focus COBOL Version 3.0. 
  5351.  
  5352.  o Programs should use the LARGE memory model. 
  5353.  
  5354.  o Programs must be compiled with the LITLINK compiler directive. 
  5355.  
  5356.  o The application must be linked with the CCLOS2.LIB library (since it is a 
  5357.    16-bit application) and may use either the COBOL static or dynamic link 
  5358.    libraries. 
  5359.  
  5360.  o A STACKSIZE of at least 16K is recommended in the linker .DEF file. 
  5361.  
  5362.  o Callback functions are not supported in COBOL. 
  5363.  
  5364.  
  5365. ΓòÉΓòÉΓòÉ 9.4.3.5. For PL/I programs: ΓòÉΓòÉΓòÉ
  5366.  
  5367.   pli program
  5368.  
  5369.   link386 program.obj,,,cclos232.lib,program.def
  5370.  
  5371. Notes: 
  5372.  
  5373.  o Example compiler used is IBM PL/I for OS/2 Version 1 Release 1. 
  5374.  
  5375.  o The application must be linked with the CCLOS232.LIB library (since it is a 
  5376.    32-bit application) in addition to the standard PL/I runtime and OS/2 
  5377.    libraries. 
  5378.  
  5379.  o A STACKSIZE of at least 16K is recommended in the linker .DEF file. 
  5380.  
  5381.  o Callback functions must be declared using the CICSEXIT calling 
  5382.    convention-see samples for details. 
  5383.  
  5384.  
  5385. ΓòÉΓòÉΓòÉ 9.4.4. IBM CICS Client for Macintosh ΓòÉΓòÉΓòÉ
  5386.  
  5387. For examples of programs that call the ECI and EPI, refer to the samples 
  5388. supplied with the client in the following library: 
  5389.  
  5390.  o :CICSCLI:SAMPLES:C 
  5391.  
  5392.  
  5393. ΓòÉΓòÉΓòÉ 9.4.4.1. For C programs: ΓòÉΓòÉΓòÉ
  5394.  
  5395.   C program.c -o program.c.o -model far -i 'HD:cicscli:headers:' -d CICS_MAC
  5396.  
  5397.   Link -o program program.c.o 'HD:cicscli:lib:'cclmac.cl.o
  5398.                               "HD:MPW:Libraries:Libraries:"Runtime.o
  5399.                               "HD:MPW:Libraries:Libraries:"Interface.o
  5400.                               "HD:MPW:Libraries:CLibraries:"StdCLib.o
  5401.                               "HD:MPW:Libraries:Libraries:"LibraryManager.o
  5402.                               -model far
  5403.  
  5404.   SetFile program -t APPL -c 'CIC1' -a B
  5405.  
  5406. Notes: 
  5407.  
  5408.  o Example compiler used is MPW C Version 3.3. 
  5409.  
  5410.  o The constant CICS_MAC must be defined to the compiler using the -d CICS_MAC 
  5411.    option. 
  5412.  
  5413.  o The program must be linked with LibraryManager.o for access to the shared 
  5414.    library. 
  5415.  
  5416.  o The creator types used in the samples on the `SetFile' line (CIC1 and CIC2) 
  5417.    match the resource file provided. The CICS Client for Macintosh product has 
  5418.    registered with Apple the creator types CICS, CICE, CICP, and CICX for use 
  5419.    within this product. You must not use these names for your own programs. 
  5420.  
  5421.  o Callback functions must be declared using the CICSEXIT calling 
  5422.    convention-see samples for details. 
  5423.  
  5424.  
  5425. ΓòÉΓòÉΓòÉ 9.4.5. CICS for OS/2 Version 2.0.1 server implementation ΓòÉΓòÉΓòÉ
  5426.  
  5427. For examples of programs that call the ECI and EPI, refer to the samples 
  5428. supplied with the CICS product. CICS for OS/2 V2.0.1 provides C, COBOL, and 
  5429. PL/I source and makefile samples in the following directories: 
  5430.  
  5431.  o \CICS200\SAMPLES\C\SOURCE 
  5432.  o \CICS200\SAMPLES\COBOL\SOURCE 
  5433.  o \CICS200\SAMPLES\PLI\SOURCE 
  5434.  
  5435.  
  5436. ΓòÉΓòÉΓòÉ 9.4.5.1. For 32-bit C programs: ΓòÉΓòÉΓòÉ
  5437.  
  5438.   icc /Gt+ prog.c faacic32.lib
  5439.  
  5440. Notes: 
  5441.  
  5442.  o ECI applications are created as shown above. 
  5443.  o To create EPI applications you should use FAACLIB.LIB instead of 
  5444.    FAACIC32.LIB. 
  5445.  
  5446.  
  5447. ΓòÉΓòÉΓòÉ 9.4.5.2. For 16-bit C programs: ΓòÉΓòÉΓòÉ
  5448.  
  5449.   cl prog.c /Gs /link /stack:16384 faaclib
  5450.  
  5451.  
  5452. ΓòÉΓòÉΓòÉ 9.4.5.3. For COBOL programs: ΓòÉΓòÉΓòÉ
  5453.  
  5454.   cobol prog.cbl /CASE
  5455.  
  5456.   link /NOD prog,,,coblib+faaclib
  5457.  
  5458.  
  5459. ΓòÉΓòÉΓòÉ 9.4.5.4. For PL/I programs: ΓòÉΓòÉΓòÉ
  5460.  
  5461.   pli prog.pli ( tiled
  5462.  
  5463.   link386 /NOD / NOI prog,,,faacic32 ibmlink ceelink os2386
  5464.  
  5465. Notes: 
  5466.  
  5467.  o ECI applications are created as shown above. 
  5468.  o To create EPI applications you should use FAACLIB.LIB instead of 
  5469.    FAACIC32.LIB. 
  5470.  
  5471.  
  5472. ΓòÉΓòÉΓòÉ 9.4.6. CICS for OS/2 Version 3 server implementation ΓòÉΓòÉΓòÉ
  5473.  
  5474. For examples of programs that call the ECI and EPI, refer to the samples 
  5475. supplied with the CICS product. CICS for OS/2 V3.0 provides C, COBOL, and PL/I 
  5476. source and makefile samples in the following directories: 
  5477.  
  5478.  o \CICS300\TOOLS\C\SAMPLES\SOURCE 
  5479.  o \CICS300\TOOLS\COBOL\SAMPLES\SOURCE 
  5480.  o \CICS300\TOOLS\PLI\SAMPLES\SOURCE 
  5481.  
  5482.  
  5483. ΓòÉΓòÉΓòÉ 9.4.6.1. For 32-bit C programs: ΓòÉΓòÉΓòÉ
  5484.  
  5485.   icc /Gt+ prog.c faacic32.lib
  5486.  
  5487.  
  5488. ΓòÉΓòÉΓòÉ 9.4.6.2. For 16-bit C programs: ΓòÉΓòÉΓòÉ
  5489.  
  5490.   cl prog.c /Gs /link /stack:16384 faaclib
  5491.  
  5492.  
  5493. ΓòÉΓòÉΓòÉ 9.4.6.3. For COBOL programs: ΓòÉΓòÉΓòÉ
  5494.  
  5495. If you are using IBM VisualAge for COBOL for OS/2: 
  5496.  
  5497.   cob2 -c -qapost -qnosequence -qlib. prog.cbl
  5498.  
  5499.   ilink /NOFREE /NOD /NOI /MAP prog.obj,,,OS2386 iwzrlib cclos232,prog.def
  5500.  
  5501. If you are using Micro Focus Object COBOL: 
  5502.  
  5503.   cobol prog.cbl;
  5504.  
  5505.   cblnames -mPROG -oPROG.CBJ prog
  5506.  
  5507.   link386 /NOD /NOI prog.obj prog.cbj,,,OS2386 mfrts32 cclos232,prog.def
  5508.  
  5509. Note: 
  5510.  
  5511.  o You must resolve ECI and EPI function calls at link time using the system 
  5512.    linkage convention. This is the default linkage for IBM VisualAge for COBOL 
  5513.    for OS/2. If you use Micro Focus Object COBOL, you must use call-convention 
  5514.    8 on all ECI and EPI functions, or use the default call-convention 0 and 
  5515.    compile using the LITLINK compiler directive. 
  5516.  
  5517.  
  5518. ΓòÉΓòÉΓòÉ 9.4.6.4. For PL/I programs: ΓòÉΓòÉΓòÉ
  5519.  
  5520.   pli prog.pli ( tiled
  5521.  
  5522.   link386 /NOD / NOI prog,,,faacic32 ibmlink ceelink os2386
  5523.  
  5524.  
  5525. ΓòÉΓòÉΓòÉ 9.4.7. CICS for Windows NT server implementation ΓòÉΓòÉΓòÉ
  5526.  
  5527. For examples of programs that call the ECI and EPI, refer to the samples 
  5528. supplied with the CICS product. CICS for Windows NT V2.0 provides C and COBOL 
  5529. source and makefile samples in the following directories: 
  5530.  
  5531.  o \CNT200\SAMPLES\C\SOURCE 
  5532.  o \CNT200\SAMPLES\COBOL\SOURCE 
  5533.  
  5534.  
  5535. ΓòÉΓòÉΓòÉ 9.4.7.1. For C programs: ΓòÉΓòÉΓòÉ
  5536.  
  5537.   cl prog.c faacicnt.lib
  5538.  
  5539.  
  5540. ΓòÉΓòÉΓòÉ 9.4.7.2. For COBOL programs: ΓòÉΓòÉΓòÉ
  5541.  
  5542.   cobol prog.cbl;
  5543.  
  5544.   cblnames -mPROG -oPRG.CBJ PROG.OBJ
  5545.  
  5546.   link prog.obj prog.cbj faacicnt.lib mfrts32.lib
  5547.  
  5548. Note: 
  5549.  
  5550.  o ECI and EPI function calls should be resolved at link time using the system 
  5551.    linkage convention. All ECI and EPI function calls should be made using 
  5552.    call-convention 8. If the default call-convention 0 is used, then the COBOL 
  5553.    application should be compiled using the LITLINK compiler directive. 
  5554.  
  5555.  
  5556. ΓòÉΓòÉΓòÉ 9.4.8. CICS on Open Systems Clients ΓòÉΓòÉΓòÉ
  5557.  
  5558. For examples of programs that call the EPI, refer to the samples supplied with 
  5559. the CICS product. Source code and makefiles are located in the following 
  5560. directories: 
  5561.  
  5562.  o IBM AIX client-/usr/lpp/cics/src/samples/epi 
  5563.  o Other clients-/opt/cics/src/samples/epi 
  5564.  
  5565.  To build the sample programs and transactions: 
  5566.  
  5567.     make all
  5568.  
  5569.  To build the client side only programs: 
  5570.  
  5571.     make client
  5572.  
  5573.  To install the transactions: 
  5574.  
  5575.     make install
  5576.  
  5577.  To remove the built applications and transactions: 
  5578.  
  5579.     make clean
  5580.  
  5581.  Notes: 
  5582.  
  5583.  o The region name DEFAULT should be replaced with the target region in the 
  5584.    makefile. 
  5585.  
  5586.  o Refer to the program description in the leading comment block in the sample 
  5587.    programs for details of operation. 
  5588.  
  5589.  o When compiling ECI and EPI application programs with Micro Focus COBOL, you 
  5590.    are recommended to use the NLS complier directive, so that the locale of the 
  5591.    server is taken from the LANG environment variable. 
  5592.  
  5593.  
  5594. ΓòÉΓòÉΓòÉ 10. ECI extensions that are environment-dependent ΓòÉΓòÉΓòÉ
  5595.  
  5596. This chapter describes extensions to the ECI that are supported in certain 
  5597. environments. They are not part of CICS Family Client/Server Programming. 
  5598.  
  5599. The chapter is organized as follows: 
  5600.  
  5601.  Call type extensions 
  5602.  Time-outs 
  5603.  Fields to support ECI extensions 
  5604.  Reply message formats 
  5605.  ECI return notification 
  5606.  Summary of input parameter requirements. 
  5607.  
  5608.  
  5609. ΓòÉΓòÉΓòÉ 10.1. Call type extensions ΓòÉΓòÉΓòÉ
  5610.  
  5611. The following call types are for asynchronous calls. 
  5612.  
  5613. For more information about the program link calls, study CICS_ExternalCall 
  5614. return codes - environment-dependent extensions in conjunction with ECI_ASYNC. 
  5615.  
  5616. For more information about the status information calls, study 
  5617. CICS_ExternalCall return codes - environment-dependent extensions in 
  5618. conjunction with ECI_STATE_ASYNC. 
  5619.  
  5620.  
  5621. ΓòÉΓòÉΓòÉ 10.1.1. Asynchronous program link call, with notification by message (ECI_ASYNC_NOTIFY_MSG) ΓòÉΓòÉΓòÉ
  5622.  
  5623. This call type is available only for programs running under OS/2 Presentation 
  5624. Manager, Microsoft Windows, or Windows NT. 
  5625.  
  5626. The calling application gets control back when the ECI accepts the request. 
  5627. Note that this does not indicate that the program has started to run, merely 
  5628. that the parameters have been validated. The request might be queued for later 
  5629. processing. 
  5630.  
  5631. The ECI sends a notification message to the specified window when the response 
  5632. is available. (For details of the message format, see Reply message formats.) 
  5633. On receipt of this notification, the calling application should use 
  5634. ECI_GET_REPLY or ECI_GET_SPECIFIC_REPLY to receive the actual response. 
  5635.  
  5636. The following fields are required parameters for notification by message: 
  5637.  
  5638.  o Either eci_async_notify.window_handle (for OS/2 Presentation Manager or 
  5639.    Windows NT environment) or eci_async_notify.win_fields.hwnd (for Microsoft 
  5640.    Windows environment) identifies the window to be notified. 
  5641.  
  5642.  o eci_async_notify.win_fields.hinstance (for Microsoft Windows environment) 
  5643.    indicates the hInstance of the calling program. 
  5644.  
  5645.  o eci_message_id indicates the message type to be used in the notification 
  5646.    process. 
  5647.  
  5648.  eci_message_qualifier can be used as an input to provide a user-defined name 
  5649.  for the call. It is returned as part of the notification message for the OS/2 
  5650.  Presentation Manager and Windows NT environments. 
  5651.  
  5652.  
  5653. ΓòÉΓòÉΓòÉ 10.1.2. Asynchronous program link call, with notification by semaphore (ECI_ASYNC_NOTIFY_SEM) ΓòÉΓòÉΓòÉ
  5654.  
  5655. This call type is available only for programs running under OS/2 or Windows NT. 
  5656.  
  5657. The calling application gets control back when the ECI accepts the request. 
  5658. Note that this does not indicate that the program has started to run, merely 
  5659. that the parameters have been validated. The request might be queued for later 
  5660. processing. 
  5661.  
  5662. The ECI posts the specified semaphore when the response is available. On 
  5663. receipt of this notification, the calling application should use ECI_GET_REPLY 
  5664. or ECI_GET_SPECIFIC_REPLY to receive the actual response. 
  5665.  
  5666. eci_message_qualifier can be used as an input to provide a user-defined name 
  5667. for the call. 
  5668.  
  5669. The following field is a required parameter for notification by semaphore: 
  5670.  
  5671.  o eci_async_notify.sem_handle refers to the semaphore. 
  5672.  
  5673.  
  5674. ΓòÉΓòÉΓòÉ 10.1.3. Asynchronous status call, with notification by message (ECI_STATE_ASYNC_MSG) ΓòÉΓòÉΓòÉ
  5675.  
  5676. This call type is available only for programs running under OS/2 Presentation 
  5677. Manager, Microsoft Windows, or Windows NT. 
  5678.  
  5679. eci_message_qualifier can be used as an input to provide a user-defined name 
  5680. for the call. 
  5681.  
  5682. The ECI sends a notification message to the specified window when the response 
  5683. is available. (For details of the message format, see Reply message formats.) 
  5684. On receipt of this notification, the calling application should use 
  5685. ECI_GET_REPLY or ECI_GET_SPECIFIC_REPLY to receive the actual response. 
  5686.  
  5687. For details of the additional parameters relating to notification by message, 
  5688. see the description of the ECI_ASYNC_NOTIFY_MSG call type. 
  5689.  
  5690.  
  5691. ΓòÉΓòÉΓòÉ 10.1.4. Asynchronous status call, with notification by semaphore (ECI_STATE_ASYNC_SEM) ΓòÉΓòÉΓòÉ
  5692.  
  5693. This call type is available only for programs running under OS/2 or Windows NT. 
  5694.  
  5695. eci_message_qualifier can be used as an input to provide a user-defined name 
  5696. for the call. 
  5697.  
  5698. The ECI posts the specified semaphore when the response is available. On 
  5699. receipt of this notification, the calling application should use ECI_GET_REPLY 
  5700. or ECI_GET_SPECIFIC_REPLY to receive the actual response. 
  5701.  
  5702. The following field is a required parameter for notification by semaphore: 
  5703.  
  5704.  o eci_async_notify.sem_handle refers to the semaphore. 
  5705.  
  5706.  
  5707. ΓòÉΓòÉΓòÉ 10.2. Time-outs ΓòÉΓòÉΓòÉ
  5708.  
  5709. Time-out support is provided in the ECI for the migration of programs from 
  5710. CICS/OS2 local clients, and the use of time-out facilities is not recommended 
  5711. in other environments. It could be used in a single-threaded environment, such 
  5712. as DOS, to terminate very long synchronous calls, but the results are sometimes 
  5713. unpredictable, as explained below. 
  5714.  
  5715. The support consists of a field eci_timeout in the ECI parameter block, and two 
  5716. return codes: ECI_ERR_RESPONSE_TIMEOUT and ECI_ERR_REQUEST_TIMEOUT. 
  5717.  
  5718. In the processing of timeouts, there are two cases to consider. 
  5719.  
  5720.  o The time-out occurs before the request has been forwarded to the server. In 
  5721.    this case the response is ECI_ERR_REQUEST_TIMEOUT. The requested program was 
  5722.    not called, and no server resources have been updated. If the call was 
  5723.    intended to start, or be the whole of, a new logical unit of work, the 
  5724.    logical unit of work was not started, and no recoverable resources have been 
  5725.    updated. If the call was intended to continue an existing logical unit of 
  5726.    work, the logical unit of work was continued, but no recoverable resources 
  5727.    were updated, and the logical unit of work is still uncommitted. If the call 
  5728.    was intended to end an existing logical unit of work, the logical unit of 
  5729.    work was continued, no recoverable resources were updated, and the logical 
  5730.    unit of work is still uncommitted. 
  5731.  
  5732.  o The time-out occurs after the request has been forwarded to the server. In 
  5733.    this case the response is ECI_ERR_RESPONSE_TIMEOUT, and it could be returned 
  5734.    to a synchronous call, or to an asynchronous call, or to the reply 
  5735.    solicitation request that gets the reply to an asynchronous call. 
  5736.  
  5737.     - If the call was intended to be the only call of a new logical unit of 
  5738.       work, the logical unit of work was started, but it is not possible for 
  5739.       the application to determine whether updates were performed, and whether 
  5740.       they were committed or backed out. 
  5741.  
  5742.     - If the call was intended to end an existing logical unit of work by using 
  5743.       ECI_NO_EXTEND, the logical unit of work has ended, but it is not possible 
  5744.       for the application to determine whether updates were performed, and 
  5745.       whether they were committed or backed out. 
  5746.  
  5747.     - If the call was intended to continue or to end an existing logical unit 
  5748.       of work by using ECI_COMMIT, the logical unit of work persists, and 
  5749.       changes to recoverable resources are still pending. 
  5750.  
  5751.  
  5752. ΓòÉΓòÉΓòÉ 10.3. Fields to support ECI extensions ΓòÉΓòÉΓòÉ
  5753.  
  5754. The following fields in the ECI parameter block are to support 
  5755. environment-dependent extensions. 
  5756.  
  5757.  eci_async_notify.window_handle 
  5758.            (OS/2 and Windows NT environments, ECI_ASYNC_NOTIFY_MSG and 
  5759.            ECI_STATE_ASYNC_MSG call types) 
  5760.  
  5761.            The handle of the window to which the reply message will be posted. 
  5762.  
  5763.            The ECI uses this field as input only. 
  5764.  
  5765.            Note:  eci_window_handle is a synonym for this parameter. 
  5766.  
  5767.  eci_async_notify.sem_handle 
  5768.            (OS/2 and Windows NT environments, ECI_ASYNC_NOTIFY_SEM and 
  5769.            ECI_STATE_ASYNC_SEM call types) 
  5770.  
  5771.            A reference to an OS/2 semaphore. This semaphore is cleared when the 
  5772.            asynchronous response is ready for collection. 
  5773.  
  5774.     o 16-bit OS/2 applications should pass either a system semaphore handle or 
  5775.       the address of a RAM semaphore. 
  5776.  
  5777.     o 32-bit OS/2 applications should pass an event semaphore handle. 
  5778.  
  5779.     o Windows NT applications should pass an event object handle. 
  5780.  
  5781.            The ECI uses this field as input only. 
  5782.  
  5783.  eci_async_notify.win_fields.hwnd 
  5784.            (Microsoft Windows environment, ECI_ASYNC_NOTIFY_MSG and 
  5785.            ECI_STATE_ASYNC_MSG call types) 
  5786.  
  5787.            The handle of the Microsoft Windows window to which the reply 
  5788.            message will be posted. 
  5789.  
  5790.            The ECI uses this field as input only. 
  5791.  
  5792.  eci_async_notify.win_fields.hinstance 
  5793.            (Microsoft Windows environment, ECI_ASYNC_NOTIFY_MSG and 
  5794.            ECI_STATE_ASYNC_MSG call types) 
  5795.  
  5796.            The Microsoft Windows hInstance of the calling program as supplied 
  5797.            during program initialization. 
  5798.  
  5799.            The ECI uses this field as input only. 
  5800.  
  5801.  eci_message_id 
  5802.            (OS/2 Presentation Manager, Microsoft Windows, and Windows NT 
  5803.            environments, ECI_ASYNC_NOTIFY_MSG and ECI_STATE_ASYNC_MSG call 
  5804.            types) 
  5805.  
  5806.            The message identifier to be used for posting the reply message to 
  5807.            the window specified in the relevant window handle. 
  5808.  
  5809.            The ECI uses this field as input only. 
  5810.  
  5811.  eci_timeout 
  5812.            (Program link calls and status calls only) 
  5813.  
  5814.            An integer field specifying the maximum time in seconds that a 
  5815.            request from the application is allowed to take. A timeout occurs if 
  5816.            the servicing of a request takes longer than the specified time. The 
  5817.            value must be in the range 0 through 32767. A value of zero means 
  5818.            that the application sets no limit on the time to service a request. 
  5819.  
  5820.            The ECI uses this field as input only. 
  5821.  
  5822.  eci_extend_mode 
  5823.            There is an additional value for program link calls in CICS OS/2 
  5824.            Version 1.20- ECI_CANCEL. It has the same effect as ECI_COMMIT. 
  5825.  
  5826.  
  5827. ΓòÉΓòÉΓòÉ 10.4. Reply message formats ΓòÉΓòÉΓòÉ
  5828.  
  5829. When an application makes an asynchronous call requesting notification by 
  5830. message, the ECI returns the result in a message to a window using the 
  5831. specified window handle and message identifier. 
  5832.  
  5833. For OS/2 Presentation Manager, the message is divided into two parameters, as 
  5834. follows: break all. 
  5835.  
  5836.  MPARAM1 
  5837.  
  5838.     High-order 16 bits 
  5839.               Specified message qualifier 
  5840.  
  5841.     Low-order 16 bits 
  5842.               Return code 
  5843.  
  5844.  MPARAM2   4-character abend code, if applicable 
  5845.  
  5846.  For Microsoft Windows, the message is divided into two parameters, as follows: 
  5847.  
  5848.  wParam 
  5849.            Return code 
  5850.  
  5851.  lParam 
  5852.            4-character abend code, if applicable 
  5853.  
  5854.  For Windows NT, the message is divided into two parameters, as follows: break 
  5855.  all. 
  5856.  
  5857.  wParam 
  5858.  
  5859.     High-order 16 bits 
  5860.               Specified message qualifier 
  5861.  
  5862.     Low-order 16 bits 
  5863.               Return code 
  5864.  
  5865.  lParam    4-character abend code, if applicable 
  5866.  
  5867.  
  5868. ΓòÉΓòÉΓòÉ 10.5. ECI return notification ΓòÉΓòÉΓòÉ
  5869.  
  5870. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5871. Γöé Table 3. CICS_ExternalCall return codes - environment-dependent extensions  Γöé
  5872. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5873. Γöé Return code              Γöé Meaning                Γöé
  5874. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5875. Γöé ECI_ERR_NULL_WIN_HANDLE        Γöé An asynchronous call was specified  Γöé
  5876. Γöé                    Γöé with the window handle set to 0.   Γöé
  5877. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5878. Γöé ECI_ERR_NULL_MESSAGE_ID        Γöé An asynchronous call was specified  Γöé
  5879. Γöé                    Γöé with the message identifier set to  Γöé
  5880. Γöé                    Γöé 0.                  Γöé
  5881. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5882. Γöé ECI_ERR_NULL_SEM_HANDLE        Γöé A null semaphore handle was passed  Γöé
  5883. Γöé                    Γöé when a valid handle was required.   Γöé
  5884. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5885. Γöé ECI_ERR_REQUEST_TIMEOUT        Γöé The time-out interval expired before Γöé
  5886. Γöé                    Γöé the request could be processed, or  Γöé
  5887. Γöé                    Γöé the specified interval was negative. Γöé
  5888. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5889. Γöé ECI_ERR_RESPONSE_TIMEOUT        Γöé The time-out interval expired while  Γöé
  5890. Γöé                    Γöé the program was running.       Γöé
  5891. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5892.  
  5893.  
  5894. ΓòÉΓòÉΓòÉ 10.6. Summary of input parameter requirements ΓòÉΓòÉΓòÉ
  5895.  
  5896. Input parameters for CICS_ExternalCall - environment-dependent extensions shows 
  5897. the input parameters for an ECI call, and, for each call type, whether the 
  5898. parameters are required (`R'), optional (`O'), or not applicable (`-'). Where a 
  5899. parameter is shown as optional or not-applicable an initial field setting of 
  5900. nulls is recommended. An asterisk (*) immediately following an `R' means that 
  5901. further details regarding applicability are given under the description of the 
  5902. parameter. 
  5903.  
  5904. The following abbreviations are used in the Parameter column: 
  5905.  
  5906.  AN        async_notify 
  5907.  
  5908.  WF        win_fields 
  5909.  
  5910.  Also, all named parameters have an eci_ prefix. Thus AN.WF.hwnd represents the 
  5911.  eci_async_notify.win_fields.hwnd parameter. 
  5912.  
  5913.  The following 3-character abbreviations are used for the call types in the 
  5914.  column headings of the table: 
  5915.  
  5916.  ANM       ECI_ASYNC_NOTIFY_MSG 
  5917.  
  5918.  ANE       ECI_ASYNC_NOTIFY_SEM 
  5919.  
  5920.  SAM       ECI_STATE_ASYNC_MSG 
  5921.  
  5922.  SAE       ECI_STATE_ASYNC_SEM 
  5923.  
  5924.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5925.   Γöé Table 4. Input parameters for CICS_ExternalCall - environment-dependent    Γöé
  5926.   Γöé      extensions                              Γöé
  5927.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5928.   Γöé Parameter, eci_     Γöé   ANM   Γöé   ANE   Γöé   SAM   Γöé   SAE   Γöé
  5929.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5930.   Γöé call_type        Γöé    R    Γöé    R   Γöé    R   Γöé    R   Γöé
  5931.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5932.   Γöé program_name       Γöé    R*   Γöé   R*   Γöé    -   Γöé    -   Γöé
  5933.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5934.   Γöé userid          Γöé    R    Γöé    R   Γöé    -   Γöé    -   Γöé
  5935.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5936.   Γöé password         Γöé    R    Γöé    R   Γöé    -   Γöé    -   Γöé
  5937.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5938.   Γöé transid         Γöé    O    Γöé    O   Γöé    -   Γöé    -   Γöé
  5939.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5940.   Γöé commarea         Γöé    O    Γöé    O   Γöé   R*   Γöé   R*   Γöé
  5941.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5942.   Γöé commarea_length     Γöé    O    Γöé    O   Γöé   R*   Γöé   R*   Γöé
  5943.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5944.   Γöé timeout         Γöé    O    Γöé    O   Γöé    O   Γöé    O   Γöé
  5945.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5946.   Γöé extend_mode       Γöé    R    Γöé    R   Γöé    R   Γöé    R   Γöé
  5947.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5948.   Γöé AN.window_handle     Γöé    R*   Γöé    -   Γöé   R*   Γöé    -   Γöé
  5949.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5950.   Γöé AN.sem_handle      Γöé    -    Γöé    R   Γöé    -   Γöé    R   Γöé
  5951.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5952.   Γöé AN.WF.hwnd        Γöé    R*   Γöé    -   Γöé   R*   Γöé    -   Γöé
  5953.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5954.   Γöé AN.WF.hinstance     Γöé    R*   Γöé    -   Γöé   R*   Γöé    -   Γöé
  5955.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5956.   Γöé message_id        Γöé    R    Γöé    -   Γöé    R   Γöé    -   Γöé
  5957.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5958.   Γöé message_qualifier    Γöé    O    Γöé    O   Γöé    O   Γöé    O   Γöé
  5959.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5960.   Γöé luw_token        Γöé    R    Γöé    R   Γöé   R*   Γöé   R*   Γöé
  5961.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5962.   Γöé version         Γöé    O    Γöé    O   Γöé    O   Γöé    O   Γöé
  5963.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5964.   Γöé system_name       Γöé    O    Γöé    O   Γöé    O   Γöé    O   Γöé
  5965.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5966.  
  5967.  
  5968. ΓòÉΓòÉΓòÉ 11. CICS OS/2 Version 1.20 ECI subset ΓòÉΓòÉΓòÉ
  5969.  
  5970. The CICS OS/2 Version 1.20 ECI call types can be used only in an application 
  5971. running under OS/2, either in the same programmable workstation as the CICS for 
  5972. OS/2 system or on a client in a CICS for OS/2 client/server configuration. The 
  5973. use of these call types is not recommended for new applications. 
  5974.  
  5975. The type of ECI call is controlled by the setting of the ECI-CALL-TYPE 
  5976. parameter in the control block. For consistency with the documentation of the 
  5977. ECI in CICS OS/2 Version 1.20, parameter names and call type values are given 
  5978. here in COBOL format. This subset does not support the use of PL/I. 
  5979.  
  5980. Calls can be either single or parallel, and either synchronous or asynchronous. 
  5981. Several calls can be tied together in one logical unit of work by setting the 
  5982. ECI-EXTEND-MODE parameter to ECI-EXTENDED. 
  5983.  
  5984.  
  5985. ΓòÉΓòÉΓòÉ 11.1. Single calls ΓòÉΓòÉΓòÉ
  5986.  
  5987. Only one single call can be made at a time from an OS/2 process. 
  5988.  
  5989. Single calls give no advantage over parallel calls; therefore, it is 
  5990. recommended that parallel calls are used instead. Single calls are retained so 
  5991. that programs written for earlier releases of CICS for OS/2 will continue to 
  5992. run. 
  5993.  
  5994.  Single synchronous call (ECI-SYNC-CALL) 
  5995.            The calling program makes a single call and has to wait for the 
  5996.            reply to come back. A parallel synchronous call can be used in 
  5997.            exactly the same way. 
  5998.  
  5999.  Single asynchronous call (ECI-ASYNC-CALL) 
  6000.            Asynchronous processing is used for Presentation Manager programs 
  6001.            only. The called program returns an initial response code to the 
  6002.            calling program to indicate whether it accepts the request. If it 
  6003.            accepts, the processing is carried out in a separate thread, and a 
  6004.            message is posted to the PM window specified in ECI-WINDOW-HANDLE 
  6005.            when it has finished. The format and contents of this message are 
  6006.            described in Reply message formats. 
  6007.  
  6008.  
  6009. ΓòÉΓòÉΓòÉ 11.2. Parallel calls ΓòÉΓòÉΓòÉ
  6010.  
  6011. Parallel processing of calls allows up to 16 logical units of work to be 
  6012. handled simultaneously for each OS/2 process. 
  6013.  
  6014. Before making the first call of a logical unit of work, ECI-LUW-TOKEN should be 
  6015. set to zero. When the calling program makes the first call, ECI-LUW-TOKEN is 
  6016. returned with a valid token. The program must use this token as input to later 
  6017. calls in the logical unit of work to make the logical connection. 
  6018.  
  6019.  Parallel synchronous call (ECI-SYNC-PARALLEL) 
  6020.            Because this is a synchronous call, the calling thread is forced to 
  6021.            wait for a reply before it can continue with another call. The 
  6022.            returned token can then be used in extended calls. 
  6023.  
  6024.  Parallel asynchronous call (ECI-ASYNC-PARALLEL) 
  6025.            When the calling program makes the first call, ECI-LUW-TOKEN is 
  6026.            returned with a valid token, which it uses as input to later calls 
  6027.            in the logical unit of work to make the logical connection. 
  6028.  
  6029.            Because this is an asynchronous call, the token is returned 
  6030.            immediately and a Presentation Manager message indicating completion 
  6031.            is posted later. A second call should not be made within this 
  6032.            logical unit of work until the completion message is received. 
  6033.  
  6034.  
  6035. ΓòÉΓòÉΓòÉ 11.3. Use of COMMAREA storage ΓòÉΓòÉΓòÉ
  6036.  
  6037. If you are making an asynchronous call (ECI-ASYNC-CALL or ECI-ASYNC-PARALLEL), 
  6038. any COMMAREA storage passed on the call should not be reused until the 
  6039. completion message has been posted, because CICS places the final contents of 
  6040. the COMMAREA in this area. 
  6041.  
  6042.  
  6043. ΓòÉΓòÉΓòÉ 11.4. Parameters for use with V1.20 ECI call types ΓòÉΓòÉΓòÉ
  6044.  
  6045. Input parameters for CICS OS/2 Version 1.20 call types shows the input 
  6046. parameters for such an ECI call and, for each call type, whether the parameters 
  6047. are required (R), optional (O), or not applicable. Where a parameter is shown 
  6048. as optional, an initial field setting of nulls is expected if the caller does 
  6049. not wish to use the parameter. 
  6050.  
  6051. Parameter names and call type values are given in COBOL format; the 
  6052. corresponding C parameters are in lowercase and include underscores instead of 
  6053. hyphens as separators, and the corresponding C call types also have underscores 
  6054. instead of hyphens. 
  6055.  
  6056. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6057. Γöé Table 5. Input parameters for CICS OS/2 Version 1.20 call types        Γöé
  6058. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6059. Γöé Parameter, eci-     Γöé   ECI-   Γöé   ECI-   Γöé  ECI-SYNC- Γöé ECI-ASYNC- Γöé
  6060. Γöé             Γöé  SYNC-CALL  Γöé ASYNC-CALL Γöé  PARALLEL  Γöé  PARALLEL  Γöé
  6061. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6062. Γöé call-type        Γöé    R    Γöé    R   Γöé    R   Γöé    R   Γöé
  6063. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6064. Γöé program-name       Γöé  R, except  Γöé  R, except Γöé  R, except Γöé  R, except Γöé
  6065. Γöé             Γöé  when com-  Γöé  when com- Γöé  when com- Γöé  when com- Γöé
  6066. Γöé             Γöé  mitting or Γöé mitting or Γöé mitting or Γöé mitting or Γöé
  6067. Γöé             Γöé backing out Γöé  backing  Γöé  backing  Γöé  backing  Γöé
  6068. Γöé             Γöé       Γöé   out   Γöé   out   Γöé   out   Γöé
  6069. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6070. Γöé userid          Γöé    R    Γöé    R   Γöé    R   Γöé    R   Γöé
  6071. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6072. Γöé password         Γöé    R    Γöé    R   Γöé    R   Γöé    R   Γöé
  6073. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6074. Γöé transid         Γöé    O    Γöé    O   Γöé    O   Γöé    O   Γöé
  6075. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6076. Γöé commarea         Γöé    O    Γöé    O   Γöé    O   Γöé    O   Γöé
  6077. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6078. Γöé commarea-length     Γöé    O    Γöé    O   Γöé    O   Γöé    O   Γöé
  6079. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6080. Γöé timeout         Γöé    O    Γöé    O   Γöé    O   Γöé    O   Γöé
  6081. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6082. Γöé extend-mode       Γöé    R    Γöé    R   Γöé    R   Γöé    R   Γöé
  6083. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6084. Γöé window-handle      Γöé    -    Γöé    R   Γöé    -   Γöé    R   Γöé
  6085. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6086. Γöé message-id        Γöé    -    Γöé    R   Γöé    -   Γöé    R   Γöé
  6087. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6088. Γöé message-qualifier    Γöé    -    Γöé    O   Γöé    -   Γöé    O   Γöé
  6089. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6090. Γöé luw-token        Γöé    -    Γöé    -   Γöé    R   Γöé    R   Γöé
  6091. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6092.  
  6093.  
  6094. ΓòÉΓòÉΓòÉ 12. ECI and EPI exits (CICS on Open Systems, Version 2) ΓòÉΓòÉΓòÉ
  6095.  
  6096. This chapter describes exits you can add to the EPI and ECI in the CICS on Open 
  6097. Systems, Version 2 environment. The exits allow you to influence the processing 
  6098. of ECI and EPI calls for certain application requests. 
  6099.  
  6100. The chapter is organized as follows: 
  6101.  
  6102.  Installing the exits 
  6103.  
  6104.  Exit routine environment 
  6105.  
  6106.  How the exit routines are described in the reference sections 
  6107.  
  6108.  ECI exits reference 
  6109.  
  6110.  EPI exits reference 
  6111.  
  6112.  Diagnostic information 
  6113.  
  6114.  
  6115. ΓòÉΓòÉΓòÉ 12.1. Installing the exits ΓòÉΓòÉΓòÉ
  6116.  
  6117. During ECI and EPI initialization, the client attempts to load the objects 
  6118. described in ECI and EPI exits from the CICS binary directory, and to call the 
  6119. corresponding entry points. 
  6120.  
  6121. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6122. Γöé Table 6. ECI and EPI exits                          Γöé
  6123. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6124. Γöé      Γöé Object name           Γöé Entry point name         Γöé
  6125. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6126. Γöé ECI    Γöé cicseciexit           Γöé CICS_EciExitInit         Γöé
  6127. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6128. Γöé EPI    Γöé cicsepiexit           Γöé CICS_EpiExitInit         Γöé
  6129. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6130.  
  6131. Each entry point is passed a single parameter, a pointer to a structure that 
  6132. contains a list of addresses. The initialization code of the program puts the 
  6133. addresses of all the exits into the structure, and then the exits are called at 
  6134. appropriate points in ECI and EPI processing. Since the exits are entered by 
  6135. using the addresses supplied, you may give the exits any names you please, but 
  6136. in this manual conventional names are used for the exits. 
  6137.  
  6138. If the objects are not found, no exit processing occurs. 
  6139.  
  6140. The following files are supplied with your CICS on Open Systems product to help 
  6141. with programming the exits. 
  6142.  
  6143.  cicseciexit.h 
  6144.            A header files that defines: 
  6145.  
  6146.     o inputs and outputs for each ECI exit 
  6147.  
  6148.     o the format of the list of addresses for calling ECI exits 
  6149.  
  6150.     o data structures used by ECI exits 
  6151.  
  6152.     o return code values for ECI exits. 
  6153.  
  6154.  cicseciexit.c 
  6155.            Skeleton code for cicseciexit. 
  6156.  
  6157.  cicseciexit.mk 
  6158.            A makefile to reconstruct cicseciexit. 
  6159.  
  6160.  cicsepiexit.h 
  6161.            A header files that defines: 
  6162.  
  6163.     o inputs and outputs for each EPI exit 
  6164.  
  6165.     o the format of the list of addresses for calling EPI exits 
  6166.  
  6167.     o data structures used by EPI exits 
  6168.  
  6169.     o return code values for EPI exits. 
  6170.  
  6171.  cicsepiexit.c 
  6172.            Skeleton code for cicsepiexit. 
  6173.  
  6174.  cicsepiexit.mk 
  6175.            A makefile to reconstruct cicsepiexit. 
  6176.  
  6177.  
  6178. ΓòÉΓòÉΓòÉ 12.2. Exit routine environment ΓòÉΓòÉΓòÉ
  6179.  
  6180. In your exits: 
  6181.  
  6182.  o You must not make EPI or ECI calls. 
  6183.  
  6184.  o You should avoid waits or long-running code. (It is quite possible that the 
  6185.    exit is running on the applications user interface thread, and thus any 
  6186.    delays in returning could have a bad effect on the system's responsiveness.) 
  6187.  
  6188.  o You must not register as an RPC server. 
  6189.  
  6190.  o You must follow the recommendations for multithreaded processes contained in 
  6191.    Chapter 6 of Guide to Writing DCE Applications. 
  6192.  
  6193.  
  6194. ΓòÉΓòÉΓòÉ 12.3. How the exit routines are described in the reference sections ΓòÉΓòÉΓòÉ
  6195.  
  6196. The exit routines are described under the following headings: 
  6197.  
  6198.  o Purpose-describes the kind of processing that the exit is intended to 
  6199.    perform. 
  6200.  
  6201.  o When called-describes where in ECI or EPI processing the exit is called. 
  6202.  
  6203.  o Parameters-describes the parameters supplied to the exit. Parameters are 
  6204.    classified as follows: 
  6205.  
  6206.     - Input-the exit may look at it, but must not change it. 
  6207.  
  6208.     - Output-the exit must not look at it, but must store a value in it. 
  6209.  
  6210.     - Input-output-the exit may look at it, and may store a value in it. 
  6211.  
  6212.  o Return codes-describes the possible values the exit can return to the ECI or 
  6213.    EPI. In each case the subsequent behavior of the ECI or EPI is described. 
  6214.  
  6215.    Note:  The term FFST is used to denote first failure support technology. 
  6216.  
  6217.  
  6218. ΓòÉΓòÉΓòÉ 12.4. ECI exits reference ΓòÉΓòÉΓòÉ
  6219.  
  6220. In this section the following exits are discussed: 
  6221.  
  6222.  o CICS_EciInitializeExit 
  6223.  o CICS_EciTerminateExit 
  6224.  o CICS_EciExternalCallExit1 
  6225.  o CICS_EciExternalCallExit2 
  6226.  o CICS_EciSystemIdExit 
  6227.  o CICS_EciDataSendExit 
  6228.  o CICS_EciDataReturnExit 
  6229.  
  6230.  Summary of ECI exits summarizes the exit names, the parameters passed to each 
  6231.  exit, and the possible return codes. 
  6232.  
  6233.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6234.   Γöé Table 7. Summary of ECI exits                         Γöé
  6235.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6236.   Γöé Function name       Γöé Parameters   Γöé Return codes:           Γöé
  6237.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6238.   Γöé CICS_EciInitializeExit   Γöé Version    Γöé CICS_EXIT_OK           Γöé
  6239.   Γöé              Γöé Anchor     Γöé CICS_EXIT_NO_EXIT         Γöé
  6240.   Γöé              Γöé        Γöé CICS_EXIT_CANT_INIT_EXITS     Γöé
  6241.   Γöé              Γöé        Γöé user-defined           Γöé
  6242.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6243.   Γöé CICS_EciTerminateExit   Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6244.   Γöé              Γöé        Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6245.   Γöé              Γöé        Γöé CICS_EXIT_BAD_STORAGE       Γöé
  6246.   Γöé              Γöé        Γöé user-defined           Γöé
  6247.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6248.   Γöé CICS_EciExternalCallExit1 Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6249.   Γöé              Γöé Token     Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6250.   Γöé              Γöé ParmPtr    Γöé CICS_EXIT_BAD_PARM        Γöé
  6251.   Γöé              Γöé        Γöé user-defined           Γöé
  6252.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6253.   Γöé CICS_EciExternalCallExit2 Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6254.   Γöé              Γöé Token     Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6255.   Γöé              Γöé ParmPtr    Γöé CICS_EXIT_BAD_PARM        Γöé
  6256.   Γöé              Γöé        Γöé user-defined           Γöé
  6257.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6258.   Γöé CICS_EciSystemIdExit    Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6259.   Γöé              Γöé Token     Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6260.   Γöé              Γöé ParmPtr    Γöé CICS_EXIT_BAD_PARM        Γöé
  6261.   Γöé              Γöé Reason     Γöé CICS_EXIT_GIVE_UP         Γöé
  6262.   Γöé              Γöé        Γöé user_defined           Γöé
  6263.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6264.   Γöé CICS_EciDataSendExit    Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6265.   Γöé              Γöé Token     Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6266.   Γöé              Γöé        Γöé CICS_EXIT_BAD_PARM        Γöé
  6267.   Γöé              Γöé        Γöé user_defined           Γöé
  6268.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6269.   Γöé CICS_EciDataReturnExit   Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6270.   Γöé              Γöé Token     Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6271.   Γöé              Γöé ParmPtr    Γöé CICS_EXIT_BAD_PARM        Γöé
  6272.   Γöé              Γöé        Γöé user_defined           Γöé
  6273.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6274.  
  6275.  
  6276. ΓòÉΓòÉΓòÉ 12.4.1. Identification token ΓòÉΓòÉΓòÉ
  6277.  
  6278. In order for the exits to be able to relate calls for the same ECI request, an 
  6279. identification token is passed in as a parameter to all exits except 
  6280. CICS_EciInitializeExit and CICS_EciTerminateExit. The token is the same for 
  6281. CICS_EciExternalCallExit1 and CICS_EciExternalCallExit2 that relate to the same 
  6282. call, and on intervening CICS_EciDataSendExit, CICS_EciDataReturnExit, and 
  6283. CICS_EciSystemIdExit exits. (Note that CICS_EciExternalCallExit1 and 
  6284. CICS_EciExternalCallExit2 are not called for a reply solicitation request.) 
  6285.  
  6286. The token is unique within the operating system that initiated the request, for 
  6287. the duration of the request. It may be reused once the last exit for the 
  6288. request has been called. 
  6289.  
  6290. In the case of an extended logical unit of work, the token may be different on 
  6291. different requests within the logical unit of work. (Since we allow reuse of 
  6292. the token, and a new program link call may not be made until the ECI_GET_REPLY 
  6293. request for the  previous asynchronous request has completed, it may also be 
  6294. the same.) 
  6295.  
  6296. The token is 8 bytes long. 8 null bytes is not a valid value for the token and 
  6297. is not supplied to the exits. 
  6298.  
  6299.  
  6300. ΓòÉΓòÉΓòÉ 12.4.2. Process model implementation ΓòÉΓòÉΓòÉ
  6301.  
  6302. All exits that relate to a particular request (i.e. have the same 
  6303. identification token) are called in the context of the application process. 
  6304.  
  6305.  
  6306. ΓòÉΓòÉΓòÉ 12.4.3. CICS_EciInitializeExit ΓòÉΓòÉΓòÉ
  6307.  
  6308. CICS_EciInitializeExit 
  6309.  
  6310. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6311. Γöé CICS_EciInitializeExit         Γöé Version                Γöé
  6312. Γöé                    Γöé Anchor                Γöé
  6313. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6314.  
  6315.  Purpose 
  6316.  
  6317.           To allow the user to set up an exit environment. 
  6318.  
  6319.  When called 
  6320.  
  6321.           On the first invocation of CICS_ExternalCall, for each process, after 
  6322.           parameter validation has occurred. 
  6323.  
  6324.  Parameters 
  6325.  
  6326.           Version 
  6327.                     Input parameter. The version of the ECI under which the 
  6328.                     exit is running. 
  6329.  
  6330.           Anchor 
  6331.                     Output parameter. A pointer to a pointer that will be 
  6332.                     passed to the ECI exits. The second pointer is not used by 
  6333.                     the ECI; it is passed to the exits as supplied. You can 
  6334.                     acquire storage in this exit and pass its address to the 
  6335.                     other exits. 
  6336.  
  6337.  Return codes 
  6338.  
  6339.           CICS_EXIT_OK 
  6340.                     The ECI continues processing this request, calling the 
  6341.                     exits where appropriate. 
  6342.  
  6343.           CICS_EXIT_NO_EXIT 
  6344.                     The ECI continues processing this request, but does not 
  6345.                     call any more exits. 
  6346.  
  6347.           CICS_EXIT_CANT_INIT_EXITS 
  6348.                     The ECI uses FFST, and then continues processing this 
  6349.                     request, but does not call any more exits. 
  6350.  
  6351.           user-defined 
  6352.                     User-defined return codes must have a value not less than 
  6353.                     CICS_EXIT_USER_BASE. The ECI uses FFST, and then continues 
  6354.                     processing this request, but does not call any more exits. 
  6355.  
  6356.  
  6357. ΓòÉΓòÉΓòÉ 12.4.4. CICS_EciTerminateExit ΓòÉΓòÉΓòÉ
  6358.  
  6359. CICS_EciTerminateExit 
  6360.  
  6361. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6362. Γöé CICS_EciTerminateExit         Γöé Anchor                Γöé
  6363. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6364.  
  6365.  Purpose 
  6366.  
  6367.           To allow the user to clean up the exit environment. Any storage 
  6368.           acquired by CICS_EciInitializeExit must be released in this exit. 
  6369.  
  6370.  When called 
  6371.  
  6372.           On termination of the process that issued the CICS_EciInitializeExit. 
  6373.  
  6374.  Parameters 
  6375.  
  6376.           Anchor 
  6377.                     Input parameter. The pointer set up by 
  6378.                     CICS_EciInitializeExit. 
  6379.  
  6380.  Return codes 
  6381.  
  6382.           CICS_EXIT_OK 
  6383.                     Termination continues. 
  6384.  
  6385.           CICS_EXIT_BAD_ANCHOR 
  6386.                     The ECI uses FFST, and then continues with termination. 
  6387.  
  6388.           CICS_EXIT_BAD_STORAGE 
  6389.                     The ECI uses FFST, and then continues with termination. 
  6390.  
  6391.           user-defined 
  6392.                     User-defined return codes must have a value not less than 
  6393.                     CICS_EXIT_USER_BASE. The ECI uses FFST, and then continues 
  6394.                     with termination. 
  6395.  
  6396.  
  6397. ΓòÉΓòÉΓòÉ 12.4.5. CICS_EciExternalCallExit1 ΓòÉΓòÉΓòÉ
  6398.  
  6399. CICS_EciExternalCallExit1 
  6400.  
  6401. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6402. Γöé CICS_EciExternalCallExit1       Γöé Anchor                Γöé
  6403. Γöé                    Γöé Token                 Γöé
  6404. Γöé                    Γöé ParmPtr                Γöé
  6405. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6406.  
  6407.  Purpose 
  6408.  
  6409.           To allow the user to pick the best system to run the program. This 
  6410.           exit is called exactly once on each program link and each status 
  6411.           information call. It is not called on a reply solicitation call. 
  6412.  
  6413.  When called 
  6414.  
  6415.           On invocation of CICS_ExternalCall, for each program link call and 
  6416.           each status information call, after the ECI has validated the 
  6417.           parameters. 
  6418.  
  6419.  Parameters 
  6420.  
  6421.           Anchor 
  6422.                     Input parameter. The pointer set up by 
  6423.                     CICS_EciInitializeExit. 
  6424.  
  6425.           Token 
  6426.                     Input parameter. The identification token established by 
  6427.                     the ECI for this request. 
  6428.  
  6429.           ParmPtr 
  6430.                     Input parameter. A pointer to the ECI parameter block. The 
  6431.                     exit must treat all fields in the ECI parameter block as 
  6432.                     inputs, except the eci_system_name field, which it may 
  6433.                     change. 
  6434.  
  6435.  Return codes 
  6436.  
  6437.           CICS_EXIT_OK 
  6438.                     The ECI continues to process the request with the 
  6439.                     eci_system_name now specified in the ECI parameter block. 
  6440.  
  6441.           CICS_EXIT_BAD_ANCHOR 
  6442.                     The ECI uses FFST, and then continues to process the 
  6443.                     request with the eci_system_name now specified in the ECI 
  6444.                     parameter block. 
  6445.  
  6446.           CICS_EXIT_BAD_PARM 
  6447.                     The ECI uses FFST, and then continues to process the 
  6448.                     request with the eci_system_name now specified in the ECI 
  6449.                     parameter block. 
  6450.  
  6451.           user-defined 
  6452.                     User-defined return codes must have a value not less than 
  6453.                     CICS_EXIT_USER_BASE. The ECI uses FFST, and then continues 
  6454.                     to process the request with the eci_system_name now 
  6455.                     specified in the ECI parameter block. 
  6456.  
  6457.  
  6458. ΓòÉΓòÉΓòÉ 12.4.5.1. Note on selection of systems ΓòÉΓòÉΓòÉ
  6459.  
  6460. There is a limited set of conditions under which the exit may select a new 
  6461. system. The exit may select a system if the call is a program link or status 
  6462. information call, and if a new logical unit of work is being started. In other 
  6463. cases, the exit should return CICS_EXIT_OK. 
  6464.  
  6465. If the calling application has put binary zeros as the system name in the 
  6466. parameter block, then the application is expecting that the system will be 
  6467. dynamically selected, and the exit may safely select the system. 
  6468.  
  6469. If however the calling application has placed a system name in the parameter 
  6470. block, or if the application is a version 0 application, then it may not be 
  6471. expecting the target system to change, and application errors could result. In 
  6472. this case the exit would generally return without specifying a replacement 
  6473. system, with the result that the specified or default system name is to be 
  6474. used. If the exit chooses to change the selected system in this situation, then 
  6475. it may do so, but the following should be borne in mind. 
  6476.  
  6477.           o The exit routine must be sensitive to whether or not the 
  6478.             modification of the target system will cause errors in the ECI 
  6479.             application running on the client. 
  6480.  
  6481.           o The exit routine must maintain a knowledge base, keyed on 
  6482.             appropriate data available to it, to enable it to determine whether 
  6483.             this modification is acceptable to the client application. 
  6484.  
  6485.  
  6486. ΓòÉΓòÉΓòÉ 12.4.6. CICS_EciExternalCallExit2 ΓòÉΓòÉΓòÉ
  6487.  
  6488. CICS_EciExternalCallExit2 
  6489.  
  6490. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6491. Γöé CICS_EciExternalCallExit2       Γöé Anchor                Γöé
  6492. Γöé                    Γöé Token                 Γöé
  6493. Γöé                    Γöé ParmPtr                Γöé
  6494. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6495.  
  6496.  Purpose 
  6497.  
  6498.           To allow the user to see the results of synchronous ECI calls for 
  6499.           information gathering purposes only. This exit is called exactly once 
  6500.           on every application program link or status information call. It is 
  6501.           not called on reply solicitation calls. 
  6502.  
  6503.  When called 
  6504.  
  6505.           Before the ECI call returns to the application, and after the return 
  6506.           data is filled into the ECI parameter block. 
  6507.  
  6508.  Parameters 
  6509.  
  6510.           Anchor 
  6511.                     Input parameter. The pointer set up by 
  6512.                     CICS_EciInitializeExit. 
  6513.  
  6514.           Token 
  6515.                     Input parameter. The identification token established by 
  6516.                     the ECI for this request. 
  6517.  
  6518.           ParmPtr 
  6519.                     Input parameter. A pointer to the ECI parameter block. The 
  6520.                     exit must treat all fields in the ECI parameter block as 
  6521.                     inputs. 
  6522.  
  6523.  Return codes 
  6524.  
  6525.           CICS_EXIT_OK 
  6526.                     The ECI returns control to the application that issued the 
  6527.                     CICS_ExternalCall request. 
  6528.  
  6529.           CICS_EXIT_BAD_ANCHOR 
  6530.                     The ECI uses FFST, and then returns control to the 
  6531.                     application that issued the CICS_ExternalCall request. 
  6532.  
  6533.           CICS_EXIT_BAD_PARM 
  6534.                     The ECI uses FFST, and then returns control to the 
  6535.                     application that issued the CICS_ExternalCall request. 
  6536.  
  6537.           user-defined 
  6538.                     User-defined return codes must have a value not less than 
  6539.                     CICS_EXIT_USER_BASE. The ECI uses FFST, and then returns 
  6540.                     control to the application that issued the 
  6541.                     CICS_ExternalCall request. 
  6542.  
  6543.  
  6544. ΓòÉΓòÉΓòÉ 12.4.7. CICS_EciSystemIdExit ΓòÉΓòÉΓòÉ
  6545.  
  6546. CICS_EciSystemIdExit 
  6547.  
  6548. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6549. Γöé CICS_EciSystemIdExit          Γöé Anchor                Γöé
  6550. Γöé                    Γöé Token                 Γöé
  6551. Γöé                    Γöé ParmPtr                Γöé
  6552. Γöé                    Γöé Reason                Γöé
  6553. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6554.  
  6555.  Purpose 
  6556.  
  6557.           To allow the user to supply a new system name when the name supplied 
  6558.           in the ECI parameter block is not valid. 
  6559.  
  6560.  When called 
  6561.  
  6562.           This exit is called when an error occurs that may be corrected by 
  6563.           selection of a new system, userid, or password. This is when the ECI 
  6564.           would return a code of ECI_ERR_NO_CICS or ECI_ERR_UNKNOWN_SERVER or 
  6565.           ECI_ERR_SECURITY_ERROR. It may be called when either when the client 
  6566.           detects an error before data is sent to the server, or after data 
  6567.           returns from the server. 
  6568.  
  6569.  Parameters 
  6570.  
  6571.           Anchor 
  6572.                     Input parameter. The pointer set up by 
  6573.                     CICS_EciInitializeExit. 
  6574.  
  6575.           Token 
  6576.                     Input parameter. The identification token established by 
  6577.                     the ECI for this request. 
  6578.  
  6579.           ParmPtr 
  6580.                     Input parameter. A pointer to the ECI parameter block. The 
  6581.                     exit must treat all fields in the ECI parameter block as 
  6582.                     inputs, except the following, which it may set: 
  6583.  
  6584.              o eci_system_name 
  6585.              o eci_userid 
  6586.              o eci_password. 
  6587.  
  6588.           Reason 
  6589.                     Input parameter. The reason code that explains why the 
  6590.                     application request has not so far succeeded. 
  6591.  
  6592.  Return codes 
  6593.  
  6594.           CICS_EXIT_OK 
  6595.                     The ECI retries the application call using the new 
  6596.                     parameters in the ECI parameter block. (The CICS program 
  6597.                     communication area supplied by the application to the 
  6598.                     CICS_ExternalCall is preserved.) The application callback 
  6599.                     routine will not be called, nor will 
  6600.                     CICS_EciExternalCallExit2. 
  6601.  
  6602.           CICS_EXIT_BAD_ANCHOR 
  6603.                     The ECI uses FFST, and then returns to the application that 
  6604.                     issued the CICS_ExternalCall request. 
  6605.  
  6606.           CICS_EXIT_BAD_PARM 
  6607.                     The ECI uses FFST, and then returns to the application that 
  6608.                     issued the CICS_ExternalCall request. 
  6609.  
  6610.           CICS_EXIT_GIVE_UP 
  6611.                     The ECI returns to the application that issued the 
  6612.                     CICS_ExternalCall request. 
  6613.  
  6614.           user-defined 
  6615.                     User-defined return codes must have a value not less than 
  6616.                     CICS_EXIT_USER_BASE. The ECI uses FFST, and then retries 
  6617.                     the application call as described for CICS_EXIT_OK. 
  6618.  
  6619.  
  6620. ΓòÉΓòÉΓòÉ 12.4.8. CICS_EciDataSendExit ΓòÉΓòÉΓòÉ
  6621.  
  6622. CICS_EciDataSendExit 
  6623.  
  6624. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6625. Γöé CICS_EciDataSendExit          Γöé Anchor                Γöé
  6626. Γöé                    Γöé Token                 Γöé
  6627. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6628.  
  6629.  Purpose 
  6630.  
  6631.           To allow the user to time calls for performance analysis. 
  6632.  
  6633.  When called 
  6634.  
  6635.           As close as possible to the time that the request  will be sent to 
  6636.           the server. 
  6637.  
  6638.  Parameters 
  6639.  
  6640.           Anchor 
  6641.                     Input parameter. The pointer set up by 
  6642.                     CICS_EciInitializeExit. 
  6643.  
  6644.           Token 
  6645.                     Input parameter. The identification token established by 
  6646.                     the ECI for this request. 
  6647.  
  6648.  Return codes 
  6649.  
  6650.           CICS_EXIT_OK 
  6651.                     The ECI continues processing the request. 
  6652.  
  6653.           CICS_EXIT_BAD_ANCHOR 
  6654.                     The ECI uses FFST, and then continues processing the 
  6655.                     request. 
  6656.  
  6657.           CICS_EXIT_BAD_PARM 
  6658.                     The ECI uses FFST, and then continues processing the 
  6659.                     request. 
  6660.  
  6661.           user-defined 
  6662.                     User-defined return codes must have a value not less than 
  6663.                     CICS_EXIT_USER_BASE. The ECI uses FFST, and then continues 
  6664.                     processing the request. 
  6665.  
  6666.  
  6667. ΓòÉΓòÉΓòÉ 12.4.9. CICS_EciDataReturnExit ΓòÉΓòÉΓòÉ
  6668.  
  6669. CICS_EciDataReturnExit 
  6670.  
  6671. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6672. Γöé CICS_EciDataReturnExit         Γöé Anchor                Γöé
  6673. Γöé                    Γöé Token                 Γöé
  6674. Γöé                    Γöé ParmPtr                Γöé
  6675. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6676.  
  6677.  Purpose 
  6678.  
  6679.           To allow the user to time calls for performance analysis. 
  6680.  
  6681.  When called 
  6682.  
  6683.           As close as possible to the time that the response from the server 
  6684.           has been received, and the ECI block and commarea data for eventual 
  6685.           return to the application has been built. It is also called if there 
  6686.           is a timeout because of a lack of response from the server. 
  6687.  
  6688.  Parameters 
  6689.  
  6690.           Anchor 
  6691.                     Input parameter. The pointer set up by 
  6692.                     CICS_EciInitializeExit. 
  6693.  
  6694.           Token 
  6695.                     Input parameter. The identification token established by 
  6696.                     the ECI for this request. 
  6697.  
  6698.           ParmPtr 
  6699.                     Input parameter. A pointer to the ECI parameter block. The 
  6700.                     exit must treat all fields in the ECI parameter block as 
  6701.                     inputs. 
  6702.  
  6703.  Return codes 
  6704.  
  6705.           CICS_EXIT_OK 
  6706.                     The ECI continues processing the request. 
  6707.  
  6708.           CICS_EXIT_BAD_ANCHOR 
  6709.                     The ECI uses FFST, and then continues processing the 
  6710.                     request. 
  6711.  
  6712.           CICS_EXIT_BAD_PARM 
  6713.                     The ECI uses FFST, and then continues processing the 
  6714.                     request. 
  6715.  
  6716.           user-defined 
  6717.                     User-defined return codes must have a value not less than 
  6718.                     CICS_EXIT_USER_BASE. The ECI uses FFST, and then continues 
  6719.                     processing the request. 
  6720.  
  6721.  
  6722. ΓòÉΓòÉΓòÉ 12.5. EPI exits reference ΓòÉΓòÉΓòÉ
  6723.  
  6724. In this section the following exits are discussed: 
  6725.  
  6726.  o CICS_EpiInitializeExit 
  6727.  o CICS_EpiTerminateExit 
  6728.  o CICS_EpiAddTerminalExit 
  6729.  o CICS_EpiTermIdExit 
  6730.  o CICS_EpiStartTranExit 
  6731.  o CICS_EpiReplyExit 
  6732.  o CICS_EpiDelTerminalExit 
  6733.  o CICS_EpiGetEventExit 
  6734.  o CICS_EpiSystemIdExit 
  6735.  o CICS_EpiTranFailedExit 
  6736.  
  6737.  Summary of EPI exits summarizes the exit names, the parameters passed to each 
  6738.  exit, and the possible return codes. 
  6739.  
  6740.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6741.   Γöé Table 8. Summary of EPI exits                         Γöé
  6742.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6743.   Γöé Function name       Γöé Parameters   Γöé Return codes:           Γöé
  6744.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6745.   Γöé CICS_EpiInitializeExit   Γöé Version    Γöé CICS_EXIT_OK           Γöé
  6746.   Γöé              Γöé Anchor     Γöé CICS_EXIT_NO_EXIT         Γöé
  6747.   Γöé              Γöé        Γöé CICS_EXIT_CANT_INIT_EXITS     Γöé
  6748.   Γöé              Γöé        Γöé user-defined           Γöé
  6749.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6750.   Γöé CICS_EpiTerminateExit   Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6751.   Γöé              Γöé        Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6752.   Γöé              Γöé        Γöé CICS_EXIT_BAD_STORAGE       Γöé
  6753.   Γöé              Γöé        Γöé user-defined           Γöé
  6754.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6755.   Γöé CICS_EpiAddTerminalExit  Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6756.   Γöé              Γöé NameSpace   Γöé CICS_EXIT_DONT_ADD_TERMINAL    Γöé
  6757.   Γöé              Γöé System     Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6758.   Γöé              Γöé NetName    Γöé CICS_EXIT_BAD_PARM        Γöé
  6759.   Γöé              Γöé DevType    Γöé user-defined           Γöé
  6760.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6761.   Γöé CICS_EpiTermIdExit     Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6762.   Γöé              Γöé TermIndex   Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6763.   Γöé              Γöé System     Γöé CICS_EXIT_BAD_PARM        Γöé
  6764.   Γöé              Γöé        Γöé user-defined           Γöé
  6765.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6766.   Γöé CICS_EpiStartTranExit   Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6767.   Γöé              Γöé TransId    Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6768.   Γöé              Γöé Data      Γöé CICS_EXIT_BAD_PARM        Γöé
  6769.   Γöé              Γöé Size      Γöé user-defined           Γöé
  6770.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6771.   Γöé CICS_EpiReplyExit     Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6772.   Γöé              Γöé TermIndex   Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6773.   Γöé              Γöé Data      Γöé CICS_EXIT_BAD_PARM        Γöé
  6774.   Γöé              Γöé Size      Γöé user_defined           Γöé
  6775.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6776.   Γöé CICS_EpiDelTerminalExit  Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6777.   Γöé              Γöé TermIndex   Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6778.   Γöé              Γöé        Γöé CICS_EXIT_BAD_PARM        Γöé
  6779.   Γöé              Γöé        Γöé user_defined           Γöé
  6780.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6781.   Γöé CICS_EpiGetEventExit    Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6782.   Γöé              Γöé TermIndex   Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6783.   Γöé              Γöé Wait      Γöé CICS_EXIT_BAD_PARM        Γöé
  6784.   Γöé              Γöé Event     Γöé user_defined           Γöé
  6785.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6786.   Γöé CICS_EpiSystemIdExit    Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6787.   Γöé              Γöé NameSpace   Γöé CICS_EXIT_DONT_ADD_TERMINAL    Γöé
  6788.   Γöé              Γöé System     Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6789.   Γöé              Γöé NetName    Γöé CICS_EXIT_BAD_PARM        Γöé
  6790.   Γöé              Γöé DevType    Γöé user_defined           Γöé
  6791.   Γöé              Γöé FailedSystem  Γöé                  Γöé
  6792.   Γöé              Γöé Reason     Γöé                  Γöé
  6793.   Γöé              Γöé SubReason   Γöé                  Γöé
  6794.   Γöé              Γöé UserId     Γöé                  Γöé
  6795.   Γöé              Γöé PassWord    Γöé                  Γöé
  6796.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6797.   Γöé CICS_EpiTranFailedExit   Γöé Anchor     Γöé CICS_EXIT_OK           Γöé
  6798.   Γöé              Γöé TermIndex   Γöé CICS_EXIT_BAD_ANCHOR       Γöé
  6799.   Γöé              Γöé Wait      Γöé CICS_EXIT_BAD_PARM        Γöé
  6800.   Γöé              Γöé Event     Γöé user_defined           Γöé
  6801.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6802.  
  6803.  
  6804. ΓòÉΓòÉΓòÉ 12.5.1. CICS_EpiInitializeExit ΓòÉΓòÉΓòÉ
  6805.  
  6806. CICS_EpiInitializeExit 
  6807.  
  6808. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6809. Γöé CICS_EpiInitializeExit         Γöé Version                Γöé
  6810. Γöé                    Γöé Anchor                Γöé
  6811. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6812.  
  6813.  Purpose 
  6814.  
  6815.           To allow the user to set up an exit environment. 
  6816.  
  6817.  When called 
  6818.  
  6819.           On each invocation of CICS_EpiInitialize, after the EPI has validated 
  6820.           the parameters. 
  6821.  
  6822.  Parameters 
  6823.  
  6824.           Version 
  6825.                     Input parameter. The version of the EPI under which the 
  6826.                     exit is running. 
  6827.  
  6828.           Anchor 
  6829.                     Output parameter. A pointer to a pointer that will be 
  6830.                     passed to the EPI exits. The second pointer is not used by 
  6831.                     the EPI; it is passed to the exits as supplied. You can 
  6832.                     acquire storage in this exit and pass its address to the 
  6833.                     other exits. 
  6834.  
  6835.  Return codes 
  6836.  
  6837.           CICS_EXIT_OK 
  6838.                     The EPI continues processing this request, calling the 
  6839.                     exits where appropriate. 
  6840.  
  6841.           CICS_EXIT_NO_EXIT 
  6842.                     The EPI continues processing this request, but does not 
  6843.                     call any more exits. 
  6844.  
  6845.           CICS_EXIT_CANT_INIT_EXITS 
  6846.                     The EPI uses FFST, and then continues processing this 
  6847.                     request, but does not call any more exits. 
  6848.  
  6849.           user-defined 
  6850.                     User-defined return codes must have a value not less than 
  6851.                     CICS_EXIT_USER_BASE. The EPI uses FFST, and then continues 
  6852.                     processing this request, but does not call any more exits. 
  6853.  
  6854.  
  6855. ΓòÉΓòÉΓòÉ 12.5.2. CICS_EpiTerminateExit ΓòÉΓòÉΓòÉ
  6856.  
  6857. CICS_EpiTerminateExit 
  6858.  
  6859. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6860. Γöé CICS_EpiTerminateExit         Γöé Anchor                Γöé
  6861. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6862.  
  6863.  Purpose 
  6864.  
  6865.           To allow the user to clean up the exit environment. Any storage 
  6866.           acquired by CICS_EpiInitializeExit must be released in this exit. 
  6867.  
  6868.  When called 
  6869.  
  6870.           On each invocation of CICS_EpiTerminate, after the EPI has validated 
  6871.           the parameters. 
  6872.  
  6873.  Parameters 
  6874.  
  6875.           Anchor 
  6876.                     Input parameter. The pointer set up by 
  6877.                     CICS_EpiInitializeExit. 
  6878.  
  6879.  Return codes 
  6880.  
  6881.           CICS_EXIT_OK 
  6882.                     Termination continues. 
  6883.  
  6884.           CICS_EXIT_BAD_ANCHOR 
  6885.                     The EPI uses FFST, and then continues with termination. 
  6886.  
  6887.           CICS_EXIT_BAD_STORAGE 
  6888.                     The EPI uses FFST, and then continues with termination. 
  6889.  
  6890.           user-defined 
  6891.                     User-defined return codes must have a value not less than 
  6892.                     CICS_EXIT_USER_BASE. The EPI uses FFST, and then continues 
  6893.                     with termination. 
  6894.  
  6895.  
  6896. ΓòÉΓòÉΓòÉ 12.5.3. CICS_EpiAddTerminalExit ΓòÉΓòÉΓòÉ
  6897.  
  6898. CICS_EpiAddTerminalExit 
  6899.  
  6900. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6901. Γöé CICS_EpiAddTerminalExit        Γöé Anchor                Γöé
  6902. Γöé                    Γöé NameSpace               Γöé
  6903. Γöé                    Γöé System                Γöé
  6904. Γöé                    Γöé NetName                Γöé
  6905. Γöé                    Γöé DevType                Γöé
  6906. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6907.  
  6908.  Purpose 
  6909.  
  6910.           To allow the user to select a server, or override the one passed to 
  6911.           CICS_EpiAddTerminal in the System parameter. 
  6912.  
  6913.  When called 
  6914.  
  6915.           On each invocation of CICS_EpiAddTerminal, after the EPI has 
  6916.           validated the parameters. 
  6917.  
  6918.  Parameters 
  6919.  
  6920.           Anchor 
  6921.                     Input parameter. The pointer storage set up by 
  6922.                     CICS_EpiInitializeExit. 
  6923.  
  6924.           NameSpace 
  6925.                     Input-output parameter. On input, its value depends on the 
  6926.                     value supplied for the NameSpace parameter of the 
  6927.                     CICS_EpiAddTerminal call to which this exit relates: 
  6928.  
  6929.              o If a null pointer was supplied, this input is a pointer to a 
  6930.                null string. 
  6931.  
  6932.              o If a non-null pointer was supplied, this input is that pointer. 
  6933.                     On output, it will be used by the EPI in the same way as 
  6934.                     the value specified on the call would have been used. 
  6935.  
  6936.           System 
  6937.                     Input-output parameter. On input, it is the value supplied 
  6938.                     for the System parameter of the CICS_EpiAddTerminal call to 
  6939.                     which this exit relates. On output, it will be used by the 
  6940.                     EPI in the same way as the value specified on the call 
  6941.                     would have been used. 
  6942.  
  6943.           NetName 
  6944.                     Input-output parameter. On input, it is the value supplied 
  6945.                     for the NetName parameter of the CICS_EpiAddTerminal call 
  6946.                     to which this exit relates. On output, it will be used by 
  6947.                     the EPI in the same way as the value specified on the call 
  6948.                     would have been used. 
  6949.  
  6950.           DevType 
  6951.                     Input-output parameter. On input, it is the value supplied 
  6952.                     for the DevType parameter of the CICS_EpiAddTerminal call 
  6953.                     to which this exit relates. On output, it will be used by 
  6954.                     the EPI in the same way as the value specified on the call 
  6955.                     would have been used. 
  6956.  
  6957.  Return codes 
  6958.  
  6959.           CICS_EXIT_OK 
  6960.                     Processing continues with the output values of NameSpace, 
  6961.                     System, NetName, and DevType. 
  6962.  
  6963.           CICS_EXIT_DONT_ADD_TERMINAL 
  6964.                     The CICS_EpiAddTerminal is ended with a return code of 
  6965.                     CICS_EPI_ERR_FAILED. If the application uses 
  6966.                     CICS_EpiGetSysError, the value 5 is returned in the Value 
  6967.                     field of the CICS_EpiSysError_t structure. 
  6968.  
  6969.           CICS_EXIT_BAD_ANCHOR 
  6970.                     The EPI uses FFST, and then continues as for CICS_EXIT_OK. 
  6971.  
  6972.           CICS_EXIT_BAD_PARM 
  6973.                     The EPI uses FFST, and then continues as for CICS_EXIT_OK. 
  6974.  
  6975.           user-defined 
  6976.                     User-defined return codes must have a value not less than 
  6977.                     CICS_EXIT_USER_BASE. The EPI uses FFST, and then continues 
  6978.                     as for CICS_EXIT_OK. 
  6979.  
  6980.  
  6981. ΓòÉΓòÉΓòÉ 12.5.3.1. Note on selection of systems ΓòÉΓòÉΓòÉ
  6982.  
  6983. If the calling application does not specify system name in its parameter list, 
  6984. then it is expecting that the system will be dynamically selected, and the exit 
  6985. may safely select the system. 
  6986.  
  6987. If however the calling application specifies a system name, then it may not be 
  6988. expecting the target system to change and application errors could result. In 
  6989. this case the exit would generally not specify a replacement system, with the 
  6990. result that the specified or default system name, device type, etc. is to be 
  6991. used. If the exit chooses to change the selected system in this situation, then 
  6992. it may do so, but the following should be borne in mind. 
  6993.  
  6994.           o The exit routine must be sensitive to whether or not the 
  6995.             modification of the target system will cause errors in the EPI 
  6996.             application running on the client. 
  6997.  
  6998.           o The exit routine must maintain a knowledge base, keyed on 
  6999.             appropriate data available to it, to enable it to determine whether 
  7000.             this modification is acceptable to the client application. 
  7001.  
  7002.  
  7003. ΓòÉΓòÉΓòÉ 12.5.3.2. CICS_EpiAddTerminalExit and CICS_EpiSystemIdExit ΓòÉΓòÉΓòÉ
  7004.  
  7005. The relationship between these exits is as follows. The exits will get multiple 
  7006. chances to make a selection of the system. The first chance will always occur 
  7007. on the CICS_EpiAddTerminalExit. This exit will only receive the parameters 
  7008. passed by the application to CICS_EpiAddTerminal. If an error occurs when CICS 
  7009. tries to add the terminal (whether or not the exit has made a selection) then 
  7010. CICS_EpiSystemIdExit will be called. CICS_EpiSystemIdExit will additionally be 
  7011. passed the error that occurred on the attempt to add the terminal, and will get 
  7012. a chance to correct the error. This continues to occur until either a terminal 
  7013. is successfully added, or until CICS_EpiSystemIdExit signals to give up. 
  7014.  
  7015. If no error occurs on the attempt to add the terminal, then 
  7016. CICS_EpiSystemIdExit will not be called. 
  7017.  
  7018.  
  7019. ΓòÉΓòÉΓòÉ 12.5.4. CICS_EpiTermIdExit ΓòÉΓòÉΓòÉ
  7020.  
  7021. CICS_EpiTermIdExit 
  7022.  
  7023. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7024. Γöé CICS_EpiTermIdExit           Γöé Anchor                Γöé
  7025. Γöé                    Γöé TermIndex               Γöé
  7026. Γöé                    Γöé System                Γöé
  7027. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7028.  
  7029.  Purpose 
  7030.  
  7031.           To allow the user to know the terminal index allocated after a 
  7032.           successfull call to CICS_EpiAddTerminal. 
  7033.  
  7034.  When called 
  7035.  
  7036.           On each invocation of CICS_EpiAddTerminal, after the server has 
  7037.           allocated the terminal. 
  7038.  
  7039.  Parameters 
  7040.  
  7041.           Anchor 
  7042.                     Input parameter. The pointer storage set up by 
  7043.                     CICS_EpiInitializeExit. 
  7044.  
  7045.           TermIndex 
  7046.                     Input parameter. A pointer to the terminal index for the 
  7047.                     terminal resource just reserved or installed. 
  7048.  
  7049.           System 
  7050.                     Input parameter. A pointer to a null-terminated string that 
  7051.                     specifies the name of the server in which the terminal 
  7052.                     resource has been reserved or installed. 
  7053.  
  7054.  Return codes 
  7055.  
  7056.           CICS_EXIT_OK 
  7057.                     Processing continues. 
  7058.  
  7059.           CICS_EXIT_BAD_ANCHOR 
  7060.                     The EPI uses FFST, and then continues as for CICS_EXIT_OK. 
  7061.  
  7062.           CICS_EXIT_BAD_PARM 
  7063.                     The EPI uses FFST, and then continues as for CICS_EXIT_OK. 
  7064.  
  7065.           user-defined 
  7066.                     User-defined return codes must have a value not less than 
  7067.                     CICS_EXIT_USER_BASE. The EPI uses FFST, and then continues 
  7068.                     as for CICS_EXIT_OK. 
  7069.  
  7070.  
  7071. ΓòÉΓòÉΓòÉ 12.5.5. CICS_EpiStartTranExit ΓòÉΓòÉΓòÉ
  7072.  
  7073. CICS_EpiStartTranExit 
  7074.  
  7075. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7076. Γöé CICS_EpiStartTranExit         Γöé Anchor                Γöé
  7077. Γöé                    Γöé TransId                Γöé
  7078. Γöé                    Γöé Data                 Γöé
  7079. Γöé                    Γöé Size                 Γöé
  7080. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7081.  
  7082.  Purpose 
  7083.  
  7084.           To allow the user to see when a transaction is started, for 
  7085.           information gathering purposes. This exit will not select a system, 
  7086.           and has no return data. 
  7087.  
  7088.  When called 
  7089.  
  7090.           On invocation of CICS_EpiStartTran, after the EPI has validated the 
  7091.           parameters. 
  7092.  
  7093.  Parameters 
  7094.  
  7095.           Anchor 
  7096.                     Input parameter. The pointer set up by 
  7097.                     CICS_EpiInitializeExit. 
  7098.  
  7099.           TransId 
  7100.                     Input parameter. The value supplied for the TransId 
  7101.                     parameter of the CICS_EpiStartTran call to which this exit 
  7102.                     relates. 
  7103.  
  7104.           Data 
  7105.                     Input parameter. The value supplied for the Data parameter 
  7106.                     of the CICS_EpiStartTran call to which this exit relates. 
  7107.  
  7108.           Size 
  7109.                     Input parameter. The value supplied for the Size parameter 
  7110.                     of the CICS_EpiStartTran call to which this exit relates. 
  7111.  
  7112.  Return codes 
  7113.  
  7114.           CICS_EXIT_OK 
  7115.                     Processing of the CICS_EpiStartTran call continues. 
  7116.  
  7117.           CICS_EXIT_BAD_ANCHOR 
  7118.                     The EPI uses FFST, and then processing of the 
  7119.                     CICS_EpiStartTran call continues. 
  7120.  
  7121.           CICS_EXIT_BAD_PARM 
  7122.                     The EPI uses FFST, and then processing of the 
  7123.                     CICS_EpiStartTran call continues. 
  7124.  
  7125.           user-defined 
  7126.                     User-defined return codes must have a value not less than 
  7127.                     CICS_EXIT_USER_BASE. The EPI uses FFST, and then processing 
  7128.                     of the CICS_EpiStartTran call continues. 
  7129.  
  7130.  
  7131. ΓòÉΓòÉΓòÉ 12.5.6. CICS_EpiReplyExit ΓòÉΓòÉΓòÉ
  7132.  
  7133. CICS_EpiReplyExit 
  7134.  
  7135. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7136. Γöé CICS_EpiReplyExit           Γöé Anchor                Γöé
  7137. Γöé                    Γöé TermIndex               Γöé
  7138. Γöé                    Γöé Data                 Γöé
  7139. Γöé                    Γöé Size                 Γöé
  7140. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7141.  
  7142.  Purpose 
  7143.  
  7144.           To allow the user to see when a transaction is replied to, for 
  7145.           information gathering purposes. 
  7146.  
  7147.  When called 
  7148.  
  7149.           On invocation of CICS_EpiReply, after the EPI has validated the 
  7150.           parameters. 
  7151.  
  7152.  Parameters 
  7153.  
  7154.           Anchor 
  7155.                     Input parameter. The pointer set up by 
  7156.                     CICS_EpiInitializeExit. 
  7157.  
  7158.           TermIndex 
  7159.                     Input parameter. The value supplied for the TermIndex 
  7160.                     parameter of the CICS_EpiReply call to which this exit 
  7161.                     relates. 
  7162.  
  7163.           Data 
  7164.                     Input parameter. The value supplied for the Data parameter 
  7165.                     of the CICS_EpiReply call to which this exit relates. 
  7166.  
  7167.           Size 
  7168.                     Input parameter. The value supplied for the Size parameter 
  7169.                     of the CICS_EpiReply call to which this exit relates. 
  7170.  
  7171.  Return codes 
  7172.  
  7173.           CICS_EXIT_OK 
  7174.                     Processing of the CICS_EpiReply call continues. 
  7175.  
  7176.           CICS_EXIT_BAD_ANCHOR 
  7177.                     The EPI uses FFST, and then processing of the CICS_EpiReply 
  7178.                     call continues. 
  7179.  
  7180.           CICS_EXIT_BAD_PARM 
  7181.                     The EPI uses FFST, and then processing of the CICS_EpiReply 
  7182.                     call continues. 
  7183.  
  7184.           user-defined 
  7185.                     User-defined return codes must have a value not less than 
  7186.                     CICS_EXIT_USER_BASE. The EPI uses FFST, and then processing 
  7187.                     of the CICS_EpiReply call continues. 
  7188.  
  7189.  
  7190. ΓòÉΓòÉΓòÉ 12.5.7. CICS_EpiDelTerminalExit ΓòÉΓòÉΓòÉ
  7191.  
  7192. CICS_EpiDelTerminalExit 
  7193.  
  7194. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7195. Γöé CICS_EpiDelTerminalExit        Γöé Anchor                Γöé
  7196. Γöé                    Γöé TermIndex               Γöé
  7197. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7198.  
  7199.  Purpose 
  7200.  
  7201.           To allow the user to clean up any terminal-related data structures. 
  7202.  
  7203.  When called 
  7204.  
  7205.           On invocation of CICS_EpiDelTerminal, after the EPI has validated the 
  7206.           parameters. 
  7207.  
  7208.  Parameters 
  7209.  
  7210.           Anchor 
  7211.                     Input parameter. The pointer set up by 
  7212.                     CICS_EpiInitializeExit. 
  7213.  
  7214.           TermIndex 
  7215.                     Input parameter. The value supplied for the TermIndex 
  7216.                     parameter of the CICS_EpiDelTerminal call to which this 
  7217.                     exit relates. 
  7218.  
  7219.  Return codes 
  7220.  
  7221.           CICS_EXIT_OK 
  7222.                     Processing of the CICS_EpiDelTerminal call continues. 
  7223.  
  7224.           CICS_EXIT_BAD_ANCHOR 
  7225.                     The EPI uses FFST, and then processing of the 
  7226.                     CICS_EpiDelTerminal call continues. 
  7227.  
  7228.           CICS_EXIT_BAD_PARM 
  7229.                     The EPI uses FFST, and then processing of the 
  7230.                     CICS_EpiDelTerminal call continues. 
  7231.  
  7232.           user-defined 
  7233.                     User-defined return codes must have a value not less than 
  7234.                     CICS_EXIT_USER_BASE. The EPI uses FFST, and then processing 
  7235.                     of the CICS_EpiDelTerminal call continues. 
  7236.  
  7237.  
  7238. ΓòÉΓòÉΓòÉ 12.5.8. CICS_EpiGetEventExit ΓòÉΓòÉΓòÉ
  7239.  
  7240. CICS_EpiGetEventExit 
  7241.  
  7242. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7243. Γöé CICS_EpiGetEventExit          Γöé Anchor                Γöé
  7244. Γöé                    Γöé TermIndex               Γöé
  7245. Γöé                    Γöé Wait                 Γöé
  7246. Γöé                    Γöé Event                 Γöé
  7247. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7248.  
  7249.  Purpose 
  7250.  
  7251.           To allow the user to collect data relating to the event that has 
  7252.           arrived. 
  7253.  
  7254.  When called 
  7255.  
  7256.           Immediately before CICS_EpiGetEvent returns to the caller. The exit 
  7257.           can then examine the data returned, time the response from the 
  7258.           system, etc. 
  7259.  
  7260.  Parameters 
  7261.  
  7262.           Anchor 
  7263.                     Input parameter. The pointer set up by 
  7264.                     CICS_EpiInitializeExit. 
  7265.  
  7266.           TermIndex 
  7267.                     Input parameter. The value to be returned to the 
  7268.                     application in the TermIndex parameter of the 
  7269.                     CICS_EpiGetEvent call to which this exit relates. 
  7270.  
  7271.           Wait 
  7272.                     Input parameter. The value supplied for the Wait parameter 
  7273.                     of the CICS_EpiGetEvent call to which this exit relates. 
  7274.  
  7275.           Event 
  7276.                     Input parameter. The value to be returned to the 
  7277.                     application in the Event parameter of the CICS_EpiGetEvent 
  7278.                     call to which this exit relates. 
  7279.  
  7280.  Return codes 
  7281.  
  7282.           CICS_EXIT_OK 
  7283.                     Processing of the CICS_EpiGetEvent call continues. 
  7284.  
  7285.           CICS_EXIT_BAD_ANCHOR 
  7286.                     The EPI uses FFST, and then processing of the 
  7287.                     CICS_EpiGetEvent call continues. 
  7288.  
  7289.           CICS_EXIT_BAD_PARM 
  7290.                     The EPI uses FFST, and then processing of the 
  7291.                     CICS_EpiGetEvent call continues. 
  7292.  
  7293.           user-defined 
  7294.                     User-defined return codes must have a value not less than 
  7295.                     CICS_EXIT_USER_BASE. The EPI uses FFST, and then processing 
  7296.                     of the CICS_EpiGetEvent call continues. 
  7297.  
  7298.  
  7299. ΓòÉΓòÉΓòÉ 12.5.9. CICS_EpiSystemIdExit ΓòÉΓòÉΓòÉ
  7300.  
  7301. CICS_EpiSystemIdExit 
  7302.  
  7303. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7304. Γöé CICS_EpiSystemIdExit          Γöé Anchor                Γöé
  7305. Γöé                    Γöé NameSpace               Γöé
  7306. Γöé                    Γöé System                Γöé
  7307. Γöé                    Γöé NetName                Γöé
  7308. Γöé                    Γöé DevType                Γöé
  7309. Γöé                    Γöé FailedSystem             Γöé
  7310. Γöé                    Γöé Reason                Γöé
  7311. Γöé                    Γöé SubReason               Γöé
  7312. Γöé                    Γöé UserId                Γöé
  7313. Γöé                    Γöé PassWord               Γöé
  7314. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7315.  
  7316.  Purpose 
  7317.  
  7318.           To allow the user to supply a new system name when the value supplied 
  7319.           for CICS_Epi_AddTerminal was invalid. 
  7320.  
  7321.  When called 
  7322.  
  7323.           Immediately before CICS_EpiAddTerminal returns to the application 
  7324.           when an error occurred while trying to add the terminal. The error 
  7325.           can be CICS_EPI_ERR_SYSTEM or CICS_EPI_ERR_FAILED. It occurs whether 
  7326.           or not CICS_EpiAddTerminalExit has been called previously. 
  7327.  
  7328.           Note:  On some systems the completion of CICS_EpiAddTerminal is 
  7329.                  returned to the application asynchronously, and in this case 
  7330.                  this exit will be called asynchronously. 
  7331.  
  7332.  Parameters 
  7333.  
  7334.           Anchor 
  7335.                     Input parameter. The pointer set up by 
  7336.                     CICS_EpiInitializeExit. 
  7337.  
  7338.           NameSpace 
  7339.                     Input-output parameter. The NameSpace parameter used in the 
  7340.                     failed CICS_EpiAddTerminal. 
  7341.  
  7342.           System 
  7343.                     Input-output parameter. The System parameter used in the 
  7344.                     failed CICS_EpiAddTerminal. 
  7345.  
  7346.           NetName 
  7347.                     Input-output parameter. The NetName parameter used in the 
  7348.                     failed CICS_EpiAddTerminal. 
  7349.  
  7350.           DevType 
  7351.                     Input-output parameter. The DevType parameter used in the 
  7352.                     failed CICS_EpiAddTerminal. 
  7353.  
  7354.           FailedSystem 
  7355.                     Input parameter. The identifier of the system on which the 
  7356.                     failure occurred. 
  7357.  
  7358.           Reason 
  7359.                     Input parameter. The reason for the failure:. 
  7360.                     CICS_EPI_ERR_SYSTEM  or CICS_EPI_ERR_FAILED. 
  7361.  
  7362.           SubReason 
  7363.                     Input parameter. More about the failure. If the reason is 
  7364.                     CICS_EPI_ERR_FAILED, this is the value that appears in the 
  7365.                     Cause field of the CICS_EpiSysError_t structure. 
  7366.  
  7367.           UserId 
  7368.                     Output parameter. Not used. 
  7369.  
  7370.           PassWord 
  7371.                     Output parameter. Not used. 
  7372.  
  7373.  Return codes 
  7374.  
  7375.           CICS_EXIT_OK 
  7376.                     The EPI will retry the CICS_EpiAddTerminal call using the 
  7377.                     values specified as output of this exit. Note that in this 
  7378.                     case the considerations described in 
  7379.                     CICS_EpiAddTerminalExit apply. 
  7380.  
  7381.           CICS_EXIT_DONT_ADD_TERMINAL 
  7382.                     The CICS_EpiAddTerminal is ended with a return code of 
  7383.                     CICS_EPI_ERR_FAILED. If the application uses 
  7384.                     CICS_EpiGetSysError, the value 5 is returned in the Value 
  7385.                     field of the CICS_EpiSysError_t structure. 
  7386.  
  7387.           CICS_EXIT_BAD_ANCHOR 
  7388.                     The EPI uses FFST, and then the error that caused the exit 
  7389.                     to be called is returned to the application. 
  7390.  
  7391.           CICS_EXIT_BAD_PARM 
  7392.                     The EPI uses FFST, and then the error that caused the exit 
  7393.                     to be called is returned to the application. 
  7394.  
  7395.           user-defined 
  7396.                     User-defined return codes must have a value not less than 
  7397.                     CICS_EXIT_USER_BASE. The EPI uses FFST, and then the error 
  7398.                     that caused the exit to be called is returned to the 
  7399.                     application. 
  7400.           Retry the CICS_EpiAddTerminal call using the system specified as 
  7401.           output of this exit. Note that in this case the considerations 
  7402.           described in CICS_EpiAddTerminalExit apply. 
  7403.  
  7404.  
  7405. ΓòÉΓòÉΓòÉ 12.5.10. CICS_EpiTranFailedExit ΓòÉΓòÉΓòÉ
  7406.  
  7407. CICS_EpiTranFailedExit 
  7408.  
  7409. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7410. Γöé CICS_EpiTranFailedExit         Γöé Anchor                Γöé
  7411. Γöé                    Γöé TermIndex               Γöé
  7412. Γöé                    Γöé Wait                 Γöé
  7413. Γöé                    Γöé Event                 Γöé
  7414. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7415.  
  7416.  Purpose 
  7417.  
  7418.           To allow the user to collect data when a transaction abends or a 
  7419.           terminal fails. 
  7420.  
  7421.  When called 
  7422.  
  7423.           Immediately before CICS_EpiGetEvent returns to the caller, with or 
  7424.           without GetEventExit, when the event is CICS_EPI_EVENT_END_TRAN, and 
  7425.           the AbendCode field is not blank. 
  7426.  
  7427.           Note that there are some failures on remote systems that can occur 
  7428.           and will simply cause the presentation of a 3270 data stream with an 
  7429.           error message and no abend code in the CICS_EPI_EVENT_END_TRAN. This 
  7430.           error message may not even occur on the same event as the 
  7431.           CICS_EPI_EVENT_END_TRAN. If the exit requires to handle this 
  7432.           situation, it may monitor it through CICS_EpiGetEventExit and scan 
  7433.           the appropriate 3270 data streams. 
  7434.  
  7435.  Parameters 
  7436.  
  7437.           Anchor 
  7438.                     Input parameter. The pointer set up by 
  7439.                     CICS_EpiInitializeExit. 
  7440.  
  7441.           TermIndex 
  7442.                     Input parameter. The value to be returned to the 
  7443.                     application in the TermIndex parameter of the 
  7444.                     CICS_EpiGetEvent call to which this exit relates. 
  7445.  
  7446.           Wait 
  7447.                     Input parameter. The value supplied for the Wait parameter 
  7448.                     of the CICS_EpiGetEvent call to which this exit relates. 
  7449.  
  7450.           Event 
  7451.                     Input parameter. The value to be returned to the 
  7452.                     application in the Event parameter of the CICS_EpiGetEvent 
  7453.                     call to which this exit relates. 
  7454.  
  7455.  Return codes 
  7456.  
  7457.           CICS_EXIT_OK 
  7458.                     Processing of the CICS_EpiGetEvent call continues. 
  7459.  
  7460.           CICS_EXIT_BAD_ANCHOR 
  7461.                     The EPI uses FFST, and then processing of the 
  7462.                     CICS_EpiGetEvent call continues. 
  7463.  
  7464.           CICS_EXIT_BAD_PARM 
  7465.                     The EPI uses FFST, and then processing of the 
  7466.                     CICS_EpiGetEvent call continues. 
  7467.  
  7468.           user-defined 
  7469.                     User-defined return codes must have a value not less than 
  7470.                     CICS_EXIT_USER_BASE. The EPI uses FFST, and then processing 
  7471.                     of the CICS_EpiGetEvent call continues. 
  7472.  
  7473.  
  7474. ΓòÉΓòÉΓòÉ 12.6. Diagnostic information ΓòÉΓòÉΓòÉ
  7475.  
  7476. CICS will trace the input parameters to the exits immediately before they are 
  7477. called, and the output of the exit when the exit returns. CICS tracing will not 
  7478. be available for use within the exit. 
  7479.  
  7480.  
  7481. ΓòÉΓòÉΓòÉ 13. Sending your comments to IBM ΓòÉΓòÉΓòÉ
  7482.  
  7483. If you especially like or dislike anything about this book, please use one of 
  7484. the methods listed below to send your comments to IBM. 
  7485.  
  7486. Feel free to comment on what you regard as specific errors or omissions, and on 
  7487. the accuracy, organization, subject matter, or completeness of this book. 
  7488.  
  7489. Please limit your comments to the information in this book and the way in which 
  7490. the information is presented. 
  7491.  
  7492. To request additional publications, or to ask questions or make comments about 
  7493. the functions of IBM products or systems, you should talk to your IBM 
  7494. representative or to your IBM authorized remarketer. 
  7495.  
  7496. When you send comments to IBM, you grant IBM a nonexclusive right to use or 
  7497. distribute your comments in any way it believes appropriate, without incurring 
  7498. any obligation to you. 
  7499.  
  7500. You can send your comments to IBM in any of the following ways: 
  7501.  
  7502.  o By fax: 
  7503.  
  7504.     - From outside the U.K., after your international access code use 44 1962 
  7505.       870229 
  7506.     - From within the U.K., use 01962 870229 
  7507.  
  7508.  o Electronically, use the appropriate network ID: 
  7509.  
  7510.     - IBM Mail Exchange:  GBIBM2Q9 at IBMMAIL 
  7511.     - IBMLink:  WINVMD(IDRCF) 
  7512.     - Internet:  idrcf@winvmd.vnet.ibm.com 
  7513.  
  7514.  Whichever you use, ensure that you include: 
  7515.  
  7516.  o The publication number and title 
  7517.  o The page number or topic to which your comment applies 
  7518.  o Your name and address/telephone number/fax number/network ID. 
  7519.