========================================================================= G C O S 8 M A I N F R A M E E X P R E S S v3.0.05 Windows NT/2000/XP RELEASE ========================================================================= RELEASE NOTES ============= TABLE OF CONTENTS ================= INTRODUCTION INSTALLATION MIGRATION/UPDATE FROM G8WB V1.4.XX MIGRATION/UPDATE FROM MFE8 V2.5.XX INTEREL/RFM ERRORS FIXED & IMPROVEMENTS IN THIS RELEASE DOCUMENTATION CHANGES TIPS & HINTS KNOWN ERRORS KNOWN LIMITATIONS MANUAL INSTALLATION PROBLEM REPORTING DISCLAIMER INTRODUCTION ============ This version of the GCOS8 Mainframe Express (MFE8) is the Initial Release supporting Micro Focus Mainframe Express V3.X (MFE). It is issued on CD-ROM with new online documentation and limited printed documentation. Please refer to details on migration activities for moving components from G8WB v1.4.xx or MFE8 V2.5.xx to MFE8 v3.0.05 later in this document. NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE THIS RELEASE REQUIRE YOU HAVE INSTALLED v3.0.xx OR HIGHER OF MICRO FOCUS MAINFRAME EXPRESS NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE INSTALLATION ============ The MFE8 CD-ROM is structured as follows: MFE8NOTE.TXT - release notes (this document) MFE8\DISK1\SETUP.EXE - start installation of MFE8 W8GS30.CHM - getting started (online documentation) MFE8UPD.TXT - update notes MFE8UP\DISK1\SETUP.EXE - start installation of MFE8 update MIGRATION/UPDATE FROM G8WB v1.4.XX ================================== MFE is structured very different from MFWB and it is a completely new installation (nothing can be migrated/reused from MFWB). MFE8 is structured similar to G8WB, however, the MFE/MFE8 environment is not compatible with G8WB/MFWB. Application components must be rechecked, recompiled, retranslated etc., however no changes are required in the application components. Since G8WB/MFWB and MFE8/MFE environments are not compatible, it is recommended that you copy your existing application directories to a new set of MFE8 application directories. CHANGE IMPACT ------------- o Database support file structure and format has not changed, however all Schema's and Subschema's must be re-validated to generate a run-time environment compatible with MFE. o Run-time version of application programs have changed, thus all programs, modules and TPR's must be rechecked/compiled. o MFE8 configuration files are quite similar to G8WB configuration files, however, it is recommended that you use the default configuration files and amend these 'manually' from your G8WB environment. o Changes to SITE components must be ported from your G8WB environment. o Command files must be adapted. MIGRATING CFG's --------------- After you have installed MFE8, use the CFG files from G8WB directory to update the installed CFG files for this version. o $G8WBDDIR\DBMS.CFG: Merge and change schema, subschema, backup-set and defaults from existing configuration files. o $G8WBDDIR\INTEREL.CFG: Merge and change Location and backup-sets from existing configuration files. o Other Server CFG's: Merge and change defaults from existing configuration files into $G8WBGDIR\*.CFG's. o Workstation CFG's: Merge and change defaults from existing configuration files into $G8WBLDIR\*.CFG's. MIGRATING DATABASE ------------------ After you have installed MFE8, start by migrating your database confi- guration file (DBMS.CFG). Next copy your schemas and subschemas to the MFE8 environment, either using 'Move' function within G8WB, or copying all files as follows: COPY $oldDDIR\schema\*.* $newDDIR\schema COPY $oldDDIR\sschema\*.* $newDDIR\sschema Next re-validate all schemas. Next re-validate all subschemas. Next generate DS Record Panels, if you have a Net Express license. Next generate unload/load programs. Note: Although you can also translate/validate schemas and subschemas, care must be taken if you have produced multiple versions of a schema, i.e. removed/added entities within the schema, because this could lead to differences in entity numbering and problems with existing database files. The format of the IDS-II database files have not changed, and as such, there is no requirement to perform unload and load of database files. Instead you may, as required, copy database files and backup- sets from your existing G8WB environment. Keep in mind, that the you keep the same schema number, when migration database configuration files. Use COPY to copy existing database files and backup-sets as follows: COPY $oldLDIR\DBMS\nn*.* $newLDIR\DBMS COPY $oldDDIR\DBMS\nn*.* $newDDIR\DBMS where nn = schema number (ref. DBMS.CFG) If you use INTEREL, current Database Models and Tables must be unloaded under the existing G8WB environment, and the imported under the new MFE8 environment. For each Database the following sequence must be performed: 1) Unload all tables from existing G8WB environment 2) Create Location (Model) under new MFE8 environment 3) Create Tables, Indexes etc. for Database 4) Import database content from unload files 5) Backup database MIGRATING SITE -------------- After you have installed this version do the following steps to migrate SITE changes. o Use MFE DIFF utility to compare existing (changed) and new SITE programs. o Merge your specific changes or move any new programs you have made into $G8WBGDIR\SITE for this version. o Compile all changes/new programs. o Re-build run-time libraries with $G8WBDIR\LBR\GENSITE. MIGRATING FORMS --------------- After you have installed MFE8, copy the FMS directory from original G8WB directory into $G8WBFDIR\FMS, as follows: XCOPY $oldFDIR\FMS\*.* $newFDIR\FMS /S MIGRATING COMMAND FILES ----------------------- The launch command(s) for MFE8 have changed and existing OS command files must be adapted as follows: G8WB launch command: WB W8 command argument(s) MFE8 launch command: RUN WB command argument(s) If you were not running G8WB from a 'Micro Focus Command Prompt', you could use the MFENV command to setup environment, ex. MFENV 32 WB W8 command argument(s) A similar command for MFE8, i.e. not running from a 'Mainframe Express Command Prompt', would be c:\mfe30\mfide\bin\mfeenv RUN WB command arguments(s) Note: For G8WB you could use the MFENV xx to load different environments, however this is NOT possible for MFE8. Instead use the MFE8ENV.CFG feature of MFE8 to work with different environments. A few differences exists for the G8WB/MFE8 commands. G8WB Command MFE8 Command Remarks --------------------------------------------------------------------- CHKCBL74 INTCBL74 CHKCBL85 INTCBl85 CHKCBLSQ INTCBLSQ CHKCDBSP INTDBSP COMPILE GNTCBL74 Either INT or GNT (single compile) GNTCBL85 GNTCBLSQ GNTDBSP GENERATE n/a ANIMTP n/a Debugging only through IDE ZOOMTP n/a RUNTP TP8 ANIMPRG n/a ZOOMPRG n/a Debugging only through IDE RUNPRG PRG EDIT n/a WFL n/a Only through IDE DFED n/a Only through IDE HEXEDIT n/a FINDER n/a MIGRATION APPLICATION PROGRAMS ------------------------------ All modules, programs, TPR's and database procedures must be rechecked after you have installed MFE8. Note: Both G8WB and MFE8 is accepted for directives in program source. MIGRATION/UPDATE FROM MFE8 v2.5.XX ================================== INTEREL/RFM =========== INTEREL/RFM database is now supported through IBM DB2 UDB Database software, instead of XDB-Workbench which was used in G8WB. Although Mainframe Express has the SQL Option, which is equivalent to XDB, this is NOT used for emulation of INTEREL/RFM. The IBM DB2 UDB software (v7 or v8) MUST be installed before MFE8. You may either install the complete software or just the development and client tools, and then access a remote DB2 database. Compile ------- The COBOL-85 SQL compile type will trigger preprocessing through DB2. The DB2 preprocessing is embedded, meaning all error flagging works like any other compile type, and the original source is used during animation. During DB2 preprocessing, static SQL is validated against the DB2 database (not optional like XDB-Workbench), and the proper database and logon details must be defined before you compile the program. You may either define a default DB2 database through PREP.CFG, or include a directive in the program sources as follows: *set>edb2 database [userid [password]] The userid and/or password is optional, and will be retrieved from INTEREL.CFG if not specified. For static SQL, DB2 will create a 'Bind' file which is registered in the DB2 database (under Packages), and this information is used at run-time to process static SQL. The Bind file (named program.bnd) is cataloged under LOADLIB\model directory. Preprocessor Configuration -------------------------- A new DATABASE configuration entry may be specified in the DEFAULT- SECTION of PREP.CF as follows: [DEFAULT-SECTION] DATABASE : kontra8y db2admin ; database|none [userid [password]] When specified, preprocessing of SQL programs will connect to the specfied database by default (no source directive required). If userid and/or password is not specified, this is retrieved from INTEREL.CFG. If no source directive is specified and no default database is configured, preprocessing will connect to DB2 SAMPLE database. EDB2-ADAPT-VARCHAR : ON ; ON(default)/OFF This setting may be used to disable automatic adaption of VARCHAR fields (fields > 254 characters). Interel Configuration --------------------- The Interel/RFM configuration (INTEREL.CFG) has changed, and now have following syntax: [MODEL-SECTION] ;Model Database Userid Password KONTRATP8Y : KONTRA8Y DB2ADMIN secret KONTRATP8T : KONTRA8Y DB2ADMIN secret UTBREDU : UTBREDU DB2ADMIN secret The model section must define all the Interel/RFM databases used. The original GCOS8 model name must be mapped to a DB2 database (restricted to eight characters) and must also specify the userid and password to be used for logon to the database. [DEFAULT-SECTION] TP8 : ON ; TP8 with INTEREL ON/OFF BATCH : OFF ; Batch INTEREL and IDS-II ON/OFF DEBUG : ON ; SQL Exception and connect trace The default section is used to define run-time behavior as follows: TP8, ON must be specified if Interel/RFM programs are being called during TP8 operation. BATCH, ON should be used if Interel/RFM programs are being called during batch operation. Only required if the main program is NOT using Interel/RFM. DEBUG, ON may be used to obtain a trace of exception information on the TP journal or batch log. Exception trace is triggered when SQLCODE is non zero. Interel/RFM Utility ------------------- All database definition, backup and restore activities are done through appropriate DB2 tools (Control Center, Command Center etc.) MFE8 includes the Interel/RFM utility (like G8WB), which may be used to import database(s) from GCOS8 and export database(s) to GCOS8. Note: The Setup function, which primary function is to generate script files for GCOS8 unload, MUST always be run first (whether you use the generated scripts or not) in order to bind MFE8 internal program to the database (used during import). A new feature Rebind may be used to rebind the compiled Interel/RFM programs to the current database. The Rebind action may be required after a restore of a database, because 'binding' information is saved and restored along with the database, and you will get an error "SQL0818 A timestamp conflict occurred", if a program is compiled are a database save (you then have an older timestamp after a restore). When working with an MFE8 project, you need only request Rebind as MFE8 will rebind all programs which have been compiled under the project. Alternatively you can specify a path, where your LOADLIB for the application is located. Compatibility ------------- Emulation and support of Interel/RFM is not fully compatible, and the incompatibilities documented for G8WB also apply for MFE8, except as described below. Numeric host variables are not compatible, and MFE8 will adapt these during preprocessing, ex. where GCOS8 require numeric display, DB2 requires signed COMP-3. If DECLARE/DECLARE END is not properly used, meaning only used for host variables, the adaption may lead to incorrect run-time behavior and could also trigger unexpected error- flagging (DB2 does not allow OCCURS and some forms of redefines). Depending on programming style, you may have to relocate DECLARE/ DECLARE END to avoid such incompatibily. Alternatively you can you can use directives to suspend/resume a declare section. EXEC SQL DECLARE END-EXEC ... *w8prep non-declare ... *w8prep end ... EXEC SQL DECLARE END END-EXEC When adapted host variables are moved to non-host variables, you may need to adapt the non-host variables, i.e. if moved as part of a block. Likewise you can use directives to request preprocessing as if it was host variables. WORKING STORAGE SECTION. ... *w8prep declare ... *w8prep end ... By default MFE8 will adapt any host variable larger than 254 characters, as DB2 require such fields to be defined a VARCHAR. Such fields are change to include a length ,ex. 05 MYLARGEFIELD PIC X(800). will be changed to 05 MYLARGEFIELD. 10 MYLARGEFIELDl PIC S9(4) COMP-5. 10 MYLARGEFIELDv PIC X(800). All references to MYLARGEFIELD will be changed to MYLARGEFIELDv and MYLARGEFIELDl will be set to the value 800. This feature can be disabled (ref. above). You may (also) use directive to request treatment of a field as VARCHAR (whether host or non-host variable). This directive is ONLY active for the immediately following field deinition. *w8prep varchar 05 MYFIELD PIC X(128). Note: For dynamic SQL the must be given in a VARCHAR field (regardless of length). For indicator fields, GCOS8 require a COMP-6 usage and DB2 require a COMP-1 usage. You can solve this using directives as follows: *w8prep indicator 01 MYINDICATOR1 COMP-6. 01 MYINDICATOR2 COMP-6. *w8prep end ERRORS FIXED & IMPROVEMENTS IN RELEASE ====================================== o Schema Utilities: The translate and view functions will now open all appropriate source/listing/error files as multiple windows in the MFE8 Editor. o Subschema Utilities: The translate and view functions will now open all appropriate source/listing/error files as mutilple windows in the MFE8 Editor. o Rehosting: A new nnMETA.SQL script is now generated during schema validation. The scripts may be used to create meta information about the IDS-II schema in the target RDBMS. The script will also document db-key usage (minimum, maximum, low, high, available). o Web8: GEAP emulation did not send requested form if TPR entered conversation. o Web8: Buffered output (HTTP_SEND etc.) is now flushed if TPR enter conversation or termination. o Web8: Buffered output (HTTP_SEND etc.) is now purged if _TP_CALL_TPR is called. o IDS-II: The syntax "RESERVE 0 DATA_BASE_KEYS" in DMCL was incorrectly flagged. o Web8: DOCS wil now handle binary images (GIF, JPEG, etc.). o Web8: Binary images (GIF, JPEG, etc.) could be corrupted in the embedded CGI solution. o Database load/unload: When you request animated load or unload, the GNT version of the load/unload program had to be deleted under $G8WBDDIR\schema. This would prevent use of INT in the current project. This has been changed so the INT is recognized and the program is animated. o Convert file: An empty UFAS file was not recognized correctly and could cause misleading error messages. o Convert file: Fatal errors in UFAS/GRFC format will now force an EOF, and the file convert up to the point error will be completed. o DATE/TIME: Configuration of Date, Day and Time has been made more flexible. The Default configuration has been changed as follows: SYSTEM-DATE : CURRENT|DYNAMIC|yymmdd ; default current SYSTEM-TIME : CURRENT|DYNAMIC|hhmm[ss[hs]] ; default current Note: SYSTEM-DAY setting no longer exist, instead julian date is derived from system date. For Batch, the DYNAMIC setting will trigger read of the environment variables: GCOS-SYSTEM-DATE GCOS-SYSTEM-TIME the value setting is similar to default configuration. For TP8, the DYNAMIC or an explicit setting will allow date and/or time to be changed through service transaction as follows: $DATE yymmdd $TIME hhmm[ss[hs]] may be used to change the date and/or time during a TP8 session. o File Mapping: A new file mapping technique has been implemented for MFE8 development environment. The MFE8FMAP.DAT is used instead of MFEXTMAP.DAT. The following template is automatically used, when 'File mapping' is launched for a project, which do not already have a mapping file. ; MFE8 File Mapping ; Use TP for generic allocation ; Use BATCH for generic allocation ; Use [programname] for specific allocation (main program only) ; Specific overrides generic ; ; SYSIN = I* ; SYSOUT = P* ; LOG = $$ (batch only) ; ; $MFE8Project may be used to place file under current project ; ; NUL setting can be used to provide empty input file or ; ignore output file ; ; For BATCH, SYSOUT and LOG mapping you may use %programname% to ; produce specific mapping from a generic entry, ex. ; ; SYSOUT=$MFE8Project\DATA\%programname%.OUT.DAT ; LOG=$MFE8Project\DATA\%programname%.LOG.DAT ; [TP] sysin=NUL sysout=$MFE8Project\DATA\SYSOUT.DAT [BATCH] sysin=NUL sysout=$MFE8Project\DATA\SYSOUT.DAT [example1] f1=$MFE8Project\DATA\example1.dat f2=$MFE8Project\DATA\example2.dat The MFE8FMAP.DAT is retrieved from \DATA, or (if found) and $g8wbgdir, during launch of TP or a batch program. File mappings are documented on the journal (batch and TP8). Note: 'View SYSOUT' and 'View LOG' for batch, will use MFE8FMAP.DAT to locate the appropriate file for viewing. o Non-IDSII Index Files: The following enhancements have been implemented to support index files, which are used as database files, but are not included in a schema. General ------- Index files must be allocated through File Mapping like other conventional files. Such mapping is used both for TP8 and Batch when index files are opened. Backup/Restore -------------- You may now create one or more virtual schema's in the IDS-II configuration, and use these for backup/restore operations similar to IDS-II databases. Following example illustrate such virtual schema's (manually added to DBMS.CFG): ; Number Location Location [Perm Concurrent Protect] ; (1-99) Schema files [R/W OFF/ON/FS2 OFF/ON/FULL] [SCHEMA-SECTION] MYSCHEMA : 99 CURRENT $$LOCAL\$G8WBLDIR\DBMS W OFF ON ; INDEX-DB-1 : 81 INDEX-DB $$LOCAL\$G8WBLDIR\DBMS; INDEX-DB-2 : 82 INDEX-DB $$LOCAL\$G8WBLDIR\DBMS; The 'INDEX-DB' setting in 'Location schema' is used indicate a virtual schema. The setting of 'Location files' designate where the index file(s) are located, and you MUST use the following naming convention for the index file(s): nnIDBxxx[.DAT|IDX] where nn = the virtual schema number xxx = an identification of the index file, ex. BTW A backup/restore operation for a virtual schema will thus backup/restore one or more index files to/from a backup-set, like an IDS-II database. Note: You must use backup-sets with 'ZIP' format. TP8 Operation ------------- Index Files are opened by the application as conventional files (OPEN/CLOSE) and a working-storage switch is often used to determine whether a file is already open or not. This technique is supported by MFE8, however you need to consider: - if a TPR or module is cancelled, working-storage values are reset and this could lead to incorrect Open/Close handling MFE8 will cancel a TPR (and any modules called by TPR) if - the TPR aborts - TPR Pooling trigger cancel of TPR The cancel operation may be suppressed by making the TPR and/or module resident. Use CREATE_TPR configuration in TP8.CFG to make one or more TPRs and/or modules resident, ex. [CREATE_TPR] BT008 ... BT970 Abort rollback protection ------------------------- IDS-II databases are automatically allocated and protected in accordance with its configuration in SCHEMA_SECTION, ex. MYSCHEMA is a local single-user database with Abort Rollback protection. You are now able to enable similar protection for Index Files as follows: The program accessing the Index file must be compiled with the following preprocessor directive (inserted in program source), ex. *set>mfe8 index-protect:local IDENTIFICATION DIVISION. PROGRAM-ID. BT960. This diretive will trigger redirection of I/O to FHREDIR (File Share 2), and will amend the clause 'LOCK MODE EXCLUSIVE WITH ROLLBACK' to SELECT clauses with 'ORGANIZATION UFF INDEXED'. The file mapping for the index file must be changed to include the name of the 'local' File Share 2 server, ex. Before: cm=$g8wbldir\dbms\81IDBean.DAT After: cm=$$local\$g8wbldir\dbms\81IDBean.DAT Note: Abort rollback protection will only be effective if both of above measures are applied. o GCOS8 Export: A new utility G8CEXP may be used to collect one or more source-text files for export to MFE8. It's operation is very similar to G8SEXP - the program source export utility. The export file must be imported as 'Import Source' as $$SELECT, so copy members (CPY) are created instead of programs (CBL). The Reference Directory is normally a directory (ex. PrjCopy) under the MFE project, and this must be added as 'Dependency library' in the MFE project, otherwise the cannot be found during compilation. Note: By default, G8CEXP will assume source-text files have TSS line numbers and strip these during export. The source-text file must have APPEND and *END* directives embedded. o GCOS8 Import: Copies may be exported back to GCOS8 using 'Export Source' and a new utility G8CIMP. With 'Export Source' you can export one or more copies, similar to program sources, from the Reference Directory where the copies were imported to. A new utility G8CIMP may be used to import one or more source-text files into the GCOS8 files holding the source-text for each copy. It's operation is very similar to G8SIMP - the program source import utility. Note: By default, G8CIMP will assume source-text files have TSS line numbers and insert these during import. The source-text file will have APPEND and *END* directives embedded. G8CIMP may be configured to include a DELETE directive also. o IDS-II: A DB-exception status of xx03100 is now returned, if record currency is missing. Previously xx03200 was returned, however this was not compatible with GCOS. o Expand report files: The default naming for expanded report files has been changed to .Rnn.DAT, and the expanded files are automatically added to the MFE project. o GCOS8 Convert file: You are now able to convert directly to Indexed-sequential file format, from a GCOS8 UFAS Sequential file (Indexed-to-sequential consion is still required on GCOS8). Key information may either be created interactively, or you may use the GCOS8 utility G8FAB (provided under $g8wbgdir\host) to create a key definition file, and attach this. o GCOS8 Convert file: A new GFRC-text option may be used to convert a text file into a Record-Sequential GFRC file. Note: Default for GFRC files is Record-Sequential, unless you use GFRC-TEXT:ON settings when compiling programs. o GCOS8 Convert file: The converted file is now automatically added to the MFE project. o COBOL: File-codes CF, DE, PF, RF, RH, PH and CH will now have an X appended, ex. CF becomes CFX, to avoid conflict with reserved words (Report Writer syntax). o COBOL: The word "WITH" is now treated as optional in a SEND verb. o COMP-4 Analyzer: The check for UNRELATED redefines now detect redefine of COMP with numeric DISPLAY. o IDS-II: Use of shared INDEX KEY, i.e. multiple record using same key name, would only work for the first shared key. o COBOL: The combination DECIMAL-POINT IS COMMA and files using REPORT-CODE would result in incorrect flagging. o WEB8: HTML_BASE failed to include the script-name for CGI interface, and use of HREF (relative references) would thus fail. o TP8: Use of Default Command (********) to start an undefined TX (entered command = first tpr, only worked the first time. o COBOL: Whenever a file-code is adapted, the warning 'W-8525 File- code xxx must be used for mapping' is given. o COBOL: COMP-1 and COMP-2 may now be processed in ALT mode (like COMP-6) to supported redefines, ex. *w8prep alt 01 status-key COMP-1 VALUE ZERO. *w8prep on 01 status-key-r. 05 filler PIC X(01). 05 status-key-byte PIC X(01). o TP8 Services: A number of TP8 Service functions are now fully or partially supported as follows: _TP_SPAWN_TRANSACTION _TP_RECEIVE_MESSAGE _TP_SEND_MESSAGE _TP_PURGE_MESSAGES _TP_GLOBAL_STORAGE _TP_CANCEL_TPR _TP_SLEEP_SERVICES _TP_TPR_SERVICES _TP_WORKSTATION_SERVICES _TP_BROADCAST _TP_SPAWN_BATCH _TP_RESOURCE_SERVICES (partial) _TP_SEGMENT_SERVICES _TP_PROCESS_SERVICES _TP_GET_PARAMETER_SIZES _TP_JOURNALIZE _TP_USER_TRACE _TP_SET_PRIORITY _TP_FILE_SERVICES .BCST .SRCVM .TPRST .CNVRS (partial) .AJCMT (partial) .FNLCP .PILNK .CRPRM .ALPRM .DAPRM .CATMP .DLTMP .GRPRM .GRTMP .CAPRM .CRCLG .BAKDR .FLINF .PGPRM o Batch spawn: The batch spawn functions (VMPS, TP8 etc.) will both document the spawned JCL on the Batch/TP log, and create a file with the spawned JCL, ex. $g8wbldir\.job The generated snumb now use a start value of (time of first spawn), which is incremented for each spawn, ex. 1000Z, 1001Z. o TP8: To obtain better compatibility for use of conventional files within TP8, MFE8 has been enhanced as follows: - files allocated through VMPS or ACCESS are permanent, and thus not deallocated until TP8 is terminated - files allocated through _TP_FILE_SERVICES, .ALPRM, .CATMP or .CAPRM are temporary, and thus automatically deallocated and reset when the transaction terminate (normal or abnormal) Note: Files are not deallocated/reallocated after commitment like GCOS, however, this is not required for MFE8, since only one process is used. - before execution of a TPR or module, MFE8 will check all file-codes (all select's defined) for dynamic allocation, and reset mapping for any file-code not currently allocated Note: If a reset file-code is used (OPEN Input/Output), the status 9/9 (No room in directory) is triggered. Temporary files are created under $g8wbldir (\hhmmss.TMP), however like GCOS, such files are automatically released when deallocated. If you need to permanently allocate a file to TP8, i.e. using a $ PRMFL for the TP8 process JCL, you can obtain similar behavior in MFE8 using a permanent environment setting for the file-code, ex. SET F1=f:\data\file1.dat o VMPS: The standard copies for VMPS makes extensive use of under- score (_) and this complicates query operations within Animator, since fields are adapted to use dash (-) by MFE8. Since fields names in the original source are not the same, it is not possible to double-click (or use Query Cursor) to view the content of a field. A new Preprocessor directive may be used to trigger use of standard VMPS copies, where the underscore is changed to dash, ex. [DEFAULT-SECTION] USE-CPA : ON ; OFF(default)/ON When specified in $G8WBGDIR\PREP.CFG, all standard VMPS copies are adapted globally. The directive may also be specified in local configuration or in the program source, ex. *set>mfe8 use-cpa:on IDENTIFICATION DIVISION. Note: Any REPLACING arguments are automatically adapted from underscore to dash, so original source will be compatible with GCOS. o TP8: The service calls ACCESS, DEACCS and FMSG, may now be used from a COBOL-85 TPR/module (non documented GCOS feature). o DBSP: MFE8 now support DBSP and thus allows you to develop and test DBSP programs within MFE8. See $g8wbgdir\dbsp.txt for details. o TP8: Stack level checking may now be enforced. A new keyword under CREATE_TP8_EXTENSION in TP8.CFG may be used to define the maximum stack level. [CREATE_TP8_EXTENSION] STACK_LEVEL : 4 ; Range 0-32, default is 4 o TP8: The standard copy for TP-STORAGE has been changed for compatibility with GCOS and now has two new fields: STACK-LEVEL - contains current stack-level (1 through 32) USER-SAVE-AREA - same as LID-STORAGE o WEB8: Support has been updated to v2.0 and support of browser connection via HTTP-DSA Gateway and GEAP. o RFV: RFVCXAP send procedures will now provide additional debug information in the journal log, whenever the TX is aborted by RFVCXAP. o VMPS: Support of VMPS services has been substantially improved. Copies ------ A new and more complete set of COBOL-85 copy members are now provided. Remapping from long to short file name is no longer used, ref. migration notes above. The library &VE008P/DATA/BLEIFILECOPY is now available through library tag VE, ex. COPY ... OF VE. Services -------- The following services, which were previously ignored, are now fully or partially emulated. X_CREATE_CATALOG X_DELETE_CATALOG X_MODIFY_CATALOG X_CREATE_FILE X_DELETE_FILE X_MODIFY_FILE X_INIT_CATALOG_ATTRIBUTES X_LIST_CATALOGS X_COUNT_CATALOGS X_COUNT_CATALOG_PERMISSIONS X_CONTINUE_CATALOGS X_QUERY_CATALOG_ATTRIBUTES X_QUERY_CATALOG_PERMISSIONS X_INIT_FILE_ATTRIBUTES X_LIST_FILES X_COUNT_FILES X_COUNT_FILE_PERMISSIONS X_CONTINUE_FILES X_QUERY_FILE_ATTRIBUTES X_QUERY_FILE_PERMISSIONS X_CONTINUE_FMS_QUERY X_SORT_CATFILE_NAMES X_QUERY_FILE_STRING X_QUERY_PHYSICAL_FILE_ADDRESS X_ALLOC_PERM_FILE X_ALLOC_TEMP_FILE X_DEALLOC_FILE X_GROW_FILE X_SHRINK_FILE X_ALTER_FILE_DISPOSITION X_QUERY_IDENT_CARD X_SPAWN_JOB_FROM_FILE (validated and documented) X_SPAWN_JOB_FROM_MEMORY (validated and documented) X_CALLUSER Module must be configured, ex. $g8wbgdir\site\vmps\w8callu. X_WRITE_SYSOUT File-code = P* = display on SYSOUT (normal mapping) = 00 = write to journal/batch.log = other = use FAT or $g8wbldir\. X_BACKDOOR_SYSOUT X_WRITE_SCF Information appended to $g8wbldir\scf.log (Record Seq file) X_QUERY_BASE_RELEASE X_QUERY_SECURITY_OPTIONS X_QUERY_SOFTWARE_SET X_QUERY_SYSTEM_ID X_QUERY_SYSTEM_PRODUCTS_USERID X_QUERY_SYSTEM_TYPE X_QUERY_IDENTIFIERS X_PROCESS_GETINFO X_WIRE_UNWIRE_BUFFER X_RANDOM_IO Roadblock = Y is ignored, iocb I/O status not available X_WAIT X_RELINQUISH X_ROADBLOCK X_QUERY_SNUMB_ACTIVITY (limited) X_SNUMB_QUERY X_CONTINUE_SNUMB_QUERY X_QUERY_JOB_STATUS Snumb information may be configured, ref. below. X_DOMAIN_DUMP (validation only) X_SNAP_DUMP (validation only) X9CL$PROGRAM_NAME X9CL$CALLER_NAME Caller name is ONLY available until a CALL is issued by current program. X9ST$IPR (ignored) X9ST$IPR_R (ignored) X9ST$IPR_EXIT (ignored) X8RV$UNMASK_IPR (ignored) X8RV$MASK_IPR (ignored) X9IA$LANGUAGE (ignored) TSTCHK (allways 0 returned) Dynamic file allocation ----------------------- An internal FAT table is used to keep track of dynamically allocated files. At normal termination, entries in the FAT table is processed according to the associated disposition code: R(elease) will cause temporary files to be deleted S(ave) will cause information to be logged in the journal The same processing occur for abnormal termination, provided this is triggered through X_ABORT. For TP8 there is NO default mapping for conventional files, and use non-mapped file-codes will results in file-status 9/009 (No room in directory). Note: Temporary files are allocated under $g8wbldir with the name .tmp. Note: No automatic allocation (from FAT) is possible for a subsequent activity, saved files are merely documented in the journal. Configuration ------------- A new configuration section [GCOS-CONFIG] has been added to Environment configuration $G8WBGDIR\ENV.CFG (Global/Local). These new settings are used by VMPS services. [GCOS-CONFIG] USERID : umc ; Default is OPNSUTIL IDENT : "umc,mail" ; Default is "UNDEFINED" PERSONID : "myself" ; No default PROJECTID : "project1" ; No default BILLING-ACCOUNT : "acc1" ; No default CALLUSER : $g8wbgdir\site\vmps\w8callu ; No default SYSTEM-ID : sys-test ; Default is SYS-G8WB SYSTEM-TYPE : "DPS 90" ; Default is "DPS 9000" BASE-RELEASE : 4020 ; Default is 5000 SOFTWARE-SET : 40202 ; Default is 50002 PRODUCTS-USERID : sys_umc ; Default is sys_software RELEASE-ID : 402020 ; Default is 500020 LINES-PER-PAGE : 48 ; Default is 64 TIME-ZONE : CET ; Default is EDST TIME-DELTA : +1 ; Default is 0 SECURITY-OPTIONS : "11000" ; Default SSM not active ; 1=active, 0=not active ; x.... = access ; .x... = pid ; ..x.. = pic ; ...x. = scc ; ....x = system Configuration settings may also be specified through environ- ment variable (except lines-per-page, time-delta) by prefixing the keyword with "GCOS-", ex. SET GCOS-SYSTEM-ID=SYS-TEST SET GCOS-USERID=sys_software Environment settings override any settings in ENV.CFG. A new configuration section [FMS-CONFIG] has been added to Environment configuration $G8WBGDIR\ENV.CFG (Global/Local). These settings are used to emulate FMS within the related VMPS services. [FMS-CONFIG] DEFAULT-PATH : $g8wbgdir\gcos8fms ; No default CHECK-PERMISSION : ON ; Default OFF CHECK-PASSWORD : ON ; Default OFF myumc1 : F:\myumc1 ; UMC specific mapping myumc2 : F:\myumc2 ; UMC specific mapping DEFAULT-PATH when set: The UMC is automatically created under the default-path during CREATE_FILE or CREATE_CATALOG services. DEFAULT-PATH when NOT set: A UMC must be configured before creating files or catalog. Configuration settings may also be specified through environ- ment variable by prefixing the keyword with "FMS-", ex. SET FMS-DEFAULT-PATH=F:\fms_structure SET FMS-CHECK-PERMISSION=ON SET FMS-MYUMC1=F:\myumc1 Environment settings override any settings in ENV.CFG. A new configuration section [GCOS-SNUMBS] has been added to Environment configuration $G8WBGDIR\ENV.CFG (Global/Local). These new settings are used to provide snumb information for snumb query services. [GCOS-SNUMBS] ;Snumb Job status Z1001 : SWAPPED A5000 : "NOT ACCESIBLE" ... FMS --- Catalog attributes are partially implemented. This is done through creation of a CAT.ATT.ATT file under the catalog (UMC or sub- dinate catalogs). File attributes are partially implemented. This is done through creation of a .ATT file, alongside the actual file. Catalog and/or files may be created 'by hand' with or without the associated attribute file. If no attribute file is present, default attributes are assumed. The attribute file is a text-file, which can be created/edited 'by hand' also. Example for catalog: ORIGINATOR= DATE-CREATED= TIME-CREATED= DATE-CHANGED= TIME-CHANGED= SECURITY-LOCK GENERAL-PERM= = ... Example for file: ORIGINATOR= DATE-CREATED= TIME-CREATED= DATE-ATTR-CHANGED= TIME-ATTR-CHANGED= DATE-CHANGED= TIME-CHANGED= PASSWORD= SECURITY-LOCK ACCESS-MODE=RANDOM MAX-SIZE=UNLIMITED| GENERAL-PERM= = ... o COBOL: Dynamic file allocation/creation is now supported in batch environment. ACCESS (allocate/create file) DEACCS (deallocate file) FMSG (print error message) FMS handling is similar to VMPS, ref. above. o COBOL-85: The following services are now recognized in Batch environment and are now fully or partially emulated. .DFLSH (treated like CHECKPOINT_FILES) .DCNCL (treated like ROLLBACK_FILES) X9CL$CLIMB (treated as direct CALL of module) S$ABORT SETL X9CL$MAIN_NAME TSWAIT TSCOPT WRAP (ignored) X9GC$SELECT_CONSOLE (ignored) X9PP$PAGE_PRINT (ignored) X9RS$REWIND_AND_STANDBY (ignored) X9DB$DSS (ignored) o GFRC: All GFRC files, except files with CARD-READER, CARD-PUNCHER or PRINTER specification in the ASSIGN clause, are treated as RECORD sequential files (like UFAS). CARD-READER/PUNCHER files are treated a LINE sequential (text) files. Since GCOS can use GFRC format for both text and non-text, and CARD-READER/PUNCHER is often not specified, a MFE8 developer may be surprised to find a GFRC file cannot be edited as a text file. MFE8 now provides two new techniques for making a GFRC file a text file, without the need to change the SELECT clause, i.e. adding CARD-READER/PUNCHER. A new preprocessor directive GFRC-TEXT may be used to change the default format of GFRC files, ex. [DEFAULT-SECTION] GFRC-TEXT : ON ; OFF(default)/ON(text format) When specified in $G8WBGDIR\PREP.CFG, the default for GFRC files can be changed globally. The directive may also be specified in local configuration or in the program source, ex. *set>mfe8 gfrc-text:on IDENTIFICATION DIVISION. The ALT mode directive may also be used to change default format for GFRC files, ex. *w8prep ALT SELECT my-file ASSIGN TO F1 ORGANIZATION GFRC ... *w8prep ON When using ALT mode, the current default for GFRC files is reversed, i.e. format changed to text or RECORD if GFRC-TEXT is ON. Warning: The text format is not fully compatible with GCOS for a read operation, as MFE8 will clear the record (process area) with space, whereas GCOS will not. If you prefer to use text format, you can ensure compatibility by placing a 'MOVE SPACES TO record' before the READ. o IDS-II: When a database is created, the maximum sizes for Data record, Calc key and Index key are used to minimize the size of the physical database files. If these maximum sizes are increased, i.e. adding new record, calc or index key to schema, you were required to unload the database (before making such changes) and load the database (after making such changes), otherwise database access would fail with error 110018 (CALC/INDEX/Record-size-overflow). You are now able to 'fix' this overflow problem, by doing a Rebuild (ALL) with Database Utility (Q2UT). During Rebuild, maximum size changes are detected, and this will trigger a recreation of the entire database, ex. RUN WB Q2UT class r all Note: Above solution will only work if the schema changes do NOT involve any existing records in the database. o TP8: CALL "USERID" is now supported. Note: BATCH-USERID setting under G8WB-DEFAULTS in G8WB.CFG is used both for batch and TP. o COBOL: A numeric literal with period, ex. 1.23, is accepted by GCOS even if DECIMAL-POINT IS COMMA. Such literals are now accepted by MFE8. o TP8: The DSA-MODEL field is now available in TP-STORAGE, and set on the basis of TERMINAL-EMULATION configuration. Following value are possible: 8243 = VIP7700 8254 = VIP7804 8257 = DKU7107 8289 = IBM3270 8352 = BROWSER (WEB8 or GTEA) 8214 = TTY (VT) BROWSER is now accepted as setting for TERMINAL-EMULATION and this automatically implies REMOTE. o G8WFL: EBCDIC-SIGN setting is now retrieved from BSF file, instead of PREP.CFG. o COBOL and Virtual-C: The $G8WBGDIR\SITE\COBOLTOC directory provides documentation and an example of how to integrate and interface with virtual-C subroutines. o COBOL and Fortran-77: The $G8WBGDIR\SITE\COBOLTOF directory provides documentation and an example of how to integrate and interface with Fortran-77 subroutines and TPRs. o TP: The default entry for CREATE_COMMAND, which is used to start a transaction without a create_command entry, may now specify a first-tpr and profile, ex. ******** : SLDINP SOLDDBK ; Default is SOLD+ TX o Source Import: A new _Backup argument may be used to backup current source (BAK) before import (it also implies _Force). o Source Import: A new _X argument may be used to suppress CHARACTER-SET-ADJUST setting. o Source Export: A new _X argument may be used to suppress CHARACTER-SET-ADJUST setting. o Copy Import: A new _Backup argument may be used to backup current copy (BAK) before import (it also implies _Force). o Copy Import: A new _X argument may be used to suppress CHARACTER-SET-ADJUST setting. o Copy Export: A new _X argument may be used to suppress CHARACTER-SET-ADJUST setting. o IDS-II Unload: A new tag [OWN-TEHDU] may now be used to insert procedure logic to be executed at termination of nnHDBU host unload program, ex. additional statistics. o GUI: The 'Utility continue' check-box is now unchecked as default. o Source Checkin: ANS85 may be now specified as compile-type. o Source Checkin: When compile-type is specified, a check/ generate is now run even if the program has not been changed (cancelled checkout). o TP Bibo: The TPCLI command now support a command line to enable execution of a single BIBO transaction or a BIBO transaction file. The command line syntax is as follows: RUN WB TPCLI [BIBOTX "command"|BIBOFILE bibo-file [secs]] [defaults] Command - must quoted if spaces are present (single or double quote). Bibo-file - a file containing one or more transaction. For conversational transaction, the special BIBO format must be used, ref. MFE8 documentation. Secs - may be used to set a delay in seconds between each read of the bibo file (default is 0). Note: BIBOTX and BIBOFILE will terminate TPCLI once BIBO transcation(s) have been executed. Defaults format is: [lid [terminal-emulation]] [/ldirpath|/.] Lid - may be used to set a lid for the session, and thus override default configuration. Terminal-emulation - may be used to set terminal emulation and interface for the session, and thus override default configuration. VIP77XX|VIP78XX|DKU71XX|IBM327X REMOTE|TCLIENT G8WBLDIR: The setting for G8WBLDIR may be changed on-the-fly, ex. /c:\temp (specific path) /. (current path) o Terminal Emulation: When using terminal emulation software, ex. Glink, VTD/Amaril, with TELNET or TNVIP interface, the national character-set configuration may now be identical for GCOS and MFE8 (adapted to/from PC standard by the interface, whenever CHARACTER-SET-ADJUST is active). o RFV: Type=2 (Sort) function has been implemented in RFVCXPP. o IDS-II: By default all index files (databases) share a common 16KB buffer for index handling. This is normally sufficient, however when loading 'large' databases or when extensive changes are made to keys (Calc and Index), the I/O-system may report problems (9/041 corrupt index). A new option in DBMS.CFG may be used to allocate more buffer space for index handling, ex. [DEFAULT-SECTION] IDX-BUFFER-KB : 32 ; Min. 4 Max. 60 KB When present, the IDX-BUFFER-KB will allocate a buffer of the given size for each index file. This may require substantially more memory if many databases are used concurrently. o IDS-II: FIND DUPLICATE processing has been optimized and now use less I/O, especially when many duplicates exists for the same calc-key. o IDS-II: STORE processing has been optimized and now use less I/O for duplicate calc- and/or index keys, especially when many duplicates exists for the same key(s). o WEB8: The 'Referer:' header field is now emulated, so a TPR can retrieve the information through HTTP_GETHDR. The format is GCOS compatible, ex. http://gateway:8080/node.mbx/TPLocG8WB/Command/Options ---------------------------- I I-> constant o TP/TNVIP: The command $BYE is treated as $TERM when connection to TP is done trough terminal emulation software, ex. GLINK. o RFM/COBOL: MFE8 now support dynamic SQL with a few limitations. PREPARE/EXECUTE IMMEDIATE ------------------------- The Host Variable holding the SQL syntax is not compatible with GCOS. MFE8 has been changed to accomodate this, however, you may need to include an MFE8 directive in the source whenever PREPARE or EXECUTE IMMEDIATE is used with a Host Variable, ex. EXEC SQL BEGIN DECLARE SECTION END-EXEC *w8prep varchar 01 ws-dynstmnt PIC x(128). EXEC SQL END DECLARE SECTION END-EXEC EXEC SQL PREPARE dynstmnt FROM :ws-dynstmnt END-EXEC EXEC SQL EXECUTE IMMEDIATE :ws-dynstmnt END-EXEC Note: The directive is ONLY required if the length of host variable is < 254. DELETE ------ The word 'FROM' must be specified (not optional). INSERT ------ The word 'INTO' must be specified (not optional). EXECUTE IMMEDIATE ----------------- 'USING' clause is ONLY supported for EXECUTE (not IMMEDIATE). SQLDA ----- The layout of SQLDA is not fully GCOS compatible, and special care must be taken depending on how SQLDA is used. When defining SQLDA yourself (not using INCLUDE SQLDA): - include MFE8 directives for declare, ex. *w8prep declare 01 SQLDA. ... *w8prep end The SQLTYPE field values are not GCOS compatible, and conditional coding must be used if your application manipulate SQLTYPE. Depeding on SQLTYPE value, the SQLLEN field may NOT be GCOS compatible. o RFM/COBOL: DB2 require numeric host variables to be signed COMP-3. This is not GCOS compatible, however MFE8 Preprocessor will auto- matically adapt host variables during checking. If host variables are moved as part of group, the automatic adaption to COMP-3 will cause problems, ex. exec sql begin declare section end-exec 01 host-variables. 05 hv-field1 pic 9(8). exec sql end declare section end-exec 01 ws-variables. 05 ws-field1 pic 9(8). move host-variables to ws-variables (does not work) A new MFE8 source directive may be used to trigger special numeric field adaption similar to host variables, ex. *w8prep declare 01 ws-variables. 05 ws-field1 pic 9(8). *w8prep end move host-variables to ws-variables (does work) Note: When defining SQLCA yourself (not using INCLUDE SQLCA), you must include MFE8 directives for declare, ex. *w8prep declare 01 SQLCA. ... *w8prep end o COBOL-85: The "X9ST$EXIT_DOMAIN" service call is now recognized and treated like 'EXIT PROGRAM'. o Source Import: The name of a source may now be retrieved from PROGRAM-ID during import. The new feature is configured through a new keyword in G8WB.CFG. [G8WB-DEFAULTS] SOURCE-IMPORT-ID : ON/OFF ; Default OFF o Source Import/Export: The insertion/removal of MFE8 header lines may now be configured through new keywords in G8WB.CFG. [G8WB-DEFAULTS] SOURCE-IMPORT-COMMENT : ON/OFF ; Default ON (Insert header) SOURCE-EXPORT-COMMENT : ON/OFF ; Default OFF (Remove header) Note: Import setting will also impact 'Create Source' and 'Source Checkin' functions. o Copy Import/Export: The insertion/removal of MFE8 header line may now be configured through new keywords in G8WB.CFG. [G8WB-DEFAULTS] COPY-IMPORT-COMMENT : ON/OFF ; Default ON (Insert header) COPY-EXPORT-COMMENT : ON/OFF ; Default OFF (Remove header) Note: Import setting will also impact 'Create Copy' and 'Copy Checkin' functions. o Terminal Emulation: 'Real' Terminal Emulators may now be used with MFE8, provided they can use either TNVIP or TN3270 communication interface. The TERMINAL-EMULATION entry in Default Configuration (G8WB.CFG) has been changed as follows: TERMINAL-EMULATION : emulation [interface] ; Emulation ; VIP78XX ; DKU71XX ; IBM327X ; WEB8 ; Other = Name of own Program ; Interface ; TNVIP ; TN3270 ; REMOTE When no interface is specified, the MFE8 terminal emulators are used. When REMOTE interface is specified, the Open-Client-Interface is used. TNVIP/TN3270 ------------ When TNVIP or TN3270 is specified, MFE8 will act as a telnet Server and listen for a connect on the standard Telnet port (23). The Terminal emulator must be configured with TNVIP or TN3270 as communication interface, and the host name or IP adress of your PC. MFE8 will attempt to negotiate a terminal model, and if this fails or the terminal model is not recognizable, the MFE8 emulation configuration will be used. The MFE8 window will show status messages and you may use ESC-key to trigger the Escape-menu, or request this through a command from the terminal emulator. The following commands are recognized: $*$DIS - terminate and disconnect $*$LOGOUT - terminate and disconnect $*$ID - show connect information $*$BRK - Abort conversational transaction ($ABORT) 'break' signal, treated as $*$BRK $*$ESC - request MFE8 escape menu $ESC - request MFE8 escape menu $BYE - logon with a new Lid $TERM - terminate TP Note: IBM3270 emulation can only be used with TN3270. Note: TSACC and TSDSP (batch) can also use this feature. o Open-Client-Toolkit: A new DSA interface is now available. With Client DSA, MFE8 may present itself as a DSA Node in your network and allow a DSA session (direct or through DNS) to be established with MFE8. The DSA interface may be used to connect Terminal Emulation products or applications through various client interfaces. DSA interface is based on G&R Ggate, and requires either Host Links or Ggate from G&R. Refer to $g8wbgdir\site\client\g8wbotc.txt for details. o Source import: When '_Force' option is used, an override action will now: If Checked out - remove LCK (disable checkin) If Changed - backup current source (name.BAK) Document override action Note: For an automated import environment, where '_Force' is used as default, accidential overwrite is not possible and modified source can be recovered. o Copy import: When '_Force' option is used, an override action will now: If Checked out - remove LCK (disable checkin) If Changed - backup current copy (name.BAK) Document override action o Source Checkin: A new option 'Cancel Checkout' may be used to cancel a checkout and disgard any changes made. For command operation a new argument '_Cancel' or '_A' may be used to request cancel checkout. o Copy Checkin: A new option 'Cancel Checkout' may be used to cancel a checkout and disgard any changes made. For command operation a new argument '_Cancel' or '_A' may be used to request cancel checkout. o RFM: Change Location will now verify for presence of XDB structure for the requested location, and refuse change if not present. o RFM: Restore Database will now verify for presence of XDB structure for the requested location, and refuse restore if not present. Note: A Location must be created, before you can restore from a backup-set. o WEB8: Graphic files are now supported. o WEB8: Forms import now provide a more flexible configuration of //localhost. o WEB8: Forms import now provide additional default file extensions for the index function. o Open-Client-Toolkit: A new and simpler interface is provided for interfacing TP8 client application with MFE8. Refer to $g8wbgdir\site\client\g8wbotc.txt for details. ============== UPDATE V2.5.01 ============== o Initial Release for Mainframe Express environment. DOCUMENTATION CHANGES ===================== ============ TIPS & HINTS ============ o Batch: By default output (SYSOUT) from DISPLAY and input (SYSIN) for ACCEPT is limited to 1272 characters. Any excess characters are truncated. This behavior is triggered by preset INDD and OUTDD SYSIN directives, however it is possible to raise these limits if required, ex. directives, ex. OUTDD"SYSOUT 2048" Above directives will raise DISPLAY limit to 2048 characters or INDD"SYSIN 2048" Above directives will raise ACCEPT limit to 2048 characters The INDD and/or OUTDD may be placed in $g8wbdir\mfi\usercbl7.dir and/or $g8wbdir\mfi\usercbl8.dir to override the standard directive. Note: You CANNOT mix programs with different OUTDD/INDD setting withing the same execution. o COBOL-SQL: Although BEGIN/END DECLARE is intended to surround only host variables, GCOS8 will allow the entire Working-Storage between BEGIN/END DECLARE. Since MFE8 is adapting numeric host variables and use BEGIN/END DECLARE to trigger such adaption, you should restrict BEGIN/END DECLARE to include ONLY host variables, otherwise this can trigger both compilation errors, or compatibility problems for numeric fields during execution. o GFRC Text files: When creating GFRC text files, non-printable characters (less than octal 037) are prefixed with an escape character (NULL), so no data is lost. If the text file is to be processed elsewhere, you can use the run-time switch -N to disable use of escape character, i.e. COBSW=-N%COBSW%. o Binary File-transfer: FTP, unlike UFT, support true binary file transfer, so CPAC is not required if you are using FTP to transfer UFAS/GFRC files for conversion with G8WFL. o SRCH: If SRCH option of COBOL-85 is used for resolving of COPY on GCOS8, the following technique(s) can be used to achive similar results within MFE8. a) Import copies as $$SELECT source type, or transfer each copy manually (remember to use CPY extension). b) Configure [.L] library in COPYMAP.CFG with the path or path where copy files has been placed. The .L configuration is used for all COPY syntax without 'OFF ..'. c) Or, use COBCPY setting to trigger scan of path or paths where copy files has been placed. A search via COBCPY is done for all COPY syntax, if the copy cannot be found through COPYMAP.CFG configuration. o DateWarp: Be careful when using DateWarp to change the date, because the date change will be applied to the entire COBOL environment. Since MFE8 functions are implemented in COBOL, all such functions will use the changed date, ex. - Date-stamp for compile (checked against schema/subschema) - Backup-set date-time stamp - etc. Note: To test applications with a differenty date and/or time, use CURRENT-DATE, CURRENT-DAY and CURRENT-TIME configuration in MFE8 default configuration, since this will ONLY affect ACCEPT DATE/DAY/TIME. ============ KNOWN ERRORS ============ o COBOL: 'subscript missing' error flagging does not take place when the source line is preprocessed by MFE8, ex. IF data-item = ""123"" should have been IF data-item (1) = ""123" but is not flagged due to adaption of BULL syntax ""123"" o COBOL: When a numeric data-item has some form of COMP usage, and the data-item is being used in 'OCCURS .. DEPENDING ON data-item', error flagging occur. Avoidance: Change source line so usage does not appears on the same source line a data-item name, ex. Before: 01 PIC-LENGTH COMP-6. After: 01 PIC-LENGTH COMP-6. o COBOL: SPECIAL NAMES specification is main program, ex. Program switches, is not available for any embedded programs. o COBOL: CONFIGURATION SECTION is allowed for embedded programs. o COBOL: Incorrect LAST DETAIL in Report Section cause a loop, ex. RD liste1 PAGE 67 LAST DETAIL 70. o PREP: Animation position (Step, Watch or Animate) is incorrect if the last line of a COPY has been preprocessed, ex. a DML verb. The Animator will then position at the first line after the COPY, when the statement is executed. o COBOL: A value clause on a data-item defined as EXTERNAL, is flagged if the value clause is given on the same line as the PIC clause. If the value clause is given on a separate line, it is not flagged, but simply ignored. Note: MFE8 use EXTERNAL for implementation of BLOCK. o DATA DIVISION: Missing DATA DIVISION is not flagged by MFE8. Execution of a program checked without DATA DIVISION can lead to unpredictable results, due to missing/incorrect preprocessing of syntax within data division. o DBMS: STORE record with LOCATION MODE VIA set and INSERTION MANUAL, is allowed even when no currency exist for the set. GCOS8 will give 1503100. o DBMS: MODIFY of a LOCATION MODE Index key is allowed, however on GCOS8 this is not allowed and a "80210" db-status is given. o CONFIG: If you forget the ":" (separate keyword from arguments) in a config-file entry, you do not always get an error message. ================= KNOWN LIMITATIONS ================= o COBOL: When GFRC-TEXT:ON (default) is used, the phrase 'ACCESS SEQUENTIAL' is not allowed in the SELECT clause for a GFRC file. o COBOL-85: The combination of DISPLAY verb and data-item with dynamic reference modification can lead to incorrect output on SYSOUT. Ex. DISPLAY "Here is a value=" myfield(1:mylength) Above statement will result in a blank line or only myfield being shown. Avoidance: You can get an almost correct result if you split the DISPLAY verb and use ... WITH NO ADVANCING. Ex. DISPLAY "Here is a value=" *w8prep MFE8 WITH NO ADVANCING DISPLAY *w8prep myfield(1:mylength) The Editor will either show a line-split or show a (CR) symbol, where the separation was done. o COBOL: Use of paired parentheses in a WHEN condition for a SEARCH ALL verb can cause incorrect flagging by MFE8, ex. SEARCH ALL ... AT END ... WHEN (field1(indx) = field2) <- flagged WHEN (field2 = field1(indx)) <- not flagged WHEN field1(indx) = field2 <- not flagged Avoidance: Remove parentheses (has no impact on condition) or reverse left/right side of condition. o COBOL-SQL: A cursor used in 'FETCH' verb must have been declared previously in the source, unlike GCOS8 which only require the 'DECLARE' verb to be present somewhere in the source code. o G8WFL: Files with GBCD codeset cannot be converted by G8WFL, and you need to convert the codeset to ASCII on GCOS8, before transfer of file. Note: Within MFE8 codeset is ignored, and all files read or written use ASCII codeset. o COBOL: MFE8 cannot handle literal continuation if the continuation line starts with an ascii-literal, ex. 05 field value "xxxxxxx - ""31"yyyyy". Avoidance: Adjust literal so the continuation line does NOT start with an ascii-literal, ex. 05 field value "xxxxxx - " "31"yyyyy". o COBOL: GCOS8 will accept partial zero-supression after the decimal-point, ex. PIC Z.Z9, although documentation says otherwise, and MFE8 will flag such syntax. Change syntax for compatibility, ex. PIC Z.99 or Z.ZZ. o COBOL: GCOS8 default to the first occurence when a subscripted fields is used in ASCENDING clause, however, MFE8 requires fields in ASCENDING clause to be elementary without any occurs or subordinate to an occurs. o COBOL-85: GCOS8 will accept 'RECORD n TO m DEPENDING ...', although documentation says 'RECORD VARYING ...' is required when DEPENDING is used. To obtain compatibility between GCOS and MFE8, use 'RECORD CONTAINS n ...' or 'RECORD VARYING ...'. o COBOL-85: Truncation is not compatible for ACCEPT verb (DATE or TIME). GCOS8 COBOL-85 will right truncate always, whereas GCOS COBOL-74 and MFE8 COBOL-74/85 will left truncate numeric fields and right truncate alphanumeric fields. Note: GCOS8 COBOL-74 and COBOL-85 are NOT compatible. o COBOL-85: GCOS8 will give a syntax error if the last verb is not terminated with a period. No flagging is done for COBOL-74 and MFE8 likewise. o COBOL: MFE8 will accept a numeric field as Record or Alternate key for an Indexed file, although the key field is treated as alpha- numeric. The GCOS8 compiler will flag such syntax, as only PIC X is allowed for key field(s). o COBOL: MFE8 will assume an 'implied' END-IF, when an IF structure is closed via another construct, ex. PERFORM ... IF ... [END-IF] <-- required by GCOS END-PERFORM The GCOS compiler will flag this syntax, as END-IF is required. o COBOL: The syntax 'IF (BEST EMPTY) ...', where is an IDS-II set name, is not preprocessed correctly and cause BEST to be flagged. () must be removed from syntax. o COBOL-SQL: Indicator host variables MUST be COMP-1. GCOS8 will allow other usages, ex. COMP-6. o COBOL: The syntax 'IF NOT item = ( "A" or "B )' is not flagged by MFE8. GCOS8 accept either 'IF item NOT = ( "A" or "B )' or 'IF NOT ( item = "A" or "B" )'. o COBOL: MFE8 will create a data-item for each file-code, ex. 'SELECT ... ASSIGN TO F1' will create a date-item named F1. This could conflict with a data-item, paragraph or section name declared within the program (allowed on GCOS8). Avoidance: Change data-item, paragraph or section name. o COBOL: MFE8 does not accept double value declaration, ex. 01 ZPCB VALUE SPACES. ... 05 COPTVAL PIC X(01) VALUE "*". o COBOL: MFE8 does not flag a paragraph label in area B. o COBOL-85: Reference modifier validation is not as restrictive as GCOS8, and some syntax accepted by MFE8 will be flagged by GCOS8 COBOL-85 compiler. Be aware of following differences: 1) The starting position, whether numeric literal or content of indentifier, may exceed the length of the field 2) The length, whether numeric literal or content of identifier, may exceed the length of the field For MFE8 a reference modifier exceeding the field will access characters in the relative postions in the following field(s). This behavior would normally lead to incorrect results, however, it could pass unnoticed, and thus make MFE8 testing incomplete. o Directory names: Avoid directory names with spaces, as some MFE8 tool cannot handle this. o SYSOUT: The SYSOUT file will be closed if a program is cancelled. If generic or default mapping is used, then some SYSOUT may be lost if a program writing to SYSOUT (DISPLAY verb) is cancelled. o COBOL: An ascii-literal terminated in column 72 will be flagged unless the literal is continued (column 7) on the next source line. Avoidance: Change source line to avoid ending the literal in column 72. o COBOL: Use of continuation (- in column 7) is not fully GCOS8 compatible. Example: 02 field PIC X(10) VALUE - ""19"xxxx". When continuation is used and the literal start as an ascii- literal, MFE8 will flag the statement. Remove the continuation (not required) to avoid flagging. Example: STRING field - "aaa" - "bbb" When continuation is used in combination with separate literals, MFE8 will flag the statement. Remove the continuation (not required) to avoid flagging. o COBOL: GCOS8 will perform an implied TERMINATE for open reports when an abort occur, ex. CALL ".ABORT", whereas MFE8 will simply close the file (flush buffers). o COBOL: MFE8 does not support OCCURS ... DEPENDING with a REDEFINES structure, ex. 01 error-table-no PIC 9(3) VALUE 40. 01 error-table. 05 error-table-def. 10 filler PIC X(10) VALUE "...". ... 10 filler PIC X(10) VALUE "...". 05 error-table-redef redefines error-table-def. 10 error-table-entry OCCURS 1 TO 50 DEPENDING ON error-table-no INDEXED BY ... Possible solution (permanent change): 10 error-table-entry OCCURS 40 INDEXED BY ... Possible solution (defensive change): *w8prep GCOS8 10 error-table-entry OCCURS 1 TO 50 DEPENDING ON error-table-no *w8prep MFE8 * 10 error-table-entry OCCURS 40 *w8prep o COBOL: MFE8 does not support 'MOVE ... TO report-item', ex. 01 zeile-detail TYPE IS DETAIL. 02 ... MOVE ALL "-" TO zeile-detail. o IDS-II/DML: MFE8 only support simple IF expression involving DML syntax. Ex. supported syntax IF set-name EMPTY Ex. unsupported syntax IF set-name-1 EMPTY AND set-name-2 EMPTY IF something = "value" AND set-name-1 MEMBER o VMPS: Standard VMPS copies generally use underscore in names. MFE8 does not support use of underscore in names, and will replace all underscore (_) characters with dashes (-), both in copies and the source program. Although this technique will adapt source and copies automatically (no changes required), this could lead to duplicate names. Ex. DATE-STRUCTURE used as name and standard copy DATE_STRUCTURE OF VQ used also. DATE_STRUCTURE OF VQ: You must use REPLACING ==day== by ==pfx_day== ==day_of_week== by ==pfx_day_of_week== to avoid reserved COBOL-85 names (pfx_ is an example). SECURITY_OPTIONS_STRUCTURE OF VQ: You must use REPLACING ==access== by ==pfx_access== ==02 pic== by ==02 pfx_pic== to avoid reserved COBOL-85 names (pfx_ is an example). o COBOL: For 'SEARCH ALL identifier ...' syntax, MFE8 require identifier has an OCCURS, INDEXED BY and ASCENDING clause. GCOS8 will also allow identifier to be a subordinate field, ex. 01 error-table. 05 error-table-entry OCCURS 10 ASCENDING error-code INDEXED BY error-ix. 10 error-code PIC 9(05). SEARCH ALL error-code .... For MFE8 above syntax must be changed to SEARCH ALL error-table-entry o COBOL: MFE8 does not allow an identifier and a condition-name with the same name. GCOS8 does allow this, provided both are not referenced. o COBOL: MFE8 will flag following syntax "PIC +9(4) SIGN LEADING SEPARATE", since SIGN only makes sense with an S in the PIC clause. o COBOL: I/O exception handling is only partially compatible between GCOS8 and MFE8. Following differences apply: USE AFTER STANDARD EXCEPTION ---------------------------- GCOS8 makes a distinction between "AT END or INVALID KEY" and other I/O exceptions. If no USE procedure has been defined, execution is aborted if "other" I/O exceptions occur. MFE8 makes NO distiction between I/O exceptions. If a USE procedure has been defined, it is executed, otherwise execution continues. Recovery: Include a USE procedure for any file with FILE STATUS. GCOS8 support various exit modes via Status Key 2, i.e. normal exit, abnormal termination etc. MFE8 does NOT support exit modes and USE procedures always exit normally. Recovery: Use an explicit abort call within the USE procedure for abnormal termination. FILE STATUS ----------- File Status values are generally compatible, exception for "severe" I/O exceptions. These status key values are often very platform specific. Status Key 1 = '3' Input-Output Error All Status Key 2 values, except for '4' Boundary Violation, are MFE8 specific Status Key 1 = '8' Permanent Error Specific for GCOS8 Status Key 1 = '9' Other Specific for GCOS8 Specific for MFE8 (Extended File Status) o COBOL: GCOS8 require PROCEDURE/ENTRY USING arguments to be defined in LINKAGE SECTION. MFE8 does NOT enforce this check, and will allow arguments in either LINKAGE, WORKING-STORAGE or FILE section. Although this would cause unexpected flagging of program on GCOS8, this incompatibility is normally recognized during testing of program within MFE8. o COBOL: MFE8 will insert initialize coding after the first section or paragraph label in PROCEDURE DIVISION (after DECLARACTIVES). If no section is present and the first paragraph contains a single GO TO statement, AND the paragraph label is referenced by an ALTER statement, the ALTER statement is incorrectly flagged. Recovery: Insert a dummy paragraph label in front of the first paragraph label with a valid statement or a GO TO first paragraph label, ex. U00. GO TO becomes u00-dummy. go to u00. U00. GO TO o COBOL: MFE8 does not flag 'greater or equal' or 'less or equal' for COBOL-74. o COBOL: Manipulation of data-item with usage DB-KEY is not completely compatible with GCOS8. MFE8 will allow, MOVE literal|numeric-field TO db-key-field whereas GCOS8 will flag this. Recovery: Change to SET db-key-field TO ... syntax when flagged by GCOS8. o TP8 VMAPI: MFE8 only support the "_..." calling convention for TP8 Virtual Services, i.e. CALL "_TP_CALL_TPR" is ok, CALL "X_TP_CALL_TPR" is not ok. o VMPS: MFE8 only support the "X_..." calling convention for VMPS Services, i.e. CALL "X_UNPACK_STATUS" is ok, CALL "_UNPACK_STATUS" is not ok. o COBOL: GCOS8 requires an OCCURS DEPENDING entry in a record structure to be the last entry in the structure. This limitation is not enforced by MFE8, and thus not flagged. o IDS-II Area-Selection and Check Procedures: When database fields (NOT database parameters) are used as argument(s) for an Area-Selection or Check procedure, MFE8 will pass the current subschema field(s) as argument(s). This behaviour is not GCOS8 compatible ( GCOS8 pass schema field as argument) and could cause a problem, if schema and subschema data types are not the same. Following illustrate the problem: Schema: 02 my-field type decimal 6. Procedure ar01 language is cbl74 using my-field giving my-par-area. Subschema: 02 my-field pic 9(6). DB-procedure: Linkage section. 01 my-field pic 9(6) comp-4. Since schema and subschema data type are not the same for "my-field", the procedure will not function correctly because MFE8 is passing the subschema field (PIC 9(6)) and the procedure is expecting the schema field (PIC 9(6) COMP-4). To avoid this problem, and make the procedure compatible between GCOS8 and MFE8, you need to make following change to the procedure: *W8PREP GCOS8 01 my-field pic 9(6) comp-4. *W8PREP MFE8 *01 my-field pic 9(6). *W8PREP Above change will ensure that a subschema compatible field view is used under MFE8 (only). Note: This avoidance method can only be used if all subschema's, that cause invocation of the DB procedure, use the same data type for the argument field. Note: The reference subschema (generated from schema), will by default use the schema data type for a field, i.e. my-field PIC 9(6) comp-4, and you should thus not use the reference subschema for DB access that would invoke the DB procedure. The auto generated DB load program does NOT use Area-Selection procedures, but DO use Check procedures. o COBOL-74: Manipulation of Index-Data-Item, i.e. field with USAGE INDEX, is not compatible with GCOS8. GCOS8 will allow: SET index-data-item TO integer-literal|integer-data-item although the COBOL-74 documentation document this as invalid, ref. DE01 page 7-19. MFE8 will flag invalid SET combination as documented. Avoidance: Use index name for intermediate storage as follows: SET index-data-item TO 1 becomes SET index-name TO 1 set index-data-item TO index-name o PREP: STRING of numeric field with "V" picture specification is allowed on GCOS8, but flagged by MFE8. You need to move to a numeric edited field, i.e. PIC 9V9 -> 9.9, and string this field instead. o PREP: A "nn field PIC 9(nn) COMP-6", where PIC clause appear on the same line as COMP-6 usage clause, is normally adapted during MFE8 preprocessing. However, if COMP-6 is right aligned on the source line, automatic adaption may fail due to source line overflow. Avoidance: Delete some spaces to move COMP-6 further left on the source line, or remove PIC 9(nn) clause (documentation only on GCOS8). o Relative: MFE8 cannot emulate physical limitation on a specific file, i.e. maximum file size of GCOS8. If you have application logic that rely on an EOF status when physical limit is reached, this is a problem as the application will attempt to use all free space on the applicable drive. To test such EOF handling, you need to use Animator to emulate such an EOF status, i.e. restart at another source line. Alternatively, change the program so you can optionally accept a record limit and test this in your program. =================== MANUAL INSTALLATION =================== Manual installation is not possible with MFE/MFE8. ================= PROBLEM REPORTING ================= Please use the enclosed Software Problem Reporting (SPR) forms for problem reporting. Describe your problem in as much detail as possible, providing example(s) and/or other supporting material if possible, and send this to B & C Solution P.O. Box 54 Ole Piisvej 4 DK-3100 Hornbaek Denmark or fax to +45 49.70.47.80 or send through INTERNET support@bc-solution.com If you have any questions, suggestions for changes and/or improvements, please do not hesitate to let us know. More recent updates are available through INTERNET for download or verification of update content. Connect to our web-site 'http://www.bc-solution.com', go to the Support section and select 'GCOS8 Mainframe Express V3.0 Update' under Download Software Update. DISCLAIMER ========== THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. B & C SOLUTION DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL B & C SOLUTION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF B & C SOLUTION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. ========================================================================= GCOS8 Mainframe Express is a trademark of B & C Solution. All other trademarks and trade names are the property of their respective owners. ========================================================================= Copyright (C) 1998-2004 B & C Solution. All Rights Reserved.