Understanding repository files
A repository consists of two ISAM files: a repository main file and a repository text file. The standard names for these files are rpsmain.ism and rpstext.ism. You can name them anything you like, but see the tip below. An empty repository (using the standard filenames) is included in your distribution. You can create additional repositories using the Create New Repository utility.
Although you can name the repository main and text files anything you like, we recommend that you include “main” and “text” in the filenames. Not only does this help to identify the files as repository files, it also enables you to take advantage of the filename defaulting that occurs in all main and text file fields in Repository dialogs: After you enter or select the name of a repository main file and exit the field, Repository enters a default repository text filename by copying the main filename and changing the last occurrence of the characters “main” to “text”.
You can specify the location of your repository files using the RPSMFIL and RPSTFIL environment variables or, if you are using the standard filenames (rpsmain.ism and rpstext.ism), you can specify the directory in which the files are located with RPSDAT. By default, RPSDAT is set to point to the rps\rpsdat directory below the Synergy/DE installation directory.
Repository searches for the repository files to use as follows:
- If the RPSMFIL environment variable is defined, the main repository filename is the value of RPSMFIL. Likewise, if the RPSTFIL environment variable is defined, the text repository filename is the value of RPSTFIL.
- If RPSMFIL or RPSTFIL is not defined, Repository attempts to open the files as RPSDAT:rpsmain.ism or RPSDAT:rpstext.ism, respectively.
- If Repository can’t open RPSDAT:rpsmain.ism or RPSDAT:rpstext.ism, it attempts to open rpsmain.ism or rpstext.ism in the current directory.
You can temporarily change the repository files being used while Repository is running. This does not reset RPSMFIL or RPSTFIL; the files defined by those environment variables will be used the next time you start Repository. See Set Current Repository utility.
When repository files are opened, various temporary work files (named RPS_SEQ*) are created. By default, they are created in the current directory on OpenVMS and in the location specified by the TEMP environment variable on Windows and UNIX. If TEMP is not set, the default directory is the current directory. You can specify a location for these files with the RPSTMP environment variable.
Repository supports multi-user access, with locking occurring at the record level. When one user begins modifying a record, no other user can write to it. This could affect a definition, such as a structure or template, or an internal reference record that maintains information about relationships between definitions. The lock is removed as soon as the user that has the record locked saves or abandons changes.
In most cases, it will be clear why you are getting a “record locked” error, such as when you try to delete a definition that is in use by another user. If you attempt to modify a structure, file, template, format, or enumeration that is in use, you’ll see a “record locked” message and be given the option to view the definition instead.
But there may be cases where it is not so clear why a record is locked. Following are a couple of examples of these less obvious locking situations:
- If you are editing a template definition, and another user is editing a structure that includes a field that references that template, a “record locked” message will display when you attempt to save your template changes.
- If you are editing a file definition, and a structure assigned to that definition is locked by another user, a “record locked” message will display when you attempt to save your file changes.
Any time you encounter a “record locked” message, you’ll have to wait until the other user is done before you can complete your task. If you are attempting to save changes, and you don’t want to wait, you have the option of canceling the operation by selecting the Cancel button after exiting the “record locked” message dialog.
Because other users may be adding or deleting records while you are working in the repository, definition lists could change. You can refresh the definition lists for structures, files, templates, formats, and enumerations by pressing F5 or selecting List > Refresh.
Once you set up all of your repository definitions, you can copy the repository files to other systems. This enables you to do all of your development on one system and then move your repository to other systems as necessary.
To move your repository files to another system, do either of the following:
- Copy the repository main and text files following the general guidelines for moving data files between operating systems in Moving database files to other systems.
- Use the Generate Repository Schema utility and the Load Repository Schema utility. First, use the Generate Repository Schema utility to generate a Synergy Data Language description (schema) of your repository to a file. Then, copy this file to another system and run the Load Repository Schema utility to convert the contents of the Synergy Data Language file into a new repository. This method works between any two systems, regardless of operating system, because the file generated by the Generate Repository Schema utility is a text file.
Moving repository cross-reference files
If you are using a cross-reference file (see Generate Cross-Reference utility (rpsxref)), when you move the repository you must also move the cross-reference file. To move this file, follow the general guidelines for moving data files between operating systems in Moving database files to other systems.