ObjectStore Server Administration

 

Starting the ObjectStore Server

No. Step Command Response
1. start service start net "ObjectStore Server R6.0"  

 

Ending the ObjectStore Server

No. Step Command Response
1. making sure that no client is connected to the server perl killclients.pl SERVER* ERRORLEVEL = 0: no more client connected,
otherwise: there are still clients who are connected to the server
2. creating checkpoint ossvrchkpt SERVER* ERRORLEVEL = 0: everything ok; program only ends, when checkpoint is complete
3. switching database(s) to offline osdbcontrol -offline -kill_clients DATABASE*  
4. shutting down ObjectStore® server ossvrshtd -f SERVER*  
5. waiting    
6. executing ObjectStore® server checkpoint again osserver –con –c
(access without OS server)
LOG 0001 There are no partitions specified in the parameters file.
Only file databases will be accessible through this server.
7. double-checking that there is no abort message or anything special in the ObjectStore® server log file file osserver.txt in %OS_TMPDIR%- or %TEMP% directory  
  * SERVER is the data base server name, DATABASE the database name as it has been saved in the drive.

The ObjectStore® server only needs to be ended, if the machine is supposed to be shut down. For backup purposes it is enough to switch the database to offline. 

Adjusting the Server Parameter

The following ObjectStore® server parameters can affect performance significantly. Therefore, whenever there are performance issues, these parameters should be checked. It is necessary though to pay attention to the according attributes and circumstances of the concrete network-, hardware- and software setup. The values mentioned here are only recommendations.

The
current server parameters can be queried by: ossvrstat -parameters hostname (hostname is the name of the server).

Attention!
After modifying the parameters, the ObjectStore® server needs to be rebooted to make these modifications efficient.

Parameter Default Value Recommended Value Description
Cache Manager Ping Time In Transaction 300 60 To avoid redundant locks after a ClassiX® client has unexpectedly been  ended, this value should be reduced. The server checks multiple times, whether a client can be accessed.
Max AIO Threads 3 32 This value should be increased in any case, whereas the exact number of threads depends on the number of databases that are used at the same time. The more databases the higher the value.
Max Data Propagation Per Propagate Auto (0) 3328 This value can be decreased to force a more frequent writing into the database. This value depends on the "Propagation Buffer Size" (see below), meaning propagation buffer size should generally be scaled down. 
Message Buffer Size 512 32768 To speed up server-client communication, it is possible to increase this value.
N Message Buffers 4 128 To allow for parallel communication with multiple clients, this value can be increased up to the maximum number of clients. The need for this can be identified via call "ossvrstat -meters serverhostname". If the fields "message buffer waits" contain values over 0, it might be possible to improve the performance by increasing the value.
Preferred Network Receive Buffer Size 16384 65536 The value of the environment variable OS_RCVBUF_SIZE  in the calling batch file should have the same value
Preferred Network Send Buffer Size 16384 65536 The value of the environment variable OS_RCVBUF_SIZE  in the calling batch file should have the same value
Propagation Buffer Size Auto 327680 This value can be decreased to force a more frequent writing into the database (also in connection with "Max Data Propagation Threshold").

 

Checking the Database for Integrity

No. Step Command Comment
1. Check Database (ObjectStore utility) osverifydb DATENBANK* > result.dat 2>>&1
ODER
Verifygen.bat (please ask ClassiX®)
The check result gets written into the file result.dat.
In case of messages such as "internal error" or "err_", please notify ClassiX® immediately !
2. Check Database (ClassiX® utility) Analyze.bat (please ask ClassiX®) In case of messages such as "Error" or "SanityCheck returning" in file analyze2.lst, please notify ClassiX® immediately !
  * DATABASE is the database name as it is saved in the drive.

 

Backup, Creating a Database Copy

No. Step Command Response
1. making sure that no client is connected to the server perl killclients.pl SERVER* ERRORLEVEL = 0: no more client connected,
otherwise: there are still clients connected to the server
2. create checkpoint ossvrchkpt SERVER* ERRORLEVEL = 0: everything ok; program only ends when checkpoint is complete
3. switch database to offline osdbcontrol -offline -kill_clients DATABASE*  
4. secure database file with the common backup tools    
5. switch database to online osdbcontrol -online DATABASE*  
  * SERVER is the data base server name, DATABASE the database name as it is saved in the drive.

It is not necessary to end the ObjectStore® server.

Alternatively it is also possible to use ObjectStore® osbackup. The database can now be continued using during this time, but the backup takes longer (approximately 4GB/hour with ObjectStore 6.0, approximately 9 GB/hour with ObjectStore® 6.2). Please use the ObjectStore® documentation if you want to use osbackup. If u are unsure, please contact ClassiX® directly.

osarchiv doesn't necessarily need to be used: There is no need to use it unless you want to keep a log of all transactions between backups that can be used by osrecovr in order to "roll forward" a specific, previously recorded, state of the databases.

Information on how to end osarchiv:
By default, osarchiv runs in the foreground and there is no option/command to stop it.  If a kill signal is received while osarchiv is active (compared to the wait state), the archive will be truncated and thus unusable.  Therefore, one or more of the following options can be used:
1) Use -C (capital C) option to enable the interactive command-loop feature.  Use of this feature allows changes to the osarchiv parameters while the utility is still running.  Once -C is enabled, add/append a -q to the parameters file to stop the archive process.
2) Use -c (lowercase c) option to provide a clean-up handler.  Use of this feature allows a Control-C to exit the utility.

 

Packing Databases of more than 5GB

If this database is too large for the usual zip programs, it can be packed with GZip instead.
A Setup has been generated, which packs the databases with GZip via double-click. For the setup please click here.