public class ELEnvInfoProvider extends java.lang.Object implements EnvInfoProvider
INFO_TYPE_CONFIGURATION, INFO_TYPE_JDBC_PROPERTIES, INFO_TYPE_SESSION_ENVIRONMENT
Constructor and Description |
---|
ELEnvInfoProvider() |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
getInfo(java.lang.String infoType,
java.lang.Object env)
Invoked by the ApplicationPool to acquire dynamic application context
before the following ApplicationModule lifecycle events:
|
int |
getNumOfRetries()
Returns the number times that the default connection strategy should
attempt to create/connect and application module instance before
failing.
|
void |
loadExpressions(java.util.Map env) |
void |
modifyInitialContext(java.lang.Object initialContext)
Invoked when the application pool is creating a new application module
instance.
|
void |
resolveExpressions(java.util.Map env) |
void |
setNumOfRetries(int numOfRetries) |
public void loadExpressions(java.util.Map env)
public void resolveExpressions(java.util.Map env)
public java.lang.Object getInfo(java.lang.String infoType, java.lang.Object env)
EnvInfoProvider
1. A Configuration is loaded
2. An ApplicationModule instance is created
3. An ApplicationModule instance is connected
4. An ApplicationModule instance is reused by an ApplicationPool
session which is differnt than the session which had previously
used it. Please see SessionCookie
for more information about ApplicationPool sessions.
An EnvInfoProvider implementation may respond to the request by modifying the passed environment. This gives the EnvInfoProvider implementation an opportunity to dynamically define Configuration properties, ApplicationModule envirionment properties, or JDBC properties.
getInfo is always invoked with a Hashtable instance though
it may also be invoked with a java.util.Properties (extends
Hashtable) in some scenarios. Any session context that is specified
by getInfo will also be available in the BC4J middle tier via
Session
and during invocation of
ApplicationModuleImpl.prepareSession(oracle.jbo.Session)
.
getInfo may also be used to dynamically specify JDBC credentials. For example, the following code snippet may be used to dynamically specify the JDBC credentials for the current ApplicationModule session (please see the article at http://otn.oracle.com/products/jdev/howtos/bc4j/howto_dynamic_jdbc.html for more information about dynamically specifying JDBC credentials to BC4J): ((Hashtable)env).put(Configuration.DB_USERNAME_PROPERTY, <username>); ((Hashtable)env).put(Configuration.DB_PASSWORD_PROPERTY, <password>); ((Hashtable)env).put(Configuration.DB_CONNECT_STRING_PROPERTY, <connect string>); return null;
Finally, getInfo may also be invoked multiple times during a connect attempt, if previous connect attempts have failed. This is intended to give the EnvInfoProvider an opportunity to correct the dynamic JDBC credentials before ultimately failing with an exception. The connection exception, if one occurred, is available to the EnvInfoProvider via the context with the DefaultConnectionStrategy.LAST_EXCEPTION key.
getInfo
in interface EnvInfoProvider
infoType
- Indicates the type of info that is being requested.
Please note that
before connecting the pooling framework may invoke getInfo multiple
times with the following values for the info parameter:
1. INFO_TYPE_SESSION_ENVIRONMENT
2. INFO_TYPE_JDBC_PROPERTIES
3. INFO_TYPE_CONFIGURATION
4. Configuration.DB_USERNAME_PROPERTY
5. Configuration.DB_PASSWORD_PROPERTY
The last two are not realy info types (they are JDBC properties)
but are maintained for legacy reasons.env
- a Hashtable object containing the environment that
will be passed to:
Transaction.connect(String, Properties)
ApplicationModuleImpl.prepareSession(oracle.jbo.Session)
for an example implementation
of an EnvInfoProvider for a JClient.
public void modifyInitialContext(java.lang.Object initialContext)
EnvInfoProvider
modifyInitialContext
in interface EnvInfoProvider
public int getNumOfRetries()
EnvInfoProvider
getNumOfRetries
in interface EnvInfoProvider
public void setNumOfRetries(int numOfRetries)