ABLE 2.3.0 07/13/2005 14:21:00

com.ibm.able.platform
Class RmiPlatformPersistenceSystem

java.lang.Object
  extended byjava.rmi.server.RemoteObject
      extended byorg.jagent.service.util.RMIBasicService
          extended bycom.ibm.able.platform.AbleBasicService
              extended bycom.ibm.able.platform.RmiPlatformPersistenceSystem
All Implemented Interfaces:
org.jagent.service.IPService, java.rmi.Remote, RmiAblePlatformService, RmiAblePlatformServiceEventGenerator, RmiPlatformPersistenceService, org.jagent.service.RMIService, java.io.Serializable, javax.agent.service.Service

public final class RmiPlatformPersistenceSystem
extends AbleBasicService
implements RmiPlatformPersistenceService

Whee, after all those interfaces and proxies, here is the real, nitty-gritty implementation of an RMI-based Platform Persistence Service.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.ibm.able.platform.AbleBasicService
ANS_PRINCIPAL, LOCAL_PRINCIPAL, myAnsPrincipal, myKeyPair, myMsgLog, myPrincipal, mySecSppt, myServiceEventListeners, myServiceProperties, myTrcLog, myTrustLevel, myVerifiableAgentName, myVerifiableNamingService, Refreshing, REQUESTORS_PORT, Running, SOCKET_FACTORY, Terminated, Unknown
 
Fields inherited from class java.rmi.server.RemoteObject
ref
 
Fields inherited from interface org.jagent.service.RMIService
RMI, SERVICE_PROTOCOL
 
Fields inherited from interface org.jagent.service.IPService
SERVICE_HOST, SERVICE_PORT
 
Constructor Summary
RmiPlatformPersistenceSystem()
          Create an instance of an RMI-based Platform Persistence Service.
RmiPlatformPersistenceSystem(javax.agent.service.ServiceProperties theServiceProperties)
          Create an instance of an RMI-based Platform Persistence Service, using the specified service properties.
 
Method Summary
 void close(java.lang.String databaseName, java.lang.String tableName, AbleSecureKey key)
          Closes all connections, both the AbleDBImport and AbleDBExport beans for this database table.
 void createTableConnection(java.lang.String databaseName, java.lang.String tableName, java.lang.String schema, java.lang.String[] columnNames, java.lang.String[] columnTypes, AbleSecureKey key, boolean writeOnly)
          This creates an AbleDBExport and optionally an AbleDBImport bean and the table these beans will be dealing with if the table does not already exist.
 void delete(java.lang.String databaseName, java.lang.String tableName, java.lang.Object whereObject, AbleSecureKey key)
          Deletes rows from a table.
 java.lang.String getBindingName()
           
 void insert(java.lang.String databaseName, java.lang.String tableName, java.io.Serializable[] insertData, AbleSecureKey key)
          Insert a record into a table.
 java.lang.Object[] select(java.lang.String databaseName, java.lang.String tableName, java.lang.String columnString, java.lang.String whereString, AbleSecureKey key)
          Selects data from a table.
 void terminateService(AbleSecureKey key)
          Secure method that will take down the PPS nicely.
 void update(java.lang.String databaseName, java.lang.String tableName, java.util.Map updateMap, java.util.Map whereMap, AbleSecureKey key)
          Updates a row in a table.
 
Methods inherited from class com.ibm.able.platform.AbleBasicService
addAblePlatformServiceEventListener, getAblePlatformServiceEventListeners, getState, notifyAblePlatformServiceEventListeners, removeAblePlatformServiceEventListener, setState, thenNotifyAblePlatformServiceEventListeners
 
Methods inherited from class org.jagent.service.util.RMIBasicService
bindServiceToRegistry, getServiceProperties, setServiceProperties, shutdown
 
Methods inherited from class java.rmi.server.RemoteObject
equals, getRef, hashCode, toString, toStub
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.ibm.able.platform.RmiAblePlatformService
getState
 
