Overview

You can use Adobe InDesignServer® for rendering pages, exporting PDF documents, create previews and several more rendering tasks.
Connecting publishing server with InDesignServer requires some additional setup steps, which are described in this document.

This guide does not cover installation and configuration in a Comet 3 environment, it also does not cover installation of alternative renderers, such as the priint:renderer.

Requirements

This documentation refers to

Step by Step

This is a very short summary, detailed description for each step can be found below.

  1. install InDesignServer according to Adobe InDesignServer installation instruction (see Section 3)
  2. install priint:comet plug-ins for InDesignServer (see Section 4)
  3. create or setup paths and folders for log files, cache, temporary documents and publication documents (see Section 5)
  4. configure services or start manually with appropriate startup parameters (see Section 6)
  5. configure InDesignServer instances in the priint:suite admin component and connect publishing server to InDesignServer instances (see Section 7)

Installation Hints for Adobe InDesignServer

Install InDesignServer according to the Adobe InDesignServer documentation.

Licensing

Depending on the version you will have to enter a serial number upon installation or when first starting the server or both. It may also be required to run a tool named "Adobe Provisioning Toolkit" (adobe_prtk) to properly license InDesignServer.
Detailed information can be found in the documentation delivered with your copy of Adobe InDesignServer.

Fonts, PDF Profiles (“Joboptions”), Dictionaries and InDesignServer

Beside the OS font system, fonts must be installed in the Fonts directory in the InDesignServer Installation directory. Please refer to the Adobe InDesignServer documentation for more information.

If you cannot use PDF Profiles (“Joboptions”) or dictionaries with InDesignServer, this might just be a system privileges / account issue. Depending on the OS, these settings are saved in global / default and / or user directories, such as

Usually you just have to copy these folders into your “local” (i.e. user) settings folder. Please see http://helpx.adobe.com/content/dam/kb/en/407/kb407987/attachments/ID_Presets___Prefs.pdf for more information.

Additional Hints

Mac OS X:
If you want to connect to an ODBC data source, you have to install the iODBC framework, which can be downloaded from http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/Downloads. Scroll down to the Mac OS X section and select the installation package suitable for your OS version (for Mac OS X 10.6, 10.7 and 10.8 you can use the 10.5 package).
Alternatively you can install any of the ODBC drivers available from Openlink, this includes installation of the framework. For more information visit http://www.openlinksw.com.

In a publishing server environment, you usually do not need ODBC connections, therefore you'd rather install a plug-in version without ODBC connection support instead. See section "Choosing the right Plug-ins" below for details.

Installation of priint:comet Server Plug-ins for Adobe InDesignServer

Choose the right Plug-ins

priint:comet plug-ins for InDesignServer are delivered as ZIP archives, e.g. Comet 4.0.5 R9722 (Mac), CS6(Server).zip or Comet 4.0.5 R9722 (Windows), CS6(Server-x64).zip.

Please note:

The following table shows the plug-ins contained in the Server ZIP archive. Plug-ins marked with "x" must be installed, plug-ins marked with "o" are highly recommended being installed.

Plug-In / File Name (Mac, Windows) Description Comment Install

Comet [Server].InDesignPlugin

Comet [Server64].pln

Scripting support  
x

CometSoapSupport.InDesignPlugin

CometSoapSupport.pln

WebService for publishing server / CometServer communication  
x

CoreService [Server].InDesignPlugin

CoreService [Server64].pln

Support for all connection types (except of OCI)

only one of these plug-ins must be present
x

CoreService [Internet][Server].InDesignPlugin

CoreService [Internet][Server64].pln

SOAP connections

CoreServlett [Server].InDesignPlugin

CoreServlett [Server64].pln

Reader Plugin

Documents [Server].InDesignPlugin

Documents [Server64].pln

Support for publication, publication parameters, etc.  
0

DataFiles [Server].InDesignPlugin

DataFiles [Server64].pln

File mappings / global script variables  
0

EmbeddedLink [Server].InDesignPlugin

EmbeddedLink [Server64].pln

Support for text placeholders and tags  
x

FrameLink [Server].InDesignPlugin

FrameLink [Server64].pln

Support for frame placeholders and tags  
x

PageAdapter [Server].InDesignPlugin

PageAdapter [Server64].pln

Non-proportional adaption full version install either both readers or both full versions
x

PageAdapter [Model][Server].InDesignPlugin

PageAdapter [Model][Server64].pln

PageAdapter-Reader [Server].InDesignPlugin

PageAdapter-Reader [Server64].pln

Non-proportional adaption build support and reader

PageAdapter-Reader [Model][Server].InDesignPlugin

PageAdapter-Reader [Model][Server64].pln

PageTemplates [Server].InDesignPlugin

PageTemplates [Server64].pln

Page templates support  
x

PageTemplates [Model][Server].InDesignPlugin

PageTemplates [Model][Server64].pln

 
x

Placeholder [Server].InDesignPlugin

Placeholder [Server64].pln

Placeholder support  
x

Products [Server].InDesignPlugin

Products [Server64].pln

Build support  
x

ToDoList [Server].InDesignPlugin

ToDoList [Server64].pln

Comments and tasks  
o

ToDoList [Model][Server].InDesignPlugin

ToDoList [Model][Server64].pln

 
o

Installation Procedure

Mac OS X: please use the Archive Utility application or ditto to unpack the plug-ins archive.

Example:

ditto -xk 'Comet 4.0.5 R9722 (Mac), CS6(Server).zip' .

This will create a folder named Werk II R9722 and unpack all plug-ins in this folder.

Licensing priint:comet Server Plug-ins

