Open Access 4 & Compiler Runtime Network Reference These notes come from an unknown source. They have been scanned an converted with OCR software by Michael Paine. There are likely to be some unnoticed conversion errors. They are essential reading for anyone responsible for setting up Open Access on a network. Using Compiler: Runtime Network Compiler Runtime provides a wide variety of useful software tools for managing the information that is important for your organization. One of the most important strengths of Compiler Runtime is that it not only provides these tools on a single. stand-alone PC, but also on a local area network (LAN). In fact. usage of Compiler Runtime on a network was planned from the very beginning of the product, so that the design and functionality of Compiler Runtime fits the way users interact with each other on a network. All of the features of Compiler Runtime single-user version are included in the Compiler Runtime network version plus additional capabilities for taking advantage of the benefits of a local area network. This means, if you start off using +he stand-alone version of Compiler Runtime, it will be an easy transition when your office wants to add a network - all data and applications are inmrediately usable on the network and users will not need re-training, as the knowledge they have gained using the stand-alone version can be directly applied in the network version. This manual will provide information regarding the capabilities of Compiler Runtime which apply directly to using Compiler Runtime on a network. This manual assumes you are familiar with Compiler Runtime. If you are not, it is recommended to review the Compilar Runtime Manuals before reading this manual. Overview A Local Area Network (LAN) allows users to share hardware, software and data as well as cormrmnicate with each other more easily than if all the PCs were not connected. For example, if a laser printer is connected to a network, everyone on the network can have their documents laser printed easily. This is more economical than buying a laser printer for every user and more convenient than requiring people to save their documents to a disk, take the disk to the computer connected to the laser printer, possibly wait while someone else is getting a printout, and so on. Another example of the benefits of a network is any application that requires several users to have access to the same data at the same time. Such applications could include: telemarkering; order entry; customer, employee, student, or patient administration; inventory; project administration; library systems; and many more. A network allows all the users to access the most current information available rather than having to wait for scheduled updates or working with information that may be obsolete. While working on a network, users can also send electronic mail messages to each other to increase productivity through more efficient conrmunications. The advantages that networks offer require that the software does more work. For example, although the ability for two users to share data can be a convenience, it could lead to trouble: suppose two users try to change the same data at the same time? At best there would be confusion, and at worst someone's changes could be lost. Compiler Runtime Net has been specifically designed to avoid such drawbacks. Compiler Runtime Net will not allow two users to change the same data at the same time. In fact, if Compiler Runtime Nat thinks you're unaware that someone else has changed data that you're about to use, it will warn you. A description of the workings of Compiler Runtime Net in greater detail will follow; for now, you can rely on Compiler Runtime Net to protect your data, keep you infonned of what is happening, and to generally function in an intelligent and convenient manner. Network Hardware A network is an operating environment for microcomputers, which connects multiple "workstations" (PCs) to a "network file server" (or "file server" or just "server"). The file server is a computer with 8 large hard disk where programs and data files reside for all workstation users to share. The "workstations' are connected to the server by network cards and cabling. There are two types of network servers - a 'Dedicated server" and a "Non-dedicated server." A non-dedicated server may function as a workstation at the same time. A dedicated server doesn't allow any users to operate it; it only handles tasks through the network from other workstations. The dedicated server requires an additional PC, but improves performance of the network. Often the server is connected to one or more printers. These printers are called "spooled printers." Anyone On the network can use them and when you send a document to be printed on a spooled printer, you don't have to wait for the computer to print the document - you can continue with whatever you're doing. The network software organizes the printing jobs from each workstation into a queue and prints them in the order they were received. A Local Area Network (LAN) is, as the name suggests, a network confined to a relatively small area. Usually a local area network will connect hardware within the same office, or perhaps within the same building. Generally, there are from four to twenty users on a LAN, though more users are certainly possible, due to faster PCs being made available for use as network servers. A Wide area network (WAN) allows remotely located computers and LANs to be connected to each other through gateways, which are composed of both computers that act as connections between other computers and also phone lines used to transmit and receive remote data corranunications. Network Software In addition to the network hardware, there is also network software. There are two types of network software - the network operating software and network application software, such as Compiler Runtime Net. The network software keeps track of items such as which user is on which workstation, and which files are being used. Most users will have little to do with the network system software. The Network Operating System allows users to define ("Flag") who may view (i.e. "read") a file, and who may change "write") the file. If many users are permittedto access the file at the same time, it is termed "shareable:" otherwise, it is "non-shareable." Normally, users will not have to worry about "flagging"; it will be taken care of by the network administrator. The only circumstance in which you might use flagging is if you decide to make one of your private files accessible to everyone. More details on flagging are available in the documentation that accompanied your network hardware/software. Directories, as well as files, may be flagged. What is useful to know is that some directories may be public shareable), and others may be Private (i.e. non-shareable). Files in a public directory are accessible by everyone (assuming they are properly flaggad), while files in a private directory are accessible only by the directory's owner. All diIectories on your workstation are private; directories on the file server can be either public or private, depending on how they are flagged. As with files, you will Probably not need to concern yourself with flagging directories; all you need to know is that there are some directories only you can access, some directories that you cannot access, and some directories that all users can access. When directories and files are flagged shareable, it is important to ensure that data can be changed by only one person at a time. In Compiler Runtime Net this is referred to as "locking." In Compiler Runtime Net it is possible to "lock" an entire file, or parts of a file. All locks will be applied automatically so that you are not forced to understand if locks are necessary or not. However, you can apPly locks manually if you know what data you want to work with and you want to make sure that all changes can be performed at one time. The Network Administrator The operations and integrity of a network are managed by the "network administrator" or "network supervisor". The network administrator creates new user accounts on the network; creates directories for shareable data; flags files as "shareable read/write;" installs network applications, such as Compiler Runtime Net on the file sarvar; and so on. Some of these tasks are performed using special features of Compiler Runtime Net and others are performed using the functionality of the network operating software. Advantages of Compiler Runtime Net As mentioned previously, Compiler Runtime was designed with networking in mind. This means Compiler Runtime Net does much more than simply run on a network like other software that does not have network functionality designed in from the beginning. Compiler Runtime protects the smallest units of data necessary for an application to continue working, leaving the remaining data available for other users to work with. Also, each workstation using Compiler Runtime Net may be configured individually for the software and hardware needs of that user. Other network application software oftentimes requires all workstations to have the same configuration. In addition, Compiler Runtime Net includes Compiler Runtime Mail, allowing electronic mail to be sent and received by all Compiler Runtime Net users as well as users of other software applications that supPort the MHS protocol. Listed below are some brief points which outline the advantages of Compiler Runtime Net. Automatic or Manual Locking Compiler Runtime Net's sophisticated locking abilities are fully automatic. When you perform an operation that requires that data be locked, Compiler Runtime Net will automatically place a lock on whatevel data is necessary. All a user need understand is that sometimes data may not be immediately available because another user is in the process of changing or viewing that same data. Though Compiler Runtime Net's locking is automatic, users can also anticipate their needs and place locks manually, if they so desire. By using manual locking, advanced users can inclease the efficiency of their operations. Manual locking can also be used to great advantage by application developers. "Friendly" Locking" Although it is clearly necessary and desirable to lock data, Compiler Runtime Net goes to great lengths to minimize any inconveniences due to locked data. When a needed piece of data is used by one user, other users are still free to view it. If a second user tries to change the locked piece of data, Compilel Runtime Net will put up a window that indicates that the desired information is locked, and which user has locked it. At this point the second user has three options: wait until the data is unlocked; cancel the waiting process and do something else; or use Compiler Runtime Mail to send a message to the first user (to find out how long the lock will be in place or to request that the data be unlocked). Efficient Data Locking Compiler Runtime Net allows a lot of flexibility when locking data. For example, the Compiler Runtime Net allows lists of database records to be locked by one user so that other users may view these records but not change them. Records which are in the same file but not in the locked list, may still be accessed and changed by other users; this is in contrast to other network databases that force the user to choose between locking a single record or locking the entire file. This record locking capacity is especially important because the Compiler Runtime database files are truly relational. Because the database files are relational, a record may have fialds drawn from as many as eight different files - clearly, a system which had to lock all eight files before permitting you to change a record would slowproductivity considerably. Private and Shared Locks Depending on the type of operation you are going to perform, data can have different types of protection (locks). If you are going to be changing the values of the data or deleting data, it is important that others are not able to perform any tYpe of operation except viewing the data as it is currently. Actions like printing a report should not be allowed because the data may change between the beginning of the report and the end of the report and, consequently, the totals will not match up against the data. When data needs complete protection, this is termed an "Private lock." On the other hand, if you are only going to be printing data or exporting data to a .DIF file, for example, you are not going to be changing the data, so there is no reason not to allow others to be able to print reports, and so on as long as they are not allowad to change or delete the data. If this is the tYpe of operation you will be performing, a "Shared lock" is sufficient. Having both types of locks available allows for greatar efficiency and performance on the network as data isn't "locked up" as much. When automatic locks are applied, Compiler Runtime Net knows whether a task requires a private or shared lock. Configuring Colnpiler Runtime Netrork This chapter provides information necessary to set up Compiler Runtime Net prior to using it to manage your data. The steps are outlined below and then covered in more detail in the remaining sections of this chapter. 1) Install Compiler Runtime Net software on the network server. 2) Install the workstation files on the local workstation or on the server. 3) Initiate Compiler Runtime Net. 4) Configure your local workstation hardware and software environment. Installing Compiler Runtime Net on the File Server It is recommended that this installation step be carried out by the Network Supervisor. This is because directories need to be created and access rights for directories granted. Also, a working knowledge of tha netwolk hardware and software will help in understanding the installation process. The procedure for installing Compiler Runtime Net server software is described in the Compiler Runtime Manual along with the procedure for installing the Compiler Runtime stand-alone version. The installation program automatically flags the Compiler Runtime Net server program directory "shareable read-writes. Each user should have Read/Write rights to the directory containing the Compiler Runtime Net server software. Compiler Runtime Net will support Read-Only rights for data directories. Once the Compiler Runtime Net Server software has been installed, make sure users have the appropriate rights to be able to access this directory as the subdirectories on which the help files are installed. Installed Compiler Runtime on Workstations The workstation files may also be kept on a private directory on the network server, or even on a public directory. However, the only time these files should be on a public directory is if all workstations should have exactly the same configuration for hardware and software while running Compiler Runtime Net. Most commonly, the workstation files are kept in a user's Private directory on the network server. Initiating Compiler Runtime Net Once the Compiler Runtime Net server software and workstation files have been installed, you are ready to initiate Compiler Runtime. Make sure that DOS is prefixed to the floppy drive or subdirectory containing the workstation files, enter "CMP p=f:\cmpcode" and press . The syntax above assumes the Compiler Runtime Net server software was installed to a path named "CMPCODE", and that the network root identifier is "F:". If these are diffelent on your network, substitute the actual path name and root path drive for your network. The following is an analysis of the initiation syntax: CMP Compiler Runtime Net execution file (CMP.EXE) P= Prefixes the execution file to the network pathname where the Compiler Runtime Net server software resides f:\ Network root directory cmpcode Network Server directory where Compiler Runtime Net was installed. The instruction for initiating Compiler Runtime Net can be placed in a DOS batch file to make it easier for users to access the program. This will prove especially useful if other cormoand line options (e.g., "K-" for cursor speed-up, "A-filename" for attaching Language Calls, or "M=macrofile" for automatic initiation of an Compiler Runtime macro upon initiation of Compiler Runtime) are included. The Desk Accessories Note Pad editor can be used to create such a batch file. Configuring Compiler Runtime Net on Workstations The information regarding the specific hardware and software environment for each individual workstation is stored in a file called CONFIG.OA4. This file is one of the workstation files copied to the subdirectory in which you initiate Compiler Runtime Net. In fact, CONFIG.OA4 must reside in the same directory as CMP.EXE, the program used to initiate Compiler Runtime Net. There are a number of settings stored in the file CONFIG.OA4 and the procedures for modifying all of these settings are described in detail in the Utilities Reference Manual. However, in the remaining sections of this chapter, some of these settings will be sunrmarized as they relate to Compiler Runtime Net in particular. The most important setting is the Searching Order. Once this is completed, other settings for hardware and software settings may be configured. Configuring the Searching OrdeI When you load a file Compiler Runtime Net needs to know where to look for the file. This information is kept in the Searching Order. The Searching Order tells Compiler Runtime Net on which volumes/pathnames to look for a file, and the order in which the volume/pathnames should be searched for files. The directories represented in the Searching Order may be public directories on the file server or (your) private directories on either the file server or your workstation. The system will support up to 20 paths in the searching order. The network pathname containing the most commonly accessed data should be the first directory searched. Local drives and directories should be included after the server path names in the Searching Order. Users who don't regularly access their local drives may not want to include them in their Searching Order. This improves Compiler Runtime Net's file searching performance (especially when the program is looking on a floppy drive with no disk inserted). Note: When entering search volumes, the system does not insert the \ after the colon (:). This is because the network system software allows you to map subdirectories and paths to a letter G:=z:\super\data\). If you vere to enter a letter with a colon and no \ followed by another subdirectory name, the system would interpret it differently than if you had entered a \ after the colon. Local floppy drive volumes in the searching order (ie., A:) do not require a \ ; these volumes will use the currently active directory path from DOS. Example: If the following path redirection is set in the network operating system: "G:=Z:\SUPER\CUST" These Compiler Runtime Net Volume/Pathnames would be translated as such: "G: " would translate to "Z:\SUPER\CUST" "G:DATA" would translate to "Z:\SUPER\CUST\DATA" Steps for Configuring the Searching Order 1) Select Configure by entering "C" from the Compiler Runrime Net Main Options Menu. The Compiler Runtime Net Configuration Menu is displayed. 2) Enter S to select the Searching Order option. 3) Experiment with moving the cursor around. The up and down arrows move it up and down; the tab key moves you between columns . 4) For each volume you want to access, enter a nickname, press or and then enter the volume followed by the pathname. You can either overwrite existing entries, or you may create a new entry by pressing . (Press if you don't recall the name of a function key.) 5) Remember that the most frequently accessed directories should be toward the beginning of your Search Order. Note: the Compiler Runtime CODE directory (or whatever file server directory contains the Compiler Runtime Net code) should be in the Search Order, but the workstation directory from which you execute Compiler Runtime Net does not need to be in the Search Order. In addition, the directory containing the help files should also be in your Search Order. 6) When you are finished, press to accept the new Search Order, and you will return to the Configuration menu. If you wish to quit without saving the new changes, press to restore the original Search Order and then in response to the verification prompt. Selecting the Screen Colors or Modes Compiler Runtime Net comes with a variety of screen configurations. Screen configurations determine the colors (or modes) of titles, prompts, window outlines, and so on. Selecting a screen configuration is simply a matter of trying a sensible-sounding configuration, saving it, seeing what the Configuration Setup menu looks like, and then trying again if it's not to your liking. The following procedure takes you through one trial: 1) From the Main Options Menu for Compiler Runtime, enter "CM" to display the Miscellaneous Parameters Window of the Configuration Menu. Move the cursor to the "Screen Identification" prompt and press isearch>. 2) A window appears with a list of screen configurations with names such as "London Fog," "Espana", and "Autumn Leaves." Use the arrow keys to move the cursor to an appropriate ID name (e.g., "London Fog" if you have a color monitor) and press . 3) The Misc Parameters window is redisplayed with the new choice appearing after the prompt. Press again to accept the changes you've made to the Misc Parameters, and see if the new screen configuration is to your liking. If not, repeat these three steps and try a different configuration. Note: The MODES C-call allows the standard colour to be edited. Graphics Driver Installation You may configure Compiler Runtime Net to take advantage of the special graphics capabilities of each individual workstation If your workstation has a graphics card which is supported by Compiler Runtime Net, this section covers the steps for configuring the appropriate graphic driver software for Compiler Runtime Net. 1) From the Main Options Menu for Compiler Runtime, enter "CM" to display the Miscellaneous Parameters Window of the Configuration Menu. Move the cursor to the "Graphics Driver" prompt and press . 2) Move the cursor to the desired Graphic Driver and press . The Driver you selected is placed in the "Miscellaneous Parameters" window for the Graphics Driver. 3) Press to accept these parameters and install the selected driver. The Configuration Menu is redisplayed. Select "Options" to return to the Compiler Runtime Net Main Options Menu. Spooled Printers In addition to the file CONFIG.OA4 there is another file, CONFIG.PRT, which stores information regarding a wide variety of printers and plotters that can be used with Compiler Runtime Net. When Compiler Runtime Net is given a print conrmand, it looks for the file CONFIG.PRT on the volumes listed in your Searching Order. Consequantly, users may keap their own printer parameters file private by placing a copy of CONFIG.PRT in a private volume early in the Search Order. Unless you have a specific reason for maintaining a private CONFIG.PRT (e.g., a special graphics boald in your workstation, or a special printer translation table), it is recormnended to keep only one copy of this file in a public directory in order to conserve disk space. Compiler Runtime Net supports the network's print spooling functions. If you wish to configure a printer in 'CONFIG.PRT" to send output to the network print spooler instead of to your workstation's parallel or serial port, you must set the "Output Device:" for that printer to the "LST:" setting. This is the network spooled printer output device in Compiler Runtime Net. Note: If the network is set to "capture" printed output then this might not be necessary. The LST Port Setup Window When a printer configured with the "LST:" output device in CONFIG.PRT is selected for a printout, the "LST Port Setup" window is displayed. This window lets you specify to which network spooled printer port (LSTO...LST4) your selected printer is connected. This window also lets you enter a network "Banner Message" for your spooled printout if you are using Novell Netware. You must know which printers are connected to which spooled printer ports. Check with your network supervisor if you are unsure, as selecting the wrong port will mean your printout will, most likely, not find the right spool printer and other consequences could also occur. If you are using Novell Netware, you may press the key to view a list of all servers that are bridged together. This allows you to select a spool printer that is attached to a bridged server rather than to your server. Communications Ports You should be aware that sometimes internal modems are configured by default to the COM1: Communications port. Network station cards are also often configured to "COM1:". If a modem is initialized to the same port, your workstation could stop and you would need to reboot your PC. You may need to re-configure your network board to "COM2:". Consult with your network administrator regarding this. Default File Volumes Because the Desk Accessories files and other default files are usually private, you may want to store thesa files in a private directory on the server or your workstation hard disk where others cannot access them. As well as avaiding the inconvenience of waiting while others are using Your files, this will also prevent possible data loss or unauthorized modification by other users. 1) From the Compiler Runtime Net Main Options Menu, enter "CD" to display the Default-Files window of the Configure Menu. This command allows you to alter both the volume name and, if you wish, the file name. The illustration above shows only the altered volume names. 2) Replace the volume nickname with the nickname of the volume on which you wish to keep these files. (Hint: If the filst kay you press is an arrow key (e.g., left arrow), you may use the and keys to edit the current entry, rather than retyping in the entire entry. Also, pressing displays a list of the current nicknames and file names.) 3) After you've edited the nickname, pressing enters the new nickname and moves you to the next entry; pressing restores the original nickname. 4) Repeat steps 3 and 4 for each Default File. When you have set all of the nicknames, press to save the settings; to restore the old names. In either case, the Configuration Menu is redisplayed. The Scratch Volume Compiler Runtime Net sometimes need to create temporary files (called "scratch files'). These files should be created on a private directory in order to minimize network traffic. However, Compiler Runtime Net will support scratch files on network directories as well. As with the Default Files, you may specify which volume the temporary files are created on. This volume is referred to as the Scratch Volume. To set the Scratch Volume nickname, follow these steps. 1) From the Main Options Menu of Compiler Runtime Net, enter "CM" to display the Miscellaneous Parameters window of the Configure Menu. Move the cursor to the "Scratch Volume Name" prompt, and enter the appropriate nickname. (Press to display a list of available volumes.) 2) Press to accept the new Scratch Volume nickname and again to redisplay the Configure Menu. Additional Configuration Issues In addition to the network-specific items discussed above, there are a few more items which should be mentioned. The Applications Options available from the Main Options Menu allows you to define your own menu including keyboard macros, and Compiler applications, external DOS commands as well as additional software programs and Language Calls applications. While the main Applications Menu may apply to all network users, you may wish to define your own menu as well. Since the Applications Menu may include items to display submenus (down to four levels deep), you are free to define your own menu. Once defined, you would probably want to keep this file in a private directory. Tha other options of the Configure Menu (including User Defined Function Keys and Clock Settings for additional regions as well as intervals between appointments) are all stored in the CONFIG.OA4, so they may be personalized for each workstation on the network. Lastly, since Compiler Runtime help files may be edited like any other text file, you may want to store a copy of the help files in a private directory and customize the help information with your own hints, reminders, and suggestions. These customized reminders can save you from having to go searching for information that you don't use often. Performance Considerations The performance of your network system depends on how many stations are active and to what degree those stations are competing for the same resources. In general, the more workstations you add to the network, the slower the network will become. There are a number of suggestions for increasing network performance and some general items which will improve overall network performance. This section will also identify a few items which are specific to Compiler Runtime Net Items to improve overall network performance include: Have a dedicated network server rather than a non-dedicated server. Use a faster PC, such as a 386 or 486 as the network server. ( a 386!!) Make sure the network cards are a faster rather than slower speed. Try to minimize any excess length on the network cabling. In addition to these general suggestions, the following suggestions that relate directly to Compiler Runtime Net can be used to increase program perforrmance . Extra RAM The workstation's minimum memory requirement provides for adequate performance in most cases. For Compiler applications, you can usually increase performance for large models and program applications by increasing the RAM memory of the workstation. Since Compiler Runtime Net supports EMS (Expanded Memory Specification), memory above 640K can be utilised. Extra RAM installed in the Server also improves the performance of the system, because the Novell Netware/PC Net Network Operating System creates additional file buffers, decreasing the overall amount of disk access necsssary to perform a given task. Searching Order When given a file name, Compiler Runtime Net searches each of the directories in the workstation's searching order until it finds the specified file. By grouping the files that a particular station uses onto a single directory and placing that directory first in that workstation's search order, you can prevent unneeded directory searches. In addition, whenever possible leave floppy drives out of the searching order as they take considerably longer to search through than hard disk subdirectories. A floppy drive with no disk inserted will slow down the searching considerably. Also try to keep the number of directories in your searching order down. If you have a lot of volwnes containing data, use macros to add groups of volumes to the searching order as needed. Scratch Volume In the Miscellaneous Parameters section of the Configuration Utility there is an entry called "Scratch Volume". This is the volume (directory) which will be used to create temporary files (scratch files) used in various places. This volume can be set to a local hard disk so that the server will not need to be involved. If there is not enough room on a local hard disk, then a network directory should be selected. Default Files By setting up the default files to use the first entry in the search order, significant time can be saved when using the desk or any other function which makes use of the "Default Files." Compiler Runtime Network Specifics This chapter describes how Compiler Runtime Net handles protection of data through locking as well as additional functionality of Compiler Runtime Net. The database file locking is described in more detail in the following chapters. About Locks A lock is a method used to prevent two users from trying to change the same data at the same time. When one user has data locked, any other users who try to change it will be told that it is locked and asked to wait until the data is unlocked. Though it is possible for users to manually lock data, Compiler Runtime Net automatically locks data before changing it in the normal course of events Thus, users need not worry about whether to lock data - Compiler Runtime Net will do so whenever necessary. Note that different amounts of data can be locked depending on the application and the situation. Sometimes the entire file is locked so that only one user can access it; other times only some of the data in the file is locked. For example, the Compiler Runtime allows either single records or lists of records to be locked thus two users may change records in the same file at thesame time, provided, of course, the records are different. The following table displays the types of locking allowed by each option: Option What will be (or may be) locked Utilities Entire file is locked. Desktop Entire file is locked; or records are locked. Database Sets of records may be locked or single records may be locked. File Locking Compiler Runtime Net Desk Accessories and Utilities, are always locked privately when loaded. Private file locks are automatically invoked by Compiler Runtime Net on a first come, first served basis. Users are not allowed to either view or change information in a privately locked file. When another user tries to access a privately locked file, the "Lock wait" window is displayed. The exception to file locking in the Desk Accessories are the Appointments Window and the Business Cards Window. Since these commands usa database files to store their records, the files can be shared and individual records are locked as necessary when they are modified. When a Lock Wait window is displayed, you will notice an incrementing number and the word "Retrying" flashing in the bottom left of the window. This means that the program keeps trying to access the locked file, and the number represents the number of tries the program has attempted to gain access to the file. When a Lock Window is displayed, you can: 1) Wait for the user who has the file locked to leave it, in which case no action is required. When the file is unlocked, the Lock Wait window is closed and the file is loaded. It then becomes exclusively locked by you. If you need to access a file that is locked by another user, you may wish to contact that user to find out how long it will be in use, or to request that the file be unlocked so you can load it. If it is inconvenient or not possible to phone, you can send an electronic mail message to that user, using Compiler Runtime Mail. 2) Press if you don't want to wait for the file you selected to be unlocked. Compiler Runtime Electronic Mail Local area networks connect PCs together for the purposes of sharing data, software, and hardware. Once connected, the network provides a medium for communication between users as well as programs. Electronic Mail is the software which allows users to conrmunicate with each other by sending messages across the network. Rather than repeatedly trying to get in touch with one or more people by telephone, you can send a message instead. Compiler Runtime Net includes full support for electronic mail. You can send one message which automatically gets routed to all users concerned and even allows you to get a return notification message when the other party has read the mail you sent them. In addition, files may be "attached" to the mail message. Compiler Runtime Net even allows you to exchange mail with users of other software programs who support the MHS protocol. For more information, refer to the Compiler Runtime Mail chapter of the Utilities Reference Manual. Database Network Specifics This chapter describes the network specific features of the database files. Casual database users may skip this chapter; however, you should read this chapter if you wish to become fully acquainted with the natwork features of the Compiler applications. This chapter describes the detailed working of locks for database files, because locks are the primary way in which the Compiler Runtime Net differs from the standard Compiler Runtime. Nota that the term "view" means a list of database records which you have retrieved and are using. A view may consist of some or all of the records in a file, or of records whose fields are drawn from more than one file (since the Compiler Runtime database files are relational). Locking in the Database Files Lists of records (views) or individual records may be locked. Locks are automatically set by the Compiler Runtime whenevar necessary. If you are performing an operation which will result in a record being changed, the a private lock is obtainad before changing the record. You also have the option of manually setting locks using the record Lock command. Regardless of whether a lock is set automatically or manually, it functions in the same way. In particular, if a lock cannot be obtained, the Compiler Runtime informs you of this and gives you the option of waiting or backing out of the operation. The following sections provide further descriptions. When a Lock Cannot Be Obtained The Record Lock Window does not display the lock status of any othel users who may already have any of the records in your query locked. When you try to set a lock that is in conflict with someone else's lock, the Record Lock Conflict window informs you of this condition. Automatic Locking (No Locks Set) When no locks are active, anyone may change a record you are using. Because the Compiler Runtime does not automatically update the screens of other users of the same record, there is no guarantee that the record you see on your screen still matches what is in the database file. If you are viewing a record in a screen form, pressing will le-read the current record from the server and update the display. In any case, if you try to change a record that someone else has already changed, a message informs you that another user has already updated the record. After you press or , the newly changed record is updated on your screen, and you may proceed with your changes. Private Locks A Private Lock allows only the user who invoked the lock to make changes to the list of recolds. Other users can retrieve and view these records, but they cannot change, delete, or print them. A Private lock is automatically invoked by the Compiler Runtime if a user is performing certain operations that require the records involved to be exclusively locked. Shared Locks Sometimes you may not want to change or delete records but you do not want anyone else to change or delete records as well. For example, when printing a report, you do not need to change records but you must also make sure no one else changes records, to ensure your report is coIrect. In this case, you use a Shared Lock. When a Shared Lock is put on a set of records, another user will be unable to put a Private Lock on any of the records, but will be able to invoke a shared lock. The advantage of a shared lock is that several users can simultaneously guarantee that no one will be changing any of the records; whereas a Private lock gives only one user this guarantee. If someone else already has sat a Private Lock or a Shared Lock on one or more of the records in view, the program will inform you of this with the "Record Lock Conflict" window as shown previously. As explained previously, you may wait until the lock is released or you may cancel waiting and try again later by pressing . Appendix A-Trouble shooting Under certain circumstances the system may behave in an unexpected manner due to a variety of conditions. For the most part, these conditions arise when one or more stations become inoperable due to hardware malfunction or rebooting. Two symptoms which may arise as a result of this are: phantom locks (data which is locked but not in use by any station) and options missing from the Main Options Menu. Phantom Locks "Phantom Locks" are locks that should not be there. For instance, if a user has locked a group of database records, and then reboots his workstation, those database records will remain locked even though tha station which locked them is no longer using them. These locks are non-destructive, meaning that they do not destroy any data, but they do prevent users from accessing that data until the locks are released. The safest way to release these 'Phantom" locks is to wait until every Compiler Runtime Net station has exited Compiler Runtima Net, and then remove all files beginning with an ampersand These files will have names such as &FLOC and &LDB. An alternative method of removing a particular workstation's locks is available whan you are sure which station has become inoperable, and what function it was performing. If it was the only station using files on a particular volume, then it is sufficient to remove the ampersand files from that particular volume. However, the best recommendation is to make sure all stations have exited Compiler Runtime Net, and then to remove all ampersand files from all volumes. It is possible for the system administrator to create a batch file that removes all of the ampersand files. Other problems Compiler Runtime Net uses the byte-range locking routines in order to ensure that certain files are accessed by only one user. It may be possible for a station to exit with a byte-range active, and others will not be able to get the same byte-range. This is a situation which will cause stations trying to get this byte-range to exit Compiler Runtime Net unnaturally. After Compiler Runtime Net has deemed it impossible to get the byte-range, a message is displayed that informs the user of a "SYSTEM ERROR." The user is then returned to the operating system (the time it takes for this to occur depends on how busy the network server is). All "&" files should be removed and the network supervisor should make sure that the station which had the byte-range is "cleared" from the system. If clearing this station still does not free the byte-range, the network may have to be rebooted. Fine-Tuning Network I/O Some network operating systems 3Com) allow fine-tuning of certain parameters of the Network Operating System. For instance, Compiler Runtime Net relies heavily on file I/O in non-contiguous blocks. Configuring the network for more transmission on message buffers with a smaller size will result in more efficient server opelations. please consult your network manual for further information about this. Appendix B - Network Error Messages This is a list of possible network error messages. Some of the error messages also appear in the standard Compiler Runtime package but may appear for different reasons in the network version. It should be noted that access rights can only be modified by the system administrator. CRC Error / Disk May Be Write Protected This error may occur because the network file access rights are not sst up correctly to allow for the function that a user is trying to execute. Check the access flags for all files that a user is executing. Access Denied - File is Locked by Username This error occuls when a user tries to access a file that is exclusively locked by another user (Username). Try this function again when that user is finished with the file. Unable to Spool Output to Printer Number Selected Occurs when a user selects an illegal spooled printer. Check the spooling printer setup configuration. Access Denied - File is Being Used in Shared Mode by Username Occurs whan file has been share locked by one user and anothar user tries to exert an exclusive lock. Wait until the first user has finished with shared lock and then retry. Access violation Occurs when a user tries to exert an illegal lock. Depending on circumstances, the general strategy for dealing with this error is to retry the function at another time. May occur with improper queries. Records are Locked Someone else has locked records a user is trying to access in a database. Retry again at a later time. Record Updated by Another User - Try Again while one user was in the process of changing an unlocked record, someone else changed and saved it. When trying to save the record, Compiler Runtime Net noticed the other change and displayed this message. Make the changes over, or exert a lock on a view including this record before attempting to change it again. Illegal Access to File A user has attempted to access a file which he or she has not been granted rights to. Check the access rights for the file. Record Lock conflict with Username Occurs when a user attempts to exert a shared or private lock and another user has already locked some or all of those records. Illegal Operation - File is in Read Only Mode Attempt to write to file that is flagged as read only. Change access rights to file, or select another file. System Error - See Appendix A (gulp!)