Library
Fieldpine Internals
Replication
Gds Security
Fpos.dll Startup logic
PosGreen Network
PosGreen Install Process
Multicast Protocol
Data Structures
Settings
Logic Trace
Fpos.dll
The following outlines some of the main steps performed during startup. Some details are removed or simplified. This information is "as is" and may change without notice
Detailed Startup Logic
- The processor serial number is fetched and ability of CPU decoded
- The registry is scanned for any legacy usage.
- Configuration parameters such as location, lane are loaded
- The command line is parsed
- If MaxElapsed timer is enabled, a thread is started to kill the process if still active when the timer expires. This is not normally used.
- If fpos.ctl does not exist, rename any fpos.ctl_install to fpos.ctl. This is used for automated installation support
- Files fpos.ctl and fpos_all.ctl are processed
- If not disabled, search and connect to our parent Gds.
- Startup debugging or journalling options, if specified.
- The Message "Point 1" is displayed if "-trace" was used
- Rudimentary checks are undertaken to ensure EXE and DLL files have not been tampered with
- The Message "Point 2" is displayed if "-trace" was used
- Crash handlers are installed. Beyond this point, coding errors should generate a crash.out rather than exception/crash messages to users.
- If quickstart was not specified, the time is retrieved and the year verified to be vaguely sensible. If the year is deemed wrong, a message is displayed and the system exits.
- The Message "Point 3" is displayed if "-trace" was used
- Internal structures are created
- The Message "Point 4" is displayed if "-trace" was used
- The system status is updated internally.
- The Message "Point 5" is displayed if "-trace" was used
- A scan is performed to see if this could be the first startup since installation. If yes, install specific steps are undertaken
-
Potential database interface DLLs are loaded and given the chance to come online
If you are using DbcDao2000.dll as your interface DLL (this is most commonly used), it will display the following trace messages
- The dll initialises itself
- The Message "Point 6" is displayed if "-trace" was used
- The Windows APIs are prepared
- The database is opened using the relevant Open() call.
- The Message "Point 6c" is displayed if "-trace" was used
- If dummy reading is configured or required, a select * from versioncontrol is performed.
- Journals are started
- The Message "Point 7e" is displayed if "-trace" was used and we trap to error handlers.
- Any pre database Mini-C functions defined are loaded and run
- If selected, a speed test is executed on the folder holding the database. If too slow, the user is warned but operation continues. Other startup checks may also be randomly executed now (TEMP files)
- The Sql database is opened. The system may hang/pause waiting for up to 30 minutes if the database is not reachable
- The Message "Point 7m" is displayed if "-trace" was used
- The table "versioncontrol" is read and validated. Additional "Point-7..." messages may be displayed
- Mesh storage is bought online
- The Message "Point 8" is displayed if "-trace" was used
- Database meta data is loaded
- UserOptions are loaded
- Symbols processor is initialised
- The current working directory is checked for Read/Write access. The Pos creates a file (dircheck.delete), writes to it, and deletes it.
- FolderLock and LaneLock files are created so that accidental double use in a shared folder environment cannot happen.
- If multilane functionality/table is present in the database, these checks are performed.
- The Message "Point 8-preset" is displayed if "-trace" was used
- Settings are loaded
- Flow handling is enabled.
- System memory is prepared
- StoreServer and Integrity are initialised
- Any mini-C programs in fpos.ctl are executed
- Mesh is fully loaded
- If persistent debug trace is enabled, it is opened
- Any system settings policies are applied
- If speech is enabled, the voices are initialised.
- USB thumb drives are prepared
- The Message "Point 8-set" is displayed if "-trace" was used
- The database subsystem is bought fully online
- The Message "Point 8-dbst" is displayed if "-trace" was used
- System Config settings are initialised.
- The Message "Point 8-sc" is displayed if "-trace" was used
- The country specific information is loaded
- The Message "Point 8-country" is displayed if "-trace" was used
- Systems with multiple checkout support are enabled.
- The Message "Point 8-twin" is displayed if "-trace" was used
- The internal web server is bought online
- The Message "Point 8-http" is displayed if "-trace" was used
- Auditing is initialised
- The Message "Point 8-audit" is displayed if "-trace" was used
- If specific retail keyboards are in use, a Windows Keyboard hook (process level) is installed if needed
- The Message "Point 9-preset" is displayed if "-trace" was used
- If keyboard wedge barcode scanners are enabled, they are started. Also any other "keyboard" devices
- Command line option "extract" is performed now if present.
- The Message "Point 10" is displayed if "-trace" was used
- Network lanes are loaded if required.
- Online sales interfaces are loaded
- If "web" mode is being used, startup forks to that mode of operation (not documented, but does not return.
- The Message "Point 11" is displayed if "-trace" was used
- More barcode scanners are enabled
- Cash drawers are enabled
- Retail Keyboards are enabled (these are custom selling keyboards in addition to standard PC keyboards)
- The User Interface is created
- Shifts are enabled
- The version of Pos software is checked and if different user is advised. The message to the user is more for confirming that updates have applied.
- If the software version was changed (or file bisupd.txt exists), required fields are checked to ensure they are present
-
(16 May 2016, P1928) Printers queue names used by different receipt formats are checked to ensure they are valid. The setting StartupCheckPrinterMask controls if this check is performed. - If Designer mode is set to auto start (setting DsnAutoStart), the Pos designer screens are created
- Any command line PosCommand is executed.
- If the startup option, "norun" was specified, the system pauses to allow background tasks to complete and then exits.
- The Message "Point 12" is displayed if "-trace" was used
- Plugins and external DLLs are loaded and enabled
- Licensing is checked
- Database is size checked if it has maximum sizes
- Check and advise user if there is possibility that data has changed since we last ran.
- More extensions are enabled if present.
- Sales that were active when we exited and loaded, this includes Eftpos powerfail recovery of needed.
- Database storage layer is advised startup is completing
- Startup PosCommands and PrinterResets are executed if enabled.
- A background cleanup thread is started at low priority.
- If float prompting is needed, user is prompted for the float details
- The Message "Point 12-End Of Startup Sequence" is displayed if "-trace" was used
- If AutoRun files are present (typically for regression testing), these are executed
- A startup performance event is logged. This includes timers for many of the above operations