pentaho/pentaho-kettle · error · KettleException
IngresVectorwiseLoaderMeta.GetSQL.NoConnectionDefined
IngresVectorwiseLoaderMeta.GetSQL.NoConnectionDefined
Error message
IngresVectorwiseLoaderMeta.GetSQL.NoConnectionDefined
What it means
verifyDatabaseConnection throws a KettleException whose message comes from the message bundle key IngresVectorwiseLoaderMeta.GetSQL.NoConnectionDefined when the step has no database connection configured. It is a fail-fast check executed in init() before any row processing.
Solutions
- Open the Ingres VectorWise Loader step dialog and select a database connection.
- If the connection was deleted, recreate it and re-select it in the step.
- For programmatic use, call meta.setDatabaseMeta(new DatabaseMeta(...)) before initializing the step.
Example fix
// before: step initialized without a connection
IngresVectorwiseLoaderMeta meta = new IngresVectorwiseLoaderMeta();
// after: define the connection first
IngresVectorwiseLoaderMeta meta = new IngresVectorwiseLoaderMeta();
meta.setDatabaseMeta(new DatabaseMeta("ingres", "INGRES", "Native", host, db, port, user, pass)); Defensive patterns
Strategy: validation
Validate before calling
if (meta.getDatabaseMeta() == null) { throw new IllegalStateException("Select a database connection on the Ingres VectorWise Loader step before running"); } Try / catch
try { trans.execute(...); } catch (KettleException e) { if (e.getMessage().contains("NoConnectionDefined")) { /* prompt user to configure connection */ } } Prevention
- Always assign a connection in the step dialog before saving the transformation.
- When building steps programmatically, set databaseMeta before init.
- Avoid deleting shared DB connections still referenced by steps.
When it happens
Trigger: init() -> verifyDatabaseConnection() finds meta.getDatabaseMeta() == null, i.e. the step's 'Connection' field was never set or the referenced connection was deleted.
Common situations: Building a transformation programmatically without setting the connection; importing transformations where the connection reference was lost; deleting a shared connection that the step still points to.
Understand the failure class
Background: "is required", "must be set", "missing required field": configuration validation errors across open-source libraries — this error's family across 36 libraries.
Related errors
- GPBulkLoaderMeta.Exception.ConnectionNotDefined
- Database connection not found:
- database type with plugin id [] couldn't be found!
- GPBulkLoaderMeta.Exception.TableNotSpecified
- GPLoadMeta.GetSQL.NoConnectionDefined
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/c1f6ea2267902933.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/ivw-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/ivwloader/IngresVectorwiseLoader.java:616
if ( data.byteBuffer.remaining() > content.length ) {
// Yes, there is room: add content to buffer
//
data.byteBuffer.put( content );
} else {
// No: empty the buffer to disk
//
data.byteBuffer.flip();
data.fileChannel.write( data.byteBuffer );
data.byteBuffer.clear();
data.byteBuffer.put( content );
}
}
}
protected void verifyDatabaseConnection() throws KettleException {
// Confirming Database Connection is defined.
if ( meta.getDatabaseMeta() == null ) {
throw new KettleException( BaseMessages.getString( PKG, "IngresVectorwiseLoaderMeta.GetSQL.NoConnectionDefined" ) );
}
}
public boolean init( StepMetaInterface smi, StepDataInterface sdi ) {
meta = (IngresVectorwiseLoaderMeta) smi;
data = (IngresVectorwiseLoaderData) sdi;
if ( super.init( smi, sdi ) ) {
// Confirming Database Connection is defined.
try {
verifyDatabaseConnection();
} catch ( KettleException ex ) {
logError( ex.getMessage() );
return false;
}
if ( Utils.isEmpty( meta.getDelimiter() ) ) {View on GitHub (pinned to f3058517a1)