Firebird Stop / Start process
Large Ostendo sites running 20+ users should stop and re-start Firebird on a regular basis to ensure performance is maintained. The major issue to automating this process in the past has been the worry that users may have set a process (eg: Batch Invoicing) running and if the database is disconnected by shutting down Firebird, you would run the risk of generating an incomplete transaction. By its nature, Batch Invoicing is the only batch process in Ostendo that could cause this, as other batch processes eg: MRP, Cost Rollup etc.. would roll back in the database if the connection was interrupted. Batch Invoicing can take a while to complete because of the complexity involved. Therefore there is potential for this to be running at the same time a shutdown of Firebird is initiated if a shutdown was automated.
This utility program would be setup to run via the server Windows Task Scheduler to run at a time (typically well out of business hours) it is believed that no users should be actively entering or processing data within Ostendo.
When this program is triggered to run, it will check the last modified date and time of the SALESINVOICEHEADER, SALESINVOICEGROUPING, SALESINVOICELINES records and determine the minutes difference from these records to NOW (NOW being when the utility is run) and compares this to a specified parameter in a configuration file. If the routine determines any of these records are within this parameter, the routine will not proceed, otherwise it will automatically shut down Firebird / Ostendo API and Queue Services and Restart them. This will also have the effect of removing any active connections to the database. Further to this a log file will be generated to confirm what action if any has been performed by this program.
NB: Currently this program only checks one Ostendo database, therefore it is not recommended for sites with multiple Ostendo databases at this stage. (development is underway to cater for this)
Setup:
All files must reside in the Ostendo folder
fbstart.ini contains the configuration settings for the utility. Generally speaking you will only need to specify the DBFilename parameter. The syntax would be as follows: (Modify this using Notepad)
DBFilename=SERVERNAME:C:\Program Files (x86)\Ostendo\Database\Ostendo.fdb
If multiple instances of Firebird exist, thereby using different ports for Firebird, the database syntax would be as follows:
DBFilename=SERVERNAME/3051:C:\Program Files (x86)\Ostendo\Database\Ostendo.fdb
[Settings]
MinutesBack=30 {Time between now and last modified record}
TimeoutSeconds=5 {Timeout when starting or stopping FB service}
DBUser= {DB Username if not default}
DBPass= {DB Password if not default}
DBFilename= {Database file including port and server when applicable}
ServiceName=FirebirdServerDefaultInstance {Service name Not the display name}
GuardianServiceName=FirebirdGuardianDefaultInstance {Service name Not the display name (Guardian only exists if FB has been installed as SuperServer configuration)}
APIServiceName=ostapisvc {Service name Not the display name}
QueueServiceName= {Service name Not the display name}
WriteLogFile=1 {1 = Write log file 1 or 0 = no log file}
AutoClose=1 {1 = automatically close Program when done 0 = leave program open}
We suggest all other settings are left as the defaults
Fbrestart.exe is the actual utility program that needs to be scheduled
Setup a Windows Task schedule to run this application at a time when you believe no users should be actively using Ostendo.
When the routine has run, it will save a log file in the Ostendo folder called fbrestart.log NB: This log file will be overwritten each time the routine it run.
The Fbrestart.exe and ini files can be downloaded from http://ostendo.info/downloads/ostendo/fbrestart.zip