persistent class %ZEN.Report.RenderServer
extends %Persistent
Zen Report Render Server definition and utility methods/queries.
parameter DOMAIN = "%Utility";
property ConfigFile
as %String(MAXLEN=260);
Fully qualified name of the renderer configuration file.
property ConnectionTimeout
as %Integer(MAXVAL=60,MINVAL=2) [ InitialExpression = 5 ];
Number of seconds to wait for a connection to be established with the Render Server. The default is 5 s.
property HowOftenToClean
as %Integer(MAXVAL=600,MINVAL=30) [ InitialExpression = 300 ];
Time interval in seconds that we run cleaning for RenderX XEP.
The default is 300 seconds (or 300,000 miliseconds or 5 minutes).
Must be in the interval 30-600 s.
property InitQueueSize
as %Integer;
Initial size of rendering queue.
If left blank (default) it will be the same as the number of threads; otherwise it must be an integer between 1 and the number of threads.
property InitializationTimeout
as %Integer(MAXVAL=300,MINVAL=2) [ InitialExpression = 5 ];
Number of seconds to wait for the Render Server to start up. The default is 5 s.
property JVMArgs
as %String(MAXLEN=32000);
Optional additional arguments to be passed to the Java Virtual Machine (JVM) to include when assembling the
command to start the Render Server.
For example, you can specify system properties: Dsystemvar=value
or set the maximum heap size: Xmx256mb
and so on, as needed.
property JavaHome
as %String(MAXLEN=260);
Location of the JVM (similar to the JAVA_HOME environment variable). It is used to find the target JVM
and assemble the command to start the Render Server.
Note: If there is a default JVM on the machine that is usable without the need to specify its location,
this setting may be left blank.
property LogFile
as %String(MAXLEN=260);
Fully qualified name of the log file.
If a file name is not specified and logging is enabled, the file used is renderserver.log in the
user's home directory (or the root directory if the home directory does not exist).
property LogLevel
as %String [ InitialExpression = "3",Required ];
Log level:
0 = no logging,
1 = log errors,
2 = log warnings,
3 = log info (default).
The logs are created in the user's home directory.
These logs have the name renderserer.log.n. renderserver.log.0 is the current log.
property LogRotationCount
as %Integer(MAXVAL=1000,MINVAL=1) [ InitialExpression = 100 ];
Number of log files accumulated before we recycle through log files.
The default is 100.
property MaxLogFileSize
as %Integer(MAXVAL=2147483647,MINVAL=0) [ InitialExpression = 32000 ];
Maximum size, in bytes, for each log file.
The default is 32000 bytes and the maximum allowed is 2147483647 bytes (2 GB). A value of 0 indicates no maximum defined.
property MemoryThreshold
as %Integer(MINVAL=0) [ InitialExpression = 0 ];
Number of bytes that define memory usage threshold. Used for memory checking. The default is 0 (off).
property Name
as %String [ Required ];
property NumFilesToClean
as %Integer(MAXVAL=1000,MINVAL=1) [ InitialExpression = 100 ];
Number of files that trigger cleaning for RenderX XEP.
The default is 100 files.
property NumPingThreads
as %Integer(MAXVAL=10,MINVAL=1) [ InitialExpression = 5 ];
Number of ping threads.
property NumThreads
as %Integer(MAXVAL=100,MINVAL=1) [ InitialExpression = 5 ];
Number of threads.
property PingPort
as %String [ Required ];
TCP port number for pinging the Render Server.
property Port
as %String [ Required ];
TCP port number for communication with the Render Server.
property Renderer
as %String(DISPLAYLIST=",FOP,RenderX XEP",VALUELIST=",FOP,XEP") [ InitialExpression = "FOP",Required ];
PDF renderer software - "FOP" or "XEP".
property Server
as %String [ InitialExpression = "127.0.0.1",Required ];
IP address or name of the machine where the JVM to be used by the Render Server is located.
Currently not exposed to the UI as we only support local JVMs.
property ThresholdPollingPeriod
as %Integer(MINVAL=0) [ InitialExpression = 0 ];
Miliseconds to wait to poll memory threshold. Used for memory checking. The default is 0 (off).
classmethod CmdLine(pReportServer As %ZEN.Report.RenderServer)
as %String
Generate the command line to run the script to start up the Render Server.
classmethod GetState(port As %Integer, pingport As %Integer, timeout As %Integer = 5)
as %Integer
Determine the state of a Render Server:
0 = Inactive and ready to be started;
1 = Active and responsive to PING;
2 = Unresponsive (one or both ports are in use but it is unresponsive to PING);
3 = Troubled (main port is not in use but it is responsive to PING);
4 = Error with port and/or ping port configuration.
classmethod LogReportInfo(time As %String = "0", endtime As %String = "0", port As %String = "", tSC As %String = "", info As %String = "", filename As %String = "")
classmethod LogStart(time As %String = "0", name As %String = "", cmd As %String = "", return As %String)
classmethod LogStartFailure(time As %String = "0", name As %String = "", state As %String = "", tSC As %String = "")
classmethod LogStop(time As %String = "0", name As %String = "", tSC As %String = "")
classmethod PortToName(pPort As %String, Output pName As %String)
as %Status
Get the Render Server name given its port.
classmethod RenderServerExists(name As %String)
as %Boolean
Check if there exists a Render Server with a given name.
classmethod Start(pName As %String, Output pPreviousState As %Integer, Output pReturn As %String, pVerbose As %Boolean = 0)
as %Status
Startup a Render Server given its name.
classmethod StartByPort(pPort As %String, Output pPreviousState As %Integer, Output pReturn As %String, pVerbose As %Boolean = 0)
as %Status
Startup a Render Server given its main port.
classmethod Stop(pName, pVerbose As %Boolean = 0)
as %Status
Stop a Render Server given its name.
classmethod TerminateAllRenderServers()
query ByName(name As %String = "")
Selects
ID, Name, Port, PingPort, ConnectionTimeout, Renderer
SQL Query
:
SELECT %ID, Name, Port, PingPort, ConnectionTimeout, Renderer
FROM RenderServer
WHERE Name %STARTSWITH :name
ORDER BY Name
Lookup by Render Server name.
query ByRenderServer()
Selects
Name, Port, PingPort, ConnectionTimeout, Renderer, State, StateExt
Lookup all Render Servers; include current state.
index (ID on Name) [IdKey];
Index for property Name