FAQs (EN)

Site: CIB eLearning
Course: CIB documentServer
Book: FAQs (EN)
Printed by: Guest user
Date: Monday, 6 May 2024, 5:16 PM

Description



Table of contents

1. How can I limit the runtime of jobs so that users cannot block the server?

Use the configuration setting de.cib.docserv.socket.SocketTimeout. See also section "Configuration".

2. How can I limit the maximum available memory of the native processes so that the server operation is not endangered.

Use the configuration setting de.cib.docserv.socket.MaxMemory. See also section "Configuration".


3. How do I use the CIB documentServer under EJB?

There are various possible solutions, some of which are already available and each of which has advantages and disadvantages:

  • Calling the CIB documentServer via http: Available, simple, robust, scalable, deployment within an EAR easily possible, can be easily outsourced to other machines.
  • Use of new techniques for the socket servers: To develop, not all points clarified and tested, robust.
  • Introduction Connectionpooling: To develop, not trivial. Simple deployment, robust, comes with the web application.


4. Which log files does CIB documentServer support and how do I activate them?

There are several types of log files in the three layers of the CIB documentServer:

  • Client application: Using the methods setDebugRequestFilename and setDebugResponseFilename of the class UrlDocumentServerImpl, the sent XML and the received document or XML can be written to a file from the client application.
  • Application server: The CIB documentServer Java framework writes to the normal standard output and standard error log of your application server. It logs errors, configuration settings, start/stop of the CIB documentserver web application, start/stop of socket servers, and data volumes transferred to the socket servers. Can be partially switched off via the settings of your application server.
  • - Native modules: You can activate the traces of the individual modules.


5. Configuration settings in the web.xml are not effective.

Two directory levels above the web.xml there is a file CibDocumentServer.properties, in which different configuration settings are defined. The CibDocumentServer.properties are automatically read from there and overwrite the settings in the web.xml. Delete the CibDocumentServer.properties file or make the configuration settings there. If you store the properties in a different location, they must be in the application server's classpath. If you want to configure the CibDocumentServer.properties outside the directory structure of your application server, use the setting de.cib.docserv.ForwardConfigurationFilename to refer to your desired .properties file from the application server. For detailed information, see the section Configuration.


6. How to check that the CIB documentServer or the socket servers are still running?

By regularly sending a simple "alive job", which fetches a text file from the server, for example, whose contents can be checked. This request must be sent directly to the CibDocumentServer web application, not to the socket servers.

Example step:

<step name="load"
command="load">
        <properties>
               <property name="InputFilename">Alive.txt</property>
               <property name="WorkSpace">..\templates\</property>
        </properties>
</step>

This procedure does not recognize the following situation: The socket servers terminated unexpectedly, but are restarted by the alive job as planned and successfully.


7. When sending a job to the CIB documentServer I get an exception java.net.SocketTimeoutException: Async operation timed out in the ServerManager.

The CIB documentServer cannot read the request XML from the http request. This results in a timeout.

Possible causes

Between the caller and the CIB documentServer there is a router which does not allow data for GET requests. Therefore send the request with a POST request. For example use the method UrlDocumentServerImpl.setMethod("POST"); to change the caller type.


8. Is the property "MaxServerTries" dependent on the property "MaxProcessCount"? What do the different timeouts mean?

MaxServerTries is not dependent on MaxProcessCount. MaxServerTries=10 means that an incoming thread will attempt to reserve one of the MaxProcessCount=20 external processes ten times within the time period ServerTimeout=10000 (10 seconds). So this controls how often a thread wakes up. But if after the 10 seconds still no process could be reserved (no matter how many processes are present), the request will not be executed and an exception will be thrown.

The SocketTimeout specifies how long a thread that has already been able to reserve one of the external processes waits until the response data (the document) is delivered by this process. Assuming that the external process would "hang", the thread is terminated after this time and an exception is thrown.


9. How can I provide my traces to support?

In the file CibDocumentServer.properties the property "de.cib.docserv.LogOptions=" has to be set to the corresponding value for Socketserver and CIB docgen.

E (mailtrace.log),

