Jedox Supervision Server (SVS) is a software tool that can monitor the events in a Jedox OLAP database and can respond via a PHP script on defined events. Different types of interactions will result in the execution of different pieces of PHP code.
- Installation of Jedox Supervision Server
- Functional Description of the Jedox Supervision Server
- Supervision Server Handlers
- Specific Functions of Jedox Supervision Server
- Supervision Server Samples
- Supervision Server for Drill Down and Drill Through
Start, Stop, and Restart of Supervision Server
As of Jedox 7.0, SVS will be installed and started by default.
The process “Supervision Server” appears in Windows Task Manager (see screenshot below). The option to “Show processes from all users” should be checked.
You can stop, start, and restart SVS without stopping JedoxSuiteMolapService.
These functions are available in Jedox Web – Administration – Connections after the selection of an active Jedox OLAP Server connection in the tab SVS Management:
Stopping disables SVS until either SVS is restarted with the option „Start SVS“ or until JedoxSuiteMolapService is restarted.
Start Instruction Options for Supervision Server
You can switch on the different branches (known as “workers”) of the SVS program by entering the following instructions in the palo.ini or when starting from the command line.
The following instruction is mandatory:
It starts the System Supervisor, which reacts as the standard worker during the following events:
- Jedox OLAP server shutdown
- Termination of the Supervision Server process itself
- Database save
The following instruction is optional:
It starts the Login Supervisor, which reacts during the following events:
- User login (including authentication/authorization against third-party systems)
- User logout
The following instruction is optional:
It starts the Cube Supervisor, which reacts during the following events:
- Change of a cell value
- Drill through events
The following instruction is optional:
It starts the Dimensions Supervisor, which reacts during the following events:
- Creation of an element in a specified dimension
- Deletion of an element in a specified dimension
- Renaming of an element in a specified dimension
The Login Supervisor is a special type of worker that has three different modes:
1) workerlogin information
With this option, the standard worker becomes a login worker and can now react to the events login and logout. The appropriate handlers are defined as OnUserLogin and OnUserLogout, and both have a parameter username such that the PHP script can react in different ways to the login of different users.
2) workerlogin authentication
When using this option, the system worker has additional login functionality and database access based on a user password.
Note: when using the Login Supervisor worker in workerlogin authentication mode, only the password will be checked against the worker and/or third party system. User, user groups and group-role mappings have to be defined on the Jedox OLAP server. Passwords stored on the Jedox OLAP server will be ignored and passwords fetched by the worker or coming from a third party system will be used instead.
3) workerlogin authorization
This option includes additional functionality to the standard worker:
- login functionality
- database access based on a user password
- monitoring of the groups the users belong to
This option eliminates the need for the Jedox OLAP server system cube to be responsible for this data.
Note: when using the Login Supervisor worker in workerlogin authorization mode, username, password, and group come from outside Jedox, i.e. from the worker and/or third party system. Only group-role mappings have to be defined directly on the Jedox OLAP server.
The users “admin” and “_internal_suite” are treated differently. If SVS authentication fails for these users, OLAP server instead tries to authenticate against its own system database, checking the provided password against the password defined there.
The Cube Supervisor is a worker reacting to changes to cell values. Inside the function “InitCubeWorker” of the file sep.inc.on_cell_change.php, a user can define one set (cube slice) of cells for every cube and link each of these “hot areas” to its own callback PHP function that will be executed if the user changes the value of a cell inside the set.
The splashing parameters of a user’s input are also passed to the Supervision Server in the “InitCubeWorker” event, so that they can be handled in the callback function for “WatchCubeArea”.
If the the instruction “use cube-workers” appears in the palo.ini, or if the option “Y” is passed from the command level, then the Jedox OLAP server starts a Cube Supervisor for each cube. Therefore several Supervision Server processes may appear in the Task Manager of Windows.
Overview of SVS Worker Instructions
|SVS Worker Options||entry in the palo.ini||Statement on the command level|
|switches on standard worker||worker <path_to_SVS>||Option “w”|
|additional login supervision||workerlogin <Option>||Option “x”|
|additional cube supervision||use-cube-worker||Option “Y”|
|additional dimension supervision||use-dimension-worker||Option “W”|
There are two PHP scripts in the installation folder of the SVS: main.php and sep.inc.php.
The file main.php is necessary and should not be changed.
In the file sep.inc.php, events can be defined or you can reference added scripts with instructions on how the SVS should react to the different events.
By default the file sep.inc.php has the following entry:
In the file sep.inc.default.php basic responses are given to all possible events. For activation, however, they must be programmed with an appropriate PHP code. The best plan is to work with only one include file.
You can create your own Supervision PHP script as follows:
Start the Modeler with the Jedox Excel Add-in, then right-click on a cube and select the command “Supervision server”. This will start the Supervision Wizard. Here you can select between the following types of supervision:
- Standard Supervision
- Cube Supervision
- Dimension Supervision
- Login Supervision
- Drill Through
After selecting your supervision tasks, save the created PHP script file. In an editor, you can check their entries and adjust them, if appropriate. Please enter then this file as an include statement in the file sep.inc.php.
The SVS will be started by restarting of the JedoxSuiteMolapService with the corresponding palo.ini instructions. After the successful start the process “Supervision Server” appears in the Task Manager of Windows.
PHP initialization file
The Supervision Server uses an embedded PHP interpreter. For basic usage, there is no need to install PHP on your system, unless you want to use other PHP APIs in addition to the PHP API provided with Jedox.
The php.ini is used to configure the embedded interpreter and to pass configuration information to the Supervision Server. The following options are related to the Supervision Server:
||IP or name of the host that runs Jedox OLAP server, e.g. “localhost”.|
||Port that the Supervision Server can use to access Jedox OLAP Server.
It has to match the “admin” port of the Jedox OLAP server configuration.
||Defines the path and the name of the log file.|
||Defines whether the SVS writes PHP error messages to the log file
Parameter 1: messages will be written
Parameter 0: messages will not be written
||Determines the amount of the SVS messages
Parameters: info, debug
The PHP API functions support two different parameter-passing mechanisms.
The first one uses the signature “function(connection,database,…)” and the second one uses the signature “function(connection-resource-string,…)”. For Supervision Server scripts, the second notation must be used. The connection object is managed internally and the connection resource string has the form “SupervisionServer/$database”, where $database is the name of the database we are working with.
Debugging Supervision Server Scripts
As explained above, sep.inc.php is the only file one needs to modify.
To simply parse the script, use “php main.php”. Since main.php includes sep.inc.php, this will make PHP parse the modified file and notify you about parsing errors.
The Supervision Server includes a logging mechanism that can be used for debugging purposes. Use the function sep_log($string) in order to write to the log file …\Jedox\Jedox Suite\log\svs.log. In general, svs.log is a good place to look if things go wrong, because exceptions thrown by the PHP extension are monitored there.