How does Adobe read ODBC provider type?

Avatar

Avatar
Validate 1
Level 2
appuputti
Level 2

Likes

5 likes

Total Posts

9 posts

Correct reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 1
Affirm 1
View profile

Avatar
Validate 1
Level 2
appuputti
Level 2

Likes

5 likes

Total Posts

9 posts

Correct reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 1
Affirm 1
View profile
appuputti
Level 2

03-10-2019

Hi,

We are currently creating custom ODBC driver and having a hard time figuring out how exactly Adobe recognizes the provider/dbtype?

We need our custom driver to be recognized as hive.

I found this .js application.getDBMSType('nms:extAccount:'+'hadoop') but couldn't find how getDBMSType actually reads the db type, anybody has any better insights here?

Here are some sample outputs from the function getDBMSType:

When using ClouderaODBC hive driver --> output = 'hive'

When using Teradata driver --> output = 'teradata'

My initial guess is that it would read something from the driver itself but cannot figure out what exactly?

Regards,

Ari

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Validate 1
Level 2
appuputti
Level 2

Likes

5 likes

Total Posts

9 posts

Correct reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 1
Affirm 1
View profile

Avatar
Validate 1
Level 2
appuputti
Level 2

Likes

5 likes

Total Posts

9 posts

Correct reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 1
Affirm 1
View profile
appuputti
Level 2

11-10-2019

Hi Jon,

Appreciate your effort on this.

We have solved this. The parameter comes from the driver library and it is DSI_CONN_DBMS_NAME. This parameter defines the vendor for ODBC connection in Adobe.

Thanks,

Ari

Answers (3)

Answers (3)

Avatar

Avatar
Establish
MVP
wodnicki
MVP

Likes

977 likes

Total Posts

1,097 posts

Correct reply

516 solutions
Top badges earned
Establish
Affirm 500
Contributor
Shape 1
Give Back 100
View profile

Avatar
Establish
MVP
wodnicki
MVP

Likes

977 likes

Total Posts

1,097 posts

Correct reply

516 solutions
Top badges earned
Establish
Affirm 500
Contributor
Shape 1
Give Back 100
View profile
wodnicki
MVP

03-10-2019

Hi,

It's the lowercased value of the extAccount's @provider field.

Thanks,

-Jon

Avatar

Avatar
Establish
MVP
wodnicki
MVP

Likes

977 likes

Total Posts

1,097 posts

Correct reply

516 solutions
Top badges earned
Establish
Affirm 500
Contributor
Shape 1
Give Back 100
View profile

Avatar
Establish
MVP
wodnicki
MVP

Likes

977 likes

Total Posts

1,097 posts

Correct reply

516 solutions
Top badges earned
Establish
Affirm 500
Contributor
Shape 1
Give Back 100
View profile
wodnicki
MVP

10-10-2019

Hi,

I got that from fiddling with the extAccount and checking response values, though that wouldn't apply to provider ODBC.

In which, looking at ODBC spec the function's likely sourcing info from the SQLGetInfo() command, specifically arg SQL_SERVER_NAME.

The output you're seeing could be from a hardcoded map in the nlserver binary that replaces driver responses with internal values to homogenize with the other provider types.

Java libs aren't used for db connection handling.

Thanks,

-Jon

Avatar

Avatar
Validate 1
Level 2
appuputti
Level 2

Likes

5 likes

Total Posts

9 posts

Correct reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 1
Affirm 1
View profile

Avatar
Validate 1
Level 2
appuputti
Level 2

Likes

5 likes

Total Posts

9 posts

Correct reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 1
Affirm 1
View profile
appuputti
Level 2

03-10-2019

Hi Jon,

Thanks for the reply. In this case when it is ODBC setup the @provider='ODBC' so that doesn't seem to be the case.

It does strongly look like it reads something from the driver in use but cannot find what.

Was hoping that somebody knows what getDBMSType does as this seems to be actually Java library somewhere but cannot find it.

Thanks,

Ari