If this is your first installation, you have to license the priint:comet plug-ins.

  1. After installing the plug-ins start InDesignServer from a command line.
    Windows: in the command prompt type (finish each line with [Enter])
    cd C:\Program Files(x86)\Adobe\Adobe InDesign CS5 Server\
    InDesignServer.com
    Mac: in a Terminal window type (finish each line with [Enter])
    cd /Applications/Adobe\ InDesign\ CS5\ Server/ 
    ./InDesignServer
    (depending on the installation location and CS version the path may differ).
  2. After a while you should see a message like
    . NO LICENSE FILE FOUND.
    .
    . The plugins will only work as reader. If the full functionality
    . of priint.comet is needed, you need a valid license from Werk II
    . 
    . If you have a valid license file w2.lic,
    . please place this file into the Plug-Ins folder or restart
    . InDesign Server with the -cometlic  option
    . 
    .
    . If you do not have a valid license, then for ordering please
    . copy and paste the following lines and send them to 
    .
    . license@werk-ii.com
    .
    .
    "InDesign Server CS6"
    "11550003567098748020"
    "00:26:BB:61:4A:F2"
    "4.0.5"
    CometBatch
    Adaption
  3. As instructed on the screen, copy and paste the last five lines and send them to license@werk- ii.com (for the sake of convenience you can as well use license@priint.com). In return you will receive a license file. Just save this file in the priint:comet plug-ins folder (next to the priint:comet Server plug-ins) and restart InDesignServer. Please contact license@priint.com for pricing information also.

Paths and folders

You must setup the following paths and folders to use the priint:comet plug-ins

Cache Path

This path is used by the plug-ins to store temporary data (downloaded templates, actions etc.).
Requirements

Configuration: InDesignServer command line parameter -cometcache
Example: C:\comet\cache_instance1\

Comet Log

This is the file comet log messages are written to.
Requirements

Configuration: InDesignServer command line parameter -cometlog
Example: C:\comet\logs\comet1.log

Comet API Log

This is the file comet API log messages are written to.
Requirements

Configuration: InDesignServer command line parameter -cometapilog
Example: C:\comet\logs\api1.log

Temporary Session Files

This is the folder, temporary session data is written to and read from. Typically this is a network mount, because other components (publishing server / CometServer) access this folder too.
Requirements

Configuration: priint:suite adminstration, variable tmpPath. See screenshot below. Don't forget to click the "save" button after changing this value!
Example: \\Shared\publishing_server\tmp

Document Files

This is the folder, documents (e.g. publication documents) are written to and read from. Typically this is a network mount, because other components (publishing server / CometServer) access this folder too.
Requirements

Configuration: priint:suite adminstration, variable documentRoot. See screenshot below. Don't forget to click the "save" button after changing this value!
Example: \\Shared\publishing_server\documents

priint:suite administration

Configuring Adobe InDesignServer

Prerequisites:

Configuration Parameters

No matter how you are going to start InDesignServer (see Section "Manual startup vs. service" below), InDesignServer instances are configured by a set of command line parameters. Either you type them in in a Terminal windows or Command Prompt, or they are saved in a service configuration file.

A typical startup command on Windows looks like this (all in one line):

InDesignServer.com -configuration Instance1 -cometport 4711 -cometcache C:\comet\cache\instance1 -cometlog C:\comet\log\comet1.log -cometapilog C:\comet\log\api1.log -cometlic C:\comet\w2.lic -cometxmlparser fast -previews -LogToApplicationEventLog 

A typical startup command on Mac looks like this (all in one line):

./InDesignServer -configuration Instance1 -cometport 4711 -cometcache /var/comet/cache/instance1 –cometlog /var/comet/log/comet.log -cometapilog /var/comet/log/api.log -cometlic /var/comet/w2.lic -cometxmlparser fast -previews

The following table gives an overview of available and mandatory parameters:

Argument Name Argument Value Description Mandatory / Recommended
common Adobe / InDesignServer parameters:
configuration <configuration name>

If you run several instances on one InDesignServer host, each instance must have an unique “configuration name” (such as “instance1”, “instance2” etc.).

Again, the configuration option must be unique for each InDesignServer instance running on the same machine.

yes
iorfile <path to iorfile> This is the communication endpoint for Corba connections. You must provide a file name, the destination folder must exist and must be writeable for the InDesignServer user. If the file provided already exists, this file must be writeable for the InDesignServer user. no, deprecated
previews - Calculate previews for embedded or linked images. For whiteboard applications or if documents are exchanged with InDesign Desktop you should always turn this option on, otherwise you will see grey squares instead of images in previews and when first opening the document with InDesign Desktop no / yes
nopreviews - Turn preview calculation of no / no
LogToApplicationEventLog - Redirect output to the system console (Mac) or Event Log (Windows) no / yes
pluginpath <path[,path]> Additional plug-in folder paths, relative to the application. This can be useful in multi instance environments when running several instances with different purposes (e.g. with / without priint:comet Server plug-ins or with different Plug-In versions) no / depends
priint:comet parameters:
cometport <port>

(SOAP Support only) Listen for SOAP requests on the given port. If the Soap Support Plug-In is installed, setting this option will enable the SOAP Service.

The cometport option must be unique for each InDesignServer instance running on the same machine.

yes
cometlog <comet log file path>

Enable common logging and write logs to <comet log file path>. You should enable logging on development systems and to trace errors on productive systems. The destination folder must exist, otherwise logging will fail.

If set, the cometlog option must be unique for each InDesignServer instance running on the same machine.

no / yes (at least while developing)
cometapilog <api log file path>

Enable API logging and write logs to <api log file path>. This will trace the complete communication between priint:cometserver and InDesignServer. The destination folder must exist, otherwise logging will fail.

If set, the cometapilog option must be unique for each InDesignServer instance running on the same machine.

