2.7. Kodo Properties
Prev | Chapter 2. Configuration | Next

## 2.7. Kodo Properties

Kodo defines many configuration properties. Most of these properties are provided for advanced users who wish to customize Kodo's behavior; the majority of developers can omit them. The following properties apply to any Kodo back-end, though the given descriptions are tailored to Kodo's default JDBC store.

### 2.7.1. kodo.AggregateListeners

Property name: `kodo.AggregateListeners`

Resource adaptor config-property: `AggregateListeners`

Default:-

Description: A comma-separated list of plugin strings (see Section 2.5, “Plugin Configuration”) describing custom `kodo.jdbc.kernel.exps.JDBCAggregateListener`s to make available to all queries, in addition to the standard set of listeners. See Section 9.6, “Query Language Extensions” for details on aggregate listeners.

### 2.7.2. kodo.AutoClear

Property name: `kodo.AutoClear`

Resource adaptor config-property: `AutoClear`

Default: `datastore`

Possible values: `datastore`, `all`

Description: When to automatically clear instance state: on entering a datastore transaction, or on entering any transaction.

### 2.7.3. kodo.AutoDetach

Property name: `kodo.AutoDetach`

Resource adaptor config-property: `AutoDetach`

Default: -

Possible values: `close`, `commit`, `nontx-read`

Description: A comma-separated list of events when managed instances will be automatically detached.

### 2.7.4. kodo.BrokerFactory

Property name: `kodo.BrokerFactory`

Resource adaptor config-property: `BrokerFactory`

Default: `jdbc`

Possible values: `jdbc`, `abstractstore`, `remote`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `kodo.kernel.BrokerFactory` type to use.

### 2.7.5. kodo.BrokerImpl

Property name: `kodo.BrokerImpl`

Resource adaptor config-property: `BrokerImpl`

Default: `default`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `kodo.kernel.Broker` type to use at runtime. See Section 9.1.1, “Broker Customization” on for details.

### 2.7.6. kodo.ClassResolver

Property name: `kodo.ClassResolver`

Resource adaptor config-property: `ClassResolver`

Default: `default`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `kodo.util.ClassResolver` implementation to use for class name resolution. You may wish to plug in your own resolver if you have special classloading needs.

### 2.7.7. kodo.Compatibility

Property name: `kodo.Compatibility`

Resource adaptor config-property: `Compatibility`

Default: -

Description: Encapsulates options to mimic the behavior of previous Kodo releases. See Section 6.1, “Compatibility Configuration”.

### 2.7.8. kodo.ConnectionDriverName

Property name: `kodo.ConnectionDriverName`

Resource adaptor config-property: `ConnectionDriverName`

Default: -

Description: The full class name of either the JDBC `java.sql.Driver`, or a `javax.sql.DataSource` implementation to use to connect to the database. See Chapter 4, JDBC for details.

### 2.7.9. kodo.Connection2DriverName

Property name: `kodo.Connection2DriverName`

Resource adaptor config-property: `Connection2DriverName`

Default: -

Description: This property is equivalent to the `kodo.ConnectionDriverName` property described in Section 2.7.8, “kodo.ConnectionDriverName”, but applies to the alternate connection factory used for unmanaged connections. See Section 4.2.1, “Managed and XA DataSources” for details.

### 2.7.10. kodo.ConnectionFactory

Property name: `kodo.ConnectionFactory`

Resource adaptor config-property: `ConnectionFactory`

Default: -

Description: A `javax.sql.DataSource` to use to connect to the database. See Chapter 4, JDBC for details.

### 2.7.11. kodo.ConnectionFactory2

Property name: `kodo.ConnectionFactory2`

Resource adaptor config-property: `ConnectionFactory2`

Default: -

Description: An unmanaged `javax.sql.DataSource` to use to connect to the database. See Chapter 4, JDBC for details.

### 2.7.12. kodo.ConnectionFactoryName

Property name: `kodo.ConnectionFactoryName`

Resource adaptor config-property: `ConnectionFactoryName`

Default: -

Description: The JNDI location of a `javax.sql.DataSource` to use to connect to the database. See Chapter 4, JDBC for details.

### 2.7.13. kodo.ConnectionFactory2Name

Property name: `kodo.ConnectionFactory2Name`

Resource adaptor config-property: `ConnectionFactory2Name`

Default: -

Description: The JNDI location of an unmanaged `javax.sql.DataSource` to use to connect to the database. See Section 8.3, “XA Transactions” for details.

### 2.7.14. kodo.ConnectionFactoryMode

