Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

How does Adobe read ODBC provider type?

appuputti
Level 2
Level 2

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

1 Accepted Solution
appuputti
Correct answer by
Level 2
Level 2

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

View solution in original post

0 Replies
wodnicki
Community Advisor
Community Advisor

Hi,

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

Thanks,

-Jon

appuputti
Level 2
Level 2

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

wodnicki
Community Advisor
Community Advisor

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

appuputti
Correct answer by
Level 2
Level 2

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

View solution in original post