no / yes
cometlogrotate <# bytes> Rotate comet logs, if the log file exceeds the size of <# bytes> bytes. Default is 2MB, -1 will disable log rotate at all (not recommended). This setting applies to all log files. no / no
cometlic <license file path> Read license from <license file path> rather than w2.lic in the plug-ins folder. To make plug-in updates easier, we recommend using this option and keep the license file outside of the plug-ins folder. no / yes
cometcache <cache folder path> Set the comet cache path. The cache path must be unique for each InDesignServer instance running on the same machine, so it’s highly recommended using this option. The default is ~/Documents/XCache, which might not be useful in a server environment. yes / yes
cometidmlcache <on | off>

Turn IDML cache on (default is off). With IDML cache turned on, all templates will be resaved as IDML and then opened from the IDML file. This will slow down the first builds a little bit, but can help to speed up subsequent builds, reduce size of generated documents and solve problems caused by sorrupted or outdated templates.

You can skip this option, unless you encounter frequent performance or stability issues when generating pages.

no / no
cometxmlparser <classic | optimized | fast> Which XML parser to use. You should skip this option or set it to fast no / no
cometdrawidle <true | false> Enable / disable draw idle features. If turned on (default), InDesignServer will prepare previews whenever “idle”. You should not turn it off, except you notice problems with previews. no / no
cometparanoidredraw <true | false>

With paranoidredraw turned on, every spread is forced to be rendered in kPrinting mode before the first preview request, even if the spread has not been changed after the document has been openend.

Customers reported, that they had occasional problems with text placeholders, which appeared to be empty in previews. This is a known problem for placeholders, that have just been loaded or updated, but not yet rendered in kPrinting mode; it is not a known problem for placeholders in documents just opened. However, since it seems to be a potential problem, the potential solution would be to turn cometparanoidredraw on.

no / no
cometthreshold <# bytes> Threshold in bytes before writing script results (like XML strings) in tmp files rather than returning the string. This setting is relevant for the Corba connection only, the default value is 32768. Higher values may improve performance, on the other hand large result strings (> 512k) sometimes cause failures in the Corba connection. no / no (not relevant for SOAP communication)
shutdowntrigger
purgetrigger
one of the following criteria:
  • uptime=nd | nh | nm | ns documents=n
  • jobs=n
  • memory[=low] time=hh:mm:ss headroom=nG | nM | nK

Shutdown the InDesignServer instance or purge memory after (every) n days / hours / minutes / seconds uptime, after n documents or n jobs have been processed, when memory is low, at a certain time or when no more n GB memory can be allocated.

See Section “5.8 Advanced InDesignServer Configuration” for more information.

for debugging and troubleshooting. See Section 8 Troubleshooting below.
There are several more options related to the SOAP communication, which should be more or less self- explanatory. Changing them is only required, if you encounter problems with the SOAP communication:
cometaccepttimeout <accept timeout in ms> default: 1000 (= 1s) no / no
cometreceivetimeout <receive timeout in ms> default: 60000 (=60s) no / no
cometsendtimeout <send timeout in ms> default: 60000 (=60s) no / no
cometyield <yield ms> milliseconds to yield between listen attempts, currently unused no / no
cometconfig <config.xml path> Path to the Autocomet configuration file (batch mode). no, deprecated
playback OFF | RECORD | ON

Since v4.0.5 R16200 Use of recorded data in $XCACHE

priint:comet plugins can record received data from external data sources. Recorded data can used in playback mode. WERK 2 reserves the right to turn off this feature at any time - please contact WERK 2 if you plan to use recoreded data.

no / no

Startup Configuration

You can start and stop InDesignServer manually or as a service. There is no general advantage of one way over the other (once running, InDesignServer and the priint:comet Server plug-ins support all features, whether you started InDesignServer as a service or manually), so, which way is more suitable for you primarily depends on the intended use.

Service

Manually Start / Stop

Manually start / stop InDesignServer on Microsoft Windows

Open a command prompt, change to the InDesignServer installation directory

cd C:\Program Files\Adobe\Adobe InDesign CS5 Server\
Start a InDesignServer instance (type all in one line)
InDesignServer.com -configuration instance1 -cometport 4711 -cometcache
       C:\comet\cache\instance1
To stop this instance hit CTRL-c in the console window (InDesignServer will process the signal when idle the next time, so shutdown may take a while). If it’s not possible to shutdown InDesignServer in the console window, kill the process in the Windows Taskmanager.

To start a second or third InDesignServer instance open another command prompt, cd to the installation directory and type (for example, type all in one line)

InDesignServer.com -configuration instance2 -cometport 4712 -cometcache
       C:\comet\cache\instance2
Remember, that configuration, cometport and cometcache must be unique for each instance running on one server.

Manually start / stop InDesignServer on Apple Mac OS X

Open a Terminal window, change to the InDesignServer installation directory

cd /Applications/Adobe\ InDesign\ CS5\ Server/
Start a InDesignServer instance
./InDesignServer -configuration -cometport 4711 instance1 -cometcache
       /var/comet/cache/instance1
To stop this instance hit CTRL-c in the Terminal window (InDesignServer will process the signal when idle the next time, so shutdown may take a while). If it’s not possible to shutdown InDesignServer in the Terminal window, find out the process id with
ps a|grep -i [i]ndesignserver
This will output something like
2805 s000 S+ 0:00.00 /bin/bash ./InDesignServer -iorfile /var/comet/ids1.ior -cometcache /var/comet/cache/instance1
2807 s000 S+ 0:05.27 ./InDesignServer.app/Contents/MacOS/InDesignServer -iorfile /var/comet/ids1.ior -cometcache /var/comet/cache/instance1
The first number is the process id of the InDesignServer process, in this case you would terminate InDesignServer with
kill -9 2805
To start a second or third InDesignServer instance open another Terminal window, cd to the installation directory and type (for example)
./InDesignServer -configuration instance2 -cometport 4712 -cometcache
       /var/comet/cache/instance2
