iSeries source to System/36 target considerations for DDM
When an iSeries™ server is using DDM to communicate as a source server to access files on a System/36™ target server, the information in this topic applies and should be considered.
- Some file operations that are not rejected by a target iSeries server might be rejected by a target System/36. Examples are:
- A delete record operation is rejected if the System/36 file is not a delete-capable file. To the iSeries source user, the rejection might appear to occur for unknown reasons.
- Change operation that attempts to change the key in the primary index of a System/36 file is always rejected.
- In the System/36 environment, when System/36 users try to copy a delete-capable file to a file that is not delete-capable with the NOREORG parameter, a warning message is issued stating that deleted records might be copied. The user can choose option 0 (Continue) to continue the process. By selecting this option, the file is copied and any deleted records in the input file become active records in the output file. An iSeries server rejects the copy request if the user specifies COMPRESS(*NO).
- If data is copied to a target System/36 file that is a direct file and is not delete-capable, default values for all Copy File (CPYF) command parameters except FROMMBR, TOMBR, and MBROPT must be specified.
- An iSeries server does not support the overwriting of data on the Delete File (DLTF) command. If an iSeries user accessing a System/36 wants to overwrite the data, an application program must be written on the iSeries server, or the user must access the target System/36 and perform the overwrite operation.
- Depending on how a System/36 file is originally created, the maximum number of records it can contain is approximately eight million. This number can be significantly smaller if the file is not extendable or if sufficient storage space is not available to extend the file to add more records.
- System/36 supports a maximum of three key definitions for logical files and one key definition for keyed physical files.
- System/36 file support does not allow a file with active logical files to be cleared. When some iSeries programs (like ILE COBOL programs) open a file for output only, a command to clear the file is issued. A target System/36 rejects any such command to clear the file if a logical file exists over the file to be cleared.
- System/36 file support automatically skips deleted records. If an iSeries source user wishes to change the records in a System/36 base file over which at least one logical file has been built, the file must be opened in I/O mode, specifying direct organization and random access by record number. Then each record can be read by record number and changed. If a deleted record is found, a record-not-found indication is returned, and the record might be written rather than rewritten for that position (write operation rather than a change operation).
- System/36 file support also handles file extensions differently, depending on the file type and the language being used. However, an iSeries user cannot extend any type of System/36 file unless the access method used to access the file is similar to the method used when the file was created.
If an iSeries user is accessing a System/36 file with an access method similar to the one used to create the file, the file can be extended during its use in the following manner:
- If the file was created as a sequential file, the iSeries user should, if the iSeries language is:
- ILE COBOL programming language: open the file using the EXTEND option.
- PL/I: open the file using the UPDATE option. Perform a read operation using the POSITION option of LAST, and then perform the write operations.
(BASIC and ILE RPG programming language both handle any needed file extensions automatically.)
- If the file was created as a direct file, the iSeries user should, if the iSeries language is:
- ILE COBOL programming language: open the file using the I-O option, position the end of file pointer to the end of the file (using, for example, READ LAST), and perform a write operation.
- PL/I: open the file using the UPDATE option, position the end of file (EOF) pointer to the end of the file (using, for example, READ LAST), and perform a write operation.
(BASIC and ILE RPG programming language both handle any needed file extensions automatically.)
- If the file was created as an indexed file, the file is extended each time a write operation is performed for a record having a key that does not already exist in the file.
- The iSeries user can access sequential System/36 files using either sequential or direct (by relative record number) methods, but significant differences occur when EOF or end of data occurs. If a System/36 sequential file is being processed using relative record number access and is opened for either input/output or output only, then, on reaching the end of active records (EOF), you cannot add new records in the available free space beyond the end of data. You will have to close and reopen the file to extend it. To extend the file, you can either reopen it as a sequential file or open a logical file that uses this file as the base file.
- Because the normal access method used for a System/36 file can be changed by iSeries parameters to values other than *RMTFILE, it is possible that DDM might attempt to access the System/36 file in ways that the System/36 might not support. Normally, the default value (*RMTFILE) on the ACCMTH parameter gives the user the needed method of access. The use of access methods not normally expected (such as direct or sequential access to indexed files, or sequential access to direct files) requires the use of an ACCMTH parameter explicitly for the access.
The normal access method used for a System/36 file can be changed on the iSeries server: by the ACCMTH parameter of the DDM file commands Create DDM File (CRTDDMF) and Change DDM File (CHGDDMF), by the SEQONLY parameter of the Override with Database File (OVRDBF) command, or by using the OVRDBF command to override one DDM file with another DDM file having a different ACCMTH value in effect.
- The iSeries user can access a System/36 file using a member name if the member name is *FIRST, or in some cases *LAST, or if the file name is the same as the member name.
- Target System/36 DDM cannot support creating logical files with duplicate (nonunique) keys, because the System/36 local data management key sort sends messages to the target server console with options 1 or 3 when duplicate keys are detected. This forces the target system operator either to change the file attributes to allow duplicate keys or to cancel the target data manager.
Never cancel the target data manager using a SYSLOG HALT.
Parent topic:
System/36 source and target considerations for DDM