Business Components

oracle.jbo.common.ampool
Class ApplicationPoolImpl

java.lang.Object
  |
  +--oracle.jbo.common.ampool.ApplicationPoolImpl

public class ApplicationPoolImpl
extends java.lang.Object
implements ApplicationPool

This class provides the default implementation of the ApplicationPool interface. View definition of ApplicationPool View Implementation of ApplicationPoolImpl


Field Summary
static int CREATION_POLICY_ROUND_ROBIN
           
static int CREATION_POLICY_SERIAL
           
static int MAX_HANDLE_POLICY_ERROR
           
static int MAX_HANDLE_POLICY_SPILL
           
 
Constructor Summary
ApplicationPoolImpl()
          Constructor
 
Method Summary
 void checkin(ApplicationModule instance)
          Checks in an application instance that had previously been checked out.
 ApplicationModule checkout()
          Checks out an application instance from the pool.
 void commitAndSyncCache(ApplicationModule instance)
          Given an intitial Application Module instance, synchronizes the caches of all Application Module instances in the pool.
 ApplicationModule createNewInstance()
          This create a new instance of an application without looking for an available instance in the pool.
 java.lang.String getApplicationModuleClass()
          Return the class name of the application modules being managed by the pool.
 int getAvailableNumPools()
          Gets the snapshot of available number of pools returns number of available pools
 java.lang.String getConnectString()
          Return the connect string of the application modules being managed by the application pool.
 java.lang.Object getCookie(ApplicationModule instance)
           
 long getCreationTimeMillis(ApplicationModule instance)
          Get the time when the app module was created (in milli-secs).
 java.util.Hashtable getEnvironment()
          Returns the Hashtable that was used to initialie the Contect for the application modules.
 ApplicationModule getInstance(int nIndex)
          Returns the application instance represented by the instance index.
 ApplicationModule getInstanceByCookie(java.lang.Object cookie, boolean checkout)
           
 int getInstanceCount()
          Returns the number of instances that the Application Pool has created.
 java.lang.String getPassword()
          returns the password
 java.lang.String getPoolName()
          Returns the pool's name.
 long getTimeToCreateMillis(ApplicationModule instance)
          Get the time when the app module was created (in milli-secs).
 java.util.Hashtable getUserData()
          returns the User Data hashtable.
 java.lang.String getUserName()
          returns the user name
 void initialize(java.lang.String sPoolName, java.lang.String sApplicationModule, java.lang.String sConnectString, java.util.Hashtable env)
          This initializes the ApplicationPool.
 boolean isAvailable(ApplicationModule instance)
          Returns true if the application module is available
 void releaseInstances()
          Causes the pool to release all the application isntances that have been created so far.
 void setAvailable(ApplicationModule instance, boolean bSet)
          Sets the instance to available or not
 void setPassword(java.lang.String sPassword)
           
 void setUserData(java.util.Hashtable data)
          Replaces the userData with the new Hashtable.
 void setUserName(java.lang.String sUser)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CREATION_POLICY_SERIAL

public static int CREATION_POLICY_SERIAL

CREATION_POLICY_ROUND_ROBIN

public static int CREATION_POLICY_ROUND_ROBIN

MAX_HANDLE_POLICY_SPILL

public static int MAX_HANDLE_POLICY_SPILL

MAX_HANDLE_POLICY_ERROR

public static int MAX_HANDLE_POLICY_ERROR
Constructor Detail

ApplicationPoolImpl

public ApplicationPoolImpl()
Constructor
Method Detail

initialize

public void initialize(java.lang.String sPoolName,
                       java.lang.String sApplicationModule,
                       java.lang.String sConnectString,
                       java.util.Hashtable env)
Description copied from interface: ApplicationPool
This initializes the ApplicationPool. The Pool name should be unique with respect to any other pools. An exception will be thrown on any errors such as duplicate pool name or mismatched information within the connectInfo parameter. Take a close look at the ConnectInfo documentation since it controls the key information for initializing the application pool.
Specified by:
initialize in interface ApplicationPool

getApplicationModuleClass

public java.lang.String getApplicationModuleClass()
Description copied from interface: ApplicationPool
Return the class name of the application modules being managed by the pool.
Specified by:
getApplicationModuleClass in interface ApplicationPool

getConnectString

public java.lang.String getConnectString()
Description copied from interface: ApplicationPool
Return the connect string of the application modules being managed by the application pool.
Specified by:
getConnectString in interface ApplicationPool

getEnvironment