F (prtrace.log),
I (imgtrace.log),
J (jobtrace.log),
M (mrgtrace.log),
O (ocr.log),
P (pdftrace.log),
S (socketserver.log),
Z (invtrace.log).

The path to the log files is set via the property "de.cib.docserv.LogPath=". If this property is not set, the trace files are stored under the path to the working directory of the CIB documentServer (specified via the property "de.cib.docserv.ServerWorkingDirectory").

Example (setting jobtrace.log and pdftrace.log): en.cib.docserv.LogOptions=JP

If CIB job is used without CIB documentServer, the environment variables for the CIB job module must be set (see the CIB job technical guide).

As of version 1.4.19d, logging can also be activated and deactivated via the CIB documentServer web interface.


10. Where do I find the standard configurations for the CIB docgen modules and how can these be changed/overwritten?

The jobconfig.xml file defines a standard configuration for all CIB docgen modules which is called via CIB job. The configuration for CIB job itself is also defined here. The "de.cib.docserv.JobConfigfilename=" property must be set in the CibDocumentServer.properties file.

Example: „de.cib.docserv.JobConfigfilename=C:/cib/conf/jobconfig.xml“

These settings in the jobcofig.xml are used by default by all jobs, but can be overwritten by the job files.


11. Is it possible to prioritize jobs with the CIB documentServer or are they processed as they appear in the XML?

No, the jobs are processed in the order they appear in the job XML.


12. I have several job files. Can I assign a priority to them to influence the order of processing?

A prioritization for multiple job files is not implemented. The request files are processed in the order in which they arrive.


13. Why is the package for the CIB documentServer called "de.cib" and not "com.cib" as for the JComod library?

de.cib is correct according to the standards com.cib is outdated and is only maintained for compatibility reasons.


14. Distributed operation of web application and SocketServer: Which settings must be made for this distributed operation?

To run the socket server processes on a different machine than the Java Framework, the entry "de.cib.docserv.socket.Hostname=" must be set accordingly in the CibDocumentServer.properties.

This procedure is currently not recommended.


15. An error message "Could not start shell. Commandline: /bin/sh ../bin/prepare.sh." prevents the CIB documentServer Web application from starting (context start failed).

The initial shell script could not be executed for one of the following reasons:

  • Script or shell privileges prevent the application server VM from starting.
  • Path or name of the shell (can be set in setting de.cib.docserv.Shell) is configured incorrectly. It must be an SH shell.
  • Path or content of the shell parameters is incorrect (can be set in de.cib.docserv.socket.¬Prepare¬Arguments or de.cib.docserv.socket.ShutdownArguments).
  • Path to the working directory (can be set in the setting de.cib.docserv.ServerWorkingDirectory) is incorrectly configured.
  • Paths contain backslashes. Paths should be specified with / on all systems until further notice.
  •  There is not enough memory allocated to your application server


16. Fehlermeldung „de.cib.docserv.ServerManagerException: Could not execute request.; nested exception is: java.net.ConnectException: Connection refused: connect;“

Socket servers do not respond or start because of one of the following causes:

  • A non-existent log path (de.cib.docserv.LogPath) is configured for the socket servers.
  • Rights of the scripts or binaries prevent a start by the application server VM.
  • Path to the executable (can be set in setting de.cib.docserv.socket.SocketServerExecutable) is configured incorrectly.
  • Path to working directory (can be set in the setting en.cib.docserv.ServerWorkingDirectory) is configured incorrectly.
  • Paths contain backslashes. Paths should be specified with / on all systems until further notice.
  • On Linux a faulty JDK is used.
  • A required shared library is missing on your system.
  • There is not enough memory allocated to your application server.


