public DatabaseMetaData getDatabaseMetaData() throws KettleDatabaseException { if ( dbmd == null ) { try { log.snap( Metrics.METRIC_DATABASE_GET_DBMETA_START, databaseMeta.getName() ); dbmd = connection.getMetaData(); // Only get the metadata once! } catch ( Exception e ) { throw new KettleDatabaseException( "Unable to get database metadata from this database connection", e ); } finally { log.snap( Metrics.METRIC_DATABASE_GET_DBMETA_STOP, databaseMeta.getName() ); } } return dbmd; }
final PluginRegistry registry = getInstance(); log.snap( Metrics.METRIC_PLUGIN_REGISTRY_REGISTER_EXTENSIONS_START ); List<PluginInterface> plugins = registry.getPlugins( PluginRegistryPluginType.class ); for ( PluginInterface extensionPlugin : plugins ) { log.snap( Metrics.METRIC_PLUGIN_REGISTRY_REGISTER_EXTENSION_START, extensionPlugin.getName() ); PluginRegistryExtension extension = (PluginRegistryExtension) registry.loadClass( extensionPlugin ); extension.init( registry ); extensions.add( extension ); log.snap( Metrics.METRIC_PLUGIN_REGISTRY_REGISTER_EXTENSIONS_STOP, extensionPlugin.getName() ); log.snap( Metrics.METRIC_PLUGIN_REGISTRY_REGISTER_EXTENSIONS_STOP ); log.snap( Metrics.METRIC_PLUGIN_REGISTRY_PLUGIN_REGISTRATION_START ); for ( final PluginTypeInterface pluginType : pluginTypes ) { log.snap( Metrics.METRIC_PLUGIN_REGISTRY_PLUGIN_TYPE_REGISTRATION_START, pluginType.getName() ); registry.registerType( pluginType ); log.snap( Metrics.METRIC_PLUGIN_REGISTRY_PLUGIN_TYPE_REGISTRATION_STOP, pluginType.getName() ); log.snap( Metrics.METRIC_PLUGIN_REGISTRY_PLUGIN_REGISTRATION_STOP );
public void setProcLookup( String proc, String[] arg, String[] argdir, int[] argtype, String returnvalue, int returntype ) throws KettleDatabaseException { try { log.snap( Metrics.METRIC_DATABASE_PREPARE_DBPROC_START, databaseMeta.getName() ); String sql; int pos = 0; log.snap( Metrics.METRIC_DATABASE_PREPARE_DBPROC_STOP, databaseMeta.getName() );
if ( log.isGatheringMetrics() ) { long time = System.currentTimeMillis() - startTime; log.snap( Metrics.METRIC_DATABASE_GET_ROW_SUM_TIME, databaseMeta.getName(), time ); log.snap( Metrics.METRIC_DATABASE_GET_ROW_MIN_TIME, databaseMeta.getName(), time ); log.snap( Metrics.METRIC_DATABASE_GET_ROW_MAX_TIME, databaseMeta.getName(), time ); log.snap( Metrics.METRIC_DATABASE_GET_ROW_COUNT, databaseMeta.getName() );
ResultSet res = null; try { log.snap( Metrics.METRIC_DATABASE_GET_LOOKUP_START, databaseMeta.getName() ); res = ps.executeQuery(); throw new KettleDatabaseException( "Unable to close resultset after looking up data", e ); } finally { log.snap( Metrics.METRIC_DATABASE_GET_LOOKUP_STOP, databaseMeta.getName() );
log.snap( Metrics.METRIC_DATABASE_OPEN_QUERY_START, databaseMeta.getName() ); log.snap( Metrics.METRIC_DATABASE_SQL_VALUES_START, databaseMeta.getName() ); log.snap( Metrics.METRIC_DATABASE_SQL_VALUES_STOP, databaseMeta.getName() ); log.snap( Metrics.METRIC_DATABASE_EXECUTE_SQL_START, databaseMeta.getName() ); res = ps.executeQuery(); log.snap( Metrics.METRIC_DATABASE_EXECUTE_SQL_STOP, databaseMeta.getName() ); log.snap( Metrics.METRIC_DATABASE_GET_ROW_META_START, databaseMeta.getName() ); rowMeta = getRowInfo( res.getMetaData(), databaseMeta.isMySQLVariant(), false ); log.snap( Metrics.METRIC_DATABASE_GET_ROW_META_STOP, databaseMeta.getName() ); } catch ( SQLException ex ) { throw new KettleDatabaseException( "ERROR executing query", ex ); throw new KettleDatabaseException( "ERROR executing query", e ); } finally { log.snap( Metrics.METRIC_DATABASE_OPEN_QUERY_STOP, databaseMeta.getName() );
/** * Build the row using ResultSetMetaData rsmd * * @param rm The resultset metadata to inquire * @param ignoreLength true if you want to ignore the length (workaround for MySQL bug/problem) * @param lazyConversion true if lazy conversion needs to be enabled where possible */ private RowMetaInterface getRowInfo( ResultSetMetaData rm, boolean ignoreLength, boolean lazyConversion ) throws KettleDatabaseException { try { log.snap( Metrics.METRIC_DATABASE_GET_ROW_META_START, databaseMeta.getName() ); if ( rm == null ) { throw new KettleDatabaseException( "No result set metadata available to retrieve row metadata!" ); } RowMetaInterface rowMeta = new RowMeta(); try { int nrcols = rm.getColumnCount(); for ( int i = 1; i <= nrcols; i++ ) { ValueMetaInterface valueMeta = getValueFromSQLType( rm, i, ignoreLength, lazyConversion ); rowMeta.addValueMeta( valueMeta ); } return rowMeta; } catch ( SQLException ex ) { throw new KettleDatabaseException( "Error getting row information from database: ", ex ); } } finally { log.snap( Metrics.METRIC_DATABASE_GET_ROW_META_STOP, databaseMeta.getName() ); } }
log.snap( Metrics.METRIC_DATABASE_OPEN_QUERY_START, databaseMeta.getName() ); if ( params != null ) { log.snap( Metrics.METRIC_DATABASE_PREPARE_SQL_START, databaseMeta.getName() ); pstmt = connection.prepareStatement( databaseMeta.stripCR( sql ), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY ); log.snap( Metrics.METRIC_DATABASE_PREPARE_SQL_STOP, databaseMeta.getName() ); log.snap( Metrics.METRIC_DATABASE_SQL_VALUES_START, databaseMeta.getName() ); log.snap( Metrics.METRIC_DATABASE_SQL_VALUES_STOP, databaseMeta.getName() ); log.snap( Metrics.METRIC_DATABASE_EXECUTE_SQL_START, databaseMeta.getName() ); res = pstmt.executeQuery(); log.snap( Metrics.METRIC_DATABASE_EXECUTE_SQL_STOP, databaseMeta.getName() ); } else { log.snap( Metrics.METRIC_DATABASE_CREATE_SQL_START, databaseMeta.getName() ); sel_stmt = connection.createStatement(); log.snap( Metrics.METRIC_DATABASE_CREATE_SQL_STOP, databaseMeta.getName() ); if ( canWeSetFetchSize( sel_stmt ) ) { int fs = Const.FETCH_SIZE <= sel_stmt.getMaxRows() ? sel_stmt.getMaxRows() : Const.FETCH_SIZE; log.snap( Metrics.METRIC_DATABASE_EXECUTE_SQL_START, databaseMeta.getName() ); res = sel_stmt.executeQuery( databaseMeta.stripCR( sql ) ); log.snap( Metrics.METRIC_DATABASE_EXECUTE_SQL_STOP, databaseMeta.getName() ); throw new KettleDatabaseException( "An error occurred executing SQL:" + Const.CR + sql, e ); } finally { log.snap( Metrics.METRIC_DATABASE_OPEN_QUERY_STOP, databaseMeta.getName() );
public void run() { // Set the internal variables also on the initialization thread! // ((BaseStep)combi.step).setInternalVariables(); if ( !doIt ) { // An extension point plugin decided we should not initialize the step. // Logging, error handling, finished flag... should all be handled in the extension point. // return; } try { combi.step.getLogChannel().snap( Metrics.METRIC_STEP_INIT_START ); if ( combi.step.init( combi.meta, combi.data ) ) { combi.data.setStatus( StepExecutionStatus.STATUS_IDLE ); ok = true; } else { combi.step.setErrors( 1 ); log.logError( BaseMessages.getString( PKG, "Trans.Log.ErrorInitializingStep", combi.step.getStepname() ) ); } } catch ( Throwable e ) { log.logError( BaseMessages.getString( PKG, "Trans.Log.ErrorInitializingStep", combi.step.getStepname() ) ); log.logError( Const.getStackTracker( e ) ); } finally { combi.step.getLogChannel().snap( Metrics.METRIC_STEP_INIT_STOP ); } finished = true; }
ivwLoader.getLogChannel().snap( Metrics.METRIC_STEP_EXECUTION_STOP );
setRunning( false ); // no longer running log.snap( Metrics.METRIC_TRANSFORMATION_EXECUTION_STOP );