This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.

For information on migrating to InterSystems IRIS, see How to Migrate to InterSystems IRIS, available on the WRC Distributions page (login required).

%ZEN.Report.RenderServer

persistent class %ZEN.Report.RenderServer extends %Library.Persistent

SQL Table Name: %ZEN_Report.RenderServer

Zen Report Render Server definition and utility methods/queries. Also a superclass for other types of Zen Report Hot Servers.

Property Inventory (Including Private)

Method Inventory (Including Private)

Parameters

parameter DOMAIN = %Utility;
parameter TYPE = 0;
"0" indicates a Render Server. Subclasses must override this parameter.

Properties

property ConfigFile as %String (MAXLEN = 260);
Fully qualified name of the renderer configuration file.
Note: This property applies to Render Servers only.
Property methods: ConfigFileDisplayToLogical(), ConfigFileGet(), ConfigFileGetStored(), ConfigFileIsValid(), ConfigFileLogicalToDisplay(), ConfigFileLogicalToOdbc(), ConfigFileNormalize(), ConfigFileSet()
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 methods: ConnectionTimeoutDisplayToLogical(), ConnectionTimeoutGet(), ConnectionTimeoutGetStored(), ConnectionTimeoutIsValid(), ConnectionTimeoutLogicalToDisplay(), ConnectionTimeoutNormalize(), ConnectionTimeoutSet()
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.
Note: This property applies to Render Servers only.
Property methods: HowOftenToCleanDisplayToLogical(), HowOftenToCleanGet(), HowOftenToCleanGetStored(), HowOftenToCleanIsValid(), HowOftenToCleanLogicalToDisplay(), HowOftenToCleanNormalize(), HowOftenToCleanSet()
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 methods: InitQueueSizeDisplayToLogical(), InitQueueSizeGet(), InitQueueSizeGetStored(), InitQueueSizeIsValid(), InitQueueSizeLogicalToDisplay(), InitQueueSizeNormalize(), InitQueueSizeSet()
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 methods: InitializationTimeoutDisplayToLogical(), InitializationTimeoutGet(), InitializationTimeoutGetStored(), InitializationTimeoutIsValid(), InitializationTimeoutLogicalToDisplay(), InitializationTimeoutNormalize(), InitializationTimeoutSet()
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 methods: JVMArgsDisplayToLogical(), JVMArgsGet(), JVMArgsGetStored(), JVMArgsIsValid(), JVMArgsLogicalToDisplay(), JVMArgsLogicalToOdbc(), JVMArgsNormalize(), JVMArgsSet()
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.
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 methods: JavaHomeDisplayToLogical(), JavaHomeGet(), JavaHomeGetStored(), JavaHomeIsValid(), JavaHomeLogicalToDisplay(), JavaHomeLogicalToOdbc(), JavaHomeNormalize(), JavaHomeSet()
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 methods: LogFileDisplayToLogical(), LogFileGet(), LogFileGetStored(), LogFileIsValid(), LogFileLogicalToDisplay(), LogFileLogicalToOdbc(), LogFileNormalize(), LogFileSet()
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 renderserver.log.n. renderserver.log.0 is the current log.
Property methods: LogLevelDisplayToLogical(), LogLevelGet(), LogLevelGetStored(), LogLevelIsValid(), LogLevelLogicalToDisplay(), LogLevelLogicalToOdbc(), LogLevelNormalize(), LogLevelSet()
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 methods: LogRotationCountDisplayToLogical(), LogRotationCountGet(), LogRotationCountGetStored(), LogRotationCountIsValid(), LogRotationCountLogicalToDisplay(), LogRotationCountNormalize(), LogRotationCountSet()
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 methods: MaxLogFileSizeDisplayToLogical(), MaxLogFileSizeGet(), MaxLogFileSizeGetStored(), MaxLogFileSizeIsValid(), MaxLogFileSizeLogicalToDisplay(), MaxLogFileSizeNormalize(), MaxLogFileSizeSet()
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 methods: MemoryThresholdDisplayToLogical(), MemoryThresholdGet(), MemoryThresholdGetStored(), MemoryThresholdIsValid(), MemoryThresholdLogicalToDisplay(), MemoryThresholdNormalize(), MemoryThresholdSet()
property Name as %String [ Required ];
Unique mnemonic identifier.
Property methods: NameDisplayToLogical(), NameGet(), NameGetStored(), NameIsValid(), NameLogicalToDisplay(), NameLogicalToOdbc(), NameNormalize(), NameSet()
property NumFilesToClean as %Integer (MAXVAL = 1000, MINVAL = 1) [ InitialExpression = 100 ];
Number of files that trigger cleaning for RenderX XEP. The default is 100 files.
Note: This property applies to Render Servers only.
Property methods: NumFilesToCleanDisplayToLogical(), NumFilesToCleanGet(), NumFilesToCleanGetStored(), NumFilesToCleanIsValid(), NumFilesToCleanLogicalToDisplay(), NumFilesToCleanNormalize(), NumFilesToCleanSet()
property NumPingThreads as %Integer (MAXVAL = 10, MINVAL = 1) [ InitialExpression = 5 ];
Number of ping threads.
Property methods: NumPingThreadsDisplayToLogical(), NumPingThreadsGet(), NumPingThreadsGetStored(), NumPingThreadsIsValid(), NumPingThreadsLogicalToDisplay(), NumPingThreadsNormalize(), NumPingThreadsSet()
property NumThreads as %Integer (MAXVAL = 100, MINVAL = 1) [ InitialExpression = 5 ];
Number of threads.
Property methods: NumThreadsDisplayToLogical(), NumThreadsGet(), NumThreadsGetStored(), NumThreadsIsValid(), NumThreadsLogicalToDisplay(), NumThreadsNormalize(), NumThreadsSet()
property PingPort as %String [ Required ];
TCP port number for pinging the Render Server.
Property methods: PingPortDisplayToLogical(), PingPortGet(), PingPortGetStored(), PingPortIsValid(), PingPortLogicalToDisplay(), PingPortLogicalToOdbc(), PingPortNormalize(), PingPortSet()
property Port as %String [ Required ];
TCP port number for communication with the Render Server.
Property methods: PortDisplayToLogical(), PortGet(), PortGetStored(), PortIsValid(), PortLogicalToDisplay(), PortLogicalToOdbc(), PortNormalize(), PortSet(), PortToName()
property Renderer as %String (DISPLAYLIST = ",FOP,RenderX XEP", VALUELIST = ",FOP,XEP") [ InitialExpression = "FOP" , Required ];
PDF renderer software - "FOP" or "XEP".
Note: This property applies to Render Servers only.
Property methods: RendererDisplayToLogical(), RendererGet(), RendererGetStored(), RendererIsValid(), RendererLogicalToDisplay(), RendererLogicalToOdbc(), RendererNormalize(), RendererSet()
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 methods: ServerDisplayToLogical(), ServerGet(), ServerGetStored(), ServerIsValid(), ServerLogicalToDisplay(), ServerLogicalToOdbc(), ServerNormalize(), ServerSet(), ServerTypeDisplayToLogical(), ServerTypeGet(), ServerTypeGetStored(), ServerTypeIsValid(), ServerTypeLogicalToDisplay(), ServerTypeLogicalToOdbc(), ServerTypeNormalize(), ServerTypeSet()
property ServerType as %String [ InitialExpression = "0" ];
Type is "0" (or null/empty for backward compatibility) for Render Servers.
Property methods: ServerTypeDisplayToLogical(), ServerTypeGet(), ServerTypeGetStored(), ServerTypeIsValid(), ServerTypeLogicalToDisplay(), ServerTypeLogicalToOdbc(), ServerTypeNormalize(), ServerTypeSet()
property ThresholdPollingPeriod as %Integer (MINVAL = 0) [ InitialExpression = 0 ];
Miliseconds to wait to poll memory threshold. Used for memory checking. The default is 0 (off).
Property methods: ThresholdPollingPeriodDisplayToLogical(), ThresholdPollingPeriodGet(), ThresholdPollingPeriodGetStored(), ThresholdPollingPeriodIsValid(), ThresholdPollingPeriodLogicalToDisplay(), ThresholdPollingPeriodNormalize(), ThresholdPollingPeriodSet()