17. From time to time I get the error message "Connection timed out" or "Read timed out" or socket server processes terminate. How can I prevent this?

  • Due to the server load, waiting for the server response takes too long and the network connection is terminated.
  • The configuration parameter de.cib.docserv.socket.SocketServerProcess.SocketTimeout has too small a value. You can use it to set the time to wait for the response from the executing socket servers.
  • The socket servers terminate regularly because the configuration parameter de.cib.docserv.socket.SocketTimeout is set to a value greater than 0. With the configuration parameters de.cib.docserv.socket.SocketServerProcess.ConnectWait and de.cib.docserv.socket.SocketServerProcess.ConnectMaxTries you can try to connect to the socket servers longer/more often.
  • The socket servers terminate unnecessarily and must be restarted, because the /Idle call parameter has a too small value. For example, increase the value to 1h by setting the configuration parameter de.cib.docserv.socket.IdleShutdownTime to 3600. The entry "nnnnn seconds elapsed without an incoming request - shutting down" can be found in socketserver.log.
  • The socket servers have shut down due to an unexpected error. Please activate all log files, reproduce the behaviour and transfer them together with all other required files (templates, jobconfig.xml, application server log) to CIB support.


18. I get an exception of the type: Error during error handling: en.cib.xml.dom.XmlException: Transforming error (Factory-Configuration error).

de.cib.docserv.ServerManager.createExceptionXml(ServerManager.java:550)
de.cib.docserv.http.ServletBase.createExceptionXml(ServletBase.java:119)
de.cib.docserv.http.GenerateServlet.createExceptionXml(GenerateServlet.java:289)
de.cib.docserv.http.ServletBase.processException(ServletBase.java:98)
de.cib.docserv.http.ServletBase.doGet(ServletBase.java:155)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Caused by: java.lang.ClassNotFoundException: org/apache/xalan/processor/TransformerFactoryImpl
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at javax.xml.transform.FactoryFinder.newInstance(Unknown Source)
        at javax.xml.transform.FactoryFinder.find(Unknown Source)
        at javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
        at de.cib.xml.dom.Dom.getStream(Dom.java:120)
        ... 32 more


Depending on the Tomcat version you are using, you will need to select the appropriate JDK. Released combinations are:

  • Tomcat v5 in combination with JRE 1.4
  • Tomcat v5.5 in combination with JRE 1.5 or 1.6
  • Tomcat v6 in combination with JRE 1.5 or 1.6 or 1.7
  • Tomcat v7 in combination with JRE 1.6 or 1.7
  • Tomcat v8 in combination with JRE 1.7 or 1.8
  • Tomcat v9 in combination with JRE 1.8


19. How do I store the license keys for the CIB docgen modules?

The license keys for the CIB docgen modules are stored in the CIB job configuration file (jobconfig.xml). Add the properties "LicenseCompany" and "LicenseKey" to the jobconfig.xml for all command entries used (including for CIB job). Further information and an example configuration file can be found in the technical guide for CIB job.

For additional information on the CIB job configuration file, see the section Configuration.

Please make sure that you really have entered the license information for the "job" command, otherwise the license will not work for the other modules either.


20. I have entered my license key for the CIB format/pdf and CIB merge modules I have licensed in my jobconfig.xml. This is also loaded correctly. Nevertheless the test license imprint appears on the generated PDF documents.

You have entered the license information for the commands you use, but not for CIB job itself. Please make sure that you have really entered the licence details for the "job" command as well, otherwise the licence will not be valid for the other modules either.

Or the spelling of the properties is not correct. Pay attention to upper and lower case. The properties are "LicenseCompany" and "LicenseKey“.


21. How do I define the default settings for CIB modules on the server?

In addition to the license information, all other settings specified in the job files can also be configured on the server as basic settings.

This means, for example, that the path to the text module directory on the server is also set (jobconfig.xml) and no longer in the individual job file. Further information and an example configuration file can be found in the CIB job technical guide.

For additional information on the CIB job configuration file, see the section Configuration.

 


22. Where do I store forms and text modules?

In the job file, you use two settings to refer to the directory in which the prepared forms and text modules are located: With the specification of the root document (CIB merge: "-i", CIB pdf toolbox/merge: "InputFilename") and with CIB merge also with the text module directory ("-a") More information and an example configuration file can be found in the technical guide for CIB job.

If you have several servers, it is recommended to store the files on a shared NFS.


23. How can I include forms and text modules in the job?

Your forms and text modules prepared for CIB merge and CIB pdf toolbox/merge can in most cases also be embedded in the job. To do this, use the "mem" command or, in the special case of CIB merge, the --directory-set=Name setting. You can find examples in the jobs subdirectory.