public java.util.Hashtable getEnvironment()
Description copied from interface: ApplicationPool
Returns the Hashtable that was used to initialie the Contect for the application modules.
Specified by:
getEnvironment in interface ApplicationPool

checkin

public void checkin(ApplicationModule instance)
Description copied from interface: ApplicationPool
Checks in an application instance that had previously been checked out. This makes the application instance avalable for subsequent checkout requests from this pool.
Specified by:
checkin in interface ApplicationPool

getTimeToCreateMillis

public long getTimeToCreateMillis(ApplicationModule instance)
Description copied from interface: ApplicationPool
Get the time when the app module was created (in milli-secs).
Specified by:
getTimeToCreateMillis in interface ApplicationPool

getCreationTimeMillis

public long getCreationTimeMillis(ApplicationModule instance)
Description copied from interface: ApplicationPool
Get the time when the app module was created (in milli-secs).
Specified by:
getCreationTimeMillis in interface ApplicationPool

isAvailable

public boolean isAvailable(ApplicationModule instance)
Description copied from interface: ApplicationPool
Returns true if the application module is available
Specified by:
isAvailable in interface ApplicationPool

setAvailable

public void setAvailable(ApplicationModule instance,
                         boolean bSet)
Description copied from interface: ApplicationPool
Sets the instance to available or not
Specified by:
setAvailable in interface ApplicationPool

createNewInstance

public ApplicationModule createNewInstance()
                                    throws java.lang.Exception
Description copied from interface: ApplicationPool
This create a new instance of an application without looking for an available instance in the pool. This method should not be called directly, you should call checkout() .
Specified by:
createNewInstance in interface ApplicationPool

checkout

public ApplicationModule checkout()
                           throws java.lang.Exception
Description copied from interface: ApplicationPool
Checks out an application instance from the pool. If the pool doesn't have any available instances, it will create a new instance and return it to the caller.
Specified by:
checkout in interface ApplicationPool

releaseInstances

public void releaseInstances()
Description copied from interface: ApplicationPool
Causes the pool to release all the application isntances that have been created so far. The remove() method is called on the Application Modules being represented by the application instance class
Specified by:
releaseInstances in interface ApplicationPool

getAvailableNumPools

public int getAvailableNumPools()
Description copied from interface: ApplicationPool
Gets the snapshot of available number of pools returns number of available pools
Specified by:
getAvailableNumPools in interface ApplicationPool

getInstanceCount

public int getInstanceCount()
Description copied from interface: ApplicationPool
Returns the number of instances that the Application Pool has created.
Specified by:
getInstanceCount in interface ApplicationPool

getInstance

public ApplicationModule getInstance(int nIndex)
Description copied from interface: ApplicationPool
Returns the application instance represented by the instance index.
Specified by:
getInstance in interface ApplicationPool

getInstanceByCookie

public ApplicationModule getInstanceByCookie(java.lang.Object cookie,
                                             boolean checkout)
Specified by:
getInstanceByCookie in interface ApplicationPool

getCookie

public java.lang.Object getCookie(ApplicationModule instance)
Specified by:
getCookie in interface ApplicationPool

getPoolName

public java.lang.String getPoolName()
Description copied from interface: ApplicationPool
Returns the pool's name.
Specified by:
getPoolName in interface ApplicationPool

getUserData

public java.util.Hashtable getUserData()
returns the User Data hashtable. This is a generic container for any settings the user would like to associate with this application instance.
Specified by:
getUserData in interface ApplicationPool

setUserData

public void setUserData(java.util.Hashtable data)
Replaces the userData with the new Hashtable.
Specified by:
setUserData in interface ApplicationPool

getUserName

public java.lang.String getUserName()
returns the user name
Specified by:
getUserName in interface ApplicationPool

setUserName

public void setUserName(java.lang.String sUser)
Specified by:
setUserName in interface ApplicationPool

setPassword

public void setPassword(java.lang.String sPassword)
Specified by:
setPassword in interface ApplicationPool

getPassword

public java.lang.String getPassword()
returns the password
Specified by:
getPassword in interface ApplicationPool

commitAndSyncCache

public void commitAndSyncCache(ApplicationModule instance)
Description copied from interface: ApplicationPool
Given an intitial Application Module instance, synchronizes the caches of all Application Module instances in the pool.

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);
 

Specified by:
commitAndSyncCache in interface ApplicationPool
Tags copied from interface: ApplicationPool
Parameters:
instance - an instance of an Application Module in the pool.

Business Components