Remember, that configuration, cometport and cometcache must be unique for each instance running on one server.

Running InDesignServer as a Windows Service

If during the installation the component "ID SERVER SERVICE FILES" was selected, the installer will register two Windows services that can start and monitor InDesignServer instances without an interactive user session login.
You can configure, add and remove instances by using the Windows Management console plugin. It can be found in the InDesign Server installation directory as InDesignServerService.msc. To launch the Windows Management console, just double click the .msc file. This is how it should work, below you find explanations how to fix problems, if it doesn’t work out if the box.

  1. double click the InDesignServerService.msc file in the InDesignServer installation directory. This will launch the Windows Management console.
  2. right click on the InDesignServerService entry in the left tree view. Select New > New InDesign Server instance. A new entry will show up in the list view. A double click will open the configuration dialogue for this instance. The configuration is equivalent to the command line configuration mentioned above
    • leave the port number empty (we do not use the Adobe built in SOAP service)
    • type in all command line arguments in the second input field. Refer to Section 6.1 Configuration Parameters for details.
  3. open the service settings in the Windows service administration tool and under the Log On panel assign an account that's equipped with the proper privileges to run InDesignServer.
  4. restart the InDesignServerService service to activate new instances or new settings
By using the process view in the Windows Taskmanager, you should see one InDesignServer process for each instance alongside one single InDesignServerService.
For more details please refer to Adobe's "Introduction to Adobe InDesign CS6 Server" documentation, e.g. chapter "Configuring InDesign Server Windows Service".
Windows Management Console Error

In some cases the management console plugin needs manual fixes to work properly. If double clicking the .msc file results in an error message, open a command prompt with administrator privileges, navigate to your InDesign Server installation directory (e.g. C:\Program Files (x86)\Adobe\Adobe InDesign CS6 Server) and enter the following command

regsvr32 InDesignServerMMC64.dll /u
to remove the damaged registration and reinstall it with
regsvr32 InDesignServerMMC64.dll
After this, you should be able to launch the management console plugin.

Error #1053

If InDesign Server Service does not start properly and exits with an error "#1053 The service did not respond to the start or control request in a timely fashion.", there are two ways to fix the problem:

  1. Does not affect the rest of the system, but doesn’t work on all machines
    1. open the Windows service configuration dialogue
    2. find "InDesignServerService"
    3. select "Properties" from the context menu (right click) and under "Recovery" switch "First failure" and "Second failure" to "Restart the Service"
  2. Reliable, but affects all services
    1. click the Start button, then click Run, type regedit, and click OK.
    2. in the Registry Editor, click the registry subkey
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    3. in the details pane, locate the ServicesPipeTimeout entry, right-click that entry and then select Modify.
      Note: If the ServicesPipeTimeout entry does not exist, you must create it by selecting New on the Edit menu, followed by the DWORD Value, then typing ServicesPipeTimeout, and clicking Enter.
    4. click Decimal, enter the new timeout value in milliseconds, and then click OK.
    5. restart the computer
    The default value is 30000ms (=30s), which seems to be too short for some servers running as a virtual machine or on low hardware resources.
    This instruction was adapted from the Microsoft Technet WebSite, more information can be found at http://technet.microsoft.com/en-us/library/dd349403%28v=ws.10%29.aspx.

Other Problems

There are also cases where de- and manually re-registering the service is necessary if the above steps do not help. To do so

  1. open the command prompt with administrator privileges
  2. navigate to your InDesign Server installation directory and find "InDesignServerService"
  3. enter the follow command to unregister the service:
    InDesignServerService /install /u
  4. Reboot the system, with administrator privileges run the following command in the same directory
    InDesignServerService /install



Running InDesignServer As A Mac OS X Service using launchd

To start and run InDesignServer using launchd, you must define a daemon for each InDesignServer instance. To do so, put a configuration file into /Library/LaunchDaemons/. This file should have a reasonable name (so it can be identified for later editing) and must have the extension .plist.

Example (file /Library/LaunchDaemons/com.priint.comet2.plist)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC ="-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key> 
    <string>com.priint.comet1</string> 
    <key>UserName</key> 
    <string>priint</string> 
    <key>GroupName</key> 
    <string>wheel</string> 
    <key>OnDemand</key>
    <false/> 
    <key>ProgramArguments</key> 
    <array>
      <string>/Applications/Adobe InDesign CS6 Server/InDesignServer.app/Contents/MacOS/InDesignServer</string>
      <string>-cometport</string>
      <string>4711</string>
      <string>-cometcache</string> 
      <string>/var/comet/cache1</string> 
      <string>-configuration</string> 
      <string>instance1</string> 
      <string>-previews</string>
    </array>
    <key>RunAtLoad</key>
    <false/>
  </dict>
</plist>

Pretty straightforward. To add more command line arguments, you would simply add more string- element pairs (or single string-elements) to the ProgramArguments array. To add another instance, you just have to copy this file to – say - /Library/LaunchDaemons/com.priint.comet2.plist and change the cometport, configuration and cometcache values.

On system startup all daemons found in /Library/LaunchDaemons are started (unless OnDemand is set to true, which at the time of this writing doesn’t make sense in a publishing server environment).

To start the service manually, open a Terminal window and type

sudo launchctl load /Library/LaunchDaemons/com.priint.comet1.plist
To stop manually, use
sudo launchctl unload /Library/LaunchDaemons/com.priint.comet1.plist

It is not recommended saving Daemon files in the /System/Library/LaunchDaemons folder. These entries may be deleted on system updates. Daemons in /Library/LaunchDaemons will be started literally the same way like daemons in /System/Library/LaunchDaemons.

