FileDocCategorySizeDatePackage
StartTimeAccessObjectImpl.javaAPI DocGlassfish v2 API6130Fri May 04 22:24:18 BST 2007com.sun.enterprise.admin.monitor.callflow

StartTimeAccessObjectImpl

public class StartTimeAccessObjectImpl extends com.sun.enterprise.admin.monitor.callflow.AbstractTableAccessObject
Access Object to access START_TIME_TBL. Table is created to store the timing information whenever a container transitions from another container or the application code Table is used to calculate the Pie Chart information for time spent in individual containers as well as time spent in an end user application code.
author
Harpreet Singh

Fields Summary
private static final Logger
logger
private static StartTimeAccessObjectImpl
_singletonST
Constructors Summary
private StartTimeAccessObjectImpl()
Creates a new instance of StartTimeAccessObjectImpl

     
    
           
      
        String serverName = super.getServerInstanceName();
        super.tableName = TableInfo.START_TIME_TABLE_NAME +
                serverName.toUpperCase();
        super.setName ("StartTime");        
    
Methods Summary
public booleancreateTable(java.sql.Connection connection)

        super.con = connection;
        return super.createTable(
                TableInfo.CREATE_TABLE_START_TIME_SQL,
                TableInfo.START_TIME_TABLE_NAME);        
    
public booleandropTable(java.sql.Connection connection)

        super.con = connection;
        return super.createStatmentAndExecuteUpdate(
                TableInfo.DROP_TABLE_START_TIME_SQL,
                TableInfo.START_TIME_TABLE_NAME);        
    
public java.lang.StringgetDeleteSQL()

        String newsql = super.updateSqlWithTableName (
                TableInfo.DELETE_FROM_TABLE_START_TIME_SQL,
                TableInfo.START_TIME_TABLE_NAME);
        return newsql;
    
public java.lang.StringgetInsertSQL()

        String newsql = super.updateSqlWithTableName(
                TableInfo.INSERT_INTO_TABLE_START_TIME_SQL, 
                TableInfo.START_TIME_TABLE_NAME);
        return newsql;            
    
public static synchronized TableAccessObjectgetInstance()

        return _singletonST;
    
public booleaninsert(java.sql.PreparedStatement pstmt, TransferObject[] transferObject)

       // sanity
        if (pstmt == null)
            return false;
        boolean result = false;
        try{
            
            for (int i = 0 ; i<transferObject.length; i++) {
                StartTimeTO startTimeTO = (StartTimeTO)transferObject[i];
                pstmt.setString(1, startTimeTO.getRequestId());
                pstmt.setLong(2, startTimeTO.getTimeStamp());
                pstmt.setString(
                        3, startTimeTO.getContainerTypeOrApplicationType());
                pstmt.addBatch();
            }
            int[] updated = pstmt.executeBatch();
            result =  (updated.length == transferObject.length)? true : false;
            addTotalEntriesProcessed(updated.length);            
            if (super.isTraceOn()){
                logger.log(Level.INFO, "Callflow: StartTimeAccessObjectImpl " +
                        " Attempting to Insert : " + transferObject.length +
                        " Inserted "+updated.length+ " rows."+ 
                        " Total Entries written so far: "+
                        getTotalEntriesProcessed());
            }
            
        }  catch(BatchUpdateException bue) {
            // log it
            logger.log(Level.FINE, "Error inserting data into CallFlow tables", bue);
            result = false;
        }catch (SQLException se) {
            // log it
            logger.log(Level.FINE, "Error inserting data into CallFlow tables", se);
            result = false;
        }
        return result;