Lianja Server Manager on Windows
The Lianja SQL Server Manager allows you to:
- Control the Lianja SQL Server service
- Configure the Lianja SQL Server settings
- Manage background scripts running via Lianja SQL Server
Contents
The Lianja SQL Server Manager
The Lianja SQL Server Manager can be accessed from the Windows Start Menu under Lianja.
User Account Control
If you have User Account Control enabled, please click Yes on the UAC dialog displayed when you run the Lianja SQL Server Manager. On Windows XP, please run the Lianja SQL Server Manager as the Administrator.
Service Manager
The Service Manager tab allows you to perform the following operations on the Lianja SQL Server service:
- Start
- Pause
- Stop
- Restart
Pausing the service has no effect on existing connections, but prevents further connections to the server being made. To resume normal service after a Pause, click the Start/Continue button.
Checking the Auto-start service box ensures that the Lianja SQL Server service will be restarted when the machine is rebooted.
The current status of the Lianja SQL Server is shown in the status bar.
Settings
The following settings can be configured:
Section | Item | Description |
---|---|---|
Port Listener | Retries | Number of times a connection attempt will be tried before returning an error. Default is 29. |
Delay | Number of seconds the Port Listener will wait to verify that the server it called was successfully started. Default is 10. | |
Timeout | Number of seconds between each connection attempt. Default is 1. | |
Directory Paths | Root Directory | The Lianja SQL Server root folder. |
Log files | The default folder for Lianja SQL Server log files. | |
Error files | The default folder for Lianja SQL Server error files. | |
Temporary files | The default folder for Lianja SQL Server temporary files. | |
Database | The default folder for Lianja SQL Server databases. | |
Services | The default folder for Lianja SQL Server background script services. | |
Environment | Cursors | Maximum concurrent cursors. |
Log Files | Enabled | Check to enable log file creation. |
Versions | Check to enable log file versioning. | |
Listener | Click to view the current Listener log file | |
Server | Click to view the current Server log file | |
Purge | Click to purge all log files |
Note: When the Lianja SQL Server service is started, the Port Listener is activated and listens for client requests. Once a client makes a connection, the Port Listener starts the Server for that connection.
One client could have more than one connection / Server.
At any one time, there will be only one Port Listener process, but there may be many Server processes.
Note: Logging should only be enabled when required, not for general usage.
Background Scripts
The Background Scripts tab allows for the creation, modification and configuration of background service scripts. Background service scripts can be used to perform data transformation, data synchronization or any other custom operation on your data that you require in your Apps.
Background service scripts run with no UI. They are primarily used to perform data collection tasks or batch job tasks such as checking for new or updated data and emailing out notifications to Lianja users. Typically a background service will sleep for a period of time and then repeat its work. Background service scripts have the standard program extensions of prg/dbo and reside in the services sub-folder of the Lianja SQL Server root (see Settings above for default folders). Whenever the Lianja SQL Server service is started, any programs in the services folder with their Startup Mode set to Automatic will be run.
Section | Item | Description |
---|---|---|
Scripts | Script | Script name |
Status | Service status: Stopped, Started | |
Startup Mode | Service startup mode: Manual, Automatic. | |
Buttons | New... | Create a new script. |
Edit... | Edit the selected script. | |
Delete | Delete the selected script. | |
Mode (Automatic or Manual) | Toggle the startup mode of the selected script between Automatic and Manual. | |
Refresh | Refreshes the display | |
Status (Started or Stopped) | Toggle the status of the selected script between Started and Stopped. |
Template Background Script
//============================================================================ // // FILE : example.prg // // PURPOSE : Example code for a Lianja background service script on Windows. // //---------------------------------------------------------------------------- // // Background service scripts are called with two parameters: // // script : full path name of the script // action : Either "start", "stop" or "restart" // //----------------------------------------------------------------------------- // // Functions // // start() : Called when the service is started. Creates a // filename.active and processes all actions while this // file exists. // // stop() : Removes the filename.active file so the service will // stop when it next wakes up to do any work. // // doWork() : This is the place to add your main processing code. // //============================================================================ //----------------------------------------------------------------------------- // declare global variables //----------------------------------------------------------------------------- public p_active_file public p_error_file public p_sleep_seconds //----------------------------------------------------------------------------- // Start action //----------------------------------------------------------------------------- function start( ) // Check to see if a ".error" file already exists for this script // and delete it if it does. if file(p_error_file) erase &p_error_file if file(p_active_file) erase &p_active_file endif endif // Check to see if a ".active" file already exists for this script // and return if its already active if file(p_active_file) return .f. endif // Create the ".active" file for this script fp = fcreate(p_active_file) if ferror() = -1 return .f. else fclose(fp) endif // process any work for this script do while file(p_active_file) sleep p_sleep_seconds doWork() enddo return .t. //----------------------------------------------------------------------------- // Stop action //----------------------------------------------------------------------------- function stop( ) // Erase active file so service will stop erase &p_active_file // return result if file(p_active_file) rc = .f. else rc = .t. endif return rc //----------------------------------------------------------------------------- // error handler //----------------------------------------------------------------------------- function errorHandler( ) on error save error to &p_error_file stop() return //----------------------------------------------------------------------------- // function to handle the requested script action //----------------------------------------------------------------------------- function handle_action(action, sleepTime, scriptName) // Setup exit handler on finish stop() // Setup error handler on error errorHandler() // by convention we use files prefixed by the script name and postfixed with // .active and .error to keep us informed of the script execution status p_active_file = lower(basename(left(scriptName, at(".", scriptName) -1)+".active")) p_error_file = lower(basename(left(scriptName, at(".", scriptName) -1)+".error")) p_sleep_seconds = sleepTime // Change the default directory as thats where the .active status file is written set default to "C:\Lianja\sqlserver\services" // handle the specified action do case // Start service case upper(action) = "START" result = start() // Stop service case upper(action) = "STOP" result = stop() // Restart service case upper(action) = "RESTART" stop() result = start() // Unknown command otherwise result = .f. endcase return result //----------------------------------------------------------------------------- // this is the function that will be executed by this script to handle its work //----------------------------------------------------------------------------- function doWork( ) // TODO: add your own custom code here return //----------------------------------------------------------------------------- // Call the Lianja background service script action handler //----------------------------------------------------------------------------- return (handle_action(_para1, 10, procname()))