Connecting priint:publishing server to InDesignServer Instances

To use InDesignServer with the publishing server, they first must be configured in the comet_admin database resp. priint:suite administration console.

During installation, you can choose whether to support InDesignServer or not, and choose the number of instances, server address, port range etc. for InDesignServer. You can change this configuration later, however some of these settings can only be edited directly in the database and will require a server restart.

General Information

The publishing server connects to InDesignServer via SOAP over HTTP. Just now we have configured one or several InDesignServer instances, each with a unique cometport (see above). The server IP address plus this port number is the service endpoint we need to connect to this InDesignServer instance.

Example: server address name is ids.intranet.enterprise.com, cometport is 4711, service endpoint therefore is http://ids.intranet.enterprise.com:4711/.

The InDesignServer instances need to connect back to the publishing server (actually to the Comet3 WebService provided by the CometBridge priint:publishing server Plugin), this is a SOAP over HTTP connection also.

Note: we do not support HTTPS respectively SSL for the InDesignServer WebService and though we support HTTPS for the callback service, it is not recommended using SSL here.
Instead, it is highly recommended securing all InDesignServer service ports and the port used for callback service. This is subject to the system provider or solution partner and can be solved e.g. by establishing firewall rules, which limit access to these ports to the publishing server host respectively the InDesignServer host.

Basic Configuration

The callback address and credentials can be configured in priint:suite > Administration > Preferences > AdminDB property

Settings in this panel:

callback configuration

InDesignServer Configuration

There should be at least two preconfigured server entries in the priint:suite > Administration > Preferences > AdminDB property > Indesign servers node. Actually we do not configure physical servers here, but only server types (LOCAL, REMOTE etc.), see screenshot below.
If for any reason these nodes do not exist in your installation, you have to edit the /pubserver/pluginconfig/com.priint.pubserver.preferences.InDesignServers/custom/InDesignServers.xml config file in the configs repository (using ISON Eclipse [Repository view]). This file should look like following:

<?xml version="1.0" encoding="UTF-8"?><con:PluginConfig xmlns:con="com.priint.pubserver.config.manager/20130620">
    <con:name>InDesignServers.xml</con:name>
    <con:type>InDesignServers</con:type>
    <con:description/>
    <con:custom>
        <cfg:InDesignServers xmlns:cfg="http://priint.com/pubserver.appserver.config/v1">
            <cfg:InDesignServers serverId="2">
                <cfg:serverName>Remote Server</cfg:serverName>
                <cfg:serverProtocol>REMOTE</cfg:serverProtocol>
            </cfg:InDesignServers>
            <cfg:InDesignServers serverId="3">
                <cfg:serverName>Offline Server</cfg:serverName>
                <cfg:serverProtocol>COMETOFFLINE</cfg:serverProtocol>
            </cfg:InDesignServers>
        </cfg:InDesignServers>
    </con:custom>
    <con:dependencies/>
    <con:instances/>
</con:PluginConfig>
If these entries are missing, add into /pubserver/pluginconfig/com.priint.pubserver.preferences.InDesignServers/custom/InDesignServers.xml config file :
<cfg:InDesignServers serverId="2">
    <cfg:serverName>Remote Server</cfg:serverName>
    <cfg:serverProtocol>REMOTE</cfg:serverProtocol>
</cfg:InDesignServers>
<cfg:InDesignServers serverId="3">
    <cfg:serverName>Offline Server</cfg:serverName>
    <cfg:serverProtocol>COMETOFFLINE</cfg:serverProtocol>
</cfg:InDesignServers>
You must restart glassfish / publishing servers to see the changes.

server types

InDesignServer Instance Configuration

By opening the REMOTE server node, you should see instances configured for this server type (see screenshot).

server instances

If there are no or not enough instances, you must add them to the /pubserver/pluginconfig/com.priint.pubserver.preferences.InDesignServerInstances/custom/InDesignServerInstances.xml config file in the configs repository (using ISON Eclipse [Repository view]). This file should look like following:

<?xml version="1.0" encoding="UTF-8"?><con:PluginConfig xmlns:con="com.priint.pubserver.config.manager/20130620">
    <con:name>InDesignServerInstances.xml</con:name>
    <con:type>InDesignServerInstances</con:type>
    <con:description>InDesignServerInstances.xml</con:description>
    <con:custom>
        <cfg:InDesignServerInstances xmlns:cfg="http://priint.com/pubserver.appserver.config/v1">
            <cfg:InDesignServerInstance instanceID="001" serverID="2">
                <cfg:instanceName>Remote Instance 001</cfg:instanceName>
                <cfg:endpoint>http://127.0.0.1:4711</cfg:endpoint>
                <cfg:active>1</cfg:active>
                <cfg:typeID>1</cfg:typeID>
            </cfg:InDesignServerInstance>
            <cfg:InDesignServerInstance instanceID="002" serverID="2">
                <cfg:instanceName>Remote Instance 002</cfg:instanceName>
                <cfg:endpoint>http://127.0.0.1:4712</cfg:endpoint>
                <cfg:active>1</cfg:active>
                <cfg:typeID>2</cfg:typeID>
            </cfg:InDesignServerInstance>
            <cfg:InDesignServerInstance instanceID="003" serverID="2">
                <cfg:instanceName>Remote Instance 003</cfg:instanceName>
                <cfg:endpoint>http://127.0.0.1:4713</cfg:endpoint>
                <cfg:active>1</cfg:active>
                <cfg:typeID>3</cfg:typeID>
            </cfg:InDesignServerInstance>
        </cfg:InDesignServerInstances>
    </con:custom>
    <con:dependencies/>
    <con:instances/>
</con:PluginConfig>

Once created, the InDesignServer instances can be configured in the priint:suite administration console.

Settings for each instance are

