Date: 01-31-2003 RELEASE 8.7 File Manager *============================================================================== Notes for WARNINGS: - The 8.7 SUNFM and SUNFHSYS versions can not be used with any prior released versions. An 'Invalid SUNFHSYS version!' message will occur when a version conflict is detected. *============================================================================== SUNFM - Modified the file manager to support keepalive messages. This change is needed to correct problems where rebooting a PC client workstation, that has opened files on a file manager, would cause the file manager child thread/process to hang. This HUNG child thread was remaining active but inaccessible which was causing file handles and file locks to remain active. This was causing subsequent errors in programs that attempted to access the file manager files controlled by the HUNG thread. Note: 1. The Admin Services interface can allow an administrator to terminate a hung thread/process if its identification is known. 2. The keepalive support added will also detect a hung thread and terminate the thread after a specified number of minutes when using the FM_KEEPALIVE={minutes} keyword. If the {minutes} value is set to zero, then the file manager will disable keepalive support. This is the file manager default. Otherwise, the {minutes} value specifies the maximum number of minutes to wait before terminating a thread/process that does not have any connection message activity. The {minutes} has a minimum value of 3 minutes except for zero, which disables the keepalive capability. - Sunbelt Administration Services for Server Products. The ADMIN features are turned off by default. .INI file changes must be made to enable these features. Please see the included .CFG file for the File Manager and .INI file for the Application Server. For detailed informtion see the 'ADMIN' section in this .RFM file. - Modified log output to provide the protocol commands that occurred for a socket error. The protocol command values reported for socket errors in the log file can be used to help isolate what instruction may be having a problem. - Corrected a problem where an UPDATE for a FILE variable was corrupting data records. - Corrected a problem that could occur after a WRITE operation that had a variable list byte size larger than 8192 bytes. This problem could be detected by the existence of a 10014 socket error in the log output file and a subsequent I81 lost connection error in the PL/B program. - Corrected a problem where the SUNFM (-f) forced termination would not work if a child task was in a hung error state. - Corrected a problem where the connection count could become invalid if several child processes either started or stopped at exactly the same time. ------------------------------------------------------------------------------- SUNFHSYS.DLL- The sunfhsys.dll has been modified to provide support for the Administration Services. This allows Admin support to be provided for the SUNFM file manager. ------------------------------------------------------------------------------- ADMIN - Administrative Services have been added to all of the Sunbelt server products. This includes the SUNFM File Manager, the PLBSERVE Application Server, and the PLBWIN Automation Server. The basic capabilities provided by the Administrative Services are as follows: 1. An Admin Main Task is created when a Sunbelt server is loaded. As client users access/use a server, data is automatically collected and maintained in a Admin Database. 2. The Admin Main Task allows PL/B programs to logon to the Administrative services to provide a user interface for administrators. 3. New Administrative statements have been added to the PL/B language to allow access to the Admin Database. The new Admin statements allow data to be retrieved to provide a real time view of the current client users making use of any server. In addition, the new Admin statements provide specific commands that can be sent to individual server child tasks to allow basic administrator controls for child tasks. --------------- -- ADMIN Errors All ADMIN statement errors are O155 errors with a sub-code. #define O155_failedtostartsocket 1 #define O155_badipaddr 2 #define O155_outofmemory 3 #define O155_socketcreatefail 4 #define O155_socketbindfail 5 #define O155_adminnotfound 6 #define O155_badversion 7 #define O155_unknownversion 8 #define O155_connectlost 9 #define O155_socketerr 10 #define O155_encryptstartup 11 ---------------------------------- -- Server Configuration Parameters The following configuration keyword parameters can be used in the server configuration/ini files SUNFM, PLBSERVE, or PLBWIN in Automation Server Mode. ADMIN_SUPPORT={ON|OFF} This parameter specifies whether the main admin task is created. A value of OFF prevents the main admin task from being created. A value of ON creates a main admin task. If the parameter is not found, the main admin task is created only if an ADMIN_HOSTNAME, or a server log file (FM_LOGNAME, FM_LOGFILE, PLBAS_LOGNAME, PLBAS_LOGFILE, PLBCS_LOGNAME, or PLBCS_LOGFILE) is found. ADMIN_PORTNUM={port number} This parameter specifies a port number for the admin logon task. If not provided, the default is 2101. ADMIN_HOSTNAME={hostname} This parameter specifies an I/P address for the admin logon task. If the parameter is not found, no admin logon task is created. If no admin logon task is created an ADMLOGON statement only works with the 'local' option for an I/P address. ADMIN_PUBLIC={public key} This parameter specifies a user provided public encryption key. ADMIN_KEYFILE={filename} This parameter specifies a LOGON key file. (Same as SUNFM) ADMIN_IPFILE={filename} This parameter specifies a I/P filtering file. (Same as SUNFM) ADMIN_DATASET={string} This parameter specifies a filter for data kept by the main admin task. This parameter is a quoted string of comma separated numbers, or number ranges(x-x). Each number represents a data type (same data types as used in the ADMGETINFO statement). This causes all data items to be cleared and items specified in the string to be set for collection. (e.g. - "1,20-22" would cause collection of data items 1, 20, 21 and 22) ADMIN_DATACLR={string} This parameter is like the ADMIN_DATASET parameter, but starts with all data items set and clears the items specified by the string. This parameter is not used if the ADMIN_DATASET parameter is specified. If neither ADMIN_DATACLR or ADMIN_DATASET is used, all data items are collected. ADMIN_LOGCHILD={ON|OFF} This parameter specifies if a child task should start with logging ON or OFF. The default is ON. ADMIN_LOGLEVEL={value} This parameter specifies the starting log level for all tasks. The default is log level 0. ---------------------------------- -- Client Configuration Parameters The following parameter keywords can be specified for a client in any PL/B runtime that supports the ADMIN statements. ADMIN_PUBLIC={public key} This parameter specifies a user provided public encryption key. ADMIN_LOGON={logon key} This parameter is the default value for the logon encryption key used if the ADMLOGON statement does not specify a logon key. The server must have a file name set in the ADMIN_KEYFILE configuration parameter. The use of this keyword is optional and not required in that the logon key value can be specified in the ADMLOGON statement parameters. ---------------------------- -- New Admin PL/B Statements ------------ -- ADMLOGON The ADMLOGON statement connects a ADMIN data variable with a admin server. [label] ADMLOGON {admin},{ipaddr},{port}[,{public}[,{logon}]] Where: {admin} - ADMIN data variable {ipaddr} - I/P Address of server {port} - Port number of server {public} - Optional public key {logon} - Optional logon key Flags: ZERO - This flag is set TRUE if the logon operation was completed without error. Otherwise, it is set to FALSE. Notes: 1) The optional public and logon keys override the ADMIN_PUBLIC and ADMIN_LOGON configuration parameters. 2) {ipaddr} can be set to "local" for local application server if this statement is being using by the Plbclient command. Any ADMIN_KEYFILE used by the local application server is still checked for security purposes. ------------ -- ADMLOGOFF The ADMLOGOFF statement disconnects a ADMIN data variable from a admin server. [label] ADMLOGOFF {admin} Where: {admin} - ADMIN data variable Flags: ZERO - This flag is always set to FALSE. ------------ -- ADMGETINFO The ADMGETINFO statement obtains data for the admin server. [label] ADMGETINFO {admin},{id},{type},{mask},{result} Where: {admin} - ADMIN data variable {id} - Admin ID of object {type} - Type of info {mask} - Mask to filter the request {result} - Data variable for result Flags: EOS - This flag is set TRUE if the {result} variable output is too small causing data to be truncated. Otherwise, it is set to FALSE. ZERO - This flag is set TRUE if the ADMGETINFO is returning data in the {result} variable. If there is no data to be returned, the ZERO flag is set FALSE. Notes: 1) {id} can be 0 for all, or a specific admin ID. 2) {type} is a number or string indicating the type or types of data to return. (see equ file for data item types) If the string is used it contains comma separated numbers. (e.g. "1,2,4") 3) {mask} is specific to the first data item in the {type} parameter. {mask} can be null to match all, or a string of characters. {mask} can contain a * to match a group of characters. {mask} can contain a ? to match a single character. {mask} can contain a leading <, >, =, >=, <=, <> if the first type is numeric. 4) {result} is always a test string. 5) Data items in result are separated by the ',' character. 6) Data groups in result are separated by the ';' character. 7) When {id} is set to 0, data group starts with admin ID. 8) File names are stored as {index name}%{data name}. ------------ -- ADMCOMMAND The ADMCOMMAND statement sends a command to the admin server. [label] ADMCOMMAND {admin},{cmd},{type},{mask}[,{value}] Where: {admin} - ADMIN data variable {cmd} - Command to execute {type} - Type of info {mask} - Mask to filter the request {value} - Optional new value Flags: ZERO - This flag is set TRUE to indicate that the command was completed successfully. Otherwise, it it is set to FALSE. Notes: 1) {cmd} is a number indicating the action to take. (see 'ADMEQU.INC' equate file) 2) The {type} and {mask} parameters are used to select the tasks to be sent the command. {type} is a number indicating the type data that the {mask} parameter is for. (see 'ADMEQU.INC' equate file) 3) {mask} is specific to the {type} parameter. {mask} can be null to match all, or a string of characters. {mask} can contain a * to match a group of characters. {mask} can contain a ? to match a single character. {mask} can contain a leading <, >, =, >=, <=, <> if the first type is numeric. 4) {value} specifies a new value if the command requires one. For example, the {value} for $ADMCMDSETLOGLEVEL command is a new log level. ------------ -- ADMSETINFO The ADMSETINFO statement sends data to a local admin main task. [label] ADMSETINFO {action},{type},{value} Where: {action} - Action of $ADMADD, $ADMDELETE, or $ADMREPLACE {type} - Type of info {value} - Value to set Flags: ZERO - This flag is set TRUE to indicate that the action was completed successfully. Otherwise, it it is set to FALSE. Notes: 1) An {action} of delete removes one entry matching the {type} and {value}. 2) An {action} of replace replaces one entry matching the {type} with the {value}. 3) The number used in the {type} parameter is a user defined number between 1000 and 2000. 4) {value} can be any text data. ---------------------------- -- PL/B EQU FILE DATA ------------ -- Admin General Ids The $CHILDTASKLIST or $ADMINTASKLIST can serve as an {id} to indicate which task list should be used to retrieve Admin database information. $CHILDTASKLIST EQU 0 $ADMINTASKLIST EQU 1 ------------ -- Admin Child Data Types These items are maintained by all child and admin tasks. The child data types can be used in an ADMGETINFO statement to return data to an Administration PL/B program. $ADMITEMADMID specifies an {id} assigned to each task upon startup. $ADMITEMADMID EQU 0 $ADMITEMUSERIP specifies the I/P address of the client for this task. $ADMITEMUSERIP EQU 1 $ADMITEMPROGRAMNAME specifies the name of the PL/B program running this task. $ADMITEMPROGRAMNAME EQU 2 $ADMITEMFILENAME specifies zero or more files the program has open. $ADMITEMFILENAME EQU 3 $ADMITEMUPTIME specifies the number of seconds that the task has been running. $ADMITEMUPTIME EQU 4 $ADMITEMLOGLEVEL specifies the tasks logging level (0-2). $ADMITEMLOGLEVEL EQU 5 $ADMITEMCLIVER specifies the basic client version. $ADMITEMCLIVER EQU 6 $ADMITEMTASKID specifies the thread id or pid. $ADMITEMTASKID EQU 7 $ADMITEMFULLCLIVER specifies the full client version. $ADMITEMFULLCLIVER EQU 8 $ADMITEMSHAREDMEM returns the 32 bit shared memory value. $ADMITEMSHAREDMEM EQU 9 $ADMITEMKEYNAME specifies the key name if a XXX_KEYFILE is used. $ADMITEMKEYNAME EQU 10 $ADMITEMLOGSTATE specifies whether logging is on (1) or off (0). $ADMITEMLOGSTATE EQU 11 $ADMITEMSENDBYTES specifies the number of bytes sent to the client from this child server task. $ADMITEMSENDBYTES EQU 12 $ADMITEMRECVBYTES specifies the number of bytes received from the client to this child server task. $ADMITEMRECVBYTES EQU 13 $ADMITEMRUNTYPE specifies the runtime type of the child task. The values are: 0 - Unknown 1 - ODBC 2 - Sun Access 3 - Windows version PL/B Runtime 4 - Unix version Plbserve 5 - Unix version PL/B Runtime 6 - WindowsCE Hand Held Runtime 7 - WindowsCE Palm Top Runtime 8 - WindowsCE Pocket PC Runtime 9 - Windows Console version PL/B Runtime 10 - Windows version Plbserve $ADMITEMRUNTYPE EQU 14 $ADMITEMIDLETIME specifies the number of minutes the child task has been idle since the last command was processed. $ADMITEMIDLETIME EQU 15 ------------ -- Admin Server Data Types These data types can be obtained only by using a $CHILDTASKLIST or $ADMINTASK {id}. $ADMITEMSRVVER specifies the version of the server. $ADMITEMSRVVER EQU 100 $ADMITEMLOGONCNT specifies the number logons since startup. $ADMITEMLOGONCNT EQU 101 $ADMITEMLOGONFAIL specifies the number logon failures since startup. $ADMITEMLOGONFAIL EQU 102 $ADMITEMSRVUPTIME specifies the number of seconds since startup. $ADMITEMSRVUPTIME EQU 103 $ADMITEMSRVTYPE specifies a server type of 1 for Application Server, 2 for File Manager, or 3 for Automation Server. $ADMITEMSRVTYPE EQU 104 $ADMITEMSRVEXENAME specifies the name of the server executable file. $ADMITEMSRVEXENAME EQU 105 $ADMITEMSRVININAME specifies the name of the server configuration file. $ADMITEMSRVININAME EQU 106 $ADMITEMSRVLOGNAME specifies the name of the server log file. $ADMITEMSRVLOGNAME EQU 107 $ADMITEMSRVCHILDCNT specifies the current number of child tasks running. $ADMITEMSRVCHILDCNT EQU 108 $ADMITEMSRVCHILDMAX specifies the maximum number of child tasks allowed. $ADMITEMSRVCHILDMAX EQU 109 -------------------------------- -- Admin PL/B Runtime Data Types These items are filtered out by default. To turn them on, use the ADMIN_DATASET or ADMIN_CLR options. $ADMITEMLOCKIO EQU 200 $ADMITEMRECORDLOCK EQU 201 $ADMITEMXPIO EQU 202 $ADMITEMW33RETRY EQU 203 -------------------------------- -- Admin Commands The following Admin Commands are for use with the ADMCOMMAND statement. These commands are sent to a child task to control basic operations. The commands are as follows: $ADMCMDSOFTTERM causes the program to act as if the next instruction to execute is a SHUTDOWN instruction or a File Manager child ask to terminate. $ADMCMDSOFTTERM EQU 1 $ADMCMDHARDTERM immediately kills or terminates the child task. This causes some resources to be lost until the server is totally shutdown. For a Windows server, this also can leave file handles opened. Any lost resources can only be recovered when a server main task is unloaded. $ADMCMDHARDTERM EQU 2 $ADMCMDLOGGINGON turns logging on for this task. $ADMCMDLOGGINGON EQU 3 $ADMCMDLOGGINGOFF turns logging off for this task. $ADMCMDLOGGINGOFF EQU 4 $ADMCMDSETLOGLEVEL allows the logging level to be set from 0 to 2. The level 0 logging allows error and basic information to be logged. Error levels 1 and 2 are available for future releases to allow additional information to be logged. $ADMCMDSETLOGLEVEL EQU 5 ;Value parameter is ;(0-2). $ADMCMDSHUTDOWNLOGON shutdown the Admin Logon Task. $ADMCMDSHUTDOWNLOGON EQU 7 -------------------------------- -- Admin Setinfo Actions These operations can be used for the ADMSETINFO {action}. These actions allow User Data in the Admin Database to to be processed. $ADMADD adds user data to the Admin database. $ADMADD EQU 1 $ADMDELETE removes user data from the Admin database. $ADMDELETE EQU 2 $ADMREPLACE replaces user data in the Admin database that has been previously added. $ADMREPLACE EQU 3 Date: 03-20-2003 Subject: RELEASE 8.7A File Manager Executables *============================================================================== Notes for WARNINGS: - The 8.7A SUNFM and SUNFHSYS versions can not be used with any prior released versions. An 'Invalid SUNFHSYS version!' message will occur when a version conflict is detected. *============================================================================== These files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Added a new keyword named 'FM_LOGMAX=nnnnn' for the file manager CFG file. The 'nnnnn' value for this keyword specifies a maximum number of records that can be added to the log file. If this keyword is not specified or the 'nnnnn' value is set to zero, then an unlimited number of records will be written to the log file. However, if the 'nnnnn' value is set to a non-zero value, then the value specifies the maximum number of records that will be written to the log file. When the maximum record count is exceeded, then records are over written after the header at the beginning of the log file in a circular manner. - The format of the File Manager has been changed as follows: 1. Each record has a fixed length of 79 characters. Log records longer than 79 characters will wrap to the next log record. Records larger than 158 characters are truncated. 2. Each record has a field format as follows: YYYY-MM-DD HH:MM:SS NNNN L DATA Where: YYYY-MM-DD - Current date HH:MM:SS - Current time NNNN - Admin slot identification L - File Manager log level value DATA - Log data - Modified the file manager to wait a maximum time of 60 seconds for all child threads/processes to terminate before the main file manager process is terminated when the 'sunfm -f' hard shutdown command is used. This change is implemented to prevent the main file manager process from hanging indefinitely when a child thread/process can not be terminated. - Corrected a GPF problem that would occur when the SUNODBC driver attempted to open an ISI file that contained a key composed of multiple key parts. - Corrected a GPF problem for a Windows version of the file manager that could occur when a child thread was being terminated by a 'sunfm -f' hard shutdown action. This problem could also cause the file manager to hang for the same 'sunfm -f' operation. ------------------------------------------------------------------------------- SUNFHSYS - Corrected a problem where a REPOSIT could cause an I80 error. Date: 06-11-2003 Subject: RELEASE 8.7B File Manager Executables Included you will find the patch release of: SUNFM 8.7B 11 Jun 2003 8.7.0120 SUNFHSYS.DLL 8.7B 11 Jun 2003 8.7.0120 *============================================================================== Notes for WARNINGS: - The 8.7B SUNFM and SUNFHSYS versions can not be used with any prior released versions. An 'Invalid SUNFHSYS version!' message will occur when a version conflict is detected. *============================================================================== These files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified the file manager copyfile operations to automatically change the source and destination path characters to be the expected OS path character consistent with the OS type where a file is found or stored. - Modified all file types to support new ADMIN information data types. - Modified the file manager logon process to provide ADMIN information for user name and computer name of the client workstation logged on to the file manager. - Modified the file manager to support a new protocol message to allow a client program to retrieve the current time/date information from the system where the file manager is executed. - Modified the file manager to support new *ZFON and *ZFOFF controls. - Corrected a UNIX release problem where the 'sunfm -t' operation did not terminate all Admin child tasks. - Corrected a UNIX release problem where the Admin service process could cause a SEGV error when the current child task count was being accessed. - Corrected a problem that would cause a GPF error when the 'FM_DEBUG=ON' configuration setting was used. This problem would cause the SUNFM main task to prematurely terminate resulting in indeterminate I81 disconnect and file manager not available errors. - Corrected a memory leak resulting from a failed logon attempt. ------------------------------------------------------------------------------- SUNFHSYS.DLL- Modified to support new Admin Services data types. - Corrected a memory leak resulting from a failed logon attempt to a SUNFM file manager. Date: 07-28-2003 Subject: RELEASE 8.7C File Manager Executables Included you will find the patch release of: SUNFM 8.7C 28 Jul 2003 8.7.0130 SUNFHSYS.DLL 8.7C 28 Jul 2003 8.7.0130 *============================================================================== These files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified the SUNFM file manager to use the FM_LOCALIP address setting in place of the FM_HOSTNAME address setting when the FM_HOSTNAME address setting is all zeros and one of the command options -f, -r, or -t is being used. - Modified the SUNFM log file output to report the Admin Slot Identification as a decimal number. This eliminates confusion comparing data reported by the ADMGETINFO statement to the data found in the server log file. ------------------------------------------------------------------------------- SUNFHSYS.DLL- Corrected a problem where a record in a TXT data file could be changed unexpectedly when the following instruction sequence was executed: 1. A sequential READ of an AFILE/IFILE that gives an OVER flag because the end of file was encountered. 2. The OVER flag is ignored. 3. An UPDATE of the AFILE/IFILE would execute and change a record in the data file unexpectedly. With this correction implemented, then this same sequence of instructions cause an I40 error on the UPDATE instruction. Date: 11-24-2003 Subject: RELEASE 8.7D File Manager Executables Included you will find the patch release of: SUNFM 8.7D 24 Nov 2003 8.7.0140 SUNFHSYS.DLL 8.7D 24 Nov 2003 8.7.0140 *============================================================================== These files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Added a new keyword named 'FM_DEFAULTCWD={path}' that can be used to establish the default working directory for the main file manager process when the SUNFM server is started. ------------------------------------------------------------------------------- SUNFHSYS.DLL- Modified the Isam WRITE and INSERT operations to verify ISI deleted data record sectors. This change has been made to avoid situations where an invalid ISI data file structure could cause indeterminate operations that over write valid text data. An I65 with an appropriate subcode occurs if a bad DDR sector is detected. - Modified the I64 error to be an I34 error for a DELETE FILE operation. - Modified the I65 error to be an I35 error for an UPDATE FILE operation. - Corrected a problem where a READLK instruction was not leaving a record lock set if it followed an Isam READ key instruction that did not find a record. This problem would occur when both the READ and READLK operations used the same IFILE variable that had been opened in a MANUAL record locking mode. Date: 01-06-2004 Subject: RELEASE 8.7E File Manager Executables Included you will find the patch release of: SUNFM 8.7E 06 Jan 2004 8.7.0150 SUNFHSYS.DLL 8.7E 06 Jan 2004 8.7.0150 MAKEMFD 8.7E 06 Jan 2004 8.7.0150 *============================================================================== These files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified to allow FILEPI operations to be completed at the File Manager before control is returned to the client program based on the whether the files in the filepi list are all managed files from the same File Manager. This FILEPI action is only used when the client program is executing with an 8.7E runtime or later. This change corrects a problem where a FILEPI operation was always waiting at the SUNFM File Manager regardless of the locations of the files in the filepi list. Also, note that with this change, if a FILEPI is being executed by a runtime version earlier than 8.7E, then control is always passed back to the client runtime when a file lock fails and the filepi operation is restarted. ------------------------------------------------------------------------------- SUNFHSYS.DLL- Corrected a problem where a PREP for an IFILE using a key specification could cause a memory leak. Date: 12-20-2004 Subject: RELEASE 8.7F File Manager Executables Included you will find the patch release of: SUNFM 8.7F 20 Dec 2004 8.7.0160 SUNFHSYS.DLL 8.7F 20 Dec 2004 8.7.0160 *============================================================================== These files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified the logon Child Start log messages to provide the version of client accessing the File Manager Server. This should help to identify issues caused by older/newer client versions accessing a given File Manager Server. - Modified the File Manager Server Logon process to output level 1 log data during the Child Start processing. If the keyword named ADMIN_LOGLEVEL is set to a value of 1 in the 'sunfm.cfg' file, then additional information is logged during the logon process that gives the Client Run Type, the Client Computer Name, and the Client User Name. - Modified Windows GPF crash handler data output to give additional context state data to help identify the File Manager logic that was being executed when a GPF error occurs. - Modified the main logon process for the File Manager to eliminate problems that can caused by reception of bad/invalid data messages. Prior releases of SUNFM could hang or terminate prematurely if bad/invalid logon messages were received. The bad logon messages messages might occur under the following situations: 1. If the File Manager logon connection was accessed directly from the Internet. Disruptive Internet applications can actually probe the Internet connection that the File Manger Server is using. This type of access could cause indeterminate problems. Changes have been implemented for all File Manager Server received messages to validate the structure and integrity of the messages before they are accepted for use. Any invalid messages that are received can result in immediate termination of a connection. 2. It was also possible that the File Manager Logon process could hang indefinitely if a logon action occurred without receiving any client logon data message. Changes have been implemented for the File Manager Server processing where the logon data message must be received by the File Manager Server Logon process within 10 seconds from the initial logon action. If the logon data message is not received within 10 seconds, then the logon connection is terminated immediately. - Modified the Windows SUNFM GPF crash handlers to eliminate the possibility of secondary GPF errors that could prematurely hang or terminate the File Manager Logon process. - If the Windows SUNFM Logon process should ever encounter a GPF error, then the Logon crash handler is implemented to keep the main SUNFM process active to allow current users to continue to execute their programs. NO new users can logon to File Manager Server while it is in this state. However, a 2nd instance of the SUNFM File Manager Server CAN BE loaded to allow new users to logon while the previous SUNFM instance is in the GPF indeterminate state. Note, that the second instance of a log file is created for the 2nd load instance of the File Manager Server. - The FM_LOGFILE can have the string '@d' embedded into the specified log file name. The '@d' string is replace with the 'YYMMDD' date representation. This causes a new log file to be started for every day that an File Manager Server is started. Format: FM_LOGFILE=fm@d.log This creates a log file with a name 'fm041215.log'. - Corrected problems with the Windows SUNFM GPF crash handler processing that could prematurely terminate the File Manager Server client threads. The Windows SUNFM GPF crash handler processing has been changed to eliminate any interactions between logon processing GPF problems and client thread GPF problems. -------------------------------------------------------------------------------