Methods inherited from interface com.ibm.able.platform.RmiAblePlatformServiceEventGenerator
addAblePlatformServiceEventListener, getAblePlatformServiceEventListeners, removeAblePlatformServiceEventListener
 

Constructor Detail

RmiPlatformPersistenceSystem

public RmiPlatformPersistenceSystem()
                             throws java.lang.Exception
Create an instance of an RMI-based Platform Persistence Service.


RmiPlatformPersistenceSystem

public RmiPlatformPersistenceSystem(javax.agent.service.ServiceProperties theServiceProperties)
                             throws java.lang.Exception
Create an instance of an RMI-based Platform Persistence Service, using the specified service properties.

Parameters:
theServiceProperties - Service properties on which the service is based.

Method Detail

terminateService

public void terminateService(AbleSecureKey key)
                      throws AbleException,
                             javax.agent.service.naming.NamingException
Secure method that will take down the PPS nicely. It will call quitAll() on all of the AbleDBExport and AbleDBImport beans.

Specified by:
terminateService in interface RmiAblePlatformService
Overrides:
terminateService in class AbleBasicService
Parameters:
key - The key that is used to secure this communication

Throws:
AbleException -

On errors verifying the key when the platform is secure.

If the caller is not authorized to make this call.

On any errors calling quitAll on the AbleDBExport and AbleDBImport beans.

On errors terminating the PlatformPersistenceService.

javax.agent.service.naming.NamingException - On errors generating a secureKey used to terminate the PlatformPersistenceService.

getBindingName

public java.lang.String getBindingName()

createTableConnection

public void createTableConnection(java.lang.String databaseName,
                                  java.lang.String tableName,
                                  java.lang.String schema,
                                  java.lang.String[] columnNames,
                                  java.lang.String[] columnTypes,
                                  AbleSecureKey key,
                                  boolean writeOnly)
                           throws AbleException,
                                  java.rmi.RemoteException,
                                  PlatformPersistenceException
Description copied from interface: RmiPlatformPersistenceService
This creates an AbleDBExport and optionally an AbleDBImport bean and the table these beans will be dealing with if the table does not already exist. The Export bean will be used in the future to alter the table in any way, and the Import bean will be used to read info from the table.

Specified by:
createTableConnection in interface RmiPlatformPersistenceService
Parameters:
databaseName - The name of the Database that the table will exist in.

tableName - The name of the table.

schema - The schema for this table.

columnNames - String[] containing the name of each column for this table.

columnTypes - String[] containing the type of each column for this table.

key - AbleSecureKey used to secure communication.

writeOnly - When true, the service is output only.

Throws:
PlatformPersistenceException -

If unable to verify the key when the platform is secure.

If databaseName is null.

If tableName is null.

If columnNames is null.

If columnTypes is null.

If columnTypes and columnNames are of different lengths.

On errors creating the table.

java.rmi.RemoteException - On all remote errors.
AbleException

insert

public void insert(java.lang.String databaseName,
                   java.lang.String tableName,
                   java.io.Serializable[] insertData,
                   AbleSecureKey key)
            throws java.rmi.RemoteException,
                   PlatformPersistenceException,
                   AbleException
Description copied from interface: RmiPlatformPersistenceService
Insert a record into a table.

Specified by:
insert in interface RmiPlatformPersistenceService
Parameters:
databaseName - The name of the Database that the table will exist in.

tableName - The name of the table to insert into.

insertData - Serializable[] containing the data that is to be inserted into the table.

key - AbleSecureKey used to secure communication.

Throws:
PlatformPersistenceException -

If the insertData is null.

If unable to verify the key when the platform is secure.

If secure and the caller is not the one who originally set up the connection to this table.

If the table connection does not exist.

java.rmi.RemoteException - On all remote errors.
AbleException

update

public void update(java.lang.String databaseName,
                   java.lang.String tableName,
                   java.util.Map updateMap,
                   java.util.Map whereMap,
                   AbleSecureKey key)
            throws java.rmi.RemoteException,
                   PlatformPersistenceException
