Configuration (Bitronix Transaction Manager :: Core 2.1.4 API)
Date: 2013-09-15

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## bitronix.tm
Class Configuration

    java.lang.Object
      bitronix.tm.Configuration

All Implemented Interfaces:
  Service

    public class Configuration

extends Object
implements Service

Configuration repository of the transaction manager. You can set configurable values either via the properties file or by setting properties of the `Configuration` object. Once the transaction manager has started it is not possible to change the configuration: all calls to setters will throw a `IllegalStateException`.

The configuration filename must be specified with the `bitronix.tm.configuration` system property.

The default settings are good enough for running in a test environment but certainly not for production usage. Also, all properties are reset to their default value after the transaction manager has shut down.

All those properties can refer to other defined ones or to system properties using the Ant notation: `${some.property.name}`.

Author:
  lorban

Constructor Summary
`protected` | `Configuration()`

Method Summary
`byte[]` | `buildServerIdArray()` Build the server ID byte array that will be prepended in generated UIDs.
`int` | `getBackgroundRecoveryInterval()` Deprecated. superceded by #getBackgroundRecoveryIntervalSeconds().
`int` | `getBackgroundRecoveryIntervalSeconds()` Interval in seconds at which to run the recovery process in the background.
`int` | `getDefaultTransactionTimeout()` Default transaction timeout in seconds.
`String` | `getExceptionAnalyzer()` Get the exception analyzer implementation.
`int` | `getGracefulShutdownInterval()` Maximum amount of seconds the TM will wait for transactions to get done before aborting them at shutdown time.
`String` | `getJndiTransactionSynchronizationRegistryName()` Get the name the `TransactionSynchronizationRegistry` should be bound under in the `BitronixContext`.
`String` | `getJndiUserTransactionName()` Get the name the `UserTransaction` should be bound under in the `BitronixContext`.
`String` | `getJournal()` Get the journal implementation.
`String` | `getLogPart1Filename()` Get the journal fragment file 1 name.
`String` | `getLogPart2Filename()` Get the journal fragment file 2 name.
`int` | `getMaxLogSizeInMb()` Maximum size in megabytes of the journal fragments.
`String` | `getResourceConfigurationFilename()` `ResourceLoader` configuration file name.
`String` | `getServerId()` ASCII ID that must uniquely identify this TM instance.
`boolean` | `isAllowMultipleLrc()` Should the transaction manager allow enlistment of multiple LRC resources in a single transaction? This is highly unsafe but could be useful for testing.
`boolean` | `isAsynchronous2Pc()` Should two phase commit be executed asynchronously? Asynchronous two phase commit can improve performance when there are many resources enlisted in transactions but is more CPU intensive due to the dynamic thread spawning requirements.
`boolean` | `isCurrentNodeOnlyRecovery()` Should the recovery process not recover XIDs generated with another JVM unique ID? Setting this property to true is useful in clustered environments where multiple instances of BTM are running on different nodes.
`boolean` | `isDebugZeroResourceTransaction()` Should creation and commit call stacks of transactions executed without a single enlisted tracked and logged or not?
`boolean` | `isDisableJmx()` Should JMX Mbeans not be registered even if a JMX MBean server is detected?
`boolean` | `isFilterLogStatus()` Should only mandatory logs be written? Enabling this parameter lowers space usage of the fragments but makes debugging more complex.
`boolean` | `isForceBatchingEnabled()` Are disk forces batched? Disabling batching can seriously lower the transaction manager's throughput.
`boolean` | `isForcedWriteEnabled()` Are logs forced to disk? Do not set to false in production since without disk force, integrity is not guaranteed.
`boolean` | `isSkipCorruptedLogs()` Should corrupted logs be skipped?
`boolean` | `isWarnAboutZeroResourceTransaction()` Should transactions executed without a single enlisted resource result in a warning or not? Most of the time transactions executed with no enlisted resource reflect a bug or a mis-configuration somewhere.
`Configuration` | `setAllowMultipleLrc(boolean allowMultipleLrc)` Set to true if the transaction manager should allow enlistment of multiple LRC resources in a single transaction.
`Configuration` | `setAsynchronous2Pc(boolean asynchronous2Pc)` Set if two phase commit should be executed asynchronously.
`Configuration` | `setBackgroundRecoveryInterval(int backgroundRecoveryInterval)` Deprecated. superceded by #setBackgroundRecoveryIntervalSeconds(int).
`Configuration` | `setBackgroundRecoveryIntervalSeconds(int backgroundRecoveryIntervalSeconds)` Set the interval in seconds at which to run the recovery process in the background.
`Configuration` | `setCurrentNodeOnlyRecovery(boolean currentNodeOnlyRecovery)` Set to true if recovery should filter out recovered XIDs that do not contain this JVM's unique ID, false otherwise.
`Configuration` | `setDebugZeroResourceTransaction(boolean debugZeroResourceTransaction)` Set if creation and commit call stacks of transactions executed without a single enlisted resource should be tracked and logged.
`Configuration` | `setDefaultTransactionTimeout(int defaultTransactionTimeout)` Set the default transaction timeout in seconds.
`Configuration` | `setDisableJmx(boolean disableJmx)` Set to true if JMX Mbeans should not be registered even if a JMX MBean server is detected.
`Configuration` | `setExceptionAnalyzer(String exceptionAnalyzer)` Set the exception analyzer implementation.
`Configuration` | `setFilterLogStatus(boolean filterLogStatus)` Set if only mandatory logs should be written.
`Configuration` | `setForceBatchingEnabled(boolean forceBatchingEnabled)` Set if disk forces are batched.
`Configuration` | `setForcedWriteEnabled(boolean forcedWriteEnabled)` Set if logs are forced to disk.
`Configuration` | `setGracefulShutdownInterval(int gracefulShutdownInterval)` Set the maximum amount of seconds the TM will wait for transactions to get done before aborting them at shutdown time.
`Configuration` | `setJndiTransactionSynchronizationRegistryName(String jndiTransactionSynchronizationRegistryName)` Set the name the `TransactionSynchronizationRegistry` should be bound under in the `BitronixContext`.
`Configuration` | `setJndiUserTransactionName(String jndiUserTransactionName)` Set the name the `UserTransaction` should be bound under in the `BitronixContext`.
`Configuration` | `setJournal(String journal)` Set the journal name.
`Configuration` | `setLogPart1Filename(String logPart1Filename)` Set the journal fragment file 1 name.
`Configuration` | `setLogPart2Filename(String logPart2Filename)` Set the journal fragment file 2 name.
`Configuration` | `setMaxLogSizeInMb(int maxLogSizeInMb)` Set the Maximum size in megabytes of the journal fragments.
`Configuration` | `setResourceConfigurationFilename(String resourceConfigurationFilename)` Set the `ResourceLoader` configuration file name.
`Configuration` | `setServerId(String serverId)` Set the ASCII ID that must uniquely identify this TM instance.
`Configuration` | `setSkipCorruptedLogs(boolean skipCorruptedLogs)` Set if corrupted logs should be skipped.
`Configuration` | `setWarnAboutZeroResourceTransaction(boolean warnAboutZeroResourceTransaction)` Set if transactions executed without a single enlisted resource should result in a warning or not.
`void` | `shutdown()` Shutdown the service and free all held resources.
`String` | `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Configuration

    protected Configuration()

Method Detail

### getServerId

    public String getServerId()

  ASCII ID that must uniquely identify this TM instance. It must not exceed 51 characters or it will be truncated.

  Property name:
  bitronix.tm.serverId - (defaults to server's IP address but that's unsafe for production use)

  Returns:
    the unique ID of this TM instance.

### setServerId

    public Configuration setServerId(String serverId)

  Set the ASCII ID that must uniquely identify this TM instance. It must not exceed 51 characters or it will be truncated.

  Parameters:
    `serverId` - the unique ID of this TM instance.
  Returns:
    this.
  See Also:
    `getServerId()`

### getLogPart1Filename

    public String getLogPart1Filename()

  Get the journal fragment file 1 name.

  Property name:
  bitronix.tm.journal.disk.logPart1Filename - (defaults to btm1.tlog)

  Returns:
    the journal fragment file 1 name.

### setLogPart1Filename

    public Configuration setLogPart1Filename(String logPart1Filename)

  Set the journal fragment file 1 name.

  Parameters:
    `logPart1Filename` - the journal fragment file 1 name.
  Returns:
    this.
  See Also:
    `getLogPart1Filename()`

### getLogPart2Filename

    public String getLogPart2Filename()

  Get the journal fragment file 2 name.

  Property name:
  bitronix.tm.journal.disk.logPart2Filename - (defaults to btm2.tlog)

  Returns:
    the journal fragment file 2 name.

### setLogPart2Filename

    public Configuration setLogPart2Filename(String logPart2Filename)

  Set the journal fragment file 2 name.

  Parameters:
    `logPart2Filename` - the journal fragment file 2 name.
  Returns:
    this.
  See Also:
    `getLogPart2Filename()`

### isForcedWriteEnabled

    public boolean isForcedWriteEnabled()

  Are logs forced to disk? Do not set to false in production since without disk force, integrity is not guaranteed.

  Property name:
  bitronix.tm.journal.disk.forcedWriteEnabled - (defaults to true)

  Returns:
    true if logs are forced to disk, false otherwise.

### setForcedWriteEnabled

    public Configuration setForcedWriteEnabled(boolean forcedWriteEnabled)

  Set if logs are forced to disk. Do not set to false in production since without disk force, integrity is not guaranteed.

  Parameters:
    `forcedWriteEnabled` - true if logs should be forced to disk, false otherwise.
  Returns:
    this.
  See Also:
    `isForcedWriteEnabled()`

### isForceBatchingEnabled

    public boolean isForceBatchingEnabled()

  Are disk forces batched? Disabling batching can seriously lower the transaction manager's throughput.

  Property name:
  bitronix.tm.journal.disk.forceBatchingEnabled - (defaults to true)

  Returns:
    true if disk forces are batched, false otherwise.

### setForceBatchingEnabled

    public Configuration setForceBatchingEnabled(boolean forceBatchingEnabled)

  Set if disk forces are batched. Disabling batching can seriously lower the transaction manager's throughput.

  Parameters:
    `forceBatchingEnabled` - true if disk forces are batched, false otherwise.
  Returns:
    this.
  See Also:
    `isForceBatchingEnabled()`

### getMaxLogSizeInMb

    public int getMaxLogSizeInMb()

  Maximum size in megabytes of the journal fragments. Larger logs allow transactions to stay longer in-doubt but the TM pauses longer when a fragment is full.

  Property name:
  bitronix.tm.journal.disk.maxLogSize - (defaults to 2)

  Returns:
    the maximum size in megabytes of the journal fragments.

### setMaxLogSizeInMb

    public Configuration setMaxLogSizeInMb(int maxLogSizeInMb)

  Set the Maximum size in megabytes of the journal fragments. Larger logs allow transactions to stay longer in-doubt but the TM pauses longer when a fragment is full.

  Parameters:
    `maxLogSizeInMb` - the maximum size in megabytes of the journal fragments.
  Returns:
    this.
  See Also:
    `getMaxLogSizeInMb()`

### isFilterLogStatus

    public boolean isFilterLogStatus()

  Should only mandatory logs be written? Enabling this parameter lowers space usage of the fragments but makes debugging more complex.

  Property name:
  bitronix.tm.journal.disk.filterLogStatus - (defaults to false)

  Returns:
    true if only mandatory logs should be written.

### setFilterLogStatus

    public Configuration setFilterLogStatus(boolean filterLogStatus)

  Set if only mandatory logs should be written. Enabling this parameter lowers space usage of the fragments but makes debugging more complex.

  Parameters:
    `filterLogStatus` - true if only mandatory logs should be written.
  Returns:
    this.
  See Also:
    `isFilterLogStatus()`

### isSkipCorruptedLogs

    public boolean isSkipCorruptedLogs()

  Should corrupted logs be skipped?

  Property name:
  bitronix.tm.journal.disk.skipCorruptedLogs - (defaults to false)

  Returns:
    true if corrupted logs should be skipped.

### setSkipCorruptedLogs

    public Configuration setSkipCorruptedLogs(boolean skipCorruptedLogs)

  Set if corrupted logs should be skipped.

  Parameters:
    `skipCorruptedLogs` - true if corrupted logs should be skipped.
  Returns:
    this.
  See Also:
    `isSkipCorruptedLogs()`

### isAsynchronous2Pc

    public boolean isAsynchronous2Pc()

  Should two phase commit be executed asynchronously? Asynchronous two phase commit can improve performance when there are many resources enlisted in transactions but is more CPU intensive due to the dynamic thread spawning requirements. It also makes debugging more complex.

  Property name:
  bitronix.tm.2pc.async - (defaults to false)

  Returns:
    true if two phase commit should be executed asynchronously.

### setAsynchronous2Pc

    public Configuration setAsynchronous2Pc(boolean asynchronous2Pc)

  Set if two phase commit should be executed asynchronously. Asynchronous two phase commit can improve performance when there are many resources enlisted in transactions but is more CPU intensive due to the dynamic thread spawning requirements. It also makes debugging more complex.

  Parameters:
    `asynchronous2Pc` - true if two phase commit should be executed asynchronously.
  Returns:
    this.
  See Also:
    `isAsynchronous2Pc()`

### isWarnAboutZeroResourceTransaction

    public boolean isWarnAboutZeroResourceTransaction()

  Should transactions executed without a single enlisted resource result in a warning or not? Most of the time transactions executed with no enlisted resource reflect a bug or a mis-configuration somewhere.

  Property name:
  bitronix.tm.2pc.warnAboutZeroResourceTransactions - (defaults to true)

  Returns:
    true if transactions executed without a single enlisted resource should result in a warning.

### setWarnAboutZeroResourceTransaction

    public Configuration setWarnAboutZeroResourceTransaction(boolean warnAboutZeroResourceTransaction)

  Set if transactions executed without a single enlisted resource should result in a warning or not. Most of the time transactions executed with no enlisted resource reflect a bug or a mis-configuration somewhere.

  Parameters:
    `warnAboutZeroResourceTransaction` - true if transactions executed without a single enlisted resource should result in a warning.
  Returns:
    this.
  See Also:
    `isWarnAboutZeroResourceTransaction()`

### isDebugZeroResourceTransaction

    public boolean isDebugZeroResourceTransaction()

  Should creation and commit call stacks of transactions executed without a single enlisted tracked and logged or not?

  Property name:
  bitronix.tm.2pc.debugZeroResourceTransactions - (defaults to false)

  Returns:
    true if creation and commit call stacks of transactions executed without a single enlisted resource should be tracked and logged.

### setDebugZeroResourceTransaction

    public Configuration setDebugZeroResourceTransaction(boolean debugZeroResourceTransaction)

  Set if creation and commit call stacks of transactions executed without a single enlisted resource should be tracked and logged.

  Parameters:
    `debugZeroResourceTransaction` - true if the creation and commit call stacks of transaction executed without a single enlisted resource should be tracked and logged.
  Returns:
    this.
  See Also:
    `isDebugZeroResourceTransaction()`, `isWarnAboutZeroResourceTransaction()`

### getDefaultTransactionTimeout

    public int getDefaultTransactionTimeout()

  Default transaction timeout in seconds.

  Property name:
  bitronix.tm.timer.defaultTransactionTimeout - (defaults to 60)

  Returns:
    the default transaction timeout in seconds.

### setDefaultTransactionTimeout

    public Configuration setDefaultTransactionTimeout(int defaultTransactionTimeout)

  Set the default transaction timeout in seconds.

  Parameters:
    `defaultTransactionTimeout` - the default transaction timeout in seconds.
  Returns:
    this.
  See Also:
    `getDefaultTransactionTimeout()`

### getGracefulShutdownInterval

    public int getGracefulShutdownInterval()

  Maximum amount of seconds the TM will wait for transactions to get done before aborting them at shutdown time.

  Property name:
  bitronix.tm.timer.gracefulShutdownInterval - (defaults to 60)

  Returns:
    the maximum amount of time in seconds.

### setGracefulShutdownInterval

    public Configuration setGracefulShutdownInterval(int gracefulShutdownInterval)

  Set the maximum amount of seconds the TM will wait for transactions to get done before aborting them at shutdown time.

  Parameters:
    `gracefulShutdownInterval` - the maximum amount of time in seconds.
  Returns:
    this.
  See Also:
    `getGracefulShutdownInterval()`

### getBackgroundRecoveryInterval

    public int getBackgroundRecoveryInterval()

  Deprecated. superceded by #getBackgroundRecoveryIntervalSeconds().

  Interval in minutes at which to run the recovery process in the background. Disabled when set to 0.

  Property name:
  bitronix.tm.timer.backgroundRecoveryInterval - (defaults to 0)

  Returns:
    the interval in minutes.

### setBackgroundRecoveryInterval

    public Configuration setBackgroundRecoveryInterval(int backgroundRecoveryInterval)

  Deprecated. superceded by #setBackgroundRecoveryIntervalSeconds(int).

  Set the interval in minutes at which to run the recovery process in the background. Disabled when set to 0.

  Parameters:
    `backgroundRecoveryInterval` - the interval in minutes.
  Returns:
    this.
  See Also:
    `getBackgroundRecoveryInterval()`

### getBackgroundRecoveryIntervalSeconds

    public int getBackgroundRecoveryIntervalSeconds()

  Interval in seconds at which to run the recovery process in the background. Disabled when set to 0.

  Property name:
  bitronix.tm.timer.backgroundRecoveryIntervalSeconds - (defaults to 60)

  Returns:
    the interval in seconds.

### setBackgroundRecoveryIntervalSeconds

    public Configuration setBackgroundRecoveryIntervalSeconds(int backgroundRecoveryIntervalSeconds)

  Set the interval in seconds at which to run the recovery process in the background. Disabled when set to 0.

  Parameters:
    `backgroundRecoveryIntervalSeconds` - the interval in minutes.
  Returns:
    this.
  See Also:
    `getBackgroundRecoveryIntervalSeconds()`

### isDisableJmx

    public boolean isDisableJmx()

  Should JMX Mbeans not be registered even if a JMX MBean server is detected?

  Property name:
  bitronix.tm.disableJmx - (defaults to false)

  Returns:
    true if JMX MBeans should never be registered.

### setDisableJmx

    public Configuration setDisableJmx(boolean disableJmx)

  Set to true if JMX Mbeans should not be registered even if a JMX MBean server is detected.

  Parameters:
    `disableJmx` - true if JMX MBeans should never be registered.
  Returns:
    this.
  See Also:
    `isDisableJmx()`

### getJndiUserTransactionName

    public String getJndiUserTransactionName()

  Get the name the `UserTransaction` should be bound under in the `BitronixContext`.

  Returns:
    the name the `UserTransaction` should be bound under in the `BitronixContext`.

### setJndiUserTransactionName

    public Configuration setJndiUserTransactionName(String jndiUserTransactionName)

  Set the name the `UserTransaction` should be bound under in the `BitronixContext`.

  Parameters:
    `jndiUserTransactionName` - the name the `UserTransaction` should be bound under in the `BitronixContext`.
  Returns:
    this.
  See Also:
    `getJndiUserTransactionName()`

### getJndiTransactionSynchronizationRegistryName

    public String getJndiTransactionSynchronizationRegistryName()

  Get the name the `TransactionSynchronizationRegistry` should be bound under in the `BitronixContext`.

  Returns:
    the name the `TransactionSynchronizationRegistry` should be bound under in the `BitronixContext`.

### setJndiTransactionSynchronizationRegistryName

    public Configuration setJndiTransactionSynchronizationRegistryName(String jndiTransactionSynchronizationRegistryName)

  Set the name the `TransactionSynchronizationRegistry` should be bound under in the `BitronixContext`.

  Parameters:
    `jndiTransactionSynchronizationRegistryName` - the name the `TransactionSynchronizationRegistry` should be bound under in the `BitronixContext`.
  Returns:
    this.
  See Also:
    `getJndiUserTransactionName()`

### getJournal

    public String getJournal()

  Get the journal implementation. Can be `disk`, `null` or a class name.

  Returns:
    the journal name.

### setJournal

    public Configuration setJournal(String journal)

  Set the journal name. Can be `disk`, `null` or a class name.

  Parameters:
    `journal` - the journal name.
  Returns:
    this.
  See Also:
    `getJournal()`

### getExceptionAnalyzer

    public String getExceptionAnalyzer()

  Get the exception analyzer implementation. Can be `null` for the default one or a class name.

  Returns:
    the exception analyzer name.

### setExceptionAnalyzer

    public Configuration setExceptionAnalyzer(String exceptionAnalyzer)

  Set the exception analyzer implementation. Can be `null` for the default one or a class name.

  Parameters:
    `exceptionAnalyzer` - the exception analyzer name.
  Returns:
    this.
  See Also:
    `getExceptionAnalyzer()`

### isCurrentNodeOnlyRecovery

    public boolean isCurrentNodeOnlyRecovery()

  Should the recovery process not recover XIDs generated with another JVM unique ID? Setting this property to true is useful in clustered environments where multiple instances of BTM are running on different nodes.

  Returns:
    true if recovery should filter out recovered XIDs that do not contain this JVM's unique ID, false otherwise.
  See Also:
    `contains the value used as the JVM unique ID.`

### setCurrentNodeOnlyRecovery

    public Configuration setCurrentNodeOnlyRecovery(boolean currentNodeOnlyRecovery)

  Set to true if recovery should filter out recovered XIDs that do not contain this JVM's unique ID, false otherwise.

  Parameters:
    `currentNodeOnlyRecovery` - true if recovery should filter out recovered XIDs that do not contain this JVM's unique ID, false otherwise.
  Returns:
    this.
  See Also:
    `isCurrentNodeOnlyRecovery()`

### isAllowMultipleLrc

    public boolean isAllowMultipleLrc()

  Should the transaction manager allow enlistment of multiple LRC resources in a single transaction? This is highly unsafe but could be useful for testing.

  Returns:
    true if the transaction manager should allow enlistment of multiple LRC resources in a single transaction, false otherwise.

### setAllowMultipleLrc

    public Configuration setAllowMultipleLrc(boolean allowMultipleLrc)

  Set to true if the transaction manager should allow enlistment of multiple LRC resources in a single transaction.

  Parameters:
    `allowMultipleLrc` - true if the transaction manager should allow enlistment of multiple LRC resources in a single transaction, false otherwise.
  Returns:
    this

### getResourceConfigurationFilename

    public String getResourceConfigurationFilename()

  `ResourceLoader` configuration file name. `ResourceLoader` will be disabled if this value is null.

  Property name:
  bitronix.tm.resource.configuration - (defaults to null)

  Returns:
    the filename of the resources configuration file or null if not configured.

### setResourceConfigurationFilename

    public Configuration setResourceConfigurationFilename(String resourceConfigurationFilename)

  Set the `ResourceLoader` configuration file name.

  Parameters:
    `resourceConfigurationFilename` - the filename of the resources configuration file or null you do not want to use the `ResourceLoader`.
  Returns:
    this.
  See Also:
    `getResourceConfigurationFilename()`

### buildServerIdArray

    public byte[] buildServerIdArray()

  Build the server ID byte array that will be prepended in generated UIDs. Once built, the value is cached for the duration of the JVM lifespan.

  Returns:
    the server ID.

### shutdown

    public void shutdown()

  Description copied from interface: `Service`
  Shutdown the service and free all held resources.

  Specified by:
    `shutdown` in interface `Service`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2013 Bitronix Software. All Rights Reserved.