24. How can I read the trace file created on the server on the client?

The trace file created on the server is read out on the client using a simple access:

        // Trace read out
        String t_Trace = t_StepResult.getTrace();


25. Is batch processing of jobs possible?

In principle, several partial orders (jobs) can be specified in one job file and these are processed independently of each other.

However, the memory requirement for this procedure can be very high, since the job result contains the result documents of all jobs.

We recommend to create a large number of job files with one or few jobs each and to transfer them to the CIB documentServer.

Batch processing without application server or programming is possible on all systems with the usage variant command line.


26. How can I fill a PDF form with data?

Detailed instructions and a sample job can be found in the technical guide for CIB job.


27. How can I save intermediate results on the server?

With the special command "save" result documents of any steps can be saved on the server. You can find a sample job in the technical guide for CIB job.


28. Can I embed user data for CIB merge in the job?

Yes, the job file then simply contains its user data as another element of the job. A detailed description and an example job can be found in the technical guide for CIB job.


29. How can I transfer trace files to the client?

With the element <trace>filename</trace> in the job file the log file of a command can be transferred to the client. For example, the error file "merge.log" created with the property "-L" of the command "merge" (CIB merge) can be inserted into the job result file.

From version 1.4.19 of the CIB documentServer, setting "-L" is sufficient. A sample job file and the corresponding sample job results file can be found in the technical guide for CIB job.


30. How to save user input from PDF forms?

The data entered by the end user in a PDF form is transmitted to the CIB formserver by clicking on a "Submit" button contained in the form. For this purpose, the URl deposited with the button must identify the CIB formserver: http://servername:port/CibDocumentServer/Forms The CIB pdf formserver generates a job (XML) to the CIB documentServer which returns a PDF in which the entered data are now stored in the input fields.


31. Can the CIB documentServer package be delivered by CIB as .EAR file?

That's not possible. You have to create the EAR yourself, because the EAR file contains, among other things, the configuration file CibDocumentServer.properties, which each customer customizes individually. For example, how to create an EAR for installation in JBoss is explained in more detail in the section Installation - JBoss


32. What does the error code -72 in the socket server logfile mean?

Under unixoid operating systems it can happen that error codes are output shifted by a multiple of 256.

Example: The return value 440 is thus output as 184 or even as -72.

The following list gives an overview of possible error returns by the socket server. The error numbers have the following meaning:

Return value

Description of the return values

401

Xerces reported error in input xml or during output xml generation

402

Function not implemented.

403

Internal error

404

At least one step failed, because the executed command failed.

405

The specified input file is empty.

406

The specified contents of a job or step are invalid.

407

Properties incompatible, for example InMemoryProcessing=1 and InputFilename=xxx.rtf im FormatStep

408

the job or step is still processed (used for intermediate results)

409

No input filename specified

410

Java exception occurred

411

A step was not executed, because one of his predecessors failed

412

A step reached its configured timeout and was not executed completely.

413

During execution of a step, the job timeout was reached. The step was not executed completely.

414

During execution of a job, a step timeout or the job timeout was reched, and the processing was stopped.

433

The SocketServer hangs due to a general resource problem (e.g. maximum memory of the operating system exceeded).

434

No response from the socket server after the time specified in the SocketTimeout property has passed. This return code is no longer used as of version 1.15.8. The return code 439 is delivered.

435

Java: Exitcode of natives could not be read (NOEXITCODE)

436

Java: DocumentServer: no asynchronous job result available after several tries (ASYNCRESULTMISSING)

437

Java: General exception (GENERALEXCEPTION)

441

SocketServer: Too few or no arguments

442

SocketServer: Not allowed port number

443

SocketServer: CIB Job Library not available

444

SocketServer: Invalid Content Type

445

SocketServer: General error with description

446

SocketServer: General error

447

SocketServer: The url in the http header is invalid. Allowed are /job and /terminates

448

SocketServer: Idle Timeout reached

449

reserved for future use

450

ServerManager has received termination signal

451

