Connecting to a db2 database with security mechanism

Highlighted
Four Stars

Connecting to a db2 database with security mechanism

Hi,

 

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

 


Accepted Solutions
Moderator

Re: Connecting to a db2 database with security mechanism

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

 

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.

All Replies
Moderator

Re: Connecting to a db2 database with security mechanism

Hello,

Could you please clarify in which talend versions you are?

Best regards

Sabrina

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
Four Stars

Re: Connecting to a db2 database with security mechanism

Hi there,

 

I'm using Talend Open Studio version 7.1.1

 

Best regards

Moderator

Re: Connecting to a db2 database with security mechanism

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

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
Four Stars

Re: Connecting to a db2 database with security mechanism

Hey,

 

Here is the error log:

 

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:

db.PNG

Again, with "securityMechanism=4;" in the advanced parameters.

 

 

The stackoverflow thread was no help, but I appreciate your help.

 

Best regards

Moderator

Re: Connecting to a db2 database with security mechanism

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

 

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
Four Stars

Re: Connecting to a db2 database with security mechanism

Hi,

 

With your help I managed to get it to work.

Your instructions were exactly what I needed.

 

Thanks again

Best regards

 

Moderator

Re: Connecting to a db2 database with security mechanism

Hello,

Great it is fixed. Any input and solution will be preferred.

Best regards

Sabrina

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.

2019 GARNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now

What’s New for Talend Summer ’19

Watch the recorded webinar!

Watch Now

An API-First Approach to Modernizing Applications

Learn how to use an API-First Approach to Modernize your Applications

Watch Now

Talend API Designer – Technical Overview

Take a look at this technical overview video of Talend API Designer

Watch Now

Getting Started with APIs

Find out how to get started with APIs

Read