Nexaweb-Server

<!-- ================================================================================== -->
<!-- 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>&nbsp;</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%                                                     -->
<!--                                                                                    -->
<!-- ================================================================================== -->