ServerManager: Too few or no arguments

452

ServerManager: Wrong argument

453

ServerManager: Non-permitted port number

454

SocketServer: Maximum memory reached. See de.cib.docserv.socket.MaxMemory.

455

SocketServer: General error with description

456

SocketServer: General error

457

SocketServer should be (re)configured

458

SocketServer: Maximum memory reached. Error during allocation ("malloc()"). See en.cib.docserv.socket.MaxMemory.

459

SocketServer: Maximum working memory reached. Error during allocation ("new"). See de.cib.docserv.socket.MaxMemory.

 

The error code -72 always occurs when the number of jobs specified with de.cib.docserv.MaxJobCountPerProcess has been processed and thus the socket server processes are restarted. The log files of CIB job and CIB docgen are restarted and can be limited in size in this way.


33. Where can I find the CIB formserver?

The CIB formserver is included in the CIB documentServer from version 1.5.x. A sample form is provided which you can call after installing the CIB documentServer web application to see the function of the CIB formserver.

See section Startup test CIB formserver in the chapter Quick Start.


34. How should I design forms for the CIB formserver?

Please create standard PDF forms with all available means, for example with the CIB pdf brewer Pro&Form. Finally, add a submit button containing the link to the CIB formserver and save it in the configured forms directory.

You can also use this PDF form directly to merge the data. This allows the user to make multiple changes to the data and send it again. To do this, copy the form to the configured templates directory.

To avoid changing the data afterwards, save the PDF form without the send button in the templates directory.

If you want to send the form by mail instead of downloading it from the server, the Send button must be provided with the absolute URL to the CIB formserver. The document then also requires an additional hidden input field named "formname", which contains the name of the form file in the preconfigured templates directory.


35. How does the data entered by the user in a CIB formserver form get from the PDF into my application?

To do this, send the completed PDF with a job to the CIB documentServer and use a pdfjoin step with the OutputFormat=FormatXfdf or FormatCsv. The sample job jobs\basic\Job-PdfMerge-Formserver-ExtractXfdf.xml from the client package shows this.


36. Is there a way to support the user in filling out the form correctly?

As described in the formserver whitepaper, the intention is to check the data on the server side and return the partially completed form to the user, supplemented by individual error messages and correction notes.


37. What must be considered when changing to a current version of the CIB documentServer?

Please note the information in the version history "CIB documentServer History.pdf" in the delivery package of the new version. Detailed information can be found in chapter 2.4.


38. The CIB documentServer does not start. The following error is output in the log:

Socket server processes terminate. ERROR: Please make
sure, that the setting de.cib.docserv.ServerProcessFactoryClass is set to
de.cib.docserv.socket.UrlSocketServerProcessFactory.
StandardContext[/CibDocumentServer]Exception sending context initialized event
to listener instance of class de.cib.docserv.http.ContextListener
de.cib.docserv.DocumentServerError: CIB documentserver: Configuration error:
de.cib.docserv.socket.SocketServerProcessFactory isnot supported anymore
        at de.cib.docserv.DocumentServerFassade.prestartServerManager(DocumentServerFassade.java:310)
        at de.cib.docserv.http.ContextWrapper.prestartServerManager(ContextWrapper.java:53)
        at de.cib.docserv.http.ContextListener.contextInitialized(ContextListener.java:67)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4343)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
        at org.apache.catalina.core.StandardService.start(StandardService.java:480)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)

The configuration setting: 

de.cib.docserv.ServerProcessFactoryClass=de.cib.docserv.socket.SocketServerProcessFactory 

must be changed for CIB documentServer from version 1.5 to: 

de.cib.docserv.ServerProcessFactoryClass=de.cib.docserv.socket.UrlSocketServerProcessFactory.

39. How can I run multiple instances of the CIB documentServer in one servlet container?

By having the socket servers occupy separate port ranges for each instance. See the document Technical GuideCibDocumentServer.pdf in the section Installation: "Parallel Installations".


40. The following error messages are displayed in the socket server log:


Socket: Throwing exception ...
Socket: Exception error number: 125
Socket: Exception message: bind failed, error 125: Address already in use.

