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

  1. Open the Ingres VectorWise loader step dialog and select/define the database connection
  2. Re-add the deleted connection to the transformation so the reference resolves
  3. If building metadata in code, call setDatabaseMeta(...) before running
  4. 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

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


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)