Note: using dedicated credentials for each InDesignServer instance can be very useful when tracking problems in the Glassfish / publishing server log file.

instance configuration

InDesignServer Instance Type or Purpose

To seperate long running tasks like generating pages from tasks, which require fast response times, InDesignServer instances can be assigned to a certain type.

Which configuration best fits your requirements, depends on the usage scenario: the number of concurrent Whiteboard users, the kind of jobs executed in your system, the number and type of Java clients etc.
You should avoid instances of type MIXED, unless in small installations (only one or two InDesignServer instances) or for testing purposes.

Monitoring InDesignServer Instances

Under priint:suite > Administration > InDesign instances you find a list of configured InDesignServer instances and information about the current status, whether it is currently processing a job or not, the number of opened documents on this instance, usage statistics etc.

Double-clicking an entry opens a separate panel, which shows the documents currently opened on this instance.

monitor

Example Configurations

This section describes some typical path configurations for priint:publishing server / InDesignServer running on the same or on dedicated hosts.
Please note:

priint:publishing server and InDesign Server on the same physical Machine (Windows)

If document or temporary files are located on a network drive, assign the target volume to a drive letter (e.g. Z:) before and use local paths for the configuration settings.

priint:publishing server and InDesign server on dedicated Windows Machines

priint:publishing server on Windows, InDesign Server on Mac

  1. Document and temporary files on the Windows host If document or temporary files are located on a network drive, assign the target volume to a drive letter (e.g. Z:) before and use local paths for the configuration settings.
    • mount this volume or folder on the Mac server
    • create a symbolic link on root level to respect the folder hierarchy:
      sudo ln -s /Volumes/pubserver /pubserver
      
  2. Document and temporary files on the Mac host
    • mount and assign the volume for document files to a drive letter on the publishing server host, e.g. F:
    • mount and assign the volume for temporary session files to a drive letter on the publishing server host, e.g. T:
    • set documentRootPath and tmpPath in the priint:suite administration using the same drive letters (e.g. F:\\documents\ resp. T:\\tempfiles\, see Section 5.5 Document files and Section 5.4 Temporary session files)
    • create symbolic links on root level to respect the folder hierarchy:
      sudo ln -s /Volumes/Data/appserver/documents /documents
      sudo ln -s /Volumes/Data/appserver/tempfiles /tempfiles

Troubleshooting

No Space left on Harddisk

It seems to be a common problem on Windows systems, that InDesign temporary files (.DBTmp) are never deleted and the server harddisk runs out of space.

When there is no space left on the server system disk, InDesign response times first will get very slow and finally InDesignServer will stop working at all.

You can use a powershell script like the following, to periodically clean up these files (path of the AppData/Temp folder probably has to be adapted):

Stop-Service -displayname InDesignServerService
#----- define parameters -----#
#----- get current date ----#
$Now = Get-Date 
#----- define amount of days ----#
$Days = "1"
#----- define folder where files are located ----#
$TargetFolder = "C:\Users\idsuser\AppData\Local\Temp"
#----- define extension ----#
$Extension = „*.DBTmp“
#----- define LastWriteTime parameter based on $Days ---#
$LastWrite = $Now.AddDays(-$Days)

#----- get files based on lastwrite filter and specified folder ---#
$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse | Where {$_.LastWriteTime -le "$LastWrite"}

foreach ($File in $Files) 
    {
    if ($File -ne $NULL)
        {
        write-host "Deleting File $File" -ForegroundColor "DarkRed"
        Remove-Item $File.FullName | out-null
        }
    else
        {
        Write-Host "No more files to delete!" -foregroundcolor "Green"
        }
    }
Start-Service -displayname InDesignServerService

Maintaining and controlling InDesignServer Instances

You should

The shutdowntrigger and purgetrigger command line options might be worth a closer look:

Shutdown Trigger

Shutdown the InDesignServer instance...

You can set this option several times, Example:

 -shutdowntrigger documents=100 -shutdowntrigger 1d
will shut down the instance every 100th document or after one day uptime, whichever event occurs first.

If it is not possible to shutdown the instance (e.g. if documents are currently opened) shutdown will be postponed to the next possible moment.

Purge Trigger

Purge memory...

This option can be set several times also.

The purgetrigger option can be useful for debugging, especially if you notice occasional InDesignServer crashes. These are often caused by leaked document resources, which are hard to track down, because InDesignServer will just crash anytime when memory is purged (which usually can be hours later).

Setting

-purgetrigger uptime=1s
is a good test to check your configuration. Though, it’s not recommended using purgetrigger in a productive environment.

Error Codes

priint:cometserver Exceptions

INVALID_SESSION (1200)
Description: the session ID you used for an API request is not valid or session has expired.
Solution: Discard session and login again.

ACCESS_DENIED (1201)
Description: your account does not privilege you to access the requested ressource
Solution: there may be many reasons for this exception. One common fault is that the user tries to register a document outside of known repositories or you try to gather information from the server which is only available for administrators (like the list and status of all InDesignServer instances). Most likely this can be fixed by adding missing configuration or using a more privileged account.

ENDPOINT_NOT_FOUND (1223)
Description: this will be thrown if the communication endpoint of an InDesignServer instance (either URL or path to ior file) can not be found or resolved
Solution: check the InDesignServer configuration in your admin database, check the InDesign Server states.

ILLEGAL_ENDPOINT_STATE (1224)
Description: an InDesign Server is in an illegal state
Solution: something went seriously wrong if you catch this exception. Most likely this was caused by a previous api / InDesignServer request, so dont bother trying to debug the piece of code where the exception occured. Check the InDesignServer status, plug-in logs and API logs.

NO_IDS_INSTANCE_AVAILABLE (1225)
Description: there is no InDesignServer instance available. Either none has been configured in your admin database or all instances are down / unreachable at the moment
Solution: check InDesignServer configuration and statuses

UNSUPPORTED_PROTOCOL (1226)
Description: the protocol provided for InDesignServer communication is not (yet) supported
Solution: use LOCAL for InDesignServer instances running on the priint application server machine (Corba will be used for communication in that case) or REMOTE for instances on remote machines (SOAP over HTTP will be used then).

DOCUMENT_NOT_OPENED (1227)
Description: the document is not opened. Either the InDesignServer istance responsible for requests regarding this document lost the reference to that document or your server is configured to disallow implicitOpen and you missed to call documentOpen before operating on the document
Solution: check the server configuration or your client application.

BINARYTRANSPORT_ERROR (1228)
Description: something went wrong while trying to pass binary data from InDesignServer to the client application
Solution: most likely this has something to do with unsufficient filesystem privileges. To avoid permission problems InDesignServer and priint:comet server should run under the same user account.

INVALID_PARAMETER_FORMAT (1229)
Description: a value of a certain type and range was expected but you provided something different
Solution: check the documentation for valid arguments. If the documentation appears to be wrong in that point we appreciate your feedback!

NOTYETIMPLEMENTED (1230)
Description: the API is available but the method is not yet implemented
Solution: this should not happen and if this is related to a documented API method we appreciate your feedback.

PATH_EXCEPTION (1232)
Description: a path required for an operation could not be setup. This could be a session temporary directory, the base directory for dataset default file storage etc
Solution: check configuration and filesystem privileges.

DOCUMENT_EXISTS (1233)
Description: you try to overwrite a document that already exists and your server policies require to delete that document first
Solution: check configuration or change the client application to reflect the server policies.

DOCUMENT_SAVE_ERROR (1234)
Description: a document could not be written to filesystem
Solution: most likely a filesystem privileges issue.

DOCUMENT_IN_USE (1235)
Description: a document cannot be deleted or overwritten because it is currently opened or checked out
Solution: check if the document is opened in other sessions (see status in the document table)

DOCUMENT_CLOSE_TIMEOUT (1236)
Description: a document could not be closed because the responsible InDesignServer instance was not available
Solution: check if the instance is running and maybe blocked by a long running job.

NOT_A_TMPFILE (1237)
Description: where a temporary document was expected the document provided was something else
Solution: you cannot apply this operation to that document

SERVER_STATE_EXCEPTION (1238)
Description: something went seriously wrong which could inidcate that the server is in an illegal state
Solution: refer to logfiles, most probably you will also have to check configuration (FS permissions etc.)

NO_DATABASE_CONNECTION (1239)
Description: an operation requires a database connection but there is none available
Solution: check the connection pool and jdbc resource configuration, check the persistence.props file.

COMET_SOAP_CLIENT_EXCEPTION (1240)
Description: a SOAP connection to a comet data provider is required but not available
Solution: at the moment there is nothing you can do.

DOCUMENT_NOT_REGISTERED (1241)
Description: a document ID could not be resolved. The document has neither been registered nor a publication system could provide a path for that document ID
Solution: if you think the document ID is correct check the document table in the admin database or your publication system if the document exists. Check if the session is connected to the correct dataset.

TARGET_INVOCATION_EXCEPTION (1243)
Description: this is a wrapper for exceptions thrown by third party modules and components or modules and components not in the standard distribution of comet server
Solution: refer to the documentation of the target system for further description and analysis.

REPOSITORY_NOT_FOUND (1244)
Description: a repository could not be found
Solution: does the requested repository exist?

DOCUMENT_LOCKED (1246)
Description: a document could not be used because it is currently locked
Solution: most probably the document is checked out by a client application.

PLEASE_CHECK_CONFIGURATION (4711)
Description: an operation required a resource that is not available in your configuration.
Solution: please check your configuration.

priint:comet Plug-ins Error Codes

Some of these exceptions are handled by priint:comet server so they will never be passed to the client application, though you might stumble accross them when reading server logs. The following list should help you to better track down error reasons.

COMET_CSCRIPT_ERROR (538624)
Description: a cscript returned an error.
Solution: see the plug-ins logfile, there you should find a hint where the error occured. If its caused by malformed syntax fix the script, if certain preconditions were not met when executing the script the error reason could as well be other misconfiguration or an error in the client application.

COMET_NO_LICENSE (538625)
Description: no license could be found for the plug-ins / Version you installed.
Solution: you should see a license order in the console output of the InDesignServer instance or in the plug-ins logfile. Send this order to license@priint.net, install the license file and restart InDesignServer.

NOT_YET_IMPLEMENTED (538626)
Description: the method requested is not yet implemented in the plug-in Version you are using.
Solution: if this is a documented API method and you have installed the latest priint:comet server and plug-in releases this should not happen.

INITIALIZATION_ERROR (538627)
Description: an error occured while initializing an InDesignServer instance
Solution: check the "CometEnvironment" folder. This should be a valid priint:comet XML folder. Could be a problem with any of the XML files, broken PDF and printer profiles, filesystem privileges.

DOCUMENT_NOT_FOUND (538628)
Description: a document could not be found
Solution: check, if the documentID / path resolution is correct. Is the path provided by priint:comet server correct? Is this path reachable from the machine / account InDesignServer is running on?

ILLEGAL_DOCUMENT_STATE (538629)
Description: the operation could not be applied to the document because it is in an unexpected state.
Solution: please refer to the plug-ins / API log what happened to that document before. Most probably you will also have to restert the InDesignServer instance the document is opened on.

DOCUMENT_OUTDATED (538630)
Description: a operation could not be applied to the document because the target (spread, page, cometgroup, element etc.) is not available anymore or does not allow this operation.
Solution: check if your client application reflects all changes made to a document

