Server

jadice server requires at least Sun/Oracle Java VM in Version 11 11.0.8 or newer (Deprecated but still supported for version 5.8: Sun/Oracle Java VM in Version 1.8.0 Update 3 (Java 8) or newer). In order to install it, you need to first unpack the distribution file (usually jadice-server-5.x.y.z-dist.zip) into an empty directory on a local drive of the server. Any file or directory names mentioned in the following will refer to this directory.

The installation files can be found in the /bin directory.

The following files are provided to install and operate jadice server as a Windows service:

installService.bat

Installs a Windows service called levigo jadice server 5.

startService.bat

Launches the service.

stopService.bat

Terminates the service.

queryService.bat

Determines the state of the service.

systemTrayIconW.bat

Launches a tray icon in the task bar with which the windows service of jadice server can be started and stopped. Furthermore, you will be alerted about any exceptions occurring during the operation of jadice server.

Note

You may need administration rights to execute these files.

Alternatively, the server can be launched with the help of the script jadice-server.bat. Linux-based operating systems use the script jadice-server.sh. Running the script launches a console. The hot key Ctrl+C terminates jadice server.

In order to install and operate jadice server as a Linux/Unix daemon, the following files are provided:

startDaemon.sh

Launches the daemon.

stopDaemon.sh

Terminates the daemon.

queryDaemon.sh

Determines the daemon's state.

systemTrayIcon.sh

Launches a tray icon in the task bar with which the daemon jadice server can be started and stopped. Furthermore, you will be alerted about any exceptions occurring during the operation of jadice server.

Files whose denominations end in NoPriv are not launched under the sudo command by the respective shell script.

All jar files needed on the server side can be found in the directory /server-lib.

License File

Additional to the jadice server distribution file you receive a separate license file (JadiceServerLicense.properties). This license file has to be placed into the configuration directory /server-config. If the file is missing or the license is expired or invalid, an error message appears in the server and client log whenever jadice server is launched or a job is requested.

In case you hold a temporary evaluation license a message will appear when launching the server, but there will be no further constrictions on the jadice server's range of functionalities.

Manual Download Package for Hyphenation

jadice server uses Apache FOP to convert XML documents and e-mails to PDF format. For licensing reasons the optional package for hyphenation cannot be included in the jadice server's distribution package. However, you can download it free of charge at http://offo.sourceforge.net/. To install the package you just need to copy the file hyphenation.jar into the directory server-lib.

Configuring the Messaging System

There are three alternative layouts of the messaging system to choose from.

  • Embedded broker (Standard)

    • Operating a broker within jadice server's JVM

    • Using Apache ActiveMQ

    • Cluster-capable thanks to Network of Brokers

    • For more information on configuration see next section

  • Separate broker

    • Operating a separate broker on jadice server's infrastructure

    • Using any compatible MOM

    • May be cluster-capable

  • Separate MOM infrastructure

    • Operating a separate MOM infrastructure

    • Using any compatible MOM

    • Availability has to be secured by infrastructure

The XML configuration determines which of these three variants is used. The prospective connector is set in the paragraph <bean id="jms-connection-factory" …> in the file server-config/application/activemq-client.xml; the properties such as the name of the message queue and the port for ActiveMQ with which jadice server is to connect are determined in the paragraph <property name="properties" …> in the file server-config/application/server.xml with jadice.server.queue-name; and jadice.server.activemq-port. Since the class ActiveMQConnectionFactory implements both QueueConnectionFactory and TopicConnectionFactory, it is referenced with the aliases jms-queue-connection-factory as well as jms-topic-connection-factory in the respective places.

The file server-config/application/example/jms.xml contains examples which illustrate how connections via IBM Websphere MQ can be established. The fitting configuration code has to be inserted into XML configuration where it should replace the paragraphs <bean id="jms-queue-connection-factory" …> and <bean id="jms-topic-connection-factory" …>.

Configuring the Embedded Message Broker

By default jadice server offers the messaging system (i. e. the message broker) to be used in its server instance. Unless determined otherwise Apache ActiveMQ is thus used as messaging system. Its settings are configured in the file server-config/application/embedded-activemq-broker.xml. A manual explaining how to encrypt the transmissions between client and server can be found at http://activemq.apache.org/ssl-transport-reference.html and http://activemq.apache.org/how-do-i-use-ssl.html.

Port and name of the utilized message queue are set in the main configuration file server-config/application/server.xml, see the section called “Configuring the Messaging System”.

To prevent the use of this internal broker, the paragraph <feature>embedded-activemq-broker</feature> in the file server-config/application/active-features.xml has to be deleted.

Clustering

The following configuration changes are necessary to run jadice server in a cluster with ActiveMQ

  • Delete the comment characters around one of the two <networkConnector …> elements in the file server-config/application/embedded-activemq-broker.xml.

The cluster will have the following structure:

  • One instance of jadice server with an embedded broker using Apache ActiveMQ runs on each node.

  • The clustering is based on an ActiveMQ network of brokers, which means that the embedded broker of each node participates on equal terms in a distributed broker.

  • Either the brokers find each other via auto-discovery using Mulitcast or the network of brokers is defined as static.

