|
Oracle ADF Model and Business Components API Reference 10.1.2 B14022-01 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
This is the ApplicationPool interface. It needs to be implemented by any
class that is intended to provide a customized pool interface. Look at
ApplicationPoolImpl for the default implementation.
View Implementation of ApplicationPool
View Implementation of ApplicationPoolImpl
Method Summary | |
void |
addSessionCookie(SessionCookie cookie)
Add an existing session cookie to the pool. |
void |
checkin(ApplicationModule instance)
Deprecated. Replaced by: SessionCookie.releaseApplicationModule(int) .
Application developers should invoke:
SessionCookie.releaseApplicationModule(SessionCookie.SHARED_UNMANAGED_RELEASE_MODE)
instead of this method. A session cookie instance may be acquired by
invoking:
This change was necessary to support the SessionCookie interface. Please
see:
|
java.lang.String |
checkinWithSessionState(ApplicationModule appModule)
Deprecated. Replaced by: SessionCookie.releaseApplicationModule(int) .
Application developers should invoke: SessionCookie.releaseApplicationModule(SessionCookie.SHARED_MANAGED_RELEASE_MODE)
instead of this method. A session cookie instance may be acquired by
invoking:
This change was necessary to support the SessionCookie interface. Please
see:
for more information about using SessionCookies with the application pool. |
ApplicationModule |
checkout()
Deprecated. Replaced by: ApplicationModuleRef.useApplicationModule() .
Application developers should invoke: SessionCookie.useApplicationModule()
instead of this method. A session cookie instance may be acquired by
invoking:
This change was necessary to support the SessionCookie interface. Please
see:
|
ApplicationModule |
checkout(java.lang.String sessionId)
Deprecated. Replaced by: ApplicationModuleRef.useApplicationModule() .
Application developers should invoke: SessionCookie.useApplicationModule()
instead of this method. A session cookie instance may be acquired by
invoking:
This change was necessary to support the SessionCookie interface. Please
see:
for more information about using SessionCookies with the application pool. |
void |
commitAndSyncCache(ApplicationModule instance)
Given an intitial Application Module instance, synchronizes the caches of all Application Module instances in the pool. |
ApplicationModule |
createNewInstance()
Deprecated. Replaced by ConnectionStrategy.createApplicationModule(SessionCookie, EnvInfoProvider) .
All extending logic that was implemented here should be implemented in a
custom ConnectionStrategy class that extends:
DefaultConnectionStrategy .
|
SessionCookie |
createSessionCookie(java.lang.String applicationId,
java.lang.String sessionId,
java.util.Properties properties)
Create a session cookie for access to this pool. |
void |
dumpPoolStatistics(java.io.PrintWriter pw)
|
java.lang.String |
getApplicationModuleClass()
Return the class name of the application modules being managed by the pool. |
int |
getAvailableInstanceCount()
Returns the available number of instances in the Application Pool. |
int |
getAvailableNumPools()
Deprecated. Replaced by getAvailableInstanceCount() |
ConnectionStrategy |
getConnectionStrategy()
Get the application module strategy that will be used to create, connect, disconnect, and reconnect the application module. |
java.lang.String |
getConnectString()
Deprecated. This value should be passed to the pool connection strategy as SessionCookie environment or by implementing an EnvInfoProvider. The value may be acquired from the ApplicationPool or SessionCookie environment by using the Configuration.DB_CONNECT_STRING_PROPERTY key. |
long |
getCreationTimeMillis(ApplicationModule instance)
Gets the time when the app module was created (in milli-secs). |
java.lang.String |
getEnvConfigurationName()
Return the name of the BC4J configuration that was used to initialize the pool environment. |
java.util.Hashtable |
getEnvironment()
Returns the Hashtable that was used to initialize the Context for the application module instances. |
int |
getInitPoolSize()
Get the initial number of application module instances which will be instantiated in the application pool. |
ApplicationModule |
getInstance(int index)
Deprecated. Implementation detail. This method has been made protected. Pool clients should not access pooled instances directly. Use ApplicationModuleRef.useApplicationModule()
to acquire ApplicationModule instances instead.
|
int |
getInstanceCount()
Returns the number of instances that the Application Pool has created. |
int |
getMaxPoolSize()
Get the maximum number of application module instances which may be referenced by the application pool. |
java.lang.String |
getName()
Returns the pool's name. |
java.lang.String |
getPassword()
Deprecated. This value should be passed to the pool connection strategy as SessionCookie environment or by implementing an EnvInfoProvider. The value may be acquired from the ApplicationPool or SessionCookie environment by using the Configuration.DB_PASSWORD_PROPERTY key. |
java.lang.String |
getPoolName()
Deprecated. Replaced by getName() . |
SessionCookieFactory |
getSessionCookieFactory()
Get the factory that will be used to create new session cookie instances. |
long |
getSignature()
Return a signature for the application pool. |
Statistics |
getStatistics()
Returns the pool statistics. |
long |
getTimeToCreateMillis(ApplicationModule instance)
Gets the time that it will tke to create the application module (in milli-secs). |
java.util.Hashtable |
getUserData()
Returns the User Data hashtable. |
java.lang.String |
getUserName()
Deprecated. This value should be passed to the pool connection strategy as SessionCookie environment or by implementing an EnvInfoProvider. The value may be acquired from the ApplicationPool or SessionCookie environment by using the Configuration.DB_USERNAME_PROPERTY key. |
void |
initialize(java.lang.String poolName,
java.lang.String applicationModule,
java.lang.String connectString,
java.util.Hashtable env)
This initializes the ApplicationPool. |
boolean |
isAvailable(ApplicationModule appModule)
Deprecated. Implementation detail. This method has been made protected. |
void |
releaseApplicationModule(SessionCookie cookie,
boolean manageState)
Deprecated. since 9.0.3 Use {@link #releaseApplicationModule(SessionCookie,int) instead. If state management is required then invoke: releaseApplicationModule(cookie, SessionCookie.SHARED_MANAGED_RELEASE_MODE) Otherwise invoke: releaseApplicationModule(cookie, SessionCookie.SHARED_UNMANAGED_RELEASE_MODE) |
void |
releaseApplicationModule(SessionCookie cookie,
int releaseFlags)
Mark the session's application module as available for reuse by other sessions. |
void |
releaseInstances()
Deprecated. Replaced by: ResourcePool.removeResources() . Method
may be confused with releaseResource. |
java.lang.Object |
removeResource(java.lang.Object resource)
Remove the resource from the application pool. |
com.sun.java.util.collections.ArrayList |
removeResources()
Remove all of the pool application module instances that have been created so far. |
void |
removeSessionCookie(SessionCookie cookie)
Destroy a session cookie. |
void |
setAvailable(ApplicationModule appModule)
This method may be used by clients if they are manually populating the pool with application module instances using #createInstance()
to notify the pool when a new instance is ready for use by other threads. |
void |
setConnectionStrategy(ConnectionStrategy strategy)
Set the application module strategy that will be used to create, connect, disconnect, and reconnect the application module. |
void |
setPassword(java.lang.String sPassword)
Deprecated. This value should be passed to the pool connection strategy as SessionCookie environment or by implementing an EnvInfoProvider. The value may be set in the ApplicationPool or SessionCookie environment by using the Configuration.DB_PASSWORD_PROPERTY key. |
void |
setSessionCookieFactory(SessionCookieFactory sessionCookieFactory)
Set the factory that will be used to create new session cookie instances. |
void |
setUserData(java.util.Hashtable data)
Replaces the userData with the new Hashtable. |
void |
setUserName(java.lang.String sUser)
Deprecated. This value should be passed to the pool connection strategy as SessionCookie environment or by implementing an EnvInfoProvider. The value may be set in the ApplicationPool or SessionCookie environment by using the Configuration.DB_USERNAME_PROPERTY key. |
ApplicationModule |
useApplicationModule(SessionCookie cookie,
boolean checkout)
Returns an application module for the specified session cookie. |
boolean |
validateSessionCookie(SessionCookie cookie)
Validate that a session cookie is a valid handle for this pool. |
boolean |
validateSessionCookieInPool(SessionCookie cookie)
Validate that a session cookie is a member of this pool. |
Method Detail |
public void initialize(java.lang.String poolName, java.lang.String applicationModule, java.lang.String connectString, java.util.Hashtable env)
poolName
- the name of the application module pool.applicationModule
- name of the application module for which the pool
will be created.connectString
- the connection string to use to connect to the
database.env
- name of the hash table containing the environment variables for
the selected platform.public java.lang.String getApplicationModuleClass()
public java.util.Hashtable getEnvironment()
public void setAvailable(ApplicationModule appModule)
#createInstance()
to notify the pool when a new instance is ready for use by other threads.
Pool clients should not use this method after an application module
has been set available for the first time.
appModule
- the application module which will be made availablepublic ApplicationModule useApplicationModule(SessionCookie cookie, boolean checkout)
The requesting thread may obtain an application module with the state from a previous request by passing the previous request's cookie instance. The cookie should be used by the pool to re-create an application module state from a previous request.
If an "empty" session cookie is specified then the pool should return a
stateless application module instance. An empty session cookie is defined
as a cookie that does not reference a previous application module state.
Please see SessionCookie.getPassivationId()
for more information regarding application state maintenance.
In order to persist some internal state information, the application pool may mutate the specified cookie. Application pool clients should consequently be careful to reference the cookie value that is returned in the cookie value after checkout has been invoked.
cookie
- an empty/previous session cookiepublic void releaseApplicationModule(SessionCookie cookie, boolean manageState)
Use {@link #releaseApplicationModule(SessionCookie,int) instead. If state management is required then invoke:
releaseApplicationModule(cookie, SessionCookie.SHARED_MANAGED_RELEASE_MODE)
Otherwise invoke:
releaseApplicationModule(cookie, SessionCookie.SHARED_UNMANAGED_RELEASE_MODE)
If the managed flag is true then the pool will maintain logical application module state while still sharing an application module resource between sessions.
When an application module is marked available with managed state the application module will be passivated immediately if failover support has been requested (default). If failover support has been disabled, through the jbo.DoFailover system parameter, the application module will not be passivated until it is re-used by a session other than the session releasing in the application module.
Please see SessionCookie
for more
information regarding session identification and application state
tracking.
cookie
- a session cookie equal to the session cookie that was
generated during checkoutmanageState
- indicates if the session's application module state
should be managed by the pool
public void releaseApplicationModule(SessionCookie cookie, int releaseFlags)
If the managed flag is true then the pool will maintain logical application module state while still sharing an application module resource between sessions.
When an application module is marked available with managed state the application module will be passivated immediately if failover support has been requested (default). If failover support has been disabled, through the jbo.DoFailover system parameter, the application module will not be passivated until it is re-used by a session other than the session releasing in the application module.
Please see SessionCookie
for more
information regarding session identification and application state
tracking.
The ApplicationPool supports the following release modes:
SHARED_MANAGED_RELEASE_MODE: Release the ApplicationModule for re-use by other sessions. Manage this session's ApplicationModule state.
SHARED_UNMANAGED_RELEASE_MODE: Release the ApplicationModule for re-use by other sessions. Do not manage this session's ApplicationModule state.
RESERVED_UNMANAGED_RELEASE_MODE: Do not release the ApplicationModule for re-use by other sessions. Do not manage this session's ApplicationModule state. This mode would be used if failover is not required.
RESERVED_MANAGED_RELEASE_MODE: Do not release the ApplicationModule for re-use by other sessions. Manage this session's ApplicationModule state. This mode would be used if failover is required for a reserved ApplicationModule instance.
cookie
- a session cookie equal to the session cookie that was
generated during checkoutreleaseFlags
- the desired releaseFlags. Must be one of the
following release modes:
SHARED_MANAGED_RELEASE_MODE
SHARED_UNMANAGED_RELEASE_MODE
RESERVED_UNMANAGED_RELEASE_MODE
RESERVED_MANAGED_RELEASE_MODEpublic com.sun.java.util.collections.ArrayList removeResources()
The remove() method is called on the Application Modules being represented by the application instance class
public java.lang.Object removeResource(java.lang.Object resource)
The remove() method is called on the Application Module being represented by the application instance class
public int getInstanceCount()
public int getAvailableInstanceCount()
public java.lang.String getName()
public java.util.Hashtable getUserData()
public void setUserData(java.util.Hashtable data)
public long getTimeToCreateMillis(ApplicationModule instance)
instance
- the application module instance for which you want to
know how long it will take to create it.public long getCreationTimeMillis(ApplicationModule instance)
instance
- the application module instance for which you want to
know the time of creation.public void commitAndSyncCache(ApplicationModule instance)
This method commits the transaction for instance. Then, it loops through all other instances of the Application Module in the pool and synchronizes their caches with the changes committed by instance. For example:
// Insert a new row row = voEmp1.createRow(); row.setAttribute("EmpNum", new Integer(9999)); row.setAttribute("EmpName", "NewPers"); row.setAttribute("EmpJob", "JOBX"); voEmp1.insertRow(row); // Commit the changes for the specified instance, then sync // them with the rest of the Application Module instances. pool1.commitAndSyncCache(am1);
instance
- an instance of an Application Module in the pool.public ConnectionStrategy getConnectionStrategy()
public void setConnectionStrategy(ConnectionStrategy strategy)
public SessionCookieFactory getSessionCookieFactory()
public void setSessionCookieFactory(SessionCookieFactory sessionCookieFactory)
public SessionCookie createSessionCookie(java.lang.String applicationId, java.lang.String sessionId, java.util.Properties properties)
applicationId
- an identifier which may be used to uniquely
identify this cookie within the context of a session
sessionId
- an option identifier which may be used to uniquely
identify this cookie across sessions.
properties
- an optional properties object which may be used
to pass additional creation properties to the SessionCookieFactory.public void addSessionCookie(SessionCookie cookie)
createSessionCookie(String, String, Properties)
,
validateSessionCookie(SessionCookie)
public void removeSessionCookie(SessionCookie cookie)
public boolean validateSessionCookie(SessionCookie cookie)
This method only validates that a SessionCookie was created by an
ApplicationPool with the same signature as the target ApplicationPool. It
is used by the default ApplicationPool implementation to verify that a
SessionCookie may be added to the target pool. It does not validate that
the SessionCookie is a valid member of the target ApplicationPool. Please
use validateSessionCookieInPool(SessionCookie)
to validate that a SessionCookie is a member of the target
ApplicationPool.
getSignature()
,
validateSessionCookieInPool(SessionCookie)
public boolean validateSessionCookieInPool(SessionCookie cookie)
public long getSignature()
The pool signature will also be used to determine whether a cookie is a valid handle to the pool instance. The pool signature value should be unique across pools and consistent across VMs.
validateSessionCookie(SessionCookie)
public void dumpPoolStatistics(java.io.PrintWriter pw)
public Statistics getStatistics()
public int getMaxPoolSize()
public int getInitPoolSize()
public java.lang.String getEnvConfigurationName()
public boolean isAvailable(ApplicationModule appModule)
public java.lang.String getPoolName()
getName()
.
getName()
public ApplicationModule getInstance(int index)
ApplicationModuleRef.useApplicationModule()
to acquire ApplicationModule instances instead.
public ApplicationModule createNewInstance() throws java.lang.Exception
ConnectionStrategy.createApplicationModule(SessionCookie, EnvInfoProvider)
.
All extending logic that was implemented here should be implemented in a
custom ConnectionStrategy class that extends:
DefaultConnectionStrategy
.
java.lang.Exception
ConnectionStrategy.createApplicationModule(SessionCookie, EnvInfoProvider)
public int getAvailableNumPools()
getAvailableInstanceCount()
getAvailableInstanceCount()
public void checkin(ApplicationModule instance)
SessionCookie.releaseApplicationModule(int)
.
Application developers should invoke:
SessionCookie.releaseApplicationModule(SessionCookie.SHARED_UNMANAGED_RELEASE_MODE)
instead of this method. A session cookie instance may be acquired by
invoking:
createSessionCookie(String, String, Properties)
.
This change was necessary to support the SessionCookie interface. Please
see:
SessionCookie
for more information about using SessionCookies with the application pool.
instance
- name of the application module instance to check in.
SessionCookie.releaseApplicationModule(int)
,
ApplicationModuleRef.useApplicationModule()
public java.lang.String checkinWithSessionState(ApplicationModule appModule)
SessionCookie.releaseApplicationModule(int)
.
Application developers should invoke: SessionCookie.releaseApplicationModule(SessionCookie.SHARED_MANAGED_RELEASE_MODE)
instead of this method. A session cookie instance may be acquired by
invoking:
createSessionCookie(String, String, Properties)
.
This change was necessary to support the SessionCookie interface. Please
see:
SessionCookie
for more information about using SessionCookies with the application pool.
This method should be used by pool clients that wish to maintain logical application module state while still sharing an application module resource across requests. The method returns a system generated session id for the check-in that should be used as the unique application module identifier by the client session.
The application module will be passivated immediately if failover support has been requested (default). If failover support has been disable, through the jbo.DoFailover system parameter, the application module will not be passivated until it is re-used by a session other than the session checking in the application module.
appModule
- the application module that will be checked in
SessionCookie.releaseApplicationModule(int)
,
ApplicationModuleRef.useApplicationModule()
public ApplicationModule checkout() throws java.lang.Exception
ApplicationModuleRef.useApplicationModule()
.
Application developers should invoke: SessionCookie.useApplicationModule()
instead of this method. A session cookie instance may be acquired by
invoking:
createSessionCookie(String, String, Properties)
.
This change was necessary to support the SessionCookie interface. Please
see:
SessionCookie
for more information about using SessionCookies with the application pool.
java.lang.Exception
ApplicationModuleRef.useApplicationModule()
,
SessionCookie.releaseApplicationModule(int)
public ApplicationModule checkout(java.lang.String sessionId)
ApplicationModuleRef.useApplicationModule()
.
Application developers should invoke: SessionCookie.useApplicationModule()
instead of this method. A session cookie instance may be acquired by
invoking:
createSessionCookie(String, String, Properties)
.
This change was necessary to support the SessionCookie interface. Please
see:
SessionCookie
for more information about using SessionCookies with the application pool.
checkinWithSessionState(ApplicationModule)
against this application module pool.
The session id should be used to re-create an application module state from a previous request.
If an unrecognized session id is specified then the pool should return a stateless application module instance.
sessionId
- a session identifier from a previous requestApplicationModuleRef.useApplicationModule()
,
SessionCookie.releaseApplicationModule(int)
public java.lang.String getUserName()
ConnectionStrategy
,
EnvInfoProvider
,
SessionCookie
public void setUserName(java.lang.String sUser)
ConnectionStrategy
,
EnvInfoProvider
,
SessionCookie
public java.lang.String getPassword()
ConnectionStrategy
,
EnvInfoProvider
,
SessionCookie
public void setPassword(java.lang.String sPassword)
ConnectionStrategy
,
EnvInfoProvider
,
SessionCookie
public java.lang.String getConnectString()
ConnectionStrategy
,
EnvInfoProvider
,
SessionCookie
public void releaseInstances()
ResourcePool.removeResources()
. Method
may be confused with releaseResource.
ResourcePool.removeResources()
|
Oracle ADF Model and Business Components API Reference 10.1.2 B14022-01 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 1997, 2004, Oracle. All rights reserved.