Property name: `kodo.ConnectionFactoryMode`

Resource adaptor config-property: `ConnectionFactoryMode`

Default: `local`

Possible values: `local`, `managed`

Description: The connection factory mode to use when integrating with the application server's managed transactions. See Section 4.2.1, “Managed and XA DataSources” for details.

### 2.7.15. kodo.ConnectionFactoryProperties

Property name: `kodo.ConnectionFactoryProperties`

Resource adaptor config-property: `ConnectionFactoryProperties`

Default: -

Description: A plugin string (see Section 2.5, “Plugin Configuration”) listing properties for configuration of the `javax.sql.DataSource` in use. See the Chapter 4, JDBC for details.

### 2.7.16. kodo.ConnectionFactory2Properties

Property name: `kodo.ConnectionFactory2Properties`

Resource adaptor config-property: `ConnectionFactory2Properties`

Default: -

Description: This property is equivalent to the `kodo.ConnectionFactoryProperties` property described in Section 2.7.15, “kodo.ConnectionFactoryProperties”, but applies to the alternate connection factory used for unmanaged connections. See Section 4.2.1, “Managed and XA DataSources” for details.

### 2.7.17. kodo.ConnectionPassword

Property name: `kodo.ConnectionPassword`

Resource adaptor config-property: `ConnectionPassword`

Default: -

Description: The password for the user specified in the `ConnectionUserName` property. See Chapter 4, JDBC for details.

### 2.7.18. kodo.Connection2Password

Property name: `kodo.Connection2Password`

Resource adaptor config-property: `Connection2Password`

Default: -

Description: This property is equivalent to the `kodo.ConnectionPassword` property described in Section 2.7.17, “kodo.ConnectionPassword”, but applies to the alternate connection factory used for unmanaged connections. See Section 4.2.1, “Managed and XA DataSources” for details.

### 2.7.19. kodo.ConnectionProperties

Property name: `kodo.ConnectionProperties`

Resource adaptor config-property: `ConnectionProperties`

Default: -

Description: A plugin string (see Section 2.5, “Plugin Configuration”) listing properties to configure the driver listed in the `ConnectionDriverName` property described below. See Chapter 4, JDBC for details.

### 2.7.20. kodo.Connection2Properties

Property name: `kodo.Connection2Properties`

Resource adaptor config-property: `Connection2Properties`

Default: -

Description: This property is equivalent to the `kodo.ConnectionProperties` property described in Section 2.7.19, “kodo.ConnectionProperties”, but applies to the alternate connection factory used for unmanaged connections. See Section 4.2.1, “Managed and XA DataSources” for details.

### 2.7.21. kodo.ConnectionURL

Property name: `kodo.ConnectionURL`

Resource adaptor config-property: `ConnectionURL`

Default: -

Description: The JDBC URL for the database. See Chapter 4, JDBC for details.

### 2.7.22. kodo.Connection2URL

Property name: `kodo.Connection2URL`

Resource adaptor config-property: `Connection2URL`

Default: -

Description: This property is equivalent to the `kodo.ConnectionURL` property described in Section 2.7.21, “kodo.ConnectionURL”, but applies to the alternate connection factory used for unmanaged connections. See Section 4.2.1, “Managed and XA DataSources” for details.

### 2.7.23. kodo.ConnectionUserName

Property name: `kodo.ConnectionUserName`

Resource adaptor config-property: `ConnectionUserName`

Default: -

Description: The user name to use when connecting to the database. See the Chapter 4, JDBC for details.

### 2.7.24. kodo.Connection2UserName

Property name: `kodo.Connection2UserName`

Resource adaptor config-property: `Connection2UserName`

Default: -

Description: This property is equivalent to the `kodo.ConnectionUserName` property described in Section 2.7.23, “kodo.ConnectionUserName”, but applies to the alternate connection factory used for unmanaged connections. See Section 4.2.1, “Managed and XA DataSources” for details.

### 2.7.25. kodo.ConnectionRetainMode

Property name: `kodo.ConnectionRetainMode`

Resource adaptor config-property: `ConnectionRetainMode`

Default: `on-demand`

Description: Controls how Kodo uses datastore connections. This property can also be specified for individual sessions. See Section 4.9, “Configuring the Use of JDBC Connections” for details.

### 2.7.26. kodo.DataCache

Property name: `kodo.DataCache`

Resource adaptor config-property: `DataCache`

Default: `false`

