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

EndTimeAccessObjectImpl

public class EndTimeAccessObjectImpl extends com.sun.enterprise.admin.monitor.callflow.AbstractTableAccessObject
Access Object to access END_TIME_TBL. Table is created to store the timing information whenever a container transitions to 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 EndTimeAccessObjectImpl
_singletonET
Constructors Summary
private EndTimeAccessObjectImpl()
Creates a new instance of EndTimeAccessObjectImpl

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

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

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

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

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

        return _singletonET;
    
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++) {
                EndTimeTO endTimeTO = (EndTimeTO)transferObject[i];
                pstmt.setString(1, endTimeTO.getRequestId());
                pstmt.setLong(2, endTimeTO.getTimeStamp());
                pstmt.setString(
                        3, endTimeTO.getContainerTypeOrApplicationType());
                pstmt.addBatch();
            }
            int[] updated = pstmt.executeBatch();
            result =  (updated.length == transferObject.length)? true : false;
            addTotalEntriesProcessed(updated.length);
            if (isTraceOn()){
                logger.log(Level.INFO, "Callflow: EndTimeAccessObjectImpl " +
                        " 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;