pentaho/pentaho-kettle · error · KettleException
No connection specified
Error message
No connection specified
What it means
IngresVectorwiseLoader.createCommandLine() throws this KettleException with 'No connection specified' when the step has no database connection defined (the else branch after handling both sql/vwload variants that require a database). Without a connection there is no database name/host for the command line.
Solutions
- Open the Ingres VectorWise loader step dialog and select/define the database connection
- Re-add the deleted connection to the transformation so the reference resolves
- If building metadata in code, call setDatabaseMeta(...) before running
- Validate the connection (Test button) to confirm host/database name resolve
Example fix
// before IngresVectorwiseLoaderMeta meta = new IngresVectorwiseLoaderMeta(); // after IngresVectorwiseLoaderMeta meta = new IngresVectorwiseLoaderMeta(); meta.setDatabaseMeta(DatabaseMeta.findDatabase(transMeta.getDatabases(), "IngresVW"));
Defensive patterns
Strategy: validation
Validate before calling
if (meta.getDatabaseMeta() == null) { throw new IllegalStateException("Ingres VectorWise loader requires a database connection"); } Try / catch
try { String cmdLine = loader.createCommandLine(...); } catch (KettleException e) { if (e.getMessage().equals("No connection specified")) { /* attach connection metadata */ } } Prevention
- Assign a database connection in the step dialog before saving
- Audit transformations for steps referencing deleted connections
- In code, setDatabaseMeta() before building command lines
- Test connections at design time with the Test button
When it happens
Trigger: createCommandLine() is called (via cmd()) and the step's database meta is null or its connection details are absent, so neither the sql nor vwload branch can build a target database argument.
Common situations: Step saved without selecting a connection; the shared connection was deleted; transformation copied between repositories losing the connection reference; programmatic metadata construction omitting setDatabaseMeta().
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
- GPBulkLoaderMeta.Exception.TableNotSpecified
- InfobrightLoaderMeta.GetSQL.NoConnectionDefined
- LucidDBStreamingLoaderMeta.Exception.ConnectionNotDefined
- SQLFileOutputMeta.Exception.ConnectionNotDefined
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/16b61808f64333a1.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/ivw-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/ivwloader/IngresVectorwiseLoader.java:383
}
sb.append( " " ).append( databaseName );
sb.append( " " ).append( fifoFile );
} else if ( meta.isUseDynamicVNode() ) {
// logical portname in JDBC use a 7
sb.append( " @" ).append( hostname ).append( "," ).append( port ).append( "[" ).append( username ).append( "," )
.append( password ).append( "]::" ).append( databaseName );
} else {
// Database Name
//
sb.append( " " ).append( databaseName );
if ( meta.isUseAuthentication() ) {
sb.append( "-P" ).append( password );
}
}
} else {
throw new KettleException( "No connection specified" );
}
return sb.toString();
}
public boolean processRow( StepMetaInterface smi, StepDataInterface sdi ) throws KettleException {
meta = (IngresVectorwiseLoaderMeta) smi;
data = (IngresVectorwiseLoaderData) sdi;
try {
Object[] r = getRow(); // Get row from input rowset & set row busy!
// no more input to be expected...
if ( r == null ) {
// only close output after the first row was processed
// to prevent error (NPE) on empty rows set
if ( !first ) {
closeOutput();
}View on GitHub (pinned to f3058517a1)