Advantages of ILE:  RPG IV is more readable  Allows for greater application modularity with static binding which means there are fewer external calls.  Enhances programmer productivity by allowing greater code re use.  Enhances mixed language support by allowing the binding ILE languages into a single program. Builds a foundation for the future by moving closer to object oriented design, modular programming and code reuse. Activation Groups: Activation group is the environment where the ILE jobs are executed. You can specify the activation group in CRTPGM or CRTSRVPGM command. There are three possible values for Activation Group parameter. 1.Name, 2.New and 3.Caller. You cannot create the activation group by command CRTACTGRP. For the program activation group is : Name, Default activation group(*NO)if to use ILE goodies, or Yes for OPM model. For service program, DFTACTGRP(*Caller), can be *NEW or by name. Activation group is a substructure of job and the substructure contains the resources required for successful execution of program. How ILE activation groups are created and deleted Currently, ILE activation groups can only be created implicitly. When you create an ILE program, you specify the activation group in which the program will run on the ACTGRP parameter. If, when the program is called, the activation group does not yet exist, it will be created automatically by the system. (Remember, the default activation group is created when the job is started.) It is important to keep in mind that an activation group is part of a job; it cannot be accessed by other jobs. ILE activation groups have many benefits over the default activation group: Protection of shared resources from other programs and applications. Resources such as shared open data paths for files, can be shared among all programs in activation group, while being protected from other programs running in the same job. Scoping (Restricting) of file overrides and commitment control scope. Easy to cleanup a group of programs, You can clean up active programs and open files with in an activation group using the RCLACTGRP command. Other active programs running in the same job will not be affected. SUBPROCEDURES & PROTOTYPES: A subprocedure is a procedure specified after the main section. It can only be called using a bound call. Subprocedure do not use the RPG cycle while running. All subprocedures have a corresponding PROTOTYPE in the D-spec which ensures proper procedure or program call with correct parameters. Subprocedure without a main procedure is called a NOMAIN module. You can pass parameters to a subprocedure. Names defined in the subprocedure are not visible outside the subprocedure. msreddy Page 1

(I'm not sure if my tip will work without Client Access. This makes a procedure "stand alone". But where the code in a subroutine is all global. I think there may still be cases for using CALLB.EXE object as long as you know the path! The STRPCO command is part of Client Access. knowing what to pass in. Though CALLP should be the main CALL. a CALLP executes some functional code that is intended to be executed more than once. and what should be expected in return with almost no regard for the code being executed under the covers. These record images are used to recover the changes in the file when system ends abnormally. It's shop-dependent & standards-dependent. the code in a procedure is private which means that procedures are much like the opcodes that we use. etc. CALLB and CALLP are static calls.. a procedure can see variables that it defines. inheritance and binding. We expect them to work certain ways.EXE') ENDPGM You can call any PC . CALLP a program or module is bind in the program so it is static. CALLP is a more natural opcode for use with modern programs.) CALLP is the best call to use because it best captures the ideas of encapsulation. PGM STRPCO PCTA(*YES) STRPCCMD PCCMD('C:WINNTSYSTEM32CALC.. A procedure is encapsulated. A module is having more than one procedure then we can give explicitly the procedure name to be called in case of CALLP out of these three CALLP is the most efficient one.F? Ans) No QL40072 AL40072 What is journaling and commitment control? Journaling is a function which records the changes in a file in a journal. (Using the CALLB. but not variables that the main program defines. you can call the Windows standard calculator program. Can we use commitment control for non-join L. and can be used in other programs with little modification (modification required for any File I/O may be required) It can be extremely difficult to copy a subroutine to another program. That is. Difference between Procedure and Subroutine. Like EXSR. and what these are supposed to be set for. From a CL. That is. A module is a non-executable program and it contains one or more procedures.) Commitment Control: Commitment control is used to process file operations as a group. Commitment control is a function that allows msreddy Page 2 . Commitment control is to save set of transactions done on a file. This makes it a lot easier to determine what a procedure is actually doing and where it's getting it's return value(s). as you have to determine all the variables the subroutine uses. If you have modules without procedure then it means that it is having only one default procedure and in case we can use CALLB.You can call subprocedure recursively. which most iSeries shops have. where a subroutine is not.

