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.
			Property name:
			kodo.AggregateListeners
			
			Resource adaptor config-property:
			AggregateListeners
			
Default:-
			Description:
			A comma-separated list of plugin strings
			(see Section 2.4, “Plugin Configuration”) describing custom
			
			kodo.jdbc.kernel.exps.JDBCAggregateListeners
			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.
			
			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.
			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.
			Property name:
			kodo.BrokerFactory
			
			Resource adaptor config-property: 
			BrokerFactory
			
			Default: jdbc
			
			Possible values:
			jdbc, abstractstore,
			remote
			
			Description:  A plugin string
			(see Section 2.4, “Plugin Configuration”)
			describing the 
			kodo.kernel.BrokerFactory type
			to use.
			
			Property name:
			kodo.BrokerImpl
			
			Resource adaptor config-property: 
			BrokerImpl
			
			Default: default
			
			Description:  A plugin string
			(see Section 2.4, “Plugin Configuration”) describing the 
			
			kodo.kernel.Broker type to use at runtime.  
			See Section 9.1.1, “Broker Customization” on for details.
			
			Property name:
			kodo.ClassResolver
			
			Resource adaptor config-property:
			ClassResolver
			
			Default: default
			
			Description:  A plugin string
			(see Section 2.4, “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.
			
			Property name:
			kodo.Compatibility
			
			Resource adaptor config-property:
			Compatibility
			
Default: -
Description: Encapsulates options to mimic the behavior of previous Kodo releases. See Section 5.1, “Compatibility Configuration”.
			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.
			
			Property name:
			kodo.Connection2DriverName
			
			Resource adaptor config-property:
			Connection2DriverName
			
Default: -
			Description:
			This property is equivalent to the
			kodo.ConnectionDriverName property described in
			Section 2.6.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.
			
			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.
			
			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.
			
			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.
			
			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.
			
			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.
			Property name:
			kodo.ConnectionFactoryProperties
			
			Resource adaptor config-property:
			ConnectionFactoryProperties
			
Default: -
			Description:  A plugin string
			(see Section 2.4, “Plugin Configuration”) listing
			properties for configuration of the javax.sql.DataSource
			 in use.  See the Chapter 4, JDBC 
			for details.
			
			Property name:
			kodo.ConnectionFactory2Properties
			
			Resource adaptor config-property:
			ConnectionFactory2Properties
			
Default: -
			Description:
			This property is equivalent to the
			kodo.ConnectionFactoryProperties property
			described in Section 2.6.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.
			
			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.
			
			Property name:
			kodo.Connection2Password
			
			Resource adaptor config-property:
			Connection2Password
			
Default: -
			Description:
			This property is equivalent to the kodo.ConnectionPassword
			 property described in 
			Section 2.6.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.
			
			Property name:
			kodo.ConnectionProperties
			
			Resource adaptor config-property:
			ConnectionProperties
			
Default: -
			Description:  A plugin string (see
			Section 2.4, “Plugin Configuration”) listing properties to 
			configure the driver listed in the ConnectionDriverName
			 property described below.  See
			Chapter 4, JDBC for details.
			
			Property name:
			kodo.Connection2Properties
			
			Resource adaptor config-property:
			Connection2Properties
			
Default: -
			Description:
			This property is equivalent to the
			kodo.ConnectionProperties property
			described in Section 2.6.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.
			
			Property name:
			kodo.ConnectionURL
			
			Resource adaptor config-property: 
			ConnectionURL
			
Default: -
Description: The JDBC URL for the database. See Chapter 4, JDBC for details.
			Property name:
			kodo.Connection2URL
			
			Resource adaptor config-property:
			Connection2URL
			
Default: -
			Description:
			This property is equivalent to the
			kodo.ConnectionURL property
			described in Section 2.6.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.
			
			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.
			Property name:
			kodo.Connection2UserName
			
			Resource adaptor config-property:
			Connection2UserName
			
Default: -
			Description:
			This property is equivalent to the
			kodo.ConnectionUserName property
			described in Section 2.6.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.
			
			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.
			Property name:
			kodo.DataCache
			
			Resource adaptor config-property:
			DataCache
			
			Default: false
			
			Description:  A plugin list string
			(see Section 2.4, “Plugin Configuration”)
			describing the 
			kodo.datacache.DataCaches to
			use for data caching. See Section 10.1.1, “Data Cache Configuration” 
			for details.
			
			Property name:
			kodo.DataCacheManager
			
			Resource adaptor config-property:
			DataCacheManager
			
			Default: default
			
			Description:  A plugin string
			(see Section 2.4, “Plugin Configuration”)
			describing the 
			
			kodo.datacache.DataCacheManager that
			manages the system data caches. See 
			Section 10.1, “Data Cache” for details on data caching.
			
			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.
			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”.
			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.
			
			Property name:
			kodo.ExecutionContextNameProvider
			
			Resource adaptor config-property:
			ExecutionContextNameProvider
			
			Default: stack
			
Description: Allows for configuration of naming the execution context for management and profiling information. For more information, see Section 12.1.6, “Configuring the Execution Context Name Provider”.
			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.
			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.
			Property name:
			kodo.FilterListeners
			
			Resource adaptor config-property:
			FilterListeners
			
Default: -
			Description:  A comma-separated
			list of full plugin strings (see
			Section 2.4, “Plugin Configuration”) for custom
			
			kodo.jdbc.kernel.exps.JDBCFilterListeners
			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.
			
			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.
			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.
			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.  
			
			Property name:
			kodo.InverseManager
			
			Resource adaptor config-property:
			InverseManager
			
			Default:
			false
			
			Possible values:
			false, true
			
			Description:  A plugin string
			(see Section 2.4, “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.
			
			Property name:
			kodo.JMX
			
			Resource adaptor config-property:
			JMX
			
			Default: none
			
Description: Allows for configuration of management capabilities. For more information, see Chapter 12, Management and Monitoring.
			Property name:
			kodo.LockManager
			
			Resource adaptor config-property:
			LockManager
			
			Default:
			pessimistic
			
			Possible values:
			none, sjvm,
			pessimistic
			
			Description:  A plugin string
			(see Section 2.4, “Plugin Configuration”)
			kodo.kernel.LockManager
			to use for acquiring locks on persistent instances
			during transactions.
			
			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.
			Property name:
			kodo.Log
			
			Resource adaptor config-property:
			Log
			
			Default:
			true
			
			Possible values:
			kodo, commons,
			log4j, none
			
			Description: A plugin
			string (see Section 2.4, “Plugin Configuration”)
			describing a 
			com.solarmetric.log.LogFactory
			to use for logging. For details on logging,
			see Chapter 3, Logging.
			
			Property name:
			kodo.ManagedRuntime
			
			Resource adaptor config-property:
			ManagedRuntime
			
			Default: auto
			
			Description:  A plugin string
			(see Section 2.4, “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.
			
			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.
			
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.
			Property name:
			kodo.MetaDataFactory
			
			Resource adaptor config-property:
			MetaDataFactory
			
			Default: jdo
			
			Possible values:
			jdo, jpa, 
			kodo3
			
			Description: A plugin string
			(see Section 2.4, “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.
			
			Property name:
			kodo.MetaDataRepository
			
			Resource adaptor config-property:
			MetaDataRepository
			
			Default: default
			
			Description: A plugin string
			(see Section 2.4, “Plugin Configuration”)
			describing the 
			kodo.meta.MetaDataRepository to 
			use to store the metadata for your persistent classes.
			
			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.
			Property name:
			kodo.Optimistic
			
			Resource adaptor config-property: 
			Optimistic
			
			Default: true
			
Description: Selects between optimistic and pessimistic (datastore) transactional modes.
			Property name:
			kodo.OrphanedKeyAction
			
			Resource adaptor config-property: 
			OrphanedKeyAction
			
			Default: 
			log
			
			Possible values: 
			log, exception,
			none
			
			Description:  A plugin string
			(see Section 2.4, “Plugin Configuration”)
			describing a 
			kodo.event.OrphanedKeyAction
			to invoke when Kodo discovers an orphaned datastore key.
			See Section 7.11, “Orphaned Keys” for details.
			
			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.
			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.
			Property name:
			kodo.PersistenceServer
			
			Resource adaptor config-property: 
			PersistenceServer
			
			Default: false
			
Description: A plugin string (see Section 2.4, “Plugin Configuration”) describing whether and how to service remote clients with this factory. See Section 11.2, “Remote Managers” for details.
			Property name:
			kodo.Profiling
			
			Resource adaptor config-property:
			Profiling
			
			Default: none
			
Description: Allows for configuration of profiling capabilities. For more information, see Chapter 13, Profiling.
			Property name:
			kodo.ProxyManager
			
			Resource adaptor config-property: 
			ProxyManager
			
			Default: default
			
			Description:  A plugin string
			(see Section 2.4, “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.
			
			Property name:
			kodo.QueryCache
			
			Resource adaptor config-property: 
			QueryCache
			
			Default: true,
			when the data cache (see Section 2.6.26, “kodo.DataCache”) is
			also enabled, false otherwise.
			
			Description:  A plugin string
			(see Section 2.4, “Plugin Configuration”) describing the 
			
			kodo.datacache.QueryCache 
			implementation to use for caching of queries loaded from the data 
			store.  See Section 10.1.4, “Query Cache” for details.
			
			Property name:
			kodo.QueryCompilationCache
			
			Resource adaptor config-property: 
			QueryCompilationCache
			
			Default: true.
			
			Description: A plugin
			string (see Section 2.4, “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.
			
			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.
			
			Property name:
			kodo.RemoteCommitProvider
			
			Resource adaptor config-property: 
			RemoteCommitProvider
			
Default: -
			Description:  A plugin string
			(see Section 2.4, “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.
			
			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.
			Property name:
			kodo.RetainState
			
			Resource adaptor config-property: 
			RetainState
			
			Default: true
			
Description: Whether persistent fields retain their values on transaction commit.
			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.
			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.4, “Plugin Configuration”) describing a 
			kodo.kernel.SavepointManager
			to use for managing transaction savepoints.  See Section 9.5, “Savepoints” for details.
			
			Property name:
			kodo.Sequence
			
			Resource adaptor config-property: 
			Sequence
			
			Default: table
			
			Description: A plugin string
			(see Section 2.4, “Plugin Configuration”) describing the
			
			kodo.kernel.Seq implementation to use for the
			system sequence.  See Section 9.7, “Generators” for 
			more information.
			
			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.
			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.