Methods

classmethod CmdLine(pReportServer As %ZEN.Report.RenderServer, Output pCmd As %String, Output pCmdArgs) as %String
Generate the command line to run the script to start up the Render Server. Subclasses must override this method.
classmethod GetState(port As %Integer, pingport As %Integer, timeout As %Integer = 5, Output reportedPort As %String, Output reportedType As %String) as %Integer
Determine the state of a Hot 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;
5 = Ping returns mismatching main port and/or server type.
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 Zen Report Hot Server name given its port.
classmethod Start(pName As %String, Output pPreviousState As %Integer, Output pReturn As %String, pVerbose As %Boolean = 0) as %Status
/ Startup a Zen Report Hot 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 Zen Report Hot Server given its main port.
classmethod Stop(pName, pVerbose As %Boolean = 0) as %Status
Stop a Zen Report Hot Server given its name.
classmethod TerminateAllRenderServers()
Invoked on system shutdown to terminate the external Hot JVM processes. Lookup active (registered) Zen Report Servers.
classmethod TerminateAllRenderServers2()
Invoked on system shutdown to terminate the external Hot JVM processes. Lookup all Zen Report Server definitions.
classmethod ZenReportServerExists(pName As %String, Output pType As %String) as %Boolean
Check if there exists a Zen Report Hot Server with a given name.

Queries

query AllServers(name As %String = "")
Selects ID, Name, Port, PingPort, ServerType
SQL Query:
SELECT %ID, Name, Port, PingPort, ServerType FROM RenderServer
Lookup all servers of all types
query ByName(name As %String = "")
Selects ID, Name, Port, PingPort, ServerType, Renderer
SQL Query:
SELECT %ID, Name, Port, PingPort, ServerType, Renderer FROM RenderServer WHERE ServerType='0' OR ServerType='' OR ServerType IS NULL ORDER BY Name
Lookup all Zen Report Render Servers.
query ByServer()
Selects Name, Port, PingPort, Renderer, State, StateEx
Lookup Zen Report Render Servers, get basic data plus state. Subclasses must override query methods as needed.

Indices

index (ID on Name) [IdKey, Type = key];
Index for property Name.
Index methods: IDCheck(), IDDelete(), IDExists(), IDOpen(), IDSQLCheckUnique(), IDSQLExists(), IDSQLFindPKeyByConstraint(), IDSQLFindRowIDByConstraint()

Inherited Members

Inherited Methods (Including Private)

Storage

Storage Model: CacheStorage (%ZEN.Report.RenderServer)

^%SYS("zenreport","DEFINITION","DATA")(ID)
=
%%CLASSNAME
Server
Port
PingPort
NumThreads
NumPingThreads
Renderer
ConfigFile
LogLevel
HowOftenToClean
NumFilesToClean
NumberOfFilesToClean
InitializationTimeout
ConnectionTimeout
JavaHome
JVMArgs
LogDirectory
LogFile
MaxLogFileSize
LogRotationCount
InitQueueSize
ThresholdPollingPeriod
MemoryThreshold
ServerType

Subclasses

Feedback