If you choose this option. This type of naming convention is also useful if you choose to let the system manage the changing of your journal receivers CRTJRN 1. finally. Be sure to: o Place the journal receiver in a library that is saved regularly.you to define and process a no of changes to database files as a single unit (transaction). Makes all changes to the files that have been specified in output operation since the previous COMIT or the beginning of operations under commitment control(if there has been no previous COMIT or ROLBK operation). o Specify DLTRCV(*NO) only if you have overriding reasons to do so (for example. o Use the Manage receiver (MNGRCV) parameter to have the system change the journal receiver and attach a new one when the attached receiver becomes too large. Be sure to: o Specify the name of the journal receiver that you created in the first step. What are all the system objects required for journaling? Journal receiver. create the journal specifying the journal receiver created above: CRTJRN JRN(MYLIB/MYJRN) JRNRCV(MYJRNRCLIB/MYJRNRCV) Step3 And. o Choose a journal receiver name that can be used to create a naming convention for future journal receivers. Steps involved in implementing commitment control. if you need to save these journal receivers for recovery msreddy Page 3 . you do not need to use the CRTJRN command to detach receivers and create and attach new receivers manually. You can use the *GEN option to continue the naming convention when you change journal receivers. QS30073 AS30073 QS40074 AS40074 QL40199 AL40199 What is the purpose of STRCMTCTL command? Starts commitment control for files that are being journal led. start journaling on the physical file: STRJRNPF FILE(*LIBL/CCTESTPF) JRN(MYLIB/MYJRN) PGM Precautions to be taken while doing the above steps CRTJRNRCV 1. such as RCV0001. How do you use commitment control in RPG program ? Using COMIT operation. Step1 First create the journal receiver: CRTJRNRCV JRNRCV(MYJRNRCLIB/MYJRNRCV) Step2 Next. journal and PFs to be journal led.

Commitment control can ensure that complex application transactions are logically synchronized. then the changed programs may not produce consistent results during testing. then Fspec has to be continued for the particular file to incorporate KCOMIT. 2. 4.reasons). Study has to be done if to call the program STRCMTCTL as an IPL or invoke the program that implements commitment control before a particular maintenance program is called. Study has to be done if to COMIT the changes individually after every file operation or collectively after processing all records. STRJRNPF 1. Specify the name of the journal that you created in step 2. 5. even if the job or system ends. as in the following example: 2. JHL environment and BASTION objects must be attached to different journals. Start journaling the source table using the Start Journal Physical File (STRJRNPF) command. You can use two values on the RCVSIZOPT parameter of the CRTJRN command (*RMVINTENT and *MINFIXLEN) to optimize your storage availability and system performance. See the AS/400 Programming: Performance Tools Guide for more information.(Starting commitment control) STRCMTCTL LCKLVL(*CHG) CALL PGM(*LIBL/CCTEST2) COMMIT CALL PGM(*LIBL/CCTEST2) ROLLBACK ENDCMTCTL RETURN ENDPGM Points of concern while implementing commitment control in Bastion 1. OMTJRNE(*OPNCLO) 5. The Capture program requires a value of *BOTH for the IMAGES parameter. If we journal the files only in development box. add or delete. Brief notes on commitment control Commitment control lets you define and process a number of changes to database files in a single unit (transaction). IMAGES(*BOTH) 6. these receivers might be deleted before you have a chance to save them. If you specify DLTRCV(*YES). msreddy Page 4 . If any ILE or RPG program is performing any file operation such as Update. JRN(JRNLIB/DJRN1) 4. Till the completion of bastion code consolidation. If a decision has been made to journal all the files then space might be a constraint 6. A decision has to be made if to journal the files in all environments or to journal only the files in development box. The data integrity can be maintained using commitment control Step4 (Last step) . 3. STRJRNPF FILE(library/file) 3.

