<!-- ================================================================================== -->
<!-- Nexaweb Server Configuration -->
<!-- ================================================================================== -->
<!-- -->
<!-- Nexaweb Server has configuration values of several types: -->
<!-- -->
<!-- String -->
<!-- integer (in the math sense, not the Java sense) -->
<!-- floating point -->
<!-- boolean -->
<!-- time interval -->
<!-- percentage -->
<!-- -->
<!-- For each of these types, there are acceptable formats. -->
<!-- -->
<!-- See the comments at the end of this file for more information on the allowable -->
<!-- formats for each type. -->
<!-- -->
<!-- ================================================================================== -->
<server>
<!-- ============================================================================== -->
<!-- Logging Configuration -->
<!-- ============================================================================== -->
<!-- Valid levels for log are: -->
<!-- "debug", "info", "error" & "exception" -->
<!-- <log-configuration default-log-level="info"> -->
<!-- Note that the following is the default format, but that -->
<!-- any Individual LogConsumer may choose to format messages -->
<!-- suitable for their output mechanism. -->
<!-- <output-format> -->
<!-- Date format will effect parameter {1} in <Format> -->
<!-- A string acceptable in the java.text.SimpleDateFormat -->
<!-- constructor. -->
<!-- <date-format>yyyy-MM-dd HH:mm:ss</date-format> -->
<!-- For all log formats, this will be the args. -->
<!-- Feel free to include or exclude all fields... -->
<!-- Example: - I don't care about thread or log name: -->
<!-- "[{0}-{1}:{3}]" -->
<!-- {0} - Type -->
<!-- {1} - formatted date -->
<!-- {2} - ThreadName -->
<!-- {3} - Message -->
<!-- {4} - LogName - The log of origin for the event. -->
<!-- <format>[{0} ({4}): {3}]</format> -->
<!-- </output-format> -->
<!-- <consumers> -->
<!-- Outputs log messages to the ServletContext log. No -->
<!-- matter how many times this consumer appears here, only -->
<!-- one instance may ever be created for any web -->
<!-- application. -->
<!-- <consumer class="com.nexaweb.server.log.WebApplicationLogConsumer" /> -->
<!-- Outputs log messages to the console. No matter how -->
<!-- many times this consumer appears, there will be only -->
<!-- one instance created per web application. -->
<!-- <consumer class="com.nexaweb.server.log.ConsoleLogConsumer" /> -->
<!-- The EmailLogConsumer can send Email messages via SMTP -->
<!-- when log messages arrive. -->
<!-- <consumer class="com.nexaweb.server.log.EmailLogConsumer"> -->
<!-- The level is one of four values: -->
<!-- debug, info, error or exception -->
<!-- -->
<!-- If debug is specified, all messages of all types will -->
<!-- be sent. If info is specified, only debug messages -->
<!-- will not be sent. If error is specified, only error -->
<!-- and exception messages will be sent. Finally, if -->
<!-- exception is specified, only exception messages will -->
<!-- be sent. -->
<!-- -->
<!-- Note that this is what the consumer will mail out, if -->
<!-- the Logger isn't sending debug messages, setting this -->
<!-- level to debug won't result in the emailing of debug -->
<!-- messages, as they are never sent to the consumer. -->
<!-- <mail-level>error</mail-level> -->
<!-- The following are properties to pass to the -->
<!-- javax.mail.Session.getInstance() method. See the -->
<!-- javadocs for more details on what these properties -->
<!-- are for. -->
<!--
<properties>
<property name="mail.transport.protocol" value="smtp" />
</properties>
-->
<!-- The name and email address to place in the "from" -->
<!-- address of outbound emails. -->
<!-- <from-name>Nexaweb Administrator</from-name> -->
<!-- <from-address>application@yourcompany.com</from-address> -->
<!-- This element specifies a recipient for the email sent.-->
<!-- This element may appear multiple times if more than -->
<!-- one recipient is desired. -->
<!-- <recipient>administrator@yourcompany.com</recipient> -->
<!-- The host name or IP address of the mail server. This -->
<!-- property is Required. -->
<!-- <mail-host>itsupport.nexaweb.com</mail-host> -->
<!-- The username and password to use for the SMTP server. -->
<!-- These may be omitted if not required by the server. -->
<!-- <mail-username>lagavulin@Nexaweb</mail-username> -->
<!-- <mail-password>your-password</mail-password> -->
<!-- The mime type of the email body. The recommended -->
<!-- types are "text/plain" and "text/html". -->
<!-- <mime-type>text/html</mime-type> -->
<!-- The subject line of the email. You may use all the -->
<!-- fields specified as available for the OutputFormat -->
<!-- in this subject line. -->
<!-- {0} - Type -->
<!-- {1} - formatted date -->
<!-- {2} - ThreadName -->
<!-- {3} - Message -->
<!-- {4} - LogName - The log of origin for the event. -->
<!-- <mail-subject-format>{0} - Nexaweb Log Message</mail-subject-format> -->
<!-- The "MessageFormat" is the body of the email. The -->
<!-- fields are the same as the fields for the output -->
<!-- format above. -->
<!-- {0} - Type -->
<!-- {1} - formatted date -->
<!-- {2} - ThreadName -->
<!-- {3} - Message -->
<!-- {4} - LogName - The log of origin for the event. -->
<!--
<mail-message-format><![CDATA[
<html>
<head>
<title>{0} - Nexaweb Log Message</title>
</head>
<body style="font-size:10pt;font-family:Arial,sans-serif;">
<table cellpadding="2" cellspacing="0" border="0" width="100%" >
<tr bgcolor="#000066">
<td width="1%" nowrap="yes">
<font style="font-style:italic;font-size:14pt;font-weight:bold;font-family:Arial,sans-serif;color:#FFFFFF">Nexaweb Log Message</font>
</td>
<td> </td>
<td width="1%" nowrap="yes" align="right">
<font style="font-style:italic;letter-spacing:0.4em;font-size:14pt;font-weight:bold;font-family:Arial,sans-serif;color:#FFFFFF">{0}</font>
</td>
</tr>
</table>
<p/>
<b>Log:</b> {4}<br/>
<b>Thread:</b> {2}<br/>
<b>Timestamp:</b> {1}<p/>
<table cellpadding="2" cellspacing="0" border="1" width="100%">
<tr>
<td align="left">
<pre>
{3}</pre>
</td>
</tr>
</table>
</body>
</html>
]]></mail-message-format>
</consumer>
-->
<!-- </consumers> -->
<!-- The following syntax allows you to adjust the level -->
<!-- of logging for each individual named log. -->
<!-- <log name="LOG_NAME" log-level="debug" /> -->
<!-- </log-configuration> -->
<!-- =================================================================== -->
<!-- Printing Configuration. -->
<!-- =================================================================== -->
<printing-configuration>
<fo-renderer class="com.nexaweb.common.printing.fop.FopProcessor" />
<printed-document-time-to-live>30 sec</printed-document-time-to-live>
<preprocess-nxml>true</preprocess-nxml>
<nxml-to-fo-stylesheet>/Nexaweb/stylesheets/printing/main.xsl</nxml-to-fo-stylesheet>
</printing-configuration>
<!-- ============================================================================== -->
<!-- ResourcePool Configuration (ThreadPools, etc.) -->
<!-- ============================================================================== -->
<!-- The following is the configuration of ResourcePools in use -->
<!-- throughout Nexaweb Server. -->
<!-- -->
<!-- All pools are named and their configuration values will be -->
<!-- taken from the <ResourcePool name="NAME"> element with the -->
<!-- correct name. -->
<resource-pools>
<resource-pool name="DefaultThreadPool" >
<pool-configuration>
<!-- The maximum size that to which the pool is allowed -->
<!-- to grow. Leave this empty for no maximum size. -->
<maximum-size>50</maximum-size>
<!-- The minimum size that to which the pool is allowed -->
<!-- to shrink. This number of resources will be -->
<!-- created when the pool is initialized. If a fixed -->
<!-- pool size is desired, set the MaximumSize and the -->
<!-- MinimumSize to the same value. A value of 0 will -->
<!-- result in no resources created at initialization -->
<!-- and no minimum size. -->
<minimum-size>2</minimum-size>
<!-- The interval at which the ResourcePool will make -->
<!-- size adjustments downward. Note that resources -->
<!-- are created on demand, this only applies to the -->
<!-- reaping of resources in the pool when they go -->
<!-- unused. -->
<adjustment-interval>60 sec</adjustment-interval>
<!-- This is the percentage of the ResourcePool's -->
<!-- unused resources that will be destroyed at the -->
<!-- end of adjustment intervals. The number of -->
<!-- resources destroyed will never take the pool below -->
<!-- the specified minimum size. -->
<shrink-percentage>15%</shrink-percentage>
<!-- ResourcePools may keep a history of their use for -->
<!-- over each AdjustmentInterval. These statistics -->
<!-- may be viewed through the management console or in -->
<!-- the log if the ResourcePool is configured to -->
<!-- LogStatisticsAtIntevals. This value is the number -->
<!-- of intervals to keep a history on. As new -->
<!-- statistics are created for an interval, the -->
<!-- oldest statistics are dropped. -->
<history-size>3</history-size>
<!-- If this value is true, the ResourcePool will log -->
<!-- it's statistics at the end of each adjustment -->
<!-- interval. -->
<log-statistics-at-intevals>false</log-statistics-at-intevals>
</pool-configuration>
</resource-pool>
<resource-pool name="MessagingThreadPool" >
<pool-configuration>
<!-- The maximum size that to which the pool is allowed -->
<!-- to grow. Leave this empty for no maximum size. -->
<maximum-size>100</maximum-size>
<!-- The minimum size that to which the pool is allowed -->
<!-- to shrink. This number of resources will be -->
<!-- created when the pool is initialized. If a fixed -->
<!-- pool size is desired, set the MaximumSize and the -->
<!-- MinimumSize to the same value. A value of 0 will -->
<!-- result in no resources created at initialization -->
<!-- and no minimum size. -->
<minimum-size>0</minimum-size>
<!-- The interval at which the ResourcePool will make -->
<!-- size adjustments downward. Note that resources -->
<!-- are created on demand, this only applies to the -->
<!-- reaping of resources in the pool when they go -->
<!-- unused. -->
<adjustment-interval>60 sec</adjustment-interval>
<!-- This is the percentage of the ResourcePool's -->
<!-- unused resources that will be destroyed at the -->
<!-- end of adjustment intervals. The number of -->
<!-- resources destroyed will never take the pool below -->
<!-- the specified minimum size. -->
<shrink-percentage>15%</shrink-percentage>
<!-- ResourcePools may keep a history of their use for -->
<!-- over each AdjustmentInterval. These statistics -->
<!-- may be viewed through the management console or in -->
<!-- the log if the ResourcePool is configured to -->
<!-- LogStatisticsAtIntevals. This value is the number -->
<!-- of intervals to keep a history on. As new -->
<!-- statistics are created for an interval, the -->
<!-- oldest statistics are dropped. -->
<history-size>3</history-size>
<!-- If this value is true, the ResourcePool will log -->
<!-- it's statistics at the end of each adjustment -->
<!-- interval. -->
<log-statistics-at-intevals>false</log-statistics-at-intevals>
</pool-configuration>
</resource-pool>
<resource-pool name="NioByteBufferPool(1K)" >
<pool-configuration>
<!-- This is 1 MB of memory (1024 * 1024 == 1 MB) -->
<maximum-size>1024</maximum-size>
<minimum-size>0</minimum-size>
<adjustment-interval>60 sec</adjustment-interval>
<shrink-percentage>15%</shrink-percentage>
<history-size>3</history-size>
<log-statistics-at-intevals>false</log-statistics-at-intevals>
<!-- For each byte buffer pool, there is a buffer size. -->
<byte-buffer-size>1K</byte-buffer-size>
<allocate-direct>false</allocate-direct>
</pool-configuration>
</resource-pool>
<resource-pool name="NioByteBufferPool(16K)" >
<pool-configuration>
<!-- This is 16 MB of memory (16 * 1024 * 1024 == 16 MB) -->
<maximum-size>1024</maximum-size>
<minimum-size>0</minimum-size>
<adjustment-interval>30 sec</adjustment-interval>
<shrink-percentage>10%</shrink-percentage>
<history-size>3</history-size>
<log-statistics-at-intevals>false</log-statistics-at-intevals>
<!-- For each byte buffer pool, there is a buffer size. -->
<byte-buffer-size>16K</byte-buffer-size>
<allocate-direct>true</allocate-direct>
</pool-configuration>
</resource-pool>
<resource-pool name="NioByteBufferPool(64K)" >
<pool-configuration>
<!-- This is 64 MB of memory (64 * 1024 * 1024 == 64 MB) -->
<maximum-size>1024</maximum-size>
<minimum-size>0</minimum-size>
<adjustment-interval>30 sec</adjustment-interval>
<shrink-percentage>10%</shrink-percentage>
<history-size>3</history-size>
<log-statistics-at-intevals>false</log-statistics-at-intevals>
<!-- For each byte buffer pool, there is a buffer size. -->
<byte-buffer-size>64K</byte-buffer-size>
<allocate-direct>true</allocate-direct>
</pool-configuration>
</resource-pool>
<resource-pool name="CharBufferPool(1K)" >
<pool-configuration>
<maximum-size>1024</maximum-size>
<minimum-size>0</minimum-size>
<adjustment-interval>30 sec</adjustment-interval>
<shrink-percentage>10%</shrink-percentage>
<history-size>0</history-size>
<log-statistics-at-intevals>false</log-statistics-at-intevals>
<char-buffer-size>1K</char-buffer-size>
</pool-configuration>
</resource-pool>
<resource-pool name="CharBufferPool(16K)" >
<pool-configuration>
<maximum-size>1024</maximum-size>
<minimum-size>0</minimum-size>
<adjustment-interval>30 sec</adjustment-interval>
<shrink-percentage>10%</shrink-percentage>
<history-size>0</history-size>
<log-statistics-at-intevals>false</log-statistics-at-intevals>
<char-buffer-size>16K</char-buffer-size>
</pool-configuration>
</resource-pool>
<resource-pool name="CharBufferPool(64K)" >
<pool-configuration>
<maximum-size>1024</maximum-size>
<minimum-size>0</minimum-size>
<adjustment-interval>30 sec</adjustment-interval>
<shrink-percentage>10%</shrink-percentage>
<history-size>0</history-size>
<log-statistics-at-intevals>false</log-statistics-at-intevals>
<char-buffer-size>64K</char-buffer-size>
</pool-configuration>
</resource-pool>
<resource-pool name="ByteBufferPool(1K)" >
<pool-configuration>
<!-- This is 1 MB of memory (1024 * 1024 == 1 MB) -->
<maximum-size>1024</maximum-size>
<minimum-size>0</minimum-size>
<adjustment-interval>60 sec</adjustment-interval>
<shrink-percentage>15%</shrink-percentage>
<history-size>3</history-size>
<log-statistics-at-intevals>false</log-statistics-at-intevals>
<!-- For each byte buffer pool, there is a buffer size. -->
<byte-buffer-size>1K</byte-buffer-size>
</pool-configuration>
</resource-pool>
<resource-pool name="ByteBufferPool(16K)" >
<pool-configuration>
<!-- This is 16 MB of memory (16 * 1024 * 1024 == 16 MB) -->
<maximum-size>1024</maximum-size>
<minimum-size>0</minimum-size>
<adjustment-interval>30 sec</adjustment-interval>
<shrink-percentage>10%</shrink-percentage>
<history-size>3</history-size>
<log-statistics-at-intevals>false</log-statistics-at-intevals>
<!-- For each byte buffer pool, there is a buffer size. -->
<byte-buffer-size>16K</byte-buffer-size>
</pool-configuration>
</resource-pool>
<resource-pool name="ByteBufferPool(64K)" >
<pool-configuration>
<!-- This is 64 MB of memory (64 * 1024 * 1024 == 64 MB) -->
<maximum-size>1024</maximum-size>
<minimum-size>0</minimum-size>
<adjustment-interval>30 sec</adjustment-interval>
<shrink-percentage>10%</shrink-percentage>
<history-size>3</history-size>
<log-statistics-at-intevals>false</log-statistics-at-intevals>
<!-- For each byte buffer pool, there is a buffer size. -->
<byte-buffer-size>64K</byte-buffer-size>
</pool-configuration>
</resource-pool>
</resource-pools>
<!-- ================================================================================= -->
<!-- Clustering Configuration -->
<!-- ================================================================================= -->
<!-- The following section contains configuration parameters related to Nexaweb -->
<!-- Server clustering. Setting 'enabled=true' in the 'clustering' element below -->
<!-- will make this instance of Nexaweb Server be part of a cluster. However none -->
<!-- of the backup functionality usually associated with clustering will get turned -->
<!-- on unless the 'failover' attribute is also set to 'true'. Setting 'failover=true' -->
<!-- will enable backup assignment for the local sessions created on this server -->
<!-- instance and will also allow this server instance to serve as a backup node for -->
<!-- other nodes in the cluster. You can not set failover=true without setting -->
<!-- enabled=true as well. -->
<!-- -->
<!-- When run in a clustered environment each application instance (which corresponds -->
<!-- one-to-one to a Nexaweb Server instance) has a unique address that uniquely -->
<!-- identifies it and is used as a messaging destination for inter-server -->
<!-- communication. The address has the following format: -->
<!-- <domain>.<cluster>.<server>.<application> -->
<!-- In order to be considered part of the same cluster all instances of your -->
<!-- application have to have the same domain and cluster names. In addition the -->
<!-- server name has to be unique across physical machines+JVM instances running on -->
<!-- the same machine and the application name has to be the same for all instances of -->
<!-- the same application. -->
<!-- -->
<!-- If you have multiple web applications deployed you have to make sure that each of -->
<!-- them has a unique application name. Failure to do so will lead to erroneous -->
<!-- behaviour. -->
<!-- -->
<!-- There is a number of ways in which you can partition your cluster into multiple -->
<!-- subclusters. For example specifying a different domain and/or cluster name would -->
<!-- accomplish that. -->
<clustering enabled="false" failover="false">
<!-- The Nexaweb messaging Domain in which this server lives. -->
<!-- When this value is not supplied, the machine's localhost -->
<!-- address is used. This avoids collisions and versioning -->
<!-- problems in a developer environment while allowing -->
<!-- developers to run a cluster on their own machine. -->
<!-- -->
<!-- Since this string is included on every message sent, for -->
<!-- performance reasons it should be as short as possible. -->
<!-- -->
<!-- Developers will most likely wish to comment this out during -->
<!-- development to avoid collisions between developer's personal -->
<!-- clustered environments. -->
<domain>DOM</domain>
<!-- The Cluster in which this server resides. -->
<!-- You do not need to change this value unless you wish to -->
<!-- segment your cluster. -->
<cluster>CLUS</cluster>
<!-- A unique identifier for this server + JVM instance. -->
<!-- -->
<!-- Important! This value has to be unique on each server instance -->
<!-- that belongs to the same cluster. You should leave this element -->
<!-- commented out so that a unique identifier can get generated and -->
<!-- used. -->
<!-- If you do specify it here, after you deploy your application -->
<!-- you will need to manually change this value on each server -->
<!-- instance to make it unique and then restart the cluster. -->
<!-- NOTE: not all application servers will allow modifying a local -->
<!-- copy of an application after it has been deployed in a cluster -->
<!-- so once again, leave this value commented out. -->
<!-- <server>SERVER</server> -->
<!-- If you're application may ever be deployed in a clustered environment -->
<!-- alongside other Nexaweb applications, you must provide a name for your -->
<!-- application that will be unique across the cluster. -->
<!-- -->
<!-- The value must be alpha-numeric with no punctuation, although hyphen -->
<!-- characters are allowed. -->
<!-- -->
<!-- This value is used to identify which application sent messages across -->
<!-- the messaging bus. Shorter values will reduce traffic. -->
<application>APP</application>
</clustering>
<!-- ================================================================================= -->
<!-- Messaging Implementation Configuration -->
<!-- ================================================================================= -->
<messaging>
<!-- The default messaging implementation for Nexaweb is Continuum - in-house -->
<!-- built messaging solution based on UDP. Customers familiar and comfortable -->
<!-- with JMS may wish to use the application server's JMS implementation. -->
<!-- See Nexaweb's clustering documentation for more information. -->
<default-factory-implementation class="com.nexaweb.server.messaging.continuum.ContinuumMessagingFactory" />
<!-- <default-factory-implementation class="com.nexaweb.server.messaging.jms.JMSMessagingFactory" /> -->
</messaging>
<!-- ============================================================================== -->
<!-- JMS Configuration (Modify this ONLY if you are using your own JMS provider) -->
<!-- ============================================================================== -->
<!-- JMS configuration is used to configure JMS Messaging Factory instances. -->
<!-- You can have multiple JMS configuration sections in your config (just -->
<!-- specify a unique name attribute for each of them). Different JMS factory -->
<!-- instances can use the same JMS configuration section or different ones. -->
<jms name="jms-config1">
<jndi>
<!-- JNDI name for the JMS connection factory. This is the full name -->
<!-- that will be used to lookup the connection factory in the JNDI. -->
<connection-factory-jndi-name>jms/NexawebConnectionFactory</connection-factory-jndi-name>
<!-- JNDI name for the destination used by the message producer -->
<!-- and consumer. -->
<destination-jndi-name>jms/NexawebTopic</destination-jndi-name>
<!-- Initial context jndi environment. These parameters will be passed -->
<!-- in when creating the initial JNDI context. -->
<initial-context-environment>
<!--
<param name="ParamName" value="ParamValue" />
-->
</initial-context-environment>
</jndi>
<connection>
<!-- If you want to use a durable subscription each JMS client has to be -->
<!-- associated with a unique client id. Usually this id is configured -->
<!-- through the administration console. If your JMS provider does not have -->
<!-- a way to set it administratively the JMS API has a method to do that. -->
<!-- However you should be aware that the J2EE specification prohibits -->
<!-- using this method and any J2EE compliant container will throw an -->
<!-- IllegalStateException. Nexaweb will attempt to set the provided value -->
<!-- as the client id. If the value is not specified and the id is not set -->
<!-- Nexaweb will generate a GUID and attempt to set it as the client id. -->
<!-- <client-id>jms-instance1-clientid</client-id> -->
</connection>
<session>
<transacted>false</transacted>
<!-- Session acknowledge mode. You can use the fully qualified way as -->
<!-- shown below or specify a simple int value in the range allowed by -->
<!-- the JMS API. -->
<acknowledge-mode>javax.jms.Session.AUTO_ACKNOWLEDGE</acknowledge-mode>
</session>
<message-producer>
<!-- Delivery mode for the message producer. You can use the fully -->
<!-- qualified way as shown below or specify a simple int value -->
<!-- in the range allowed by the JMS API -->
<delivery-mode>javax.jms.DeliveryMode.NON_PERSISTENT</delivery-mode>
<!-- Priority for the message delivery. You can use the fully -->
<!-- qualified way as shown below or specify a simple int value -->
<!-- in the range allowed by the JMS API -->
<priority>javax.jms.Message.DEFAULT_PRIORITY</priority>
<!-- Message time-to-live. You can use the fully qualified way as -->
<!-- shown below or specify a long value ( number of milliseconds ) -->
<time-to-live>javax.jms.Message.DEFAULT_TIME_TO_LIVE</time-to-live>
<!-- Whether message ids are disabled for the JMS messages -->
<disable-message-id>false</disable-message-id>
<!-- Whether message timestamps are disabled for the JMS messages -->
<disable-message-timestamp>false</disable-message-timestamp>
</message-producer>
<!-- When TopicConnectionFactory is used you can choose to use a durable -->
<!-- subscriber which has to be configured through the JMS administration -->
<!-- console and you would need to uncomment the block below. By default -->
<!-- a non durable subscriber is created. -->
<subscriber>
<durable>false</durable>
<!-- <subscription-name>MySubscription</subscription-name> -->
</subscriber>
</jms>
<!-- ============================================================================== -->
<!-- RequestProxyService Configuration -->
<!-- ============================================================================== -->
<!-- The RequestProxyService is responsible for proxying requests to fully -->
<!-- qualified URLs. Due to applet security restrictions, the client may only -->
<!-- make requests to the server that served the applet code. Therefore, in -->
<!-- order to provide the same functionality that HTML provides, the server -->
<!-- needs to provide proxying to remote servers. -->
<!-- -->
<!-- When requests are forwarded, it is important not to propagate headers -->
<!-- in either direction that are pertinent only to one side of the -->
<!-- request/response transaction. For instance, "Transfer-Encoding" should -->
<!-- not be propagated from one request to the other or one response to the -->
<!-- other. The list of headers that are NOT propagated in either direction -->
<!-- is specified here. The case of the headers is ignored. -->
<request-proxy-service>
<transfer-buffer-size>32K</transfer-buffer-size>
<!-- The case of all headers is ignored. -->
<excluded-request-headers>
<header>cookie</header>
<header>transfer-encoding</header>
<header>host</header>
<header>accept-encoding</header>
</excluded-request-headers>
<!-- The case of all headers is ignored. -->
<excluded-response-headers>
<header>transfer-encoding</header>
</excluded-response-headers>
</request-proxy-service>
<!-- ============================================================================== -->
<!-- Protocol Queue Configuration -->
<!-- ============================================================================== -->
<!-- There are several queues in use for holding messages and commands -->
<!-- bound for clients. When a client doesn't reconnect for a long -->
<!-- period of time, the queues could grow to the point where the -->
<!-- server may run out of memory. In order to avoid these conditions,-->
<!-- the queues may be configured to hav a maximum size. When the -->
<!-- is a maximum size is reached, messages must be dropped. -->
<!-- -->
<!-- The queues all support the same attributes: -->
<!-- -->
<!-- - "size" -->
<!-- The size (number of messages) that will be -->
<!-- allowed in the queue before it is considered -->
<!-- full. Any non-numeric value will result in -->
<!-- the queue having no maximum size. -->
<!-- - "whenFullDrop" (optional, "newest"|"oldest" default: oldest) -->
<!-- Determines which end of the queue messages -->
<!-- will be dropped from when the queue is full. -->
<!-- valid values are "oldest" and "newest". -->
<!-- - "logEveryNthDropped" (optional) -->
<!-- Instead of logging every message dropped, -->
<!-- (this could produce a great deal of output), -->
<!-- set the number of messages that must be -->
<!-- dropped between log events. -->
<protocol-queues>
<!-- This is the queue that contains DOM changes bound for the -->
<!-- client. There is an instance of this queue for each DOM -->
<!-- that exists. So they are sized per document. Dropping -->
<!-- changes here can cause future changes to be invalid which -->
<!-- will result in errors. -->
<dom-changes size="NO_MAX" />
<!-- This is the queue of messages sent via the messaging bus. -->
<!-- Using MessagingService or NetService, publish() and send() -->
<!-- methods. -->
<messaging-queue size="1000" whenFullDrop="oldest" logEveryNthDropped="10" />
<!-- This is the queue of Nexaweb protocol commands that must -->
<!-- preceed DOM changes. Changing this queue's properties is -->
<!-- not recommended. -->
<pre-dom-change-commands size="NO_MAX" />
<!-- This is the queue of Nexaweb protocol commands that must -->
<!-- come after DOM changes. Changing this queue's properties -->
<!-- is not recommended. -->
<post-dom-change-commands size="NO_MAX" />
<!-- This is the queue of nack-ack messages and resends. -->
<!-- Changing this queue's properties is not recommended. -->
<reliable-messaging-protocol-support size="NO_MAX" />
</protocol-queues>
<!-- For inbound requests to the server, this value indicates -->
<!-- how long the server processor should wait for data from -->
<!-- a client before aborting the DOM absorption processor -->
<request-timeout>5 sec</request-timeout>
<!-- If a cookie is used to send Nexaweb session id , you can mark -->
<!-- cookie secure with this parameter. When the value is true, it will-->
<!-- set secure flag in the cookie -->
<!--
<secure-session-cookie>true</secure-session-cookie>
-->
<!-- Use the following if you want the client to wait until the server -->
<!-- completes Server DOM processing request (make it synchronous). -->
<!-- Default is asynchronous processing which allows the client not -->
<!-- to wait for the server to complete absorbing Server DOM stream. -->
<!--
<output-stream-wrapper waitForServerToCompleteProcessing="false"/>
-->
</server>
<!-- ================================================================================== -->
<!-- -->
<!-- -->
<!-- String -->
<!-- - Free form or specified in the documentation for the value. -->
<!-- -->
<!-- integer -->
<!-- - Any numeric value parsable by Long.parseLong() -->
<!-- -->
<!-- floating point -->
<!-- - Any numeric value parsable by Double.parseDouble() -->
<!-- -->
<!-- boolean -->
<!-- - Any value that begins with the uppercase or lowercase letter 't' will be -->
<!-- treated as boolean true, all other values are considered false. -->
<!-- -->
<!-- time interval -->
<!-- - Time intervals are an integer value followed by a suffix indicating the -->
<!-- units. Supported suffixes follow: -->
<!-- -->
<!-- Suffixes for milliseconds -->
<!-- - ms -->
<!-- - msec -->
<!-- - msecs -->
<!-- - millis -->
<!-- - milliseconds -->
<!-- Suffixes for seconds -->
<!-- - s -->
<!-- - sec -->
<!-- - seconds -->
<!-- Suffixes for minutes -->
<!-- - m -->
<!-- - min -->
<!-- - minutes -->
<!-- Suffixes for hours -->
<!-- - h -->
<!-- - hr -->
<!-- - hrs -->
<!-- - hours -->
<!-- Suffixes for days -->
<!-- - d -->
<!-- - days -->
<!-- Suffixes for months -->
<!-- - mon -->
<!-- - months -->
<!-- Suffixes for years -->
<!-- - y -->
<!-- - yr -->
<!-- - yrs -->
<!-- - years -->
<!-- -->
<!-- percentages -->
<!-- - Percentages are a double value with an optional suffix for readability. -->
<!-- Examples of values with supported suffixes and the resulting values follow: -->
<!-- -->
<!-- Value - Result -->
<!-- - - - - - - - - - - - - - -->
<!-- 15 - 15% -->
<!-- 0.15 - 0.15% -->
<!-- 0.15D - 15% -->
<!-- 15% - 15% -->
<!-- 15 perc - 15% -->
<!-- 15 perc. - 15% -->
<!-- 15 percent - 15% -->
<!-- 15 percent. - 15% -->
<!-- -->
<!-- ================================================================================== -->