Description: A plugin list string (see Section 2.5, “Plugin Configuration”) describing the `kodo.datacache.DataCache`s to use for data caching. See Section 10.1.1, “Data Cache Configuration” for details.

### 2.7.27. kodo.DataCacheManager

Property name: `kodo.DataCacheManager`

Resource adaptor config-property: `DataCacheManager`

Default: `default`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `kodo.datacache.DataCacheManager` that manages the system data caches. See Section 10.1, “Data Cache” for details on data caching.

### 2.7.28. kodo.DataCacheTimeout

Property name: `kodo.DataCacheTimeout`

Resource adaptor config-property: `DataCacheTimeout`

Default: `-1`

Description: The number of milliseconds that data in the data cache is valid. Set this to -1 to indicate that data should not expire from the cache. This property can also be specified for individual classes. See Section 10.1.1, “Data Cache Configuration” for details.

### 2.7.29. kodo.DetachState

Property name: `kodo.DetachState`

Resource adaptor config-property: `DetachState`

Default: `loaded`

Possible values: `loaded`, `fgs`, `all`

Description: Determines which fields are part of the detached graph and related options. For more details, see Section 11.1.3, “Defining the Detached Object Graph”.

### 2.7.30. kodo.DynamicDataStructs

Property name: `kodo.DynamicDataStructs`

Resource adaptor config-property: `DynamicDataStructs`

Default: `false`

Description: Whether to dynamically generate customized structs to hold persistent data. Both the Kodo data cache and the remote framework rely on data structs to cache and transfer persistent state. With dynamic structs, Kodo can customize data storage for each class, eliminating the need to generate primitive wrapper objects. This saves memory and speeds up certain runtime operations. The price is a longer warm-up time for the application - generating and loading custom classes into the JVM takes time. Therefore, only set this property to `true` if you have a long-running application where the initial cost of class generation is offset by memory and speed optimization over time.

### 2.7.31. kodo.FetchBatchSize

Property name: `kodo.FetchBatchSize`

Resource adaptor config-property: `FetchBatchSize`

Default: `-1`

Description: The number of rows to fetch at once when scrolling through a result set. The fetch size can also be set at runtime. See Section 4.11, “Large Result Sets” for details.

### 2.7.32. kodo.FetchGroups

Property name: `kodo.FetchGroups`

Resource adaptor config-property: `FetchGroups`

Default: -

Description: A comma-separated list of fetch group names that are to be loaded when retrieving objects from the datastore. Fetch groups can also be set at runtime. See Section 5.6, “Fetch Groups” for details.

### 2.7.33. kodo.FilterListeners

Property name: `kodo.FilterListeners`

Resource adaptor config-property: `FilterListeners`

Default: -

Description: A comma-separated list of full plugin strings (see Section 2.5, “Plugin Configuration”) for custom `kodo.jdbc.kernel.exps.JDBCFilterListener`s to make available to all queries, in addition to the standard set of listeners. You can also add filter listeners to individual queries. See Section 9.6, “Query Language Extensions” for details.

### 2.7.34. kodo.FlushBeforeQueries

Property name: `kodo.FlushBeforeQueries`

Property name: `kodo.FlushBeforeQueries`

Resource adaptor config-property: `FlushBeforeQueries`

Default: `true`

Description: Whether or not to flush any changes made in the current transaction to the datastore before executing a query. See Section 4.9, “Configuring the Use of JDBC Connections” for details.

### 2.7.35. kodo.Id

Property name: `kodo.Id`

Resource adaptor config-property: `Id`

Default: none

Description: An environment-specific identifier for this configuration. This might correspond to a JPA persistence-unit name, or to some other more-unique value available in the current environment.

### 2.7.36. kodo.IgnoreChanges

Property name: `kodo.IgnoreChanges`

Resource adaptor config-property: `IgnoreChanges`

Default: `false`

Description: Whether to consider modifications to persistent objects made in the current transaction when evaluating queries. Setting this to `true` allows Kodo to ignore changes and execute the query directly against the datastore. A value of `false` forces Kodo to consider whether the changes in the current transaction affect the query, and if so to either evaluate the query in-memory or flush before running it against the datastore.

### 2.7.37. kodo.InverseManager

Property name: `kodo.InverseManager`

Resource adaptor config-property: `InverseManager`

Default: `false`

Possible values: `false`, `true`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing a `kodo.kernel.InverseManager` to use for managing bidirectional relations upon a flush. See Section 5.4, “Managed Inverses” for usage documentation.

### 2.7.38. kodo.LicenseKey

Property name: `kodo.LicenseKey`