Description copied from interface: RmiPlatformPersistenceService
Updates a row in a table.

Specified by:
update in interface RmiPlatformPersistenceService
Parameters:
databaseName - The name of the Database that the table will exist in.

tableName - The name of the table.

updateMap - This is the new data for the record that is to be updated. In this map the keys are the column names and the values are the column values. The columns that are not changing do not have to be present.

whereMap - This determines the where clause for the update statement. This Map will be used to build the where clause. The keys will be the column names, and the values will be the Object to match to for their respective column. If left null, or empty, everything will be deleted.

key - AbleSecureKey used to secure communication

Throws:
java.rmi.RemoteException - On all remote errors.
PlatformPersistenceException -

If the updateMap is null.

If unable to verify the key when the platform is secure.

If secure and the caller is not the one who originally set up the connection to this table.

If the table connection does not exist.


delete

public void delete(java.lang.String databaseName,
                   java.lang.String tableName,
                   java.lang.Object whereObject,
                   AbleSecureKey key)
            throws java.rmi.RemoteException,
                   PlatformPersistenceException
Description copied from interface: RmiPlatformPersistenceService
Deletes rows from a table.

Specified by:
delete in interface RmiPlatformPersistenceService
Parameters:
databaseName - The name of the database that the table will exist in.

tableName - The name of the table.

whereObject - This can either be a simple String that states the where clause of the delete, or a Map that will be used to build the where clause. The keys will be the column names, and the values will be the Object to match to for their respective column. If left null, or not a String or Map, everything will be deleted.

key - AbleSecureKey used to secure communication

Throws:
java.rmi.RemoteException - On all remote errors.
PlatformPersistenceException -

If unable to verify the key when the platform is secure.

If secure and the caller is not the one who originally set up the connection to this table.

If the table connection does not exist.


select

public java.lang.Object[] select(java.lang.String databaseName,
                                 java.lang.String tableName,
                                 java.lang.String columnString,
                                 java.lang.String whereString,
                                 AbleSecureKey key)
                          throws AbleException,
                                 java.rmi.RemoteException,
                                 PlatformPersistenceException
Description copied from interface: RmiPlatformPersistenceService
Selects data from a table.

Specified by:
select in interface RmiPlatformPersistenceService
Parameters:
databaseName - The name of the database that the table will exist in.

tableName - The name of the table.

columnString - The columns that are to be returned in a select statement. If left blank or null, all columns will be returned.

whereString - The where string of the select statement. If left blank or null, everything will be returned.

key - AbleSecureKey used to secure communication.

Returns:
An Object[] of Serializable[]s, each containing a returned row from the select statement.

Throws:
java.rmi.RemoteException - On all remote errors.
PlatformPersistenceException -

If unable to verify the key when the platform is secure.

If secure and the caller is not the one who originally set up the connection to this table.

If the table connection does not exist.

On errors deserializing a Blob.

If the persisted data selected is not of a valid type.

AbleException

close

public void close(java.lang.String databaseName,
                  java.lang.String tableName,
                  AbleSecureKey key)
           throws AbleException,
                  java.rmi.RemoteException,
                  PlatformPersistenceException
Description copied from interface: RmiPlatformPersistenceService
Closes all connections, both the AbleDBImport and AbleDBExport beans for this database table.

Specified by:
close in interface RmiPlatformPersistenceService
Parameters:
databaseName - The name of the DB that the table will exist in.

tableName - The name of the table.

key - AbleSecureKey used to secure communication.

Throws:
java.rmi.RemoteException - On all remote errors.
PlatformPersistenceException -

If unable to verify the key when the platform is secure.

If secure and the caller is not the one who originally set up the connection to this table.

If the table connection does not exist.

AbleException

ABLE 2.3.0 07/13/2005 14:21:00

(C) Copyright IBM Corporation 1999, 2005