This error message indicates that the socket server was attempted to start on a port that is already in use by another program or process. The following command can be used under Linux, for example, to find out which ports are currently in use:

netstat -nlp | grep "^tcp"

On Sun Solaris 10, you have the following possibility to get information about the occupied ports:

lsof | grep [PORTNUMMER]

Under Windows the "netstat" command also helps to get more information about the used ports:

netstat

Note

The error number (see example above) depends on the operating system (here Sun Solaris 10).


41. The CIB documentServer no longer processes jobs and a SocketTimeout occurs (Error 439 - "de.cib.docserv.ServerManagerException: Response reading timed out").

If in a CIB format step of a job the output format "FormatPrinter" is used and a printer is specified which opens a dialog mask, the socket servers are blocked. If all socket servers are busy in this way, the CIB d0cumentserver cannot process any further jobs.

For this reason it is important to ensure that the printer specified via the CIB format property "PrinterName" does not open a dialog box. If the property "PrinterName" is not set and the output format "FormatPrinter" is selected, this fact must also be taken into account for the default printer.


Your CIB merge document project contains an infinite loop.

Reduce your building blocks to identify the problematic loop. Use the CIB merge parameters --maxSingleSize or/and --maxOutputSize to limit the file size and get a defined error.

You can also use the CIB merge parameter --max-executiontime, or the CIB documentServer configuration setting de.cib.docserv.job.MaxJobExecutionTime. For this you need CIB socketserver 1.6.1, CIB job 1.6.2 and CIB merge 3.10.3 or newer.


42. Several jobs are sent from the web interface of the CIB documentServer to the CIB documentServer within a short sequence. However, not all the sent jobs are noted in the log entries of the application server.

Several AnQuestionn in a short time from the web browser may be combined by it. For this reason, not all requests reach the application server and cannot be processed there.


43. What is the CIB socketserver, what kind of processes starts CIB documentServer?

Every started CIB socketserver opens a TCP socket on a configurable port and listens there as a server. The JEE application CIB documentServer communicates with the socket servers via this port. The processes process several jobs one after the other. They are only restarted on request, optionally cyclically after n requests, or if they have terminated unexpectedly.

The CIB documentServer web application contains a call and management component that maintains and communicates with a configurable number of socket server processes. Automatic restart is implemented as well as queuing, locking, logging and internal load balancing.

The used port range of all started processes is configurable in CIB documentServer. The default configuration uses for example 50000-50009.

The machine should be configured so that only the ports used by GlassFish are visible to the outside. The communication with the ports 500xx remains inside the machine. You can ensure this with a firewall. The native processes run as child processes of the GlassFish VM, i.e. as technical users themselves. This allows you to control access to the file system.


44. How scalable is the CIB documentServer? Do you have an architecture proposal for this?

The CIB documentServer is highly scalable. The configurable number of simultaneously started CIB socketserver processes (see setting de.cib.docserv.MaxProcessCount in the Configuration section) allows the available machine power to be used optimally.

If more power is required than one machine can provide, the CIB documentServer can easily be further scaled using the common clustering methods.

One suggestion is to use the CIB documentServer on two nodes, each with an Apache Tomcat servlet container. These are preceded by an Apache Httpserver as load balancer. The load balancer can run on both nodes, but must then be available on both nodes for a failover. This configuration is used by many of our customers. Due to the respective individual operating requirements, CIB can only provide support in an advisory capacity.


45. Is my available hardware sufficient for 4000 documents per day?

This answer can only be given when further information is provided, for example, after the physical and virtual hardware and operating system. Furthermore we need statements about the complexity and size of the generated documents (MBytes, number of pages), in relation to their frequency. The specification documents/day can be too imprecise if there are peak times when not 4000/8 = 500 documents per hour have to be processed, but more. Please provide us with information on the peak load in "Documents per hour", with the corresponding size specifications of the documents.


46. Is my available hardware (160GB RAM, 2 Xeon 5645 6 Core) sufficient? I want to process 1000 documents per hour at peak times, with an average of 10 pages. This is standard processing (CIB merge, CIB format/pdf).