Any affected records that are still locked are then unlocked. Transactions can be classified as follows: • Inquiries in which no file changes occur. such as the transfer of funds from a savings account to a checking account. freeing the records. the program issues the commit operation. if the system or job ends abnormally during a complex transaction. journaling alone can ensure that. • Simple transactions in which one file is changed each time you press the Enter key. Difference between *Module and Service Program? Service Programs: A service program is a collection of runnable procedures and available data items easily and directly accessible by other ILE programs or service programs. What about if the service program is included in one binding directory? msreddy Page 5 . • Complex transactions in which two or more files are changed each time you press the Enter key. Programs cannot be restarted. What about if the service program is standing alone? 2. Commitment control helps solve these problems. At the end of the transaction. but only one update completed before the job ended abnormally. This ensures that other users do not use the records until the transaction is complete. the job may have updated a record in file A. Transactions A transaction is a group of changes that appear as a single change. For example. only the very last record change is lost. but before it updated a corresponding record in file B. database changes roll back to a clean transaction boundary. Hi guys. For example. there is one module which included in one service program has been updated. at most. the job ended abnormally. a service program is similar to a subroutine library or procedure library. • Complex transactions in which one or more files are changed each time you press the Enter key. Commitment control locks records from other users during a complex transaction. all record changes for that job since the last time a commit operation occurred are rolled back. so do I need to update/re-compile all those programs which use the service program? 1. These changes represent only part of a logical group of transactions. In other words. should the system end abnormally before performing the commit operation. such as database files on multiple systems. If the system or job ends abnormally.Two-phase commitment control ensures that committable resources. the files reflect an incomplete logical transaction. In this case. This task becomes more complex if multiple users were accessing the files at the same time. record changes may have to be made with an application program or data file utility to reverse the files to just before the last complex transaction began. the logical transaction consisted of two updates. Revisions made to files during transaction processing are journalled when using commitment control. However. Benefits of using commitment control Recovering a complex application requires detailed application knowledge. In many respects. However. remain synchronized.

you have to recompile programs that use the file or be prepared for a “format level check” error. 339. The signature can be thought of like a ‘format-level identifier’ of a file.You won't need to rebind if the procedures that are imported have the same parameters and the procedures are in the same order. Is module executable No You need to create an RPG prog to run the module 341. you can indicate a binding directory. When a file’s format-level ID changes. The format of the file has changed in a way that makes it incompatible with previous versions. The 0 character is treated as a wild card for the purposes of error monitoring. If you have modules without procedure then it means that it is having only one default procedure and in case we can use CALLB. CPF9999 will also catch other messages that are not prefixed with CPF. A service program is bound into a program or other service programs using binding by reference Binding Directory: A binding directory contains the names of modules and service programs that you may need when creating an ILE program or service program. What is service program? A Service Program is a collection of runnable procedures and available data items easily accessible by other ILE programs. The signature should then be the same. so CPF0000 says to monitor for any error. instead of specifying the module(s) and/or service program(s) that contain the necessary procedures. A service program differs from a program in two ways: It does not contain a program entry procedure. How do u compile RPGLE program Either thru 15 or crtrpgmod 340. MCH messages might occur and CPF9999 will catch those whereas CPF0000 will not. Modules or service programs listed in a binding directory are used only if they provide an export that can satisfy any currently unresolved import requests. A binding directory is a system object that is identified to the system by the symbol *BNDDIR. In many respects it is similar to a subroutine library and procedure library. msreddy Page 6 . This means that you cannot call a service program using the CALL operation. Module: A module is a non-executable program and it contains one or more procedures. What is procedure? A procedure is the set of self-contained high level language statements that can perform a particular task and then returns to a caller 342. When a program or service program is created.

How can i find a job whether it is a batch or interactive? The Retrieve Job Attributes (RTVJOBA) command is used in a CL program and TYPE attribute will tell Batch or Interactive. such as: MONMSG MSGID(CPF0000) -. e.g. you can monitor for a truly generic message.First. Trigger Programs: Batch processing and debug: Exit programs: Working knowledge of referential integrity.g. The file information data structure. which must be unique for each file.this will trap any message that begins with CPFxxxx. File exception by INFDS (INFSR) Program exception PSSR 24.: MONMSG MSGID(CPF9801 CPF9802 CPF9810) Next.typically this is used in a "global message monitor" statement at the start of the program. and ‘1’ indicates an interactive job.g.A program status data structure (PSDS) can be defined to make program exception/error information available to an RPG IV program. To handle program exception errors 25. therefore. Next. how to handle file exception and program exception. when to use and how to code? Must have experience with iSeries Security and how to use to ensure system security? INFDS. must be defined in the main source section.this will trap any message that begins with CPF98xx.: MONMSG MSGID(CPF0000 MCH0000) EXEC(GOTO ERROR) For these message IDs to be considered a "generic pattern" it must end in "00" or "0000".: MONMSG MSGID(CPF9801) Or you can monitor for a list of specific messages. you can monitor for a specific message. A PSDS contains predefined subfields that provide you with information about the program exception/error that occurred. -. e. *PSDS?? PSDS . The same INFDS is used by all procedures using the files. what is *PSSR. you can monitor for a whole group of related messages. The PSDS must be defined in the main source section. there is only one PSDS per module. using a "generic" designation such as: MONMSG MSGID(CPF9800) -. ‘0’ indicates that the job is running as a batch job. e. 23. What is *INFSR msreddy Page 7 . A data structure is defined as a PSDS by an S in position 23 of the data structure statement. INFDS – A file information data structure (INFDS) can be defined for each file to make file exception/error and file feedback information available to the program.

