If a PMOD installation has a JDBC database running, it can make the data available for other PMOD installations. To this end a server program - the Transaction Server (TS) - must be started to run in the background and wait for database access requests.
In PMOD multiple TSs can be started automatically. Therefore memory usage for multiple TS is optimized while providing a better management of the TSs.
Transaction Server Configuration
The transaction server requires several configuration items, which are available on the DATABASE panel. Perform the following steps to define the transaction server which is started automatically with PMOD.
Starting a Transaction Server
The PMOD transaction server is a background process. It can be started in one of the following ways:
C:
cd "C:\Pmod3.6"
.\java\jre\bin\java -version
.\java\jre\bin\java -Xmx1200M -jar pmtsvr.jar 5203 JAVA_DB org.apache.derby.jdbc.EmbeddedDriver jdbc:derby:./DATABASES/Pmod ./DATABASES/Pmod/data -noLS
The transaction server start can be combined with an optimization of the database which can dramatically improve speed for aging, large databases. In order to trigger the optimization, a n option -optimize can be appended to the command in the RunDcmSvr script.
Transaction Server Scripts
The Save Starting Script button is a facility for generating scripts according to the configured transaction server properties. It becomes active when the Start automatically radio button is disabled and Standalone option is enabled. The script is dependent on the operating system. The example below is the result for a Windows system.
The -noLS text indicates that the TS is not used as license server.
The License Server box can be checked if the server is at the same time managing a network license. In this case the -noLS flag will disappear. The Yes button saves the operating-system specific script illustrated in the Commands area to the Pmod3.6/Start directory using the specified Name.
The Verbose commands box can be checked to enable verbose output. In this case a -d argument will appear. It is only recommended for debugging purposes, because it will slow communication down.
The Redirect output box can be enabled to redirect the output to a log file. In this case a -o argument will appear.
An additional command line flag which can be added to the script is -optimize. If it is present, the database table indexes will be optimized before the database gets accessible. As this may take notable time for large databases, it is recommended to perform it only when database performance drops.
Transaction Server Status Information
All automatically started TSs are available for management. The TS management and status information are available activating the button from PMOD ToolBox:
The current status is displayed in the State column. The status of a TS can be easily modified: initially the TS have to be selected in the Server list and then, depending on the status, the Start selected server(s) or Stop selected server(s) button need to be activated.
When the color of the button changes to blue, a transaction server request is being served. The color changes back after all communications have completed.
Pmod Status
The PMOD status is extended to provide more information about PMOD environment. The following status information are available:
In case of problems with the TS status the Pmod status button in the toolbox turn into red bullet.
The status is refreshed in the following situations:
Recommendations
Methods 1 allows publishing a single database. Method 2 is not limited in this sense. A script can be run for each database in parallel. In this case, the transaction servers must be started using unique port numbers (eg. 5200, 5201, 5202, ...).
Note that transaction servers can be started and operated without consuming a PMOD license. This allows moving them to a server machine that is continuously operating and has fast disks. On this server machine perform a standard PMOD installation, plug the USB license protection key in, and use the Config facility for the database configuration and transaction server script generation. Then start each of the scripts in a separate command window. In the case of a standalone license, the USB key can now be moved to the computer, where the actual data processing is performed. In the case of a network license the USB key should remain, as it is used for license serving.
It is easy for Mac OSX and Linux to start programs like the transaction servers at system boot time and run them in the background. On Windows, this is not possible with normal programs. Rather, a command window is required which needs to stay open for the whole program duration, which is not convenient for shared server systems. A workaround is to purchase a third-party solution which wraps the transaction servers into service processes, such as the AlwaysUp solution.
Depending on the network and server performance the speed of the load/save operations via a transaction server may be slower than with local loading/saving. The benefit, however, is the global availability and centralized maintenance of the data.
CAUTION: Note that the proper interaction between the transaction server and clients requires that all systems run the same PMOD version.