pentaho/pentaho-kettle · error · KettleException
MonetDBBulkLoaderMeta.GetSQL.NoConnectionDefined
MonetDBBulkLoaderMeta.GetSQL.NoConnectionDefined
Error message
MonetDBBulkLoaderMeta.GetSQL.NoConnectionDefined
What it means
Thrown by verifyDatabaseConnection() when MonetDBBulkLoaderMeta.getDatabaseMeta() returns null, meaning the step has no database connection defined. The message is a localized resource key (MonetDBBulkLoaderMeta.GetSQL.NoConnectionDefined) from the step's message bundle rather than free text.
Solutions
- Open the transformation and assign a MonetDB database connection in the step's Database Connection field
- Confirm the shared connection exists in the repository (or spoon.xml/KJB shared connections) and loads correctly
- Re-save the transformation after linking the connection
Example fix
// before: running step with no connection set in transformation XML <connection>null</connection> // after: reference a defined connection <connection>MonetDBLocal</connection>
Defensive patterns
Strategy: validation
Validate before calling
// guard before starting the transformation
DatabaseMeta dm = monetDbBulkLoaderMeta.getDatabaseMeta();
if ( dm == null ) { throw new IllegalArgumentException( "Assign a MonetDB connection to the step before running" ); } Type guard
function hasConnection( MonetDBBulkLoaderMeta m ) { return m != null && m.getDatabaseMeta() != null; } Try / catch
try { startTransformation(); } catch ( KettleException e ) { if ( "MonetDBBulkLoaderMeta.GetSQL.NoConnectionDefined".equals( e.getMessage() ) ) { prompt user to configure the connection; } else rethrow; } Prevention
- Always assign a connection in the step dialog before saving
- Verify shared connections are included when exporting/copying transformations
- Check the connection exists in the target repository after renames
- Run transformations through a config validator in CI
When it happens
Trigger: init() calls verifyDatabaseConnection() before the step starts; the transformation was saved without a connection assigned to the MonetDB bulk loader step, or the referenced connection metadata failed to load/resolved to null.
Common situations: Copying a step between transformations without its shared connection; repository metadata missing or renamed connection; exporting a transformation without including the connection definition.
Understand the failure class
Background: "X is required", "must be set", "cannot be empty": the missing-required-config error family, from Vertex AI project/location to WeChat keys — this error's family across 18 libraries.
Related errors
- GPBulkLoaderMeta.Exception.ConnectionNotDefined
- GPLoadMeta.GetSQL.NoConnectionDefined
- IngresVectorwiseLoaderMeta.GetSQL.NoConnectionDefined
- MonetDBBulkLoaderMeta.Exception.ConnectionNotDefined
- MonetDBBulkLoaderMeta.Exception.TableNotFound
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/87aa631132c4434a.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/monet-db-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/monetdbbulkloader/MonetDBBulkLoader.java:528
}
}
if ( log.isRowLevel() ) {
logRowlevel( Const.CR );
}
// reset the buffer pointer...
//
data.bufferIndex = 0;
} catch ( Exception e ) {
throw new KettleException( "An error occurred writing data to the MonetDB API (MAPI) process", e );
}
}
protected void verifyDatabaseConnection() throws KettleException {
// Confirming Database Connection is defined.
if ( meta.getDatabaseMeta() == null ) {
throw new KettleException( BaseMessages.getString( PKG, "MonetDBBulkLoaderMeta.GetSQL.NoConnectionDefined" ) );
}
}
@Override
public boolean init( StepMetaInterface smi, StepDataInterface sdi ) {
meta = (MonetDBBulkLoaderMeta) smi;
data = (MonetDBBulkLoaderData) sdi;
if ( super.init( smi, sdi ) ) {
try {
verifyDatabaseConnection();
} catch ( KettleException ex ) {
logError( ex.getMessage() );
return false;
}
data.quote = environmentSubstitute( meta.getFieldEnclosure() );View on GitHub (pinned to f3058517a1)