Hints

  • File systems

    • The assets and assets-temp directories (on OS level) must not be on different physical volumes

    • Due to the fact that the temporary file system must be named 'temp' it's necessary to rename the default assets-temp filesystem from 'temp' to 'assets-temp' in each installation! The default is correct from 4.7.0.

    • Each server needs a temporary file system, which must be configured in Master Data/File Systems. It must be of type "Other". All servers must use this censhare filesystem. They need their own local directory. An own asset-filesystem and assets-temp filesystem for the new server is only necessary if favored and if the remote server must have local access to an asset filesystem.

File system configuration

  • censhareAdmin/Configuration/Services/Filesystem

    • On servers with their own filesystem: make sure that a separate directory for each asset-temp - type Temp and temp - type Other is configured and exists in the filesystem.

    • Create a new configuration for the new server with assets and temp filesystem.

    • Add at least a new temporary filesystem for each server configuration (usage=temp and url=file:work/temp/ ).


In "services/filesystem" configuration the temp filesystem must have the usage temp.

Render Client configuration in multiple server environment

  • censhareAdmin/Configuration/Services/Renderer

Our general recommendation is to have at least one renderer instance for each server. If this is the case the configuration must not be changed.

In certain cases, it may be possible to have only one renderer. But this has to be checked case by case depending on what tasks are running on which server, load, local servers (e.g. cluster) or remote servers, etc. For a test environment one renderer logged in to the master server should be OK. All other servers are rendering over the master server. If this is the case the configuration must be changed (indirect).

Important Information (indirect configuration) - approval: An indirect configuration over the master server in a productive environment should only be configured

  • after approval of the censhare development team 

    • if the censhare application servers are local node/cluster servers

      • advantages in contrast to remote servers at different locations

        • here are no indirect database / RMI connections configured

        • possible network latency and bandwidth problems are not that critical as within remote server environments

    • if there is more than 1 renderer on the master server connected, for example, a multi-instance InDesign server

    • if the rendering jobs (layout/content editor, content updates, ...) are not that much

Important information (indirect configuration) - configuration: * Create a new activated configuration for the master server (Invocations are set to 0)

  • Create a new deactivated configuration for all servers and set the Invocations to 2

    • Due to setting the Invocations to 2, the real limit will be omitted (it would be automatically set by the count of the connected renderer instances).

    • Due to that fact, theoretically, if you have 1 master server and 2 node servers (x2 indirect instances) means that 5 renderer instances should be connected to the master server.

  • After that a restart of all censhare servers and a re-login of the renderer client on the master server is necessary



Note for update/refresh configuration:

If you change something in any service, you have to restart both censhare servers to confirm this. Special cases are the image service and the renderer service. For further information about the refresh configuration process read this.


FAQ File Systems

Question


Server 1  -------------------  Server 2
Assets1                        Assets2
Temp1                          Temp2

CODE

If I have two servers each with their own file system, does server 1 need assets2 and temp2 mounted as NFS. And server 2 assets 1 and temp1 as nfs.

Answer

You don't have to mount Assets2/Temp2 at Server1 and backward. The server gets the file if requested, from the other server.


Troubleshooting File Systems

1. Symptom


2012.03.01-15:08:53.368 WARNING: T037: ImageService: server.open: Cannot determine path to temp filesystem 'temp[]' - fallback to system temp
java.lang.NullPointerException
        at com.censhare.manager.imagemanager.ImageServiceImpl.setTmpPath(ImageServiceImpl.java:201)
        at com.censhare.manager.imagemanager.ImageServiceImpl.innerStart(ImageServiceImpl.java:61)
        at com.censhare.server.support.service.AbstractStaticService.start(AbstractStaticService.java:108)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.censhare.support.service.ServiceCall$Sync.innerExecute(ServiceCall.java:387)
        at com.censhare.support.service.ServiceCall$Sync.innerRun(ServiceCall.java:514)
        at com.censhare.support.service.ServiceCall.run(ServiceCall.java:207)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
        at com.censhare.support.util.ManagedInterruptThread.run(ManagedInterruptThread.java:81)

CODE

1. Cause

If the Default Workfilesystem in Configuration | General is named 'temp', but not configured in Configuration | Services | Filesystem


2. Symptom



Caused by: com.censhare.server.rmi.RMIServerException[am.exCreatingStorageUrl]: Es kann keine Storage URL erstellt werden: ( assetID=15162, key=pdf, elementIndex=1, mimetype=application/pdf, filesystem=null, relPath=null, localFile=null)
-----cause-----
java.io.IOException: Can' find URL creator 'null'

CODE

2. Cause

If the temporary filesystem within Configuration | Services | Filesystem has not Usage 'Temp', but for example 'Other'


3. Symptom


2012.03.01-15:57:56.628 <pe> [URLStreamingServlet] WARNING: Error in servlet request: 
javax.servlet.ServletException: Error streaming file for: /temp
        at com.censhare.webclient.webserver.servlet.URLStreamingServlet.serveRequest(URLStreamingServlet.java:119)
        at com.censhare.webclient.webserver.servlet.WebAppSessionServlet.doServe(WebAppSessionServlet.java:49)
        at com.censhare.webclient.webserver.servlet.WebAppSessionServlet.doGet(WebAppSessionServlet.java:32)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216)
        at com.censhare.webclient.webserver.servlet.CacheFilter.doFilter(CacheFilter.java:45)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
        at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:77)
        at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:133)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:421)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:493)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
        at org.eclipse.jetty.server.Server.handle(Server.java:351)
        at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594)
        at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1042)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211)
        at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalArgumentException: Only the 'temp' filesystem is possible here.

CODE

3. Cause

The default work filesystem in server.xml is not named 'temp' but for example 'tmp'.