/** * Open the database connection. * * @param partitionId the partition ID in the cluster to connect to. * @throws KettleDatabaseException if something went wrong. */ public void connect( String partitionId ) throws KettleDatabaseException { connect( null, partitionId ); }
/** * Open the database connection. * * @throws KettleDatabaseException if something went wrong. */ public void connect() throws KettleDatabaseException { connect( null ); }
@Override public boolean test() { try { getDatabase().connect(); } catch ( KettleDatabaseException kde ) { return false; } return true; }
public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException { db = new Database( Spoon.loggingObject, dbMeta ); try { db.connect(); result = db.getQueryFields( sql, false ); if ( monitor.isCanceled() ) { throw new InvocationTargetException( new Exception( "This operation was cancelled!" ) ); } } catch ( Exception e ) { throw new InvocationTargetException( e, "Problem encountered determining query fields: " + e.toString() ); } finally { db.disconnect(); } } };
protected RowMetaInterface getDatabaseTableFields( Database db, String schemaName, String tableName ) throws KettleDatabaseException { // First try without connecting to the database... (can be S L O W) RowMetaInterface extraFields = db.getTableFieldsMeta( schemaName, tableName ); if ( extraFields == null ) { // now we need to connect db.connect(); extraFields = db.getTableFieldsMeta( schemaName, tableName ); } return extraFields; }
protected RowMetaInterface getDatabaseTableFields( Database db, String schemaName, String tableName ) throws KettleDatabaseException { // First try without connecting to the database... (can be S L O W) String schemaTable = databaseMeta.getQuotedSchemaTableCombination( schemaName, tableName ); RowMetaInterface extraFields = db.getTableFields( schemaTable ); if ( extraFields == null ) { // now we need to connect db.connect(); extraFields = db.getTableFields( schemaTable ); } return extraFields; }
private RowMetaInterface getTableFields( LoggingObjectInterface parentLoggingObject ) throws KettleDatabaseException { Database database = new Database( parentLoggingObject, databaseMeta ); try { database.connect(); return database.getTableFields( schemaTable ); } finally { database.disconnect(); } }
public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException { db = new Database( Spoon.loggingObject, dbMeta ); try { db.connect(); String sql = dbMeta.getDatabaseInterface().getSelectCountStatement( tableName ); RowMetaAndData row = db.getOneRow( sql ); size = row.getRowMeta().getInteger( row.getData(), 0 ); if ( monitor.isCanceled() ) { throw new InvocationTargetException( new Exception( "This operation was cancelled!" ) ); } } catch ( KettleException e ) { throw new InvocationTargetException( e, "Couldn't get a result because of an error :" + e.toString() ); } finally { db.disconnect(); } } };
protected void checkConnection() throws KettleDatabaseException { // check connection // connect and disconnect Database dbchecked = null; try { dbchecked = new Database( this, connection ); dbchecked.shareVariablesWith( this ); dbchecked.connect( parentJob.getTransactionId(), null ); } finally { if ( dbchecked != null ) { dbchecked.disconnect(); } } }
@Test public void jobFail_columnNotExist() throws KettleException { doReturn( db ).when( jobEntry ).getNewDatabaseFromMeta(); doNothing().when( db ).connect( anyString(), anyString() ); doReturn( true ).when( db ).checkTableExists( anyString(), anyString() ); doReturn( false ).when( db ).checkColumnExists( anyString(), anyString(), anyString() ); final Result result = jobEntry.execute( new Result(), 0 ); assertEquals( "Should be some errors", 1, result.getNrErrors() ); assertFalse( "Result should be false", result.getResult() ); verify( db, atLeastOnce() ).disconnect(); }
/** * @return the database. * @throws KettleException * if an error occurs. */ public Database connectToDatabase() throws KettleException { if ( this.getDbMeta() != null ) { Database db = new Database( loggingObject, this.getDbMeta() ); db.connect(); return db; } throw new KettleException( MESSAGES.getString( "TeraFastMeta.Exception.ConnectionNotDefined" ) ); }
@Test public void jobSuccess() throws KettleException { doReturn( db ).when( jobEntry ).getNewDatabaseFromMeta(); doNothing().when( db ).connect( anyString(), anyString() ); doReturn( true ).when( db ).checkColumnExists( anyString(), anyString(), anyString() ); doReturn( true ).when( db ).checkTableExists( anyString(), anyString() ); final Result result = jobEntry.execute( new Result(), 0 ); assertEquals( "Should be no error", 0, result.getNrErrors() ); assertTrue( "Result should be true", result.getResult() ); assertEquals( "Lines written", COLUMNS.length, result.getNrLinesWritten() ); verify( db, atLeastOnce() ).disconnect(); } }
@Test public void jobFail_tableNotExist() throws KettleException { when( jobEntry.getNewDatabaseFromMeta() ).thenReturn( db ); doNothing().when( db ).connect( anyString(), any() ); doReturn( false ).when( db ).checkTableExists( anyString(), anyString() ); final Result result = jobEntry.execute( new Result(), 0 ); assertEquals( "Should be error", 1, result.getNrErrors() ); assertFalse( "Result should be false", result.getResult() ); verify( db, atLeastOnce() ).disconnect(); }
public void run( IProgressMonitor monitor ) throws InvocationTargetException, InterruptedException { db = new Database( Spoon.loggingObject, dbMeta ); try { db.connect(); if ( limit > 0 ) { db.setQueryLimit( limit ); } rows = db.getFirstRows( tableName, limit, new ProgressMonitorAdapter( monitor ) ); rowMeta = db.getReturnRowMeta(); } catch ( KettleException e ) { throw new InvocationTargetException( e, "Couldn't find any rows because of an error :" + e.toString() ); } finally { db.disconnect(); } } };
private void connectDatabase( Database database ) throws KettleDatabaseException { database.shareVariablesWith( this ); if ( getTransMeta().isUsingUniqueConnections() ) { synchronized ( getTrans() ) { database.connect( getTrans().getTransactionId(), getPartitionID() ); } } else { database.connect( getPartitionID() ); } database.setCommit( 100 ); // we never get a commit, but it just turns off auto-commit. if ( log.isDetailed() ) { logDetailed( BaseMessages.getString( PKG, "DatabaseLookup.Log.ConnectedToDatabase" ) ); } } }
@Override public RowMetaInterface getTableFields() { RowMetaInterface fields = null; if ( databaseMeta != null ) { Database db = createDatabaseObject(); try { db.connect(); fields = db.getTableFieldsMeta( schemaName, tableName ); } catch ( KettleDatabaseException dbe ) { logError( BaseMessages.getString( PKG, "DimensionLookupMeta.Log.DatabaseErrorOccurred" ) + dbe.getMessage() ); } finally { db.disconnect(); } } return fields; }
public boolean getInputData() { // Get some data... RipDatabaseWizardPage1 page1 = (RipDatabaseWizardPage1) getPreviousPage(); Database sourceDb = new Database( RipDatabaseWizard.loggingObject, page1.getSourceDatabase() ); try { sourceDb.connect(); input = sourceDb.getTablenames( false ); // Don't include the schema since it can cause invalid syntax } catch ( KettleDatabaseException dbe ) { new ErrorDialog( shell, "Error getting tables", "Error obtaining table list from database!", dbe ); input = null; return false; } finally { sourceDb.disconnect(); } return true; }
public boolean getInputData() { // Get some data... CopyTableWizardPage1 page1 = (CopyTableWizardPage1) getPreviousPage(); Database sourceDb = new Database( CopyTableWizard.loggingObject, page1.getSourceDatabase() ); try { sourceDb.connect(); input = sourceDb.getTablenames(); } catch ( KettleDatabaseException dbe ) { new ErrorDialog( shell, BaseMessages.getString( PKG, "CopyTableWizardPage2.ErrorGettingTables.DialogTitle" ), BaseMessages.getString( PKG, "CopyTableWizardPage2.ErrorGettingTables.DialogMessage" ), dbe ); input = null; return false; } finally { sourceDb.disconnect(); } return true; }
/** * Execute fastload. * * @throws KettleException * ... */ public void execute() throws KettleException { if ( this.meta.getTruncateTable().getValue() ) { Database db = new Database( this, this.meta.getDbMeta() ); db.connect(); db.truncateTable( this.meta.getTargetTable().getValue() ); db.commit(); db.disconnect(); } startFastLoad(); if ( this.meta.getUseControlFile().getValue() ) { this.invokeLoadingControlFile(); } else { this.invokeLoadingCommand(); } }