With this hardware, about 20000 pages per hour can be processed for this type of job.


47. Is the heap size configurable? If so, how?

The heapsize of the native processes cannot be limited at present.

Setting the heap size for the CIB documentServer Web application is done when calling the GlassFish according to the Java standard.


48. How much heap size is needed for our project?

A Java VM, in which only the application server or servlet container with exactly one CIB documentServer runs, should be able to manage with 512 MB.

The required memory in the native processes depends on your documents and data volumes (for serial documents).


49. Can the native processes be distributed to different servers as a kind of cluster?

The processes must currently run on the same server as the CIB documentServer web application, as they are started and restarted by it.


50. Is it possible to outsource the processes to virtual machines and call them via a remote execution call from another multi-project app server?

No. A component is required to restart the processes if necessary. This component is exactly the CIB documentServer. We do not recommend this procedure either, because not only the memory but also the IO has an effect on the other projects.


51. What administrative steps are necessary in an emergency/error situation and how much technical know-how is required?

For error situations that have already occurred, there is an FAQ in the CIB documentServer guide. For further questions, please contact the CIB Support.

The CIB documentServer usually runs maintenance-free. The technical requirements for the operators are low. When restarting the GlassFish, the processes are shut down and then restarted. The operating configuration consists of a properties file. There is another configuration file (XML), which is constant from the operation point of view. Logging for troubleshooting can be activated and deactivated in two steps from the WebGui of the CIB documentServer. The evaluation of the log files is done by the CIB support.


52. Which frameworks are used?

The CIB documentServer only uses apache-commons and log4j, but for example no web application framework like GWT, Vaadin, ZK, JSF or similar.


53. Will it be possible to install on GlassFish 3.1 in the future?

Yes, CIB documentServer 1.5 is released for GlassFish 3.1.1


54. Which module versions and library versions are included in my CIB documentServer version?

You can find this information in the version history. This is contained under docs/manual (server package) or docs/api (client package).


55. What can be the problem if I get the error message "Request could not be excecuted. (Input/Output error)" from the UrlDocumentServerImpl used in my application?

In one case the routing was configured incorrectly. Between "Dispatcher" and CIB documentServer the corresponding settings were missing, so the calling application could not send any requests (Exception in de.cib.docserv.UrlDocumentServerImpl.execute).


56. In the log of my application server I find the error message de.cib.docserv.DocumentServerException: Error while receiving response code from socketserver. We may even have not sent the request yet.

The corresponding job could not be processed by the CIB docgen modules without errors. Instead, the CIB socketserver process that was processing it unexpectedly terminated.

The cause must be determined by identifying the request or document that caused the problem. If the problem is then reproducible, the cause can be determined by the CIB support. In most cases the trace files are then helpful for problem analysis. Please activate them in the CIB documentServer Web UI. See also section Logging and Troubleshooting.


57. I want to improve performance on Solaris Sparc. Can I change anything in the CIB documentServer?

Under certain circumstances, the default setting of Application Server Logging on this operating system can lead to runtime losses. Please try to reduce the log level for the CIB documentServer in log4j.xml to ERROR or WARN level.


58. When installing locally with tomcat, localhost:8080 will give an error message that does not come from tomcat. What is the reason for this?

Probably another server is installed and active.

This could be for example a CIB workbench with CIB webdialog.

Shut down the other server (in case of the CIB workbench Microsoft Word) and the tomcat and restart the tomcat.


59. Can I use the CIB documentServer together with other applications on one server?

The native modules contained in the CIB documentServer generate processor and memory load on concrete calls that cannot be limited in a configurable way and can limit the performance of applications used in parallel. This applies in particular to the calling customer application. When using the CIB documentServer on "multi-project servers" or on a shared computer with the customer application, it is advisable to limit the computer load generated by the CIB documentServer by defining a low number of parallel socket servers (MaxProcessCount).


60. The following error messages are output in the log:

Major:
Servlet.service() for servlet CibDocumentServerServlet threw exception
de.cib.docserv.DocumentServerError: Socket server manager start failed: Could not start native socket server process. Commandline: 'LD_LIBRARY_PATH=../bin /opt/server/app/tomcat-webapps/CibDocumentServer/bin/socketserver1 Logpath=/var/log/ Config=/opt/server/app/config/jobconfig.xml Idle=3600 Port=50000 Logsuffix=50000'. Working directory: /opt/server/app/tomcat-webapps/CibDocumentServer/./work
at de.cib.docserv.ServerManager.start(Unknown Source)

Caused by: java.io.IOException: Cannot run program "/opt/server/app/tomcat-webapps/CibDocumentServer/bin/socketserver1" (in directory "/opt/server/app/tomcat-webapps/CibDocumentServer/./work"): java.io.IOException: error=2, No such file or directory
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
        at java.lang.Runtime.exec(Runtime.java:593)
        at de.cib.util.Process.execute(Unknown Source)
        ... 28 more
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
        at java.lang.ProcessImpl.start(ProcessImpl.java:65)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
        ... 30 more

This error message indicates that the socket server process cannot be started. To check whether the system has been configured correctly, the command line call recorded in the log can be executed manually at command line level LD_LIBRARY_PATH=../bin /opt/server/app/tomcat-webapps/CibDocumentServer/bin/socketserver1“.

If this does not return any errors, the process "socketserver1" can be checked with a second console. If the call returns an error, libraries are probably missing in the operating system.

Note

An error number is not output because the native modules of the CIB documentServer were not yet initialized at the time of the error.


61. The CIB documentServer does not process jobs.

Analyses have shown that system libraries of the host system are responsible for this error. Under most platforms (Windows, Linux or Sparc Solaris) the necessary libraries are already available when the system is installed.

 

Special case Red Hat Linux 6

The analysis showed that at least the following libraries were missing compared to an older version (Red Hat Linux 5)

  • glibc.i686
  • zlib.i686
  • libgcc.i686
  • compat-libstdc++.i686
  • cups-libs.i686

62. When called from a C# client program, no data is transferred to the application server. The log files of the application server also do not indicate that data has been received.

Effect: In this case a request sent by the client cannot be processed by the CIB documentServer.

Possible cause

This communication problem may occur between the client and the server because the "Expect100Continue" property is enabled in the C# client program. In this case the Expect100Continue property of the client-server connection must be disabled (the default value is true). Example:

webRequest.ServicePoint.Expect100Continue = false;


63. When sending a job to the CIB documentServer, the processing hangs after several seconds/minutes and no response is received. Why? How can I avoid it?

Such situations can have several causes:

  • The native modules require a high memory consumption for the processing of the job.
  • Other applications cause the socket server to hang (e.g. when LibreOffice processes a job).

Starting with CIB documentServer 1.12.0 such situations can be avoided by setting the SocketTimeout property. After the given time is exceeded, a corresponding error message is returned and the affected SocketServer is automatically restarted. When using CIB documentServer 1.12.0 with this feature, the use of Java 8 is recommended.

64. When sending a job to the CIB documentServer I get an exception DocumentServerException (Error 433 - "Unexpected resource problem. Connection with SocketServer will be restarted")

Job processing was unexpectedly terminated due to a resource problem (e.g. maximum memory of the operating system exceeded). Therefore the connection to the socket is restarted after the socket timeout is exceeded.


65. When sending a request to the CIB documentServer I get an exception ServerManagerException (Error 434 - "Forcing request timed out. No response from Socketserver. Connection will be restarted. ")

The CIB documentServer does not receive a response from the SocketServer after the property SocketTimeout is exceeded. To avoid possible problems with the socket server the connection is restarted.


66. The jobs cannot be processed and the CIB socketserver returns the following error message in the trace:

[CIB socketserver 62001]: 22.10.2019 14:07:07 Loading CIB job shared library (Init) failed: error = 126 
[CIB socketserver 62001]: 22.10.2019 14:07:07 Error: CIB job shared library not available.

Due to the version jump of the native library CIB dataaccess Xml (1.7.0), the error message can only occur from version 1.15.7 on.

The reason is that the current Visual Studio C++ Runtime libraries are not installed on your system.

To solve the problem, please install the following up-to-date libraries:

Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads