com.ibm.di.store
Class StoreFactory

java.lang.Object
  extended by com.ibm.di.store.StoreFactory

public class StoreFactory
extends java.lang.Object


Field Summary
static java.lang.String DEFAULT_PROPERTYSTORE
           
static java.lang.String JDBC_DRIVER_DB2
           
static java.lang.String JDBC_DRIVER_DERBY_EMB
           
static java.lang.String JDBC_DRIVER_DERBY_NET
           
static java.lang.String JDBC_DRIVER_MSSQL
           
static java.lang.String JDBC_DRIVER_ORACLE
           
static java.lang.String JDBC_DRIVER_SOLID
           
static java.lang.String REGEX
           
static java.lang.String SOLUTION_DIR
           
static java.lang.String VARCHAR_LENGTH
           
 
Constructor Summary
StoreFactory()
           
 
Method Summary
static void debugmsg(java.lang.String msg)
           
static java.lang.Object deserializeObject(java.lang.Object o)
          Deserializes a byte array into a Java object.
static java.lang.Object deserializeObjectFromBytes(byte[] bytes)
           
static boolean dropTable(java.sql.Connection connection, java.lang.String table)
          Drops a table in the database associated with connection.
static java.lang.Exception dropTable(java.lang.String tableName)
          Drops a table in the default database.
static java.sql.Connection getConnection()
          Returns a connection object to the default database.
static java.sql.Connection getConnection(boolean autoCommit)
          Returns a connection object to the default database using the default username/password.
static java.sql.Connection getConnection(java.lang.String database)
          Returns a connection object to the named database with AutoCommit set to TRUE using the default username/password.
static java.sql.Connection getConnection(java.lang.String database, boolean autoCommit)
          Returns a connection object to the named database with the default username/password.
static java.sql.Connection getConnection(java.lang.String database, boolean autoCommit, java.lang.String user, java.lang.String password, java.util.Properties info)
          Returns a connection to the named database.
static java.lang.String getDbHost()
           
static java.lang.String getDbPort()
           
static java.lang.String getDefaultDatabase()
           
static PropertyStore getDefaultPropertyStore()
          Returns the default property store.
static DeltaStore getDeltaStore(java.lang.String identifier, boolean isRestarting)
          Returns the DeltaStore with identifier
static java.lang.String getJdbcDriver()
           
static java.lang.String getJdbcPassword()
           
static java.lang.String getJdbcURL()
           
static java.lang.String getJdbcUser()
           
static java.lang.String getProperty(java.lang.String key)
          This method will look at the configuration in the caller's thread (RS.getServer) to see if it overrides the default settings from global/solution properties.
static PropertyStore getPropertyStore(java.lang.String name)
          Returns the PropertyStore identified by name.
static java.lang.String getSysStoreCreateStmtByDriver(java.lang.String driver)
          This method returns the proper 'CREATE TABLE' statement for the System Store Connector based on the specified JDBC driver name.
static java.lang.String getSystemDatabase()
          Returns the default system database name
static java.lang.String getSystemDatabaseURL()
          Returns the SystemStore JDBC URL.
static java.util.Vector<java.lang.String> getTables(java.sql.Connection connection, java.lang.String table)
           
static java.lang.String getVarcharLength()
           
static boolean isDerbyDriver(java.lang.String driver)
           
static boolean isDerbyNetworkDriver(java.lang.String driver)
          Determines if the passed driver is a Derby Network Driver.
static boolean isMSSQLDriver(java.lang.String driver)
           
static void logmsg(java.lang.String msg)
           
static void releaseDB(java.lang.String id)
           
static void retainDB(java.lang.String id, java.lang.String db)
           
static byte[] serializeObject(java.lang.Object obj)
          Serializes an object to a byte array.
static void setDerbyUserPassword(java.lang.String user, java.lang.String password)
           
static void shutdown()
          Shuts down all open databases.
static void startDerbyServer(java.lang.String hostname, java.lang.String portNo, boolean sysIBM)
          Start the networked Derby Server.
static void stopDerbyServer(java.lang.String hostname, int port)
           
static boolean tableExists(java.sql.Connection connection, java.lang.String table)
          Checks if a table is accessible in the database.
static boolean verifyTable(java.sql.Connection connection, java.lang.String table, java.util.Vector<java.lang.String> sql)
          Verifies that a table is accessible in the database.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

JDBC_DRIVER_DERBY_NET

public static final java.lang.String JDBC_DRIVER_DERBY_NET
See Also:
Constant Field Values

JDBC_DRIVER_DERBY_EMB

public static final java.lang.String JDBC_DRIVER_DERBY_EMB
See Also:
Constant Field Values

JDBC_DRIVER_DB2

public static final java.lang.String JDBC_DRIVER_DB2
See Also:
Constant Field Values

JDBC_DRIVER_ORACLE

public static final java.lang.String JDBC_DRIVER_ORACLE
See Also:
Constant Field Values

JDBC_DRIVER_MSSQL

public static final java.lang.String JDBC_DRIVER_MSSQL
See Also:
Constant Field Values

JDBC_DRIVER_SOLID

public static final java.lang.String JDBC_DRIVER_SOLID
See Also:
Constant Field Values

DEFAULT_PROPERTYSTORE

public static final java.lang.String DEFAULT_PROPERTYSTORE
See Also:
Constant Field Values

REGEX

public static final java.lang.String REGEX
See Also:
Constant Field Values

VARCHAR_LENGTH

public static final java.lang.String VARCHAR_LENGTH

SOLUTION_DIR

public static final java.lang.String SOLUTION_DIR
See Also:
Constant Field Values
Constructor Detail

StoreFactory

public StoreFactory()
Method Detail

getDefaultPropertyStore

public static PropertyStore getDefaultPropertyStore()
                                             throws java.lang.Exception
Returns the default property store.

Throws:
java.lang.Exception

getPropertyStore

public static PropertyStore getPropertyStore(java.lang.String name)
                                      throws java.lang.Exception
Returns the PropertyStore identified by name. Only one instance of a given name is present at one time.

Parameters:
name - The property store name
Returns:
The property store object associated with name
Throws:
java.lang.Exception

getDeltaStore

public static DeltaStore getDeltaStore(java.lang.String identifier,
                                       boolean isRestarting)
                                throws java.lang.Exception
Returns the DeltaStore with identifier

Parameters:
identifier - The delta table identity/tablename
isRestarting - True if the delta is opened in restart mode
Returns:
The DeltaStore object associated with identifier
Throws:
java.lang.Exception

getSystemDatabaseURL

public static java.lang.String getSystemDatabaseURL()
Returns the SystemStore JDBC URL.


getSystemDatabase

public static java.lang.String getSystemDatabase()
Returns the default system database name


getConnection

public static java.sql.Connection getConnection()
                                         throws java.lang.Exception
Returns a connection object to the default database. The connection object is in auto-commit mode and uses the default username/password.

Returns:
A connection object to the named database.
Throws:
java.lang.Exception

getConnection

public static java.sql.Connection getConnection(boolean autoCommit)
                                         throws java.lang.Exception
Returns a connection object to the default database using the default username/password.

Parameters:
autoCommit - The auto-commit flag
Returns:
A connection object to the named database.
Throws:
java.lang.Exception

getConnection

public static java.sql.Connection getConnection(java.lang.String database)
                                         throws java.lang.Exception
Returns a connection object to the named database with AutoCommit set to TRUE using the default username/password.

Parameters:
database - The database name
Returns:
A connection object to the named database.
Throws:
java.lang.Exception

getConnection

public static java.sql.Connection getConnection(java.lang.String database,
                                                boolean autoCommit)
                                         throws java.lang.Exception
Returns a connection object to the named database with the default username/password.

Parameters:
database - The database name
autoCommit - The auto-commit flag
Returns:
A connection object to the named database.
Throws:
java.lang.Exception

getConnection

public static java.sql.Connection getConnection(java.lang.String database,
                                                boolean autoCommit,
                                                java.lang.String user,
                                                java.lang.String password,
                                                java.util.Properties info)
                                         throws java.lang.Exception
Returns a connection to the named database.

Parameters:
database - If the value starts with "jdbc:" then it is used asis to obtain a connection object. Otherwise, this method prepends the JDBC_URL setting from the global.properties file and appends ";create=true". When prepending JDBC_URL it is assumed that Derby is used.
autoCommit - The auto commit flag set on the connection object
user - The username
password - The password
info - If specified, this method will use the database asis (e.g. no prepend/append) combined with this parameter to obtain a connection object. The info object should contain fields for user and pass and other related parameters to the driver.
Throws:
java.lang.Exception

setDerbyUserPassword

public static void setDerbyUserPassword(java.lang.String user,
                                        java.lang.String password)

dropTable

public static boolean dropTable(java.sql.Connection connection,
                                java.lang.String table)
Drops a table in the database associated with connection.

Parameters:
connection - The connection object obtained by getConnection()
table - The table to drop

verifyTable

public static boolean verifyTable(java.sql.Connection connection,
                                  java.lang.String table,
                                  java.util.Vector<java.lang.String> sql)
                           throws java.lang.Exception
Verifies that a table is accessible in the database.

Parameters:
connection - The connection object obtained by getConnection(). If NULL, a connection to the default table is obtained.
table - The table name to verify
sql - A vector of SQL statements to create the table if it does not exist
Throws:
java.lang.Exception

tableExists

public static boolean tableExists(java.sql.Connection connection,
                                  java.lang.String table)
                           throws java.lang.Exception
Checks if a table is accessible in the database.

Parameters:
connection - The connection object obtained by getConnection(). If NULL, a connection to the default table is obtained.
table - The table name to verify
Throws:
java.lang.Exception

getTables

public static java.util.Vector<java.lang.String> getTables(java.sql.Connection connection,
                                                           java.lang.String table)
                                                    throws java.lang.Exception
Throws:
java.lang.Exception

shutdown

public static void shutdown()
Shuts down all open databases.


dropTable

public static java.lang.Exception dropTable(java.lang.String tableName)
Drops a table in the default database.

Parameters:
tableName - The name of the table to drop.

serializeObject

public static byte[] serializeObject(java.lang.Object obj)
                              throws java.lang.Exception
Serializes an object to a byte array.

Parameters:
obj - The object to serialize
Returns:
The byte array containing the serialized object
Throws:
java.lang.Exception

deserializeObject

public static java.lang.Object deserializeObject(java.lang.Object o)
                                          throws java.lang.Exception
Deserializes a byte array into a Java object.

Parameters:
o - The byte array with the serialized Java object
Returns:
The resurrected java object
Throws:
java.lang.Exception

deserializeObjectFromBytes

public static java.lang.Object deserializeObjectFromBytes(byte[] bytes)
                                                   throws java.lang.Exception
Throws:
java.lang.Exception

retainDB

public static void retainDB(java.lang.String id,
                            java.lang.String db)

releaseDB

public static void releaseDB(java.lang.String id)

logmsg

public static void logmsg(java.lang.String msg)

debugmsg

public static void debugmsg(java.lang.String msg)

startDerbyServer

public static void startDerbyServer(java.lang.String hostname,
                                    java.lang.String portNo,
                                    boolean sysIBM)
                             throws java.lang.Exception
Start the networked Derby Server. This method does not use the API, but spawns a new process, to let the database stay around after exiting the server/CE.

Parameters:
hostname -
portNo -
sysIBM -
Throws:
java.lang.Exception

stopDerbyServer

public static void stopDerbyServer(java.lang.String hostname,
                                   int port)
                            throws java.lang.Exception
Throws:
java.lang.Exception

isDerbyNetworkDriver

public static boolean isDerbyNetworkDriver(java.lang.String driver)
Determines if the passed driver is a Derby Network Driver.

Returns:
true if the passed driver is a Derby network driver otherwise false.

isDerbyDriver

public static boolean isDerbyDriver(java.lang.String driver)

isMSSQLDriver

public static boolean isMSSQLDriver(java.lang.String driver)

getDefaultDatabase

public static java.lang.String getDefaultDatabase()

getJdbcDriver

public static java.lang.String getJdbcDriver()

getJdbcURL

public static java.lang.String getJdbcURL()

getJdbcUser

public static java.lang.String getJdbcUser()

getJdbcPassword

public static java.lang.String getJdbcPassword()

getVarcharLength

public static java.lang.String getVarcharLength()

getDbHost

public static java.lang.String getDbHost()

getDbPort

public static java.lang.String getDbPort()

getSysStoreCreateStmtByDriver

public static java.lang.String getSysStoreCreateStmtByDriver(java.lang.String driver)
This method returns the proper 'CREATE TABLE' statement for the System Store Connector based on the specified JDBC driver name.

Parameters:
driver - java class name of the JDBC driver
Returns:
the proper 'CREATE TABLE' statement for the used database; null if the driver is not recognized.

getProperty

public static java.lang.String getProperty(java.lang.String key)
This method will look at the configuration in the caller's thread (RS.getServer) to see if it overrides the default settings from global/solution properties. If the custom system store settings are enabled the value is retrieved from the configuration, otherwise it is retrieved by System.getProperty().

Parameters:
key - the property's indentifier
Returns:
the value corresponding to the specified identifier.