Date: 05-28-2004 Subject: RELEASE 9.0 Runtime Files Included you will find the patch release of: SUNFM.EXE 9.0 28 May 2004 9,0,0,0 SUNFHDLL.DLL 9.0 28 May 2004 9,0,0,0 SUNWSRV.DLL 9.0 28 May 2004 9,0,0,0 *============================================================================== Notes for some NEW Items: - Added support for AAMDEX, INDEX, and SORT PL/B instructions. - Added support for TRANSACTION statements. - Added DBxxxx instruction support. - Updated the ODBC driver support for new optimization processing. - Added NT Service support for the SUNFM server. *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified default port number to be 3934. The 3934 port number has been assigned as the 'PL/B File Manager User Port' by IANA ( Internet Assigned Numbers Authority ). This is the default port number used if the FM_PORTNUM keyword is not used. - Modified the SUNFM server to support ADMLOGON operations using the normal logon listening entry point for the server using the default port number used by the server. This change has been implemented to avoid the necessity to use a different port number when accessing the Administrative Services over a TCP/IP connection. By default this main logon capability is enabled for the SUNFM server when the 'ADMIN_PUBLIC=' security keyword is being used. In addition, the keyword named 'ADMIN_MAINLOGN={on|off}' can be included in the SUNFM configuration file. If the 'ADMIN_MAINLOGON' keyword is set to 'OFF', the ADMLOGON via the main logon entry point is disabled. - The SUNFM file manager protocol and functions have been enhanced to support all of the TRANSACTION statement features. See PL/B language descriptions. - The SUNFM file manager protocol and functions have been enhanced to support the PL/B language AAMDEX, INDEX, and SORT instructions. This allows files on the SUNFM server to be managed from a client application. See PL/B language descriptions. - The SUNFM file manager protocol and functions have been enhanced to support the PL/B language Database (DBxxxx) instructions. The DBxxxx instructions can now be executed in a client PL/B application and those instructions are processed a the SUNFM file manager. - The SUNFM server has been enhanced to execute as a Windows service. This requires the use of the SUNWSRV.DLL file. This DLL file must be placed in the same location as the SUNFM.EXE file. New command line options have been added to the SUNFM server as follows: '-i' - The new '-i' command line option installs the SUNFM server as a Windows Service using a combination of the server name and the user serial number for identification. This allows multiple SUNFM servers to be used as a service on the same computer. The SUNFM Windows Service is installed in an automatic running state. This running state can be changed using the services control panel. '-d' - The new '-d' command line option deletes the SUNFM as a Windows Service. '-p' - The new '-p' command line option pauses the main SUNFM server logon process. When in a paused state, no new child or administrative tasks are created by the main logon process. All existing users still continue to run. The '-p' command line option can be used to pause the SUNFM server main logon task when the server is executing as a Windows Service or as a stand-alone server. When the SUNFM server is executing as a service, then the '-p' command line option, the services control panel, or the SC.EXE command can be used to pause the server. '-c' - The new '-c' command line option is used to allow the SUNFM server logon process to continue from a paused state. When the SUNFM server is executing as a service, then the '-c' command line option, the services control panel, or the SC.EXE command can be used. For stand-alone servers, only the '-c' command line option can be used. Note: 1. A SUNFM server service can be started by one of 3 ways: a) The service can be started automatically. b) The service can be started using the services control panel. c) The service can be started using the SC.EXE (Service Control) utility. 2. The '-s' command line option does not start a server as a service. It only starts a SUNFM server as a stand-alone process. 3. A SUNFM server service can be stopped using one of the following: a) The '-t' command line option can be used. b) The '-f' command line option can be used. c) The services control panel can be used. d) The SC.EXE command can be used. - Corrected a problem where an INSERT IFILE operation was giving an I16 error for a managed IFILE. ------------------------------------------------------------------------------- SUNFHSYS.DLL- Modified the File IO capabilities to provide large file support with file sizes larger than 4GB. - Modified to use the new SUNFM user port number of 3934. - Modified to support TRANSACTION statements. - Modified to support AAMDEX, INDEX, and SORT instructions. - Modified to support DBxxxx enhancements. - Corrected a problem where a FILEPI using a file variable opened in EXCLUSIVE mode was causing a SUNFM file manager child thread to hang indefinitely. Date: 06-09-2004 Subject: Patch RELEASE 9.0A Runtime Files Included you will find the patch release of: SUNFM.EXE 9.0A 09 Jun 2004 9,0,1,0 SUNFHDLL.DLL 9.0A 09 Jun 2004 9,0,1,0 *============================================================================== Notes for WARNINGS: - The SUNFHSYS DLL for version 9.0A can not be used with any prior releases of SUNFM. Otherwise, an error occurs as follows: "Invalid SUNFHSYS version! *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- SUNFHSYS.DLL- Modified to correct INDEX/SORT instruction sort problem when when more than one sort train was required. Date: 07-23-2004 Subject: Patch RELEASE 9.0B Runtime Files Included you will find the patch release of: SUNFM.EXE 9.0B 23 Jul 2004 9,0,2,0 SUNFHDLL.DLL 9.0B 23 Jul 2004 9,0,2,0 *============================================================================== Notes for WARNINGS: - The SUNFHSYS DLL for version 9.0B can not be used with any prior releases of SUNFM. Otherwise, an error occurs as follows: "Invalid SUNFHSYS version! *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified the PositEof file manager command to return a file size to the client. This change is needed to correct a SA_PositEndOfFile return value problem. - Corrected a problem where the STOP command using the Windows Services Control Panel did not work after a user had logged onto the file manager and logged off. - Corrected a GPF error problem caused by a RENAME operation where the source file name contained multiple IP references using the '|' character. After this error occurred, then the file manager would be non-responsive that would not allow any more user log on operations. ------------------------------------------------------------------------------- SUNFHSYS - Modified to add runtime INI file support for the AAMDEX, INDEX, SORT instructions. - Modified to provide basic XML file processing support. - Modified to correct logon hanging problem when accessing SUNFM. - Modified the PositEof operation to received a returned value from the file manager. This change is needed to correct a SA_PositEndOfFile return value problem. - Modified the IsiInfo operation to retrieve additional data from and ISI file that is returned for the SA_IsiInfo Sunaccess function. ------------------------------------------------------------------------------- Date: 12-17-2004 Subject: Patch RELEASE 9.0C Runtime Files Included is the patch release of: SUNFM.EXE 9.0C 17 Dec 2004 9,0,3,0 SUNFHSYS.DLL 9.0C 17 Dec 2004 9,0,3,0 SUNWSRV.DLL 9.0 28 May 2004 9,0,0,0 *============================================================================== Notes for some NEW Items: - Modified the SUNFM message protocol to allow automatic reconnection recovery between the client and server systems. *============================================================================== Notes for WARNINGS: - If the 9.0C SUNFM or SUNFHSYS is used with any prior release versions, then an error is given as follows: 'File Manager Startup Initiated!' 'Invalid SUNFHSYS version!' *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified the SUNFM Windows Service support so that a STOP command executed via the Windows Services Control Panel causes the File Manager Server to terminate with a 'sunfm -f' command. This change insures that the STOP command always terminates all clients accessing the File Manager Server. - Modified the SUNFM logon process to continue to accept SUNFM commands after a 'sunfm -t' command has been executed. This allows a 'sunfm -f' command to be executed after a 'sunfm -t' command without getting a logon connection error. - Added a new keyword named 'FM_TERMTIME={sec}' used to control the number of seconds that the SUNFM process waits for client threads to terminate after a 'sunfm -t' command has been executed. If the {sec} time expires, then a forced termination of all client threads is executed and the File Manager Server is terminated. If the FM_TERMTIIME is not used, then the 'sunfm -t' command causes the File Manager Server to wait for an infinite amount of time waiting for client threads to terminate. Please note that the FM_TERMTIME keyword has been implemented to take affect dynamically. This means that the value of the keyword can be changed in the 'sunfm.cfg' file at any time before or after the 'sunfm -t' command has been executed. - 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. - Changes have been made to implement reconnection recovery capabilities when using the SUNFM file manager. The reconnection recovery capability can only work when both the runtime and the Sunfm file manager versions are 9.0C or later. Also, the reconnection recovery is only activated when the 'FM_KEEPALIVE' keyword is specified in the SUNFM.CFG file. - The keyword named 'FM_CHILDRECOVERY={on|off}' has been added for the Sunfm server. By default, the Sunfm server always enables child reconnection recovery when the 'FM_KEEPALIVE' keyword value is set to a minute value. The 'FM_CHILDRECOVERY' keyword can be set to 'OFF' so the file manager keepalive operations can be used without using the child reconnection recovery for any of the client users. - A new keyword named 'FM_USELONGTIMEOUT={on|off}' has been implemented for the Sunfm file manager. This keyword can be placed into the Sunfm.cfg file. When this keyword is set to 'ON', then the client runtime executes a program with long time outs (i.e. 180 seconds) when child reconnection recovery is being used. If this keyword is set to 'OFF' or it is not specified, then child reconnection recovery time outs are executed as a short time period of 5 seconds. - 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. ------------------------------------------------------------------------------- SUNFHSYS.DLL- Modified to support changes made for the Sunaamdx, Sunindex, and Sunsort operations. - Modified to support Sunfm protocol changes to implement the connection recovery capabilities. - Changed to correct a problem where the PLB_CURDIR current directory was not being used when a file name started with '.\' or '..\'. - Modified to correct a problem performing an Isam keyed READ for an IFILE opened in a READ ONLY mode. - Corrected an I52 problem caused when the PLB_CHKDRN keyword was used. - Corrected Isam header byte order translation problems. ------------------------------------------------------------------------------- Date: 01-19-2005 Subject: Patch RELEASE 9.0D Runtime Files Included you will find the patch release of: SUNFM.EXE 9.0D 17 Jan 2005 9,0,4,0 SUNFHSYS.DLL 9.0D 17 Jan 2005 9,0,4,0 *============================================================================== Notes for WARNINGS: - If the 9.0D SUNFM or SUNFHSYS is used with any prior release versions, then an error is given as follows: 'File Manager Startup Initiated!' 'Invalid SUNFHSYS version!' *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified the server version to be compatible with Sunfhsys DLL. ------------------------------------------------------------------------------- SUNFHSYS.DLL- Modified the DLL version for internal system changes. Date: 03-17-2005 Subject: Patch RELEASE 9.0E Runtime Files The following files are included with this patch: SUNFM.EXE 9.0E 17 Mar 2005 9,0,5,0 SUNFHSYS.DLL 9.0E 17 Mar 2005 9,0,5,0 *============================================================================== Notes for WARNINGS: - If the 9.0E SUNFHSYS DLL is used with any prior release versions of SUNFM, then an error is given as follows: 'File Manager Startup Initiated!' 'Invalid SUNFHSYS version!' - If the 9.0E SUNFM is used with any prior release versions of the Sunfhsys DLL, then an error occurs as follows: 'The procedure entry point FhDbGetFileInfo could not be located in the dynamic link library Sunfhsys.dll.' *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified the log file output to include the ported machine data. - Modified the file manager protocol to support managed XFILE files variables. - Modified to support GETFILE extensions. ------------------------------------------------------------------------------- SUNFHSYS.DLL- Modified to support 8.7x file formats. - Modified to support XFILE variables. - Modified to support GETFILE keyword additions. - Corrected a problem that would cause an I81 subcode 16 error when PLB_COMPRESSION was set OFF and a READ operation accessing the SUNFM file manager retrieved a record size larger than 2048. - Corrected a problem that would cause an I81 subcode 16 error when PLB_COMPRESSION was set OFF and a READ operation accessing the SUNFM file manager retrieved a record size larger than 2048. ------------------------------------------------------------------------------- Date: 06-06-2005 Subject: Patch RELEASE 9.0F Runtime Files Included you will find the patch release of: SUNFM.EXE 9.0F 06 Jun 2005 9,0,6,0 SUNFHSYS.DLL 9.0F 06 Jun 2005 9,0,6,0 *============================================================================== Notes for WARNINGS: - If the 9.0F SUNFHSYS DLL is used with any prior release versions of SUNFM, then an error is given as follows: 'File Manager Startup Initiated!' 'Invalid SUNFHSYS version!' *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified the SUNFM error logging to provide a thread id on the 'child start' and 'child term' messages. - Modified the SUNFM file manager to restructure the error messages that are logged to provide long program names without being truncated. - Modified the SUNFM file manager to allow a client program to enable/disable reconnection recovery using the SETMODE FMCHILDRECOV option. - Modified to allow keepalive processing to be suspended when the client runtime sends the suspend command. - Corrected a problem where the FM_USELONGTIMEOUT Keyword State was being sent to the client and therefore did not work. - Corrected a problem where the client reconnection capability did not work due to changes made in release 9.0E. - Corrected a problem where an AAM PREP did not truncate the TXT file when a file manager byte order was different from the client runtime accessing the file manager. ------------------------------------------------------------------------------- SUNFYSYS.DLL- Improved the detection and reporting of errors caused when a record that is too long is encountered in the AAMDEX, INDEX, or SORT instructions. - Corrected a problem where invalid U09 (memory allocation) errors could occur after XFILE open operations. - Corrected a problem where a DELETE/UPDATE instruction did not give an IO error when using a FILELIST with the primary file opened in a READ mode. - Corrected problems where the command line buffers might overflow resulting in indeterminate operation for an AAMDEX, INDEX, or SORT instruction. - Corrected a problem where an unexpected I84 subcode 20 error might occur when very complex multi-level schema file elements were being used with 'xs:restriction' elements. - Corrected a problem where a READ XML would give an unexpected I83 subcode 11 error when it was executed immediately after a PREP XFILE instruction that specified both a RECORDSET name and schema file. Notice, that the I83 subcode 11 error is expected when the READ XML is executed in the same manner without the schema file being specified. ------------------------------------------------------------------------------- Date: 09-26-2005 Subject: Patch RELEASE 9.0G Runtime Files Included you will find the patch release of: SUNFM.EXE 9.0G 26 Sep 2005 9,0,7,0 SUNFHSYS.DLL 9.0G 26 Sep 2005 9,0,7,0 *============================================================================== Notes for WARNINGS: - When the Sunfhsys DLL and SUNFM runtime versions are mixed, the user can expect one of the following errors to occur during the runtime startup. The procedure entry point FhParseFN could not be located in the dynamic link library SunFhsys dll. or Invalid SUNFHSYS version! *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Modified the file open processing for the file manager to process $MACRO names by evaluating PLBENV_ & PLBVOL_ keywords from the SUNFM.CFG configuration file. - Modified the FindFile operations to process the PLBENV_ & PLBVOL_ keywords from the SUNFM.CFG configuration file. - Modified the FindFile operations to allow an I11 error to be returned to a client application. ------------------------------------------------------------------------------- SUNFHSYS.DLL- Modified to allow the runtime default extension information to be passed to a SUNFM file manager server from a client runtime. - Modified the DLL version required because of various changes implemented to support runtime changes. - Corrected a problem where a transaction write operation could output garbage data when two writes were performed back to back with less than 256 bytes of data. Date: 01-09-2006 Subject: Patch RELEASE 9.0H Runtime Files Included you will find the patch release of: SUNFM.EXE 9.0H 09 Jan 2006 9,0,8,0 SUNFHSYS.DLL 9.0H 09 Jan 2006 9,0,8,0 *============================================================================== Notes for some NEW Items: - Added a new keyword named 'FM_DPTFILENAME={ON|OFF}'. *============================================================================== Notes for WARNINGS: - The 9.0H SUNFM and SUNFHSYS.DLL module version can not be used with prior versions. Otherwise a version error occurs. *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- SUNFM - Added a new keyword named 'FM_DPTFILENAME={ON|OFF}'. This keyword can be used to disable the Datapoint format file name processing when the keyword is set to OFF. When this keyword is not specified, then the default is to be set ON. - Modified the Unix version of SUNFM to properly process all signals that could cause premature termination of processes. - Modified the Unix version of SUNFM to cleanup/release shared memory resources when processes are terminated. This prevents a resource leak. - Modified the server child connection logic to prevent the connection count from going negative. This change is being made to prevent the possibility of a problem where no users could logon because the maximum connection count was exceeded. ------------------------------------------------------------------------------- Date: 06-09-2004 Subject: Patch RELEASE 9.0A Runtime Files Included you will find the patch release of: PLBCLIENT 9.0A 09 Jun 2004 9,0,1,0 PLBCLICON 9.0A 09 Jun 2004 9,0,1,0 PLBSERVE 9.0A 09 Jun 2004 9,0,1,0 PLBWIN 9.0A 09 Jun 2004 9,0,1,0 PLBDSIGN 9.0A 09 Jun 2004 9,0,1,0 SUNAAMDX 9.0A 09 Jun 2004 9,0,1,0 SUNINDEX 9.0A 09 Jun 2004 9,0,1,0 SUNSORT 9.0A 09 Jun 2004 9,0,1,0 SUNFYSYS.DLL 9.0A 09 Jun 2004 9,0,1,0 SUNFHDLL.DLL 9.0A 09 Jun 2004 9,0,1,0 SUNFHDLL.LIB 9.0A 09 Jun 2004 PLBCMP 9.0A 09 Jun 2004 PLBEQU.INC 9.0A 09 Jun 2004 *============================================================================== Notes for some NEW Items: - OSEVENTMASK property has been added for a LISTVIEW object. *============================================================================== Notes for WARNINGS: - If the 9.0A SUNFHSYS is used with any prior release versions of PLBWIN, then the runtime gives the following error: 'Fatal error condition U40 encountered.' *============================================================================== The following files have been changed as follows: ------------------------------------------------------------------------------- PLBSERVE - Corrected a problem where PLBSERVE would be terminated without logging an error into the log file when the PLBCS_HOSTNAME and PLBCS_PORTNUM keywords were the same as the ADMIN_HOSTNAME and ADMIN_PORTNUM keywords in the PLBSERVE.INI file. ------------------------------------------------------------------------------- PLBWIN - Corrected a problem where the LOADADR and STOREADR instructions PLBSERVE did not de-reference a pointer created by DMAKE. This would result PLB (UNIX) in a program memory leak where the memory was not freed until the runtime process executing the PL/B program was terminated. - Corrected a problem for the INDEX and SORT instructions where the data was not properly sorted when the input data file contained a large number of records that required more than one sort train. ------------------------------------------------------------------------------- PLBWIN - Added a new property named 'OSEVENTMASK={dnumnvar}' for the LISTVIEW object. The OSEVENTMASK property allows a PL/B application to specify a bit mask to enable and disable system events processed for the object. OSEVENTMASK={value} Note: 1. OSEVENTMASK may be used in CREATE, GETPROP, or SETPROP statements for the following object(s): LISTVIEW 2. {value} is a decimal number, a Numeric Variable, an Expression, or a keyword defined in PLBEQU.INC. The numeric value is implemented as a bit mask definition. The is to allow future expansion for other event processing. The supported values and keywords are: Value Keyword Comment 0 $MASK_NONE Allow all system event actions 1 $MASK_WMCHAR Disable WM_CHAR OS actions. 3. When a user application sets an OSEVENTMASK bit mask, then this action changes the processing of this event for a given object. $MASK_WMCHAR - When this mask bit is set to 1, then the default OS WM_CHAR event is prevented. This means that the default OS event processing of any keyed character for an object does not occur. The OSEVENTMASK property mask is being implemented as a generic solution that can be expanded in the future for a problem where characters keyed for a LISTVIEW object was changing the selected items. By setting the $MASK_WMCHAR mask in the OSEVENTMASK property for a LISTVIEW object, this behavior is changed and keyed characters while a LISTVIEW has the focus does not change the selected items. ------------------------------------------------------------------------------- PLBCMP - Modified to support the OSEVENTMASK property for the LISTVIEW object. - Corrected a GPF problem that might cause invalid program pcode for the following sequence of instructions. Example: TWO FORM "2" A FORM 2(3) B FORM 2(0..5) C FORM 2(0..5) . MOVE "2",A MOVE TWO,B MOVE TWO,C ;GPF Error! - Corrected a GPF problem caused when the CALLS instruction was compiled into a program for the following example. Example: A INIT "dummy" ARR DIM ^(1),(A) . CALLS ARR(1) ;GPF Error! ------------------------------------------------------------------------------- PLBDSIGN - Modified to support the OSEVENTMASK property for the LISTVIEW object. A value of 0 or 1 can be specified for the property value at this time. See details in the PLBWIN section above. ------------------------------------------------------------------------------- UTILITY - Corrected a problem in the SUNAAMDX utility where the 'b', 'd', 'm', and 'n' options caused a command line syntax error. - Corrected a problem where SUNINDEX and SUNSORT did not properly sort a data file that contained a large number of records that required more than one sort train. ------------------------------------------------------------------------------- SUNFHSYS.DLL- Modified to correct INDEX/SORT instruction sort problem when when more than one sort train was required. ------------------------------------------------------------------------------- SUNIDE - Fixed problems in the projects options dialog where if a user tried to browse for a prefered runtime, it would place the selected file in the project ini section. - Fixed a problem in the IDE configuration dialog where indeterminate text would be placed in the runtime section after browsing for a runtime. - Corrected a problem in the user tools dialog where the entry point edittext was not always being enabled. - Corrected a bug were we may try to get font informaiton from a font object that was not created. - Corrected an unexpected O105 error that could occur while closing a file.