Resource adaptor config-property: `LicenseKey`

Default: -

Description: This property is deprecated in favor of BEA's universal licensing system. For details on how configure Kodo to use BEA's license file, see Section 2.2, “License Configuration”. Kodo will continue to utilize legacy license keys set in this property.

### 2.7.39. kodo.LockManager

Property name: `kodo.LockManager`

Resource adaptor config-property: `LockManager`

Default: `pessimistic`

Possible values: `none`, `sjvm`, `pessimistic`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing a `kodo.kernel.LockManager` to use for acquiring locks on persistent instances during transactions.

### 2.7.40. kodo.LockTimeout

Property name: `kodo.LockTimeout`

Resource adaptor config-property: `LockTimeout`

Default: `-1`

Description: The number of milliseconds to wait for an object lock before throwing an exception, or -1 for no limit. See Section 9.4, “Object Locking” for details.

### 2.7.41. kodo.Log

Property name: `kodo.Log`

Resource adaptor config-property: `Log`

Default: `true`

Possible values: `kodo`, `commons`, `log4j`, `none`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing a `com.solarmetric.log.LogFactory` to use for logging. For details on logging, see Chapter 3, Logging.

### 2.7.42. kodo.ManagedRuntime

Property name: `kodo.ManagedRuntime`

Resource adaptor config-property: `ManagedRuntime`

Default: `auto`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `kodo.ee.ManagedRuntime` implementation to use for obtaining a reference to the `TransactionManager` in an enterprise environment. See Section 8.2, “Integrating with the Transaction Manager” on for details.

### 2.7.43. kodo.ManagementConfiguration

Property name: `kodo.ManagementConfiguration`

Resource adaptor config-property: `ManagementConfiguration`

Default: `none`

Description: Allows for configuration of management and profiling capabilities. For more information, see Chapter 12, Management and Monitoring.

### 2.7.44. kodo.Mapping

Property name: `kodo.Mapping`

Resource adaptor config-property: `Mapping`

Default: -

Description: The symbolic name of the object-to-datastore mapping to use.

For JDO use, see the equivalent `javax.jdo.option.Mapping` property described in Section 15.1, “Mapping Metadata Placement” of the JDO Overview.

### 2.7.45. kodo.MaxFetchDepth

Property name: `kodo.MaxFetchDepth`

Resource adaptor config-property: `MaxFetchDepth`

Default: `-1`

Description: The maximum depth of relations to traverse when eager fetching. Use -1 for no limit. Defaults to no limit. See Section 5.7, “Eager Fetching” for details on eager fetching.

### 2.7.46. kodo.MetaDataFactory

Property name: `kodo.MetaDataFactory`

Resource adaptor config-property: `MetaDataFactory`

Default: `jdo`

Possible values: `jdo`, `jpa`, `kodo3`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `kodo.meta.MetaDataFactory` to use to store and retrieve metadata for your persistent classes. See Section 6.2, “Metadata Factory” for details.

### 2.7.47. kodo.MetaDataRepository

Property name: `kodo.MetaDataRepository`

Resource adaptor config-property: `MetaDataRepository`

Default: `default`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `kodo.meta.MetaDataRepository` to use to store the metadata for your persistent classes.

### 2.7.48. kodo.Multithreaded

Property name: `kodo.Multithreaded`

Resource adaptor config-property: `Multithreaded`

Default: `false`

Description: Whether persistent instances and Kodo components will be accessed by multiple threads at once.

### 2.7.49. kodo.Optimistic

Property name: `kodo.Optimistic`

Resource adaptor config-property: `Optimistic`

Default: `true`

Description: Selects between optimistic and pessimistic (datastore) transactional modes.

### 2.7.50. kodo.OrphanedKeyAction

Property name: `kodo.OrphanedKeyAction`

Resource adaptor config-property: `OrphanedKeyAction`

Default: `log`

Possible values: `log`, `exception`, `none`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing a `kodo.event.OrphanedKeyAction` to invoke when Kodo discovers an orphaned datastore key. See Section 7.11, “Orphaned Keys” for details.

### 2.7.51. kodo.NontransactionalRead

Property name: `kodo.NontransactionalRead`

Resource adaptor config-property: `NontransactionalRead`

Default: `true`

Description: Whether the Kodo runtime will allow you to read data outside of a transaction.

### 2.7.52. kodo.NontransactionalWrite

Property name: `kodo.NontransactionalWrite`

Resource adaptor config-property: `NontransactionalWrite`

Default: `false`