2. Because internal indicator MDT would be off. Retrieve Data Queue Message (QMHRDQM) retrieves an entry from a data queue without removing the entry. The purpose of SFLNXTCHG = Which is a subfile record format keyword. 5.10') TPOUT(TSTLIB/TSTFTPOUT) TBLFTPIN(TSTLIB/TSTFTPIN) msreddy Page 8 . 7. “User”. Send to a Data Queue (QSNDDTAQ) sends data to the specified data queue. Clear Data Queue (QCLRDTAQ) clears all entries from a data queue. STRTCPFTP RMTSYS(*INTNETADR) INTNETADR('128. FTP = STRTCPFTP (TCP File Transfer Program) In CL program use STRTCPFTP with parameters Like 1. 10. 4. STRTCPFTP RMTSYS(System name) 2. Once the job is released. Execute the command STRSRVJOB – Start Service Job. User. Debug a program in BATCH. Job Number. a screen is displayed which tells u to add the break points. Retrieve Data Queue Description (QMHQRDQD) retrieves information about a data queue. Take F10 and execute the command ADDBKP. Data Queue (DataQ) Create the data queue by using the Create Data Queue (CRTDTAQ) command. 1. Hold the JobQ (Eg: QBATCH) Submit the job. 4. the internal indicator MDT (modified data tag) is automatically set off by the system. If you again perform read on the same records. Hence you should be explicitly set on the MDT by SFLNXTCHG keyword. Hold the job – Take option 3 against the job in “Work with submitted jobs”. 3. 8. Receive Data Queue (QRCVDTAQ) receives data from the specified data queue. Input the Job Name. Then it is the normal way of debug using STRDBG.100.16. If you perform read on the subfile. Release the JobQ Take option 5 against the job to be debugged and make a note of the “Job Name”. records won't be read. STRDBG – Start Debug. 6. and “Job Number”.To handle File exception errors. 9. Release the job that is on hold – Take option 6 against the job on hold to release.

a formatted dump might not contain information for fields in the PSDS if the PSDS is not coded. A data structure is defined as a PSDS by an S in position 23 of the data structure statement. In order to access the subfields. since this information starts at byte 276. A PSDS contains predefined subfields that provide you with information about the program exception/error that occurred.PSDS A program status data structure (PSDS) can be defined to make program exception/error information available to an RPG IV program. For example. or the length of the PSDS does not include those fields. left-adjusted in positions 26 through 39. there is only one PSDS per module. in the dump. However. therefore. if the PSDS is only 275 bytes long. Link to what IBM says o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o Program Status Data Structure D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D D PROC_NAME PGM_STATUS PRV_STATUS LINE_NUM ROUTINE PARMS EXCP_TYPE EXCP_NUM PGM_LIB EXCP_DATA EXCP_ID DATE YEAR LAST_FILE FILE_INFO JOB_NAME USER JOB_NUM JOB_DATE RUN_DATE RUN_TIME CRT_DATE CRT_TIME CPL_LEVEL SRC_FILE SRC_LIB SRC_MBR PROC_PGM PROC_MOD CURR_USER SDS *PROC *STATUS 16 21 *ROUTINE *PARMS 40 43 81 91 171 191 199 201 209 244 254 264 270 276 282 288 294 300 304 314 324 334 344 358 20S 0 28 42 46 90 170 174 198 200S 208 243 253 263 269S 275S 281S 287S 293 299 303 313 323 333 343 353 367 0 0 0 0 0 Procedure name Status code Previous status Src list line nu Routine name Num passed parms Exception type Exception number Program library Exception data Exception Id Date (DATE fmt) Year (YEAR fmt) Last file used File error info Job name User name Job number Date (UDATE fmt) Run date (UDATE) Run time (UDATE) Create date Create time Compiler level Source file Source file lib Source file mbr Pgm Proc is in Mod Proc is in Mod Proc is in o o o Status codes *STATUS Normal Codes msreddy Page 9 . The PSDS must be defined in the main source section. The keywords must be specified. you assign a name to each subfield. The location of the subfields in the PSDS is defined by special keywords or by predefined From and To positions. the time and date or program running will appear as N/A. Information from the PSDS is also provided in a formatted dump.

