Index of all properties that can be used to configure the EJB Container

Container Level Properties (all require setting using a -D switch)

Example: [using standalone Container]
prompt% vbj -DEJBDebug com.inprise.ejb.Container ejbcontainer beans.jar -jts -jns -jss -jdb
 
EJBCopyArgs If set then arguments are copied even for intra-bean calls
This flag causes arguments to be copied in intra-bean in-process calls.  By default, intra-bean calls  use pass-by-reference semantics.  Enable this flag to cause intra-bean calls to use pass-by-value semantics.  Note that a number of EJBeans will run significanly slower using pass-by-value semantics.  
EJBUseJavaSerialization If set it overrides use of IIOP serialization with Java serialization for things like session passivation, etc.
EJBNoSleep Typically set from a main program that embeds a Container.  Setting the property causes the EJB container to not block the current thread, thereby returning the control back to user code.
EJBNoClassLoader Set this to turn OFF custom classloading of EJBs
EJBValidatingParser Set to "false" if you do not want the XML parser to check validity (it validates by default)
EJBNoLibraryWarning Deprecated. Do not use.
EJBAllowUnrecoverableCompletion Setting this instructs the Container builtin JTS implementation to do a non-recoverable (e.g., non two-phase) completion when there are multiple Resource registrations. Use at your own peril, provided only as a developer friendly feature.
EJBRecycleTransactions Internal. Not for end user. Performance optimization flag. Set by default. 
EJBPassivationTimeout Default is 5 sec.
EJBDefaultStorageTimeout If there is no session timeout in the XML descriptor or it is 0, then use this as the default timeout. 
ejb.jsec Unsupported in 4.0 release

Debug/Diagnostics Properties

EJBDebug Turns on useful debugging information that tells what the Container is doing. Installs debugging message interceptors. 
EJBDiagnosticPeriod Default is 5 sec. Interval for Container statistics printouts.
EJBQuietTimers
EJBTimers This flag turns on timer diagnostics, which allow the user to see how the Container is using the CPU. 
EJBDetailTimers This flag turns on timer diagnostics, prints all the information that EJBTimers flag plus method level timing information, which allows the developer to see how different methods of the bean are using CPU. Please note that the console output of this flag will require you to widen your terminal to avoid wrapping of long lines. 
XMLDebug Prints out detailed information  on the reading phase of XML depoloyment descriptor
EJBSynchronizationDebug Internal
EJBTransactionDebugTimeout Internal
InitDebug Internal
EJBJndiDebug Internal
DataStoreDebug Internal
DataStoreDebugGC Internal
EJBEntityTableDebug Internal

JNDI Properties already have a property file in vbejb.jar, no user intervention necessary

java.naming.factory.initial=com.inprise.j2ee.jndi.CtxFactory
java.naming.factory.url.pkgs=com.inprise.j2ee.jndi
 

Entity Bean Customization Properties (settable in XML deployment descriptor ejb-inprise.xml)

These are set in XML like this
<inprise-specific>
    <enterprise-beans>
        <entity>
          <ejb-name>data</ejb-name>
          <bean-home-name>data</bean-home-name>
          <property>
            <prop-name>ejb.optimisticConcurrencyBehavior</prop-name>
            <prop-type>Enum</prop-type>
            <prop-value>UpdateAllFields</prop-value>
          </property>
        </entity>
    </enterprise-beans>
</inprise-specific>

All such properties are optional. They have sensible defaults. The allowed properties are:
 
ejb.cmp.manager  Specify the name of a class implementing the interface         com.inprise.ejb.cmp.Manager.  An instance of this class is used to perform CMP.  
ejb.maxBeansInPool  This option specifies the maximum number of beans in the ready pool. If the ready pool exceeds this limit, entities will be removed from the container by calling unsetEntityContext.  

The default setting is1000.

ejb.maxBeansInCache This option specifies the maximum number of beans in the "Option A" cache (see ejb.transactionCommitMode below).  If the cache exceeds this limit, entities will be moved to the ready pool by calling ejbPassivate.  

The default setting is 1000.

ejb.cmp.optimisticConcurrencyBehavior         UpdateModifiedFields
        UpdateAllFields
        VerifyModifiedFields
        VerifyAllFields
ejb.transactionCommitMode  This flag indicates the disposition of an entity bean with respect to a transaction. The values are:

"A" or "Exclusive" 
This entity has exclusive access to the particular table in the DB.   Thus, the state of the bean at the end of the last committed transaction can be assumed to be the state of the bean at the beginning of the next transaction.  E.g. cache the beans across transactions.

"B" or "Shared"
This entity shares access to the particular table in the DB.   However, for performance reasons, the a particular bean
remains associated with a particular primary key between transactions, to avoid extraneous calls to ejbActivate and ejbPassivate between transactions.  E.g. the bean stays in the active pool.  This setting is the default.

"C" or "None"  
This entity shares access to the particular table in the DB.   A particular bean does not remain associated with a particular 
primary key between transactions, but goes back to ready pool after every transaction.  This is generally not a useful setting.

ejb.findByPrimaryKeyBehavior  This flag indicates the desired behavior of the findByPrimaryKey method. The values are:

"Verify"
 This is the standard behavior, for findByPrimaryKey to simply verify that the specified primary key exists in the database. 

"Load"  
This behavior causes the bean's state to be loaded into the
container when findByPrimaryKey is invoked, if the finder call is running in an active transaction.  The assumption is that found objects will typically be used, and it is optimal to go ahead and load the object's state at find time.  This setting is the default.

"None"
This behavior indicates that findByPrimaryKey should be a 
noop.  Basically, this causes the verification of the bean to be
deferred until the object is actually used.  Since it is always the case that an object could be removed between calling find and actually using the object, for most programs this optimization will not cause a change in client logic.

CMP Properties

They are all surfaced as XML elements in the Inprise specific descriptor. Please refer to the DTD and supporting documentation.
There is one System property relevant to CMP - "EJBNoDiffs" . Setting this using a -D turns OFF the diff detection mechanism built into the CMP engine for tuned writes.
 

DataSource Properties

reuseStatements  false/true
        Set statement reuse across transctions to be on or off.
        On by default, except for "datastore" and "db2" dialects
dialect     "none",
    "jdatastore",
    "oracle",
    "sybase",
    "mssqlserver",
    "db2",
    "interbase",
    "informix"

Turns on automatic table creation and tells the CMP engine which database to target (since the table creation syntax and SQL datatypes vary considerably)