<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  JBoss, Home of Professional Open Source
  Copyright 2006, Red Hat Middleware LLC, and individual contributors
  as indicated by the @author tags.
  See the copyright.txt in the distribution for a
  full listing of individual contributors.
  This copyrighted material is made available to anyone wishing to use,
  modify, copy, or redistribute it subject to the terms and conditions
  of the GNU Lesser General Public License, v. 2.1.
  This program is distributed in the hope that it will be useful, but WITHOUT A
  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
  You should have received a copy of the GNU Lesser General Public License,
  v.2.1 along with this distribution; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  MA  02110-1301, USA.

  (C) 2005-2006,
  @author JBoss Inc.
-->
<!-- $Id: default-arjuna-properties.xml 2342 2006-03-30 13:06:17Z  $ -->
<!--
  These options are described in the ArjunaJTS manual.
  Defaults are provided here for convenience only.

  Please read through this file prior to using the system, and consider
  updating the specified entries.
-->
<transaction-service
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="transaction-service-2_0.xsd">
    <properties name="documentation">
        <!--
        This is the JBossTS configuration file. Note that starting with JBossTS 4.6
        the names jbossjta-properties.xml and jbossjts-properties.xml are obsolete.
        
        Both the JTA and JTS versions of JBossTS now read their configuration from
        jbossts-properties.xml, although the contents of the file differs between
        the JTA and JTS. Care should be taken to use the correct version of the file.
        
        ***************************
        
        Property values may be literals or be tokens of the form ${p1[,p2][:v]}
        in which case the token values are substituted for the values of the corresponding system
        properties as follows:
 
        - Any occurance of ${p} with the System.getProperty(p) value.
        If there is no such property p defined, then the ${p} reference will remain unchanged.

        - If the property reference is of the form ${p:v} and there is no such property p,
        then the default value v will be returned.

        - If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
        the primary and the secondary properties will be tried in turn, before
        returning either the unchanged input, or the default value.
        
        The property ${/} is replaced with System.getProperty("file.separator")
        value and the property ${:} is replaced with System.getProperty("path.separator").
        
        Note this substitution applies to property values only at the point they are read from
        the config file. Tokens in system properties won't be substituted.
        -->
    </properties>
    
    <properties name="arjuna" depends="common">
      <!--
        Transaction Reaper Timeout (default is 120000 ms).
      -->
      <property
        name="com.arjuna.ats.arjuna.coordinator.txReaperTimeout"
        value="120000"/>
      <!--
        Transaction Reaper Mode, can be: PERIODIC or DYNAMIC. Default is DYNAMIC.
      -->
      <property
        name="com.arjuna.ats.arjuna.coordinator.txReaperMode"
        value="DYNAMIC"/>
      <!--
        Transaction Reaper Cancel Wait Period (default is 500 ms, min is 10 msecs).
      -->
      <property
        name="com.arjuna.ats.arjuna.coordinator.txReaperCancelWaitPeriod"
        value="500"/>
      <!--
        Transaction Reaper Cancel Fail Wait Period (default is 500 ms, min is 10 msecs).
      -->
      <property
        name="com.arjuna.ats.arjuna.coordinator.txReaperCancelFailWaitPeriod"
        value="500"/>
      <!--
        Transaction Reaper Zombie Max (default is 8).
      -->
      <property
        name="com.arjuna.ats.arjuna.coordinator.txReaperZombieMax"
        value="8"/>
      <!--
        (default is NO)
      -->
      <property
        name="com.arjuna.ats.arjuna.coordinator.asyncCommit"
        value="NO"/>
      <!--
        (default is NO)
      -->
      <property
        name="com.arjuna.ats.arjuna.coordinator.asyncPrepare"
        value="NO"/>
      <!--
        (default is YES)
      -->
      <property
        name="com.arjuna.ats.arjuna.coordinator.commitOnePhase"
        value="YES"/>
      <!--
        (default is defaultStore)
      -->
      <property
        name="com.arjuna.ats.arjuna.objectstore.localOSRoot"
        value="defaultStore"/>
      <!--
        default is under user.home - must be writeable!)
      -->
        <property
          name="com.arjuna.ats.arjuna.objectstore.objectStoreDir"
          value="PutObjectStoreDirHere"/>
      <!--
        (default is ON)
      -->
      <property
        name="com.arjuna.ats.arjuna.objectstore.objectStoreSync"
        value="ON"/>
      <!--
        (default is ShadowNoFileLockStore)
      -->
      <property
        name="com.arjuna.ats.arjuna.objectstore.objectStoreType"
        value="ShadowNoFileLockStore"/>
      <!--
        (default is 255)
      -->
      <property
        name="com.arjuna.ats.arjuna.objectstore.hashedDirectories"
        value="255"/>
      <!--
        (default is ON)
      -->
      <property
        name="com.arjuna.ats.arjuna.objectstore.transactionSync"
        value="ON"/>
      <!--
        (Must be unique across all Arjuna instances.)
      -->
      <property
        name="com.arjuna.ats.arjuna.xa.nodeIdentifier"
        value="1"/>

      <!--
        Base port number for determining a unique number to associate with an instance of the transaction service
        (which is needed in order to support multiple instances on the same machine).
        Use the value 0 to allow the system to select the first available port number.
        If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
        to the loopback address is created or until the the maximum number of ports (specified by the
        com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
        reaches the maximum possible port number.
      -->
      <property
        name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort"
        value="0"/>

      <!--
        The maximum number of ports to try starting from the value specified by the property
        com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort. Any non-numeric or value less than 1 will
        defautl to 1.
      -->
      <property
        name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts"
        value="1"/>

      <!--
        Run the TransactionStatusManager to allow out-of-process recovery managers to query
        the status of transactions owned by this coordinator.  Default is YES.
        This can be set to NO in cases where an ObjectStore is used only by one transaction manager
        and the recovery manager for that store is in the same JVM. In any other cases disabling the
        TransactionStatusManager may cause crash recovery to misbehave.
      -->
      <property
        name="com.arjuna.ats.arjuna.coordinator.transactionStatusManagerEnable"
        value="YES"/>

      <!-- property
        name="com.arjuna.ats.arjuna.coordinator.actionStore"
		value="HashedActionStore"
		value="JDBCActionStore"
      -->
      <!-- property
        name="com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
		value="JDBCAccess"
      -->
      <!-- property
        name="com.arjuna.ats.arjuna.objectstore.objectStoreType"
		value="ShadowNoFileLockStore"
		value="JDBCStore"
      -->
      <!-- property
        name="com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
		value="JDBCAccess"
      -->

      <!-- property
        name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitial"
		value="1"
      -->
      <!-- property
        name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum"
		value="1"
      -->
      <!-- property
        name="com.arjuna.ats.arjuna.objectstore.jdbcPoolPutConnections"
		value="false"
      -->

      <!-- property
        name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.size"
		value=""
      -->
      <!-- property
        name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.period"
		value=""
      -->
      <!--
        The location for creating temporary files, e.g., Uids.
        Default is under user.home.
        IMPORTANT: make sure the directory is lockable, e.g., /tmp on Unix
        may not be!
      -->
      <!--
        <property
          name="com.arjuna.ats.arjuna.common.varDir"
          value="var"/>
      -->
      
        <!-- Should beforeCompletion synchronizations be fired even when it is known the
             transaction can't commit e.g. is marked rollbackOnly? (default NO).
             Note that turning this on still does not guarantee the syncronizations will run in all cases
             e.g. explicit rollback() calls. JTS users should also take into account the supportRollbackSync
             property which affects both beforeCompletion and afterCompletion syncs. -->
      <!--
      <property name="com.arjuna.ats.coordinator.beforeCompletionWhenRollbackOnly" value="NO"/>
      -->
    </properties>
</transaction-service>