DOCUMENT_VANISHED (538631)
Description: a document expected to be opened on a certain instance is not opened anymore.
Solution: most probably this occured after several server restarts and the document statuses are out of sync. If possible you should consider to restart all services. Also check the entries in the comet_admin.adm_document table.

MALFORMED_XML (538632)
Description: a XML provided by the user is malformed.
Solution: this can be a setNotes or build operation. Check if the XML generated in your client application is correct.

INVALID_XML (538633)
Description: the XML is well formed but invalid.
Solution: see MALFORMED_XML.

PAGE_NOT_FOUND (538634)
Description: a target page could not be found.
Solution: is the page index provided correct (indexes are zero based)? Is the document structure information in your client application up to date?

INVALID_BOUNDS (538635)
Description: the bounds provided for a build operation (such as placeTemplate...) are incorrect.
Solution: check bounds.

SPREAD_NOT_FOUND (538636)
Description: a target spread could not be found.
Solution: is the spread index provided correct (indexes are zero based)? Is the document structure information in your client application up to date?

GROUP_NOT_FOUND (538637)
Description: a target group could not be found.
Solution: is the cometgroup ID provided correct? Is the document structure information in your client application up to date?

ELEMENT_NOT_FOUND (538638)
Description: a target element could not be found.
Solution: is the element ID provided correct? Is the document structure information in your client application up to date?

PLACEHOLDER_NOT_FOUND (538639)
Description: a target placeholder could not be found.
Solution: is the placeholder ID provided correct? Is the record ID provided correct? Is the document structure information in your client application up to date? Do the plug-ins use the correct database connection?

UNKNOWN_PDF_PROFILE (538640)
Description: a pdf profile name provided by the user could not be found in the InDesign prefs.
Solution: if it is a profile managed in the pdfprofiles.xml file (CometEnvironment): did InDesignServer initialize properly? You should see a list of loaded PDF profiles in the API log right after the setEnvironment call.

INVALID_TEMPLATE_ID (538641)
Description: the template ID provided is not valid.
Solution: check if the plug-in is connected to the correct database.

INVALID_SETUP_PARAMS (538642)
Description: the format or values provided for document setup are invalid.
Solution: check log files and client application.

CONNECTION_REQUIRED (538643)
Description: the operation requires a database connection but none is available.
Solution: this should not happen, check if you use the latest priint:comet server and plug-in releases and if your connection settings are correct.

UNRECOVERABLE_ERROR (538644)
Description: this error indicates serious problems with your InDesignServer installation. It will be thrown if no memory can be allocated or very basic InDesign operations (such as getting the spread list of a document) fail.
Solution: restart InDesign, if the problem still occurs check the installation.

BAD_POSITION (538645)
Description: coordinates provided are invalid.
Solution: refer to log file (api.log) for further hints.

INVALID_GRID_ID (538646)
Description: the grid ID provided is not valid.
Solution: check connection configuration, check client application.

GENERIC_BUILD_ERROR (538647)
Description: an error occured while building products.
Solution: refer to the plug-ins logfile for further hints. Could be broken configuration, missing images, filesystem issues etc.

ILLEGAL_OPTIONS (538648)
Description: the options provided for a command are invalid.
Solution: see the developer documentation, section “Options” for more information

UNKNOWN_SERVICE (538654)
Description: the service name provided for an ODBC connection is unknown.
Solution: check configuration, in particular the connections.xml file in your CometEnvironment folder. CheckDSN configuration.

AUTHORIZATION_ERROR (538655)
Description: the credentials provided for a database connection are invalid.
Solution: check configuration, in particular the connections.xml file in your CometEnvironment folder. CheckDSN configuration.

UNKNOWN_POOL (538656)
Description: a datapool could not be found.
Solution: check configuration, in particular the connections.xml file in your CometEnvironment folder.

CONNECTION_FAILED (538657)
Description: connecting to a database failed for any other reason but the errors described above.
Solution: check configuration, in particular the connections.xml file in your CometEnvironment folder. CheckDSN configuration.

SERVER_WAS_DOWN (538658)
Description: indicates, that an InDesignServer instance was shutdown since the time it was registered by priint:comet server.
Solution: this exception is handled by comet server, the InDesignServer instance will be reregistered.

UNKNOWN_EXPORT_FORMAT (538659)
Description: the export format provided is not valid.
Solution: at the time only "plain" and "tagged" and “raw” are supported.

UNKNOWN_MASTERPAGE (538660)
Description: the masterpage provided is invalid
Solution: provide a valid masterpage. Avoid special characters in masterpage names, in certain environments this can cause trouble.

ILLEGAL_ARGUMENT (538674)
Description: the format of a parameter does not match what was expected.
Solution: check if you use the latest releases of both priint:comet server and plug-ins.

InDesign ErrorCodes

Sometimes InDesign ErrorCodes are propagated to the client application. A full list of InDesign error codes can be found in the Adobe InDesign Products SDK documentation (docs/references/errorcodes.htm).
These are the most important:

FAILED (1)
Description: this appears to occur rather often
Solution: check the comet log file for a more detailed error description

kOpenDocFailedError (3588)
Description: document could not be opened - probably required plug-ins are missing or your InDesign version is too old
Solution: check file, InDesign and plug-ins (also other 3d party plug-ins) versions

kSaveDocFailedError (3590)
Description: saving a document failed. Most probably the document was converted from an older InDesign version or you don’t have write permissions on this file.
Solution: check file, InDesign and plug-ins (also other 3d party plug-ins) versions

kTooManyOpenFilesError (268)
Description: too many opened InDesign documents. Note: could also be opened templates.
Solution: change your client application to keep the numbers of opened files small. If this is caused by too many opened (Comet-) templates, please contact support@priint.com