Description: Whether you can modify persistent objects and perform persistence operations outside of a transaction. Changes will take effect on the next transaction.

### 2.7.53. kodo.PersistenceServer

Property name: `kodo.PersistenceServer`

Resource adaptor config-property: `PersistenceServer`

Default: `false`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing whether and how to service remote clients with this factory. See Section 11.2, “Remote Managers” for details.

### 2.7.54. kodo.ProxyManager

Property name: `kodo.ProxyManager`

Resource adaptor config-property: `ProxyManager`

Default: `default`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing a `kodo.util.ProxyManager` to use for proxying mutable second class objects. See Section 5.5.4.3, “Custom Proxies” for details.

### 2.7.55. kodo.QueryCache

Property name: `kodo.QueryCache`

Resource adaptor config-property: `QueryCache`

Default: `true`, when the data cache (see Section 2.7.26, “kodo.DataCache”) is also enabled, `false` otherwise.

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `kodo.datacache.QueryCache` implementation to use for caching of queries loaded from the data store. See Section 10.1.3, “Query Cache” for details.

### 2.7.56. kodo.QueryCompilationCache

Property name: `kodo.QueryCompilationCache`

Resource adaptor config-property: `QueryCompilationCache`

Default: `true`.

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `java.util.Map` to use for caching of data used during query compilation. See Section 10.2, “Query Compilation Cache” for details.

### 2.7.57. kodo.ReadLockLevel

Property name: `kodo.ReadLockLevel`

Resource adaptor config-property: `ReadLockLevel`

Default: `read`

Possible values: `none`, `read`, `write`, numeric values for lock-manager specific lock levels

Description: The default level at which to lock objects retrieved during a non-optimistic transaction. Note that for the default JDBC lock manager, `read` and `write` lock levels are equivalent.

### 2.7.58. kodo.RemoteCommitProvider

Property name: `kodo.RemoteCommitProvider`

Resource adaptor config-property: `RemoteCommitProvider`

Default: -

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `kodo.event.RemoteCommitProvider` implementation to use for distributed event notification. See Section 11.3.1, “Remote Commit Provider Configuration” for more information.

### 2.7.59. kodo.RestoreState

Property name: `kodo.RestoreState`

Resource adaptor config-property: `RestoreState`

Default: `none`

Possible values: `none`, `immutable`, `all`

Description: Whether to restore managed fields to their pre-transaction values when a rollback occurs.

### 2.7.60. kodo.RetainState

Property name: `kodo.RetainState`

Resource adaptor config-property: `RetainState`

Default: `true`

Description: Whether persistent fields retain their values on transaction commit.

### 2.7.61. kodo.RetryClassRegistration

Property name: `kodo.RetryClassRegistration`

Resource adaptor config-property: `RetryClassRegistration`

Default: `false`

Description: Controls whether to log a warning and defer registration instead of throwing an exception when a persistent class cannot be fully processed. This property should only be used in complex classloader situations where security is preventing Kodo from reading registered classes. Setting this to true unnecessarily may obscure more serious problems.

### 2.7.62. kodo.SavepointManager

Property name: `kodo.SavepointManager`

Resource adaptor config-property: SavepointManager

Default: `in-mem`

Possible values: `in-mem`, `jdbc`, `oracle`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing a `kodo.kernel.SavepointManager` to use for managing transaction savepoints. See Section 9.5, “Savepoints” for details.

### 2.7.63. kodo.Sequence

Property name: `kodo.Sequence`

Resource adaptor config-property: `Sequence`

Default: `table`

Description: A plugin string (see Section 2.5, “Plugin Configuration”) describing the `kodo.kernel.Seq` implementation to use for the system sequence. See Section 9.7, “Generators” for more information.

### 2.7.64. kodo.TransactionMode

Property name: `kodo.TransactionMode`

Resource adaptor config-property: `TransactionMode`

Default: `local`

Possible values: `local`, `managed`

Description: The default transaction mode to use. You can override this setting per-session. See Section 8.2, “Integrating with the Transaction Manager” for details.

### 2.7.65. kodo.WriteLockLevel

Property name: `kodo.WriteLockLevel`

Resource adaptor config-property: `WriteLockLevel`

Default: `write`

Possible values: `none`, `read`, `write`, numeric values for lock-manager specific lock levels

Description: The default level at which to lock objects changed during a non-optimistic transaction. Note that for the default JDBC lock manager, `read` and `write` lock levels are equivalent.

Prev | Up | Next
2.6. JDO Standard Properties | Home | 2.8. Kodo JDBC Properties