{"record":{"id":"16b61808f64333a1","repo":"pentaho/pentaho-kettle","slug":"no-connection-specified-ingresvectorwiseloader","errorCode":null,"errorMessage":"No connection specified","messagePattern":"No connection specified","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/ivw-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/ivwloader/IngresVectorwiseLoader.java","lineNumber":383,"sourceCode":"        }\n        sb.append( \" \" ).append( databaseName );\n        sb.append( \" \" ).append( fifoFile );\n\n      } else if ( meta.isUseDynamicVNode() ) {\n        // logical portname in JDBC use a 7\n\n        sb.append( \" @\" ).append( hostname ).append( \",\" ).append( port ).append( \"[\" ).append( username ).append( \",\" )\n          .append( password ).append( \"]::\" ).append( databaseName );\n      } else {\n        // Database Name\n        //\n        sb.append( \" \" ).append( databaseName );\n        if ( meta.isUseAuthentication() ) {\n          sb.append( \"-P\" ).append( password );\n        }\n      }\n    } else {\n      throw new KettleException( \"No connection specified\" );\n    }\n\n    return sb.toString();\n  }\n\n  public boolean processRow( StepMetaInterface smi, StepDataInterface sdi ) throws KettleException {\n    meta = (IngresVectorwiseLoaderMeta) smi;\n    data = (IngresVectorwiseLoaderData) sdi;\n\n    try {\n      Object[] r = getRow(); // Get row from input rowset & set row busy!\n      // no more input to be expected...\n      if ( r == null ) {\n        // only close output after the first row was processed\n        // to prevent error (NPE) on empty rows set\n        if ( !first ) {\n          closeOutput();\n        }","sourceCodeStart":365,"sourceCodeEnd":401,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/ivw-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/ivwloader/IngresVectorwiseLoader.java#L365-L401","documentation":"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.","triggerScenarios":"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.","commonSituations":"Step saved without selecting a connection; the shared connection was deleted; transformation copied between repositories losing the connection reference; programmatic metadata construction omitting setDatabaseMeta().","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"],"exampleFix":"// before\nIngresVectorwiseLoaderMeta meta = new IngresVectorwiseLoaderMeta();\n// after\nIngresVectorwiseLoaderMeta meta = new IngresVectorwiseLoaderMeta();\nmeta.setDatabaseMeta(DatabaseMeta.findDatabase(transMeta.getDatabases(), \"IngresVW\"));","handlingStrategy":"validation","validationCode":"if (meta.getDatabaseMeta() == null) { throw new IllegalStateException(\"Ingres VectorWise loader requires a database connection\"); }","typeGuard":null,"tryCatchPattern":"try { String cmdLine = loader.createCommandLine(...); } catch (KettleException e) { if (e.getMessage().equals(\"No connection specified\")) { /* attach connection metadata */ } }","preventionTips":["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"],"tags":["kettle","database","configuration","ingres"],"backgroundTag":"missing-required-config-field","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}