pentaho/pentaho-kettle · error · KettleException

LucidDBStreamingLoaderMeta.Exception.ConnectionNotDefined

Error message

LucidDBStreamingLoaderMeta.Exception.ConnectionNotDefined

What it means

At the end of the table-field lookup, if the step's databaseMeta is null (no database connection defined for this step) the meta throws KettleException with the localized 'ConnectionNotDefined' message before even attempting to connect.

Solutions

  1. Open the step dialog and select a database connection; save the transformation.
  2. Re-create/import the missing shared database connection so the reference resolves.
  3. When importing from repository/XML, choose to import shared objects (connections).
  4. Add a metadata check before execution to fail fast on null connection.

Example fix

// before (step XML)
<connection></connection>
// after
<connection>LUCIDDB_PROD</connection>
Defensive patterns

Strategy: validation

Validate before calling

if (meta.getDatabaseMeta() == null) {
  throw new KettleException("LucidDB Streaming Loader: no database connection defined; select one in the step dialog");
}

Try / catch

try {
  meta.getFields(...);
} catch (KettleException e) {
  if (e.getMessage().contains("ConnectionNotDefined")) {
    logError("Attach a database connection to the step");
  }
  throw e;
}

Prevention

When it happens

Trigger: getFields()/SQL generation is invoked on a LucidDB Streaming Loader step whose 'Connection' field is empty — e.g. the connection referenced in the XML no longer exists in this environment.

Common situations: Transformation exported/imported without its shared connection; the shared DB connection was deleted; step dialog saved without selecting a connection; repository import missing shared objects.

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/43c36d8055fc48cd. Report an issue: GitHub.

Appendix: source

Thrown at plugins/lucid-db-streaming-loader/core/src/main/java/org/pentaho/di/trans/steps/luciddbstreamingloader/LucidDBStreamingLoaderMeta.java:852

          // Check if this table exists...
          if ( db.checkTableExists( schemaTable ) ) {
            return db.getTableFields( schemaTable );
          } else {
            throw new KettleException( BaseMessages.getString(
              PKG, "LucidDBStreamingLoaderMeta.Exception.TableNotFound" ) );
          }
        } else {
          throw new KettleException( BaseMessages.getString(
            PKG, "LucidDBStreamingLoaderMeta.Exception.TableNotSpecified" ) );
        }
      } catch ( Exception e ) {
        throw new KettleException( BaseMessages.getString(
          PKG, "LucidDBStreamingLoaderMeta.Exception.ErrorGettingFields" ), e );
      } finally {
        db.close();
      }
    } else {
      throw new KettleException( BaseMessages.getString(
        PKG, "LucidDBStreamingLoaderMeta.Exception.ConnectionNotDefined" ) );
    }

  }

  /**
   * @return the schemaName
   */
  public String getSchemaName() {
    return schemaName;
  }

  /**
   * @param schemaName
   *          the schemaName to set
   */
  public void setSchemaName( String schemaName ) {
    this.schemaName = schemaName;

View on GitHub (pinned to f3058517a1)