The clients have to be configured accordingly for the clustering to work. If the brokers find each other via auto-discovery, the method Multicast-Discovery can be used for client connections. The group name of the cluster formed by the jadice server instances has to be established and set in the file /server-config/application/server.xml under jadice.server.activemq-group. By default this group name is jadice-server.cluster.

The URL with which the client connects to the cluster in this case is: discovery:(multicast://default)?group=jadice-server.cluster&initialReconnectDelay=100 (see the code example in section the section called “Creating a Server Job”).

If the network of brokers has been defined as static, the connection URL needs to be static, too: failover:(<URL_Server_A>,<URL_Server_B>), for example: failover:(tcp://serverA:61616,tcp://serverB:61616).

Configuration Wrapper

The server is launched via a system-dependent wrapper. Java VM and class path parameters are defined there.

The wrapper configuration file wrapper.conf can be found in the directory /wrapper.

Path to the Java VM:

# Java Application
wrapper.java.command=java

Definition of further class path entries:

# Java Classpath (include wrapper.jar)  Add class path # elements as needed starting from 1
wrapper.java.classpath.1=../bin/server-console.jar
wrapper.java.classpath.2=../msoffice-lib
# Example of a further class path entry
wrapper.java.classpath.N=...
	  			

1

The numbering has to be consecutive and must not overlap with pre-existing entries.

If further parameters (such as setting a temporary directory for the VM) are needed, they can be set in the following way:

# Example of further JVM parameters
wrapper.java.additional.1=-server
wrapper.java.additional.2=-Djava.io.tmpdir=C:\tmp
wrapper.java.additional.N=<further parameters>
	  			

Note

If jadice server is launched in multi-VM mode, these parameters only apply to the central instance (see section the section called “Configuring Multi-VM Mode”).

Defining JVM storage settings, wrapper.java.initmemory corresponds to parameter -Xms, wrapper.java.maxmemory corresponds to parameter -Xmx:

# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=3

# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=512
	  			

Furthermore, it is possible to change the class path and thereby the loaded Java libraries, for example to add worker implementations to jadice server. These modifications can be made in the files /server-config/jadice-server.options and /server-config/jadice-server-local.options. The following entries are possible:

-cp 
<jar library>
A single jar library is added to the class path of jadice server.
--classpath
<jar library>
-ld 
<directory>
All jar libraries in the denominated directory are added to the class path of jadice server in alphabetical order.
--library-dir 
<directory>

Note that there has to be a line break between the option and the parameter. The effective class path is formed in the following way:

  1. Entries under -cp / --classpath from jadice-server.options

  2. Entries under -cp / --classpath from jadice-server-local.options

  3. Entries under -ld / --library-dir from jadice-server.options

  4. Entries under -ld / --library-dir from jadice-server-local.options

Moreover, the following options are possible:

-xo 
<configuration file>
Includes another configuration file. This has to be done according to the syntax explicated here.
--extra-options
<configuration file>
-dCL On launching the effective class path is listed and the classloader hierarchy displayed.
--debug-classpath
-dX Potential exceptions and stacktraces, which occurred during launching, are returned.
--debug-using-exceptions

Configuring LibreOffice

The directory <LibreOffice directory>/program must be referenced. Otherwise the server cannot access the software file of LibreOffice. Configurations are listed in the file /server-config/jadice-server-local.options, for example,

# LibreOffice directory
-cp
C:\Program Files (x86)\Libre Office 5\program\
				

Note

When operating MS Windows Vista, Windows 7 or Server 2008, the symbolic file path may not be used; C:\Program Files\ has to be used instead of, for example, C:\Programme (x86)\.

Moreover, <LibreOffice-Verzeichnis>/program/classes/java_uno.jar, juh.jar, jurt.jar, ridl.jar, unoloader.jar and unoil.jar have to be integrated in the class path. What is more, JVM and LibreOffice have to be binary compatible (x86 / x64).

If the paths are set incorrectly, an error will occur on conversion.

When using an operating system that is nor Windows (such as Linux, Unix), the package Xvfb (X window virtual framebuffer) has to be installed to allow for a headless and therefore automated operation of LibreOffice.

Configuring MS Office

If jadice server is installed on Windows NT, 2000, Server 2003 or an older version and if the the conversion is to be realized with MSWordNode / MSExcelNode /… , the Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) needs to be installed first.

Using MS Office 2007 Service Pack 2 or more recent versions, it is possible to export PDFs natively. If you are using any version of MS Office 2007 that predates Service Pack 2, 2007 Microsoft Office Add-in: Microsoft Save as PDF has to be installed in order to use the native PDF export.

Furthermore, it needs to be determined how macros should be treated in MS Office's Trust Center. Since user queries are not possible in server operation, only the option Disable all macros without notification is sensible (see Figure 5.1, “Feasible Setting for Macros in MS Office”). ActiveX settings have to be modified accordingly.

Figure 5.1. Feasible Setting for Macros in MS Office

Only option “Disable all macros without notification” may be selected in MS Office's Trust Center

If jadice server is installed as a Windows service as described in the section called “Server” this service may not log on as the local system account but as a technical account (see Figure 5.2, “Installation of jadice server as technical account”). Else the conversion via MS Office may fail with various, irreproducible errors.

Figure 5.2. Installation of jadice server as technical account

The service of jadice server logs on as technical account

Configuring MS Outlook

To circumvent the security guidelines that prevent jadice server from accessing MS Outlook, the software Advanced Security for Outlook has to be installed and configured.

Configuration:

  1. Log onto the server computer with the login of the user who is running jadice server.

  2. Start a conversion process that initiates the MSOutlookNode.

  3. Select Allow Access and Always perform … in the Advanced Security for Outlook dialog.

In MS Outlook 2007 the option Empty the Deleted Items Folder upon exiting has to be activated, too. You can find this setting under → Options → Other. In addition, the option Warn before permanently deleting items has to be deactivated. This setting is located under Advanced Tools → Options → Other → Advanced Optiones.

Configuring MS Project 2010

In order to convert MS Project files that have been created with an earlier version of the software the setting Allow loading files with legacy or non-default file formats. needs to be selcted in the Trust Center:

Figure 5.3. Settings for legacy formats in MS Project 2010

Files with legacy can only be loaded if this is allowed via the settings in MS Project 2010's Trust Center.


Configuring Logging

The framework log4j is used for the administration of log entries. This framework is configured in the file /server-config/logging/log4j-appenders.xml or /server-config/log4j-appenders-mvm.xml if operating in multi-VM mode. By default log messages are returned in the console as well as saved in the directory /log/.

In the default settings files saved in this directory are rotated on a daily basis with the help of the LogAppender DailyRollingFileAppender. Since this tool does not offer the option of only keeping the log files of the last n days, you should make sure that there is enough storage space for saving the log files or automatically and regularly move or delete the older files. Otherwise, we recommend using RollingFileAppender as it provides the option of delineating a maximum of files to keep.

Further options for logging are listed as comments in the configuration file and just need to be activated.

Configuring Ghostscript

In order to be able to use the GhostscriptNode, the following conditions need to be met:

  • Installing GPL Ghostscript, version 8.64 or more recent

  • Customizing the file /server-config/ghostscript/ghostscript.xml. Insert an element containing the parameters <property name="executableName" value="<location of the Ghostscript executable>" /> under <bean id="ghostscript" …>.

    Note

    There are templates for the directories under which Ghostscript is usually installed in Windows or Linux. Just erase the respective XML comment to use the templates.

Configuring Multi-VM Mode

Note

The Multi-VM mode is deprecated and will not be available with the next major release anymore.

The use of external libraries can cause an error and result in a crash of Java Virtual Machine or even jadice server.

In order to ensure continuing job processing in such a case, jadice server can be launched in multiple instances on a single computer. In this scenario a central instance of jadice server monitors the other instances, which carry out the actual work. If any of these working instances fails to respond or has crashed, the central instances terminates the respective process and automatically launches a new instance of jadice server.

If you want to operate jadice server in this multi-VM mode, the comment marking in the file /server-config/application/active-features.xml around <feature>mvm</feature> has to be deleted.

The working instances can be configured in the file /server-config/application/multi-vm-manager.xml in the paragraph <bean id="server" …>. There are several ways to adapt the number of working instances:

  • Fixed number of working instances: <property name="fixedVMCount" value="<n>" />

  • n working instances per processor kernel: <property name="perProcessorVMCount" value="<n> />"

Further launching parameters of the starting JVM such as available storage space can be determined under <property name="instanceJVMOptions" …>.

Configuring the SOAP Interface

In order to activate the SOAP interface via which queries in XML format are posed to jadice server, the comment marking around the element <feature>soap</feature> in the file server-config/application/active-features.xml has to be deleted.

In the element <jaxws:endpoint …> in the file server-config/application/soap.xml an endpoint of the web service (as instance of javax.xml.ws.Endpoint) is propagated. The pre-set attribute address="http://${jadice.server.hostname}:9000/jadiceServer" provides the endpoint using the name of the host computer on port 9000.

See the section called “SOAP Interface” for more information on the use of the SOAP interface.

Configuring the REST Interface

In order to activate the REST interface via which requests in XML or JSON format are posed to jadice server the comment marking around the element <feature>rest</feature> in the file server-config/application/active-features.xml has to be deleted.

In the element <jaxrs:server …> in the file server-config/application/rest.xml the JAX-RS endpoint of the REST interface is propageted. The pre-set attribute address="http://${jadice.server.hostname}:9001/jadiceServer" provides the endpoint using the name of the host computer on port 9001.

See the section called “REST Interface” for more information on the use of the REST interface.

Configuring the Security Interface

The security interface serves to prevent or limit unauthenticated clients' access to jadice server and its range of functions. In order to activate the interface, the comment markings around the paragraphs <feature>security</feature> in the file server-config/application/active-features.xml have to be deleted.

The file server-config/application/security.xml contains an exemplary configuration which needs to be set to the desired security level. For further information on this setting and the use of the security interface see Chapter 8, Security Interface.

[jadice server Version 5.8.7.0: Documentation for Developers and Administrators. Published: 2021-04-15]