Date overflow or underflow. An intermediate value is too small to be contained in the intermediate result field Invalid Date. Time or Timestamp value. Failure to convert sort sequence. Float underflow. halt indicator (H1 through H9) not on Error calling program or procedure Pointer or parameter error Called program or procedure returned with halt indicator on Halt indicator on in this program Halt indicator on when RETURN operation run RPG IV formatted dump failed Error on DSPLY operation Data area specified on IN/OUT not found PDA not valid for non-prestart job Data area type or length does not match Data area not locked for output Error on IN/OUT operation User not authorized to use data area User not authorized to change data area Error on UNLOCK operation Length requested for storage allocation is out of Error encountered during storage management Data area previously locked by another program Data area locked by program in the same process Character field not entirely enclosed by shift-out and shift-in characters Failure to retrieve sort sequence. Exception/Error Codes Code 00100 00101 00102 00103 00104 00112 00113 Condition Value out of range for string operation Negative square root Divide by zero An intermediate result is not large enough to contain the result. when the result of a Date calculation results in a number greater than HIVAL or less than LOVAL. Table or array out of sequence.) Date mapping errors. 4 range 00114 program range 00426 operation 00431 00432 00450 00501 00502 00802 00803 msreddy Page 10 .o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o Code 00000 00001 Condition No exception/error occurred Called program returned with the LR indicator on. where a Date is mapped from a character year to a 2 character year and the date 00120 00121 00122 00123 00202 00211 00222 00231 00232 00233 00299 00333 00401 00402 00411 00412 00413 00414 00415 00421 00425 is not 1940-2039. (For example. Array index not valid OCCUR outside of range Reset attempted during initialization step of Called program or procedure failed. Rollback operation failed. Commitment control not active.

must be defined in the main source section.o o o o o o o o o 00804 00805 00907 00970 09998 09999 Error occurred on COMMIT operation Error occurred on ROLBK operation Decimal data error (digit or sign not valid) The level number of the compiler used to generate the program does not agree with the level number of the RPG IV run-time subroutines Internal failure in ILE RPG/400 compiler or in run-time subroutines Program exception in system routine. INFDS o File Information Data Structure A file information data structure (INFDS) can be defined for each file to make file exception/error and file feedback information available to the program. The file information data structure. Link to what IBM says The INFDS contains the following feedback information:      File Feedback (length is 80) Open Feedback (length is 160) Input/Output Feedback (length is 126) Device Specific Feedback (length is variable) Get Attributes Feedback (length is variable) * Standard RPG feedback area 1-80 DINFDS ds D File *FILE D OpenInd 9 9 D EOFInd 10 10 eof? code D FileStatus *STATUS *OPCODE *ROUTINE 30 37 * File name * File open? * File at * Status * Last * RPG * Listing D OpCode opcode D Routinr Routine D ListNum line msreddy Page 11 . The same INFDS is used by all procedures using the files. which must be unique for each file.

.D SpclStat status D RecordFmt name D MsgID MSGID 38 *RECORD 46 42S 0 * SPECIAL * Record 52 * Error size D* the next 4 fields are available after POST D Screen_P *SIZE *INP *OUT *MODE * Screen * NLS Input? * NLS * NLS Mode? D NLSIn_P D NLSOut_P Output? D NLSMode_P rows cols * Open feedback area 81-240 * NOTE that getting data beyond column 80 is expensive * in terms of program opens.. D ODP_TYPE 81 82 * ODP Type D FILE_NAME 83 92 * File name D LIBRARY 93 102 * Library name D SPOOL_FILE 103 112 * Spool file name D SPOOL_LIB 113 122 * Spool file lib D SPOOL_NUM 123 124I 0 * Spool file num D RCD_LEN 125 126I 0 * Max record len D KEY_LEN 127 128I 0 * Max key len D MEMBER 129 138 * Member name D TYPE 147 148I 0 * File type D ROWS 152 153I 0 * Num PRT/DSP D COLUMNS D D D D D D D D D D D D D D D D D D NUM_RCDS ACC_TYPE DUP_KEY SRC_FILE VOL_OFF BLK_RCDS OVERFLOW BLK_INCR FLAGS1 REQUESTER OPEN_COUNT BASED_MBRS FLAGS2 OPEN_ID RCDFMT_LEN CCSID FLAGS3 NUM_DEVS 154 156 160 162 163 184 186 188 190 196 197 207 211 213 214 216 218 220 227 155I 0 159I 161 162 163 185I 187I 189I 191I 196 206 208I 212I 213 215 217I 219I 220 228I 0 * Num PRT/DSP * * * * * * * * * * * * * * * * * * Num of records Access type Duplicate key? Source file? Vol label offs Max rcds in bl Overflow line Blk increment Misc flags Requester name Open count Num based mbrs Misc flags Open identifie Max rcd fmt le Database CCSID Misc flags Num devs defin 0 0 0 0 0 0 0 0 0 used D* I/O feedback area 241-366 D D WRITE_CNT D READ_CNT D WRTRD_CNT D OTHER_CNT 243 247 251 255 246I 0 250I 0 254I 0 258I 0 * 241-242 not * Write count * Read count * Write/read * Other I/O count count msreddy Page 12 .

25 call type Program device Dev description User ID Device class Device type Requester? Acquire status Invite status Data available Session status Synch level Conversation 289 289 290 290 342 342 343 343 344 344 apply to ISDN. 385 386I 0 387 388 389 390 391 430 435 436I 0 437 438 439 478 480 480 481 482I 0 483 514 519 520 521 521 522 561 566 566 241 251 261 271 272 278 279 280 281 291 292 293 294 302 250 260 270 271 272 278 279 280 281 291 292 293 301 309 * Remote location * Local LU name msreddy Page 13 .D OPERATION operatio D IO_RCD_FMT D DEV_CLASS D IO_PGM_DEV D IO_RCD_LEN D* POST area 241-nnn D* Display D PGM_DEV_P D DEV_DSC_P D USER_ID_P D DEV_CLASS_P D DEV_TYPE_P D REQ_DEV_P D ACQ_STAT_P D INV_STAT_P D DATA_AVAIL_P D NUM_ROWS_P D NUM_COLS_P D BLINK_P D LINE_STAT_P D DSP_LOC_P location D DSP_TYPE_P D KBD_TYPE_P D CTL_INFO_P D COLOR_DSP_P D GRID_DSP_P * The following fields D ISDN_LEN_P D ISDN_TYPE_P D ISDN_PLAN_P D ISDN_NUM_P D ISDN_SLEN_P D ISDN_STYPE_P D ISDN_SNUM_P D ISDN_CON_P D ISDN_RLEN_P D ISDN_RNUM_P D ISDN_ELEN_P D ISDN_ETYPE_P D ISDN_ENUM_P D ISDN_XTYPE_P D* ICF D PGM_DEV_P D DEV_DSC_P D USER_ID_P D DEV_CLASS_P D DEV_TYPE_P D REQ_DEV_P D ACQ_STAT_P D INV_STAT_P D DATA_AVAIL_P D SES_STAT_P D SYNC_LVL_P D CONV_TYPE_P typ D RMT_LOC_P D LCL_LU_P 260 261 271 273 283 260 270 272 282 286I 0 * Cuurent * * * * Rcd format name Device class Pgm device name Rcd len of I/O 241 251 261 271 272 278 279 280 281 282 284 286 287 288 250 260 270 271 277 278 279 280 281 283I 0 285I 0 286 287 288 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Program device Dev description User ID Device class Device type Requester? Acquire status Invite status Data available Number of rows Number of cols Allow blink? Online/offline? Display Display type Keyboard type Controller info Color capable? Grid line dsp? Rmt number len Rmt number type Rmt number plan Rmt number Rmt sub-address Rmt sub-address Rmt sub-address Connection Rmt address len Rmt address Extension len Extension type Extension num X.

25 call type * The following information available only when program started * result of a received program start req. ISDN_LEN 385 386I 0 ISDN_TYPE 387 388 ISDN_PLAN 389 390 ISDN_NUM 391 430 ISDN_SLEN 435 436I 0 ISDN_STYPE 437 438 ISDN_SNUM 439 478 ISDN_CON 480 480 ISDN_RLEN 481 482I 0 ISDN_RNUM 483 514 ISDN_ELEN 519 520 ISDN_ETYPE 521 521 ISDN_ENUM 522 561 ISDN_XTYPE 566 566 * * * * * * * * * * * * * * * * * * * * * Local net ID Remote LU Remote net ID APPC Mode LU6 conv state LU6 conv correlator Rmt number len Rmt number type Rmt number plan Rmt number sub-addr len sub-addr type Rmt sub-address Connection Rmt address len Rmt address Extension len Extension type Extension num X. (U_ stands for unprotected) D U_LUWIDLN 658 658 * LUWID fld len D U_LUNAMELN 659 659 * LU-NAME len D U_LUNAME 660 676 * LU-NAME D U_LUWIDIN 677 682 * LUWID instance D U_LUWIDSEQ 683 684I 0 * LUWID seq num D* Device independent area 367-nnn D* NOTE that this area is shared with the POST feedback area above! D* Printer D CUR_LINE 367 368I 0 * Current line num D CUR_PAGE 369 372I 0 * Current page cnt D PRT_MAJOR 401 402 * Major ret code D PRT_MINOR 403 404 * Minor ret code D* Disk D FDBK_SIZE D JOIN_BITS D LOCK_RCDS D POS_BITS D DLT_BITS 367 371 377 385 384 370I 0 374I 0 378I 0 385 384 * * * * * Size of DB fdbk JFILE bits Nbr locked rcds File pos bits Rcd deleted bits msreddy Page 14 . (P_ stands for protected) D TRAN_PGM 567 630 * Trans pgm name D P_LUWIDLN 631 631 * LUWID fld len D P_LUNAMELN 632 632 * LU-NAME len D P_LUNAME 633 649 * LU-NAME D P_LUWIDIN 650 655 * LUWID instance D P_LUWIDSEQ 656 657I 0 * LUWID seq num * Below info is available only when a protected conversation * is started on a remote system.D D D D D D D D D D D D D D D D D D D D LCL_NETID_P RMT_LU_P RMT_NETID_P APPC_MODE_P LU6_STATE_P LU6_COR_P 310 318 326 334 345 346 317 325 333 341 345 353 * The following fields apply to ISDN.

D D D D num NUM_KEYS KEY_LEN MBR_NUM DB_RRN 387 393 395 397 401 388I 394I 396I 400I 2400 0 0 0 0 * * * * Num keys (bin) Key length Member number Relative-rcd- D KEY D* D* ICF D ICF_AID D ICF_LEN D ICF_MAJOR D ICF_MINOR D SNA_SENSE D SAFE_IND D RQSWRT D RMT_FMT D ICF_MODE D* Display D DSP_FLAG1 D DSP_AID D CURSOR D DATA_LEN D SF_RRN D MIN_RRN D NUM_RCDS * Key value (max * size 2000) * * * * * * * * * * * * * * * * AID byte Actual data len Major ret code Minor ret code SNA sense rc Safe indicator Request write Remote rcd fmt Mode name Display flags AID byte Cursor location Actual data len Subfile rrn Subfile min rrn Subfile num 369 372 401 403 405 413 415 416 430 367 369 370 372 376 378 380 382 401 403 369 375I 0 402 404 412 413 415 425 437 368 369 371 375I 377I 379I 381I 383 402 404 rcds 0 0 0 0 D ACT_CURS D* location D DSP_MAJOR D DSP_MINOR * Active window * cursor * Major ret code * Minor ret code msreddy Page 15 .