I'm trying to use Talend Open Studio to connect to a DB2 database with a non-default security mechanism.
So far the security mechanism is the only thing that causes problems.
I created a tDB2Input, added my server, schema etc.
In "advanced parameters", added "securityMechanism=4".
These settings work on database connection software such as DBeaver.
But when I try to open the Sql Builder, nothing happens.
When I try to "Guess Schema", I get:
le mécanisme de sécurité n'est pas pris en charge. ERRORCODE=-4214, SQLSTATE=28000
the security mechanism is not supported. ERRORCODE=-4214, SQLSTATE=28000
It looks like talend is not taking into account the advanced parameters I give him.
Any input on that ?
Cheers
Hello,
From your screenshot, there is no tDBInput component in your workflow. How did you extract data from your database and load it into next step?
The tDBConnection component is used to open a connection to a database to be reused in the subsequent subjob or subjobs.
tPrejob-->tDBConnection-->tDBInput-->output (subjob1)
tlogcatcher-->tlogrow(subjob2)
Best regards
Sabrina
Hello,
Is it a connection authorization failure? Could you please post the full error stack here?
Here is a related issue on stackoverflow:
https://stackoverflow.com/questions/16705749/db2-connection-authorization-faliure-occured-reason-sec...
Best regards
Sabrina
La connexion à la base de donnée a échoué
java.lang.RuntimeException: com.ibm.db2.jcc.am.SqlInvalidAuthorizationSpecException: [jcc][t4][201][11237][4.14.113] Un incident d'autorisation de connexion s'est produit. Cause : le mécanisme de sécurité n'est pas pris en charge. ERRORCODE=-4214, SQLSTATE=28000
at org.talend.core.model.metadata.builder.database.JDBCDriverLoader.getConnection(JDBCDriverLoader.java:204)
at org.talend.core.model.metadata.builder.database.ExtractMetaDataUtils.connect(ExtractMetaDataUtils.java:1139)
at org.talend.core.model.metadata.builder.database.ExtractMetaDataFromDataBase.testConnection(ExtractMetaDataFromDataBase.java:315)
at org.talend.core.model.metadata.builder.database.ExtractMetaDataFromDataBase.testConnection(ExtractMetaDataFromDataBase.java:301)
at org.talend.designer.core.ui.editor.properties.controllers.GuessSchemaController.checkConnection(GuessSchemaController.java:927)
at org.talend.designer.core.ui.editor.properties.controllers.GuessSchemaController.useMockJob(GuessSchemaController.java:760)
at org.talend.designer.core.ui.editor.properties.controllers.GuessSchemaController.createButtonCommand(GuessSchemaController.java:222)
at org.talend.designer.core.ui.editor.properties.controllers.GuessSchemaController$1.widgetSelected(GuessSchemaController.java:197)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.talend.rcp.intro.Application.start(Application.java:265)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
Caused by: com.ibm.db2.jcc.am.SqlInvalidAuthorizationSpecException: [jcc][t4][201][11237][4.14.113] Un incident d'autorisation de connexion s'est produit. Cause : le mécanisme de sécurité n'est pas pris en charge. ERRORCODE=-4214, SQLSTATE=28000
at com.ibm.db2.jcc.am.ed.a(ed.java:675)
at com.ibm.db2.jcc.am.ed.a(ed.java:60)
at com.ibm.db2.jcc.am.ed.a(ed.java:120)
at com.ibm.db2.jcc.t4.b.f(b.java:2388)
at com.ibm.db2.jcc.t4.b.a(b.java:1711)
at com.ibm.db2.jcc.t4.y.b(y.java:3613)
at com.ibm.db2.jcc.t4.y.a(y.java:477)
at com.ibm.db2.jcc.t4.y.a(y.java:117)
at com.ibm.db2.jcc.t4.b.c(b.java:1349)
at com.ibm.db2.jcc.t4.b.b(b.java:1220)
at com.ibm.db2.jcc.t4.b.b(b.java:788)
at com.ibm.db2.jcc.t4.b.a(b.java:760)
at com.ibm.db2.jcc.t4.b.a(b.java:423)
at com.ibm.db2.jcc.t4.b.a(b.java:398)
at com.ibm.db2.jcc.t4.b.<init>(b.java:336)
at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:232)
at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:198)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:475)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:116)
at org.talend.core.model.metadata.builder.database.DriverShim.connect(DriverShim.java:41)
at org.talend.core.model.metadata.builder.database.JDBCDriverLoader.getConnection(JDBCDriverLoader.java:195)
... 34 more
I'm using a DBInput component with "securityMechanism=4;" in the advanced parameters, so this should not happen...
I can connect fine to the database with a Connection object though, this returns no errors:
Again, with "securityMechanism=4;" in the advanced parameters.
The stackoverflow thread was no help, but I appreciate your help.
Best regards
Hello,
From your screenshot, there is no tDBInput component in your workflow. How did you extract data from your database and load it into next step?
The tDBConnection component is used to open a connection to a database to be reused in the subsequent subjob or subjobs.
tPrejob-->tDBConnection-->tDBInput-->output (subjob1)
tlogcatcher-->tlogrow(subjob2)
Best regards
Sabrina