Expand my Community achievements bar.

Adobe Campaign Classic - Snowflake Update using adobe guide has broken the snowflake connection

Avatar

Level 4

Using the adobe snowflake guide at Configure access to Snowflake | Adobe Campaign the snowflake instance on our adobe campaign classic dev instance (rhel) was update from snowflake-odbc-2.20.2.x86_64.rpm to snowflake-odbc-2.25.4.x86_64.rpm. 

 

The primary part of the update was performed using the following script

/usr/local/neolane/nl6/bin/fda-setup-scripts/snowflake_odbc-setup.sh

 

Initially this script would not run for the following reasons

1) The linux host is rhel but the script only references debian, centos and redhat

2) Network security prevented the script form connecting to https://sfc-repo.snowflakecomputing.com/odbc/linux/latest/index.html to determine the latest release and retrieve the rpm for the update

 

To work around the issues with the script the following changes were made

snowflake_odbc-setup.sh changes

1) Updates lines containing => if [ "$DISTRO_NAME" = "centos" ] || [ "$DISTRO_NAME" = "redhat" ]  ..... to => if [ "$DISTRO_NAME" = "centos" ] || [ "$DISTRO_NAME" = "redhat" ] || [ "$DISTRO_NAME" = "rhel" ]

2) Comment out the logic which downloads the latest from https://sfc-repo.snowflakecomputing.com/odbc/linux/latest/index.html 

Execution changes

1) Manually download snowflake-odbc-2.25.4.x86_64.rpm to folder /usr/local/neolane/nl6/bin/fda-setup-scripts

2) Run script as ./snowflake_odbc-setup.sh --snowflake 2.25.4

 

The script completed normally with the following log output


[root@xxxxxxxx /usr/local/neolane/nl6/bin/fda-setup-scripts]# ./snowflake_odbc-setup.sh --snowflake 2.25.4
DISTRO_NAME is rhel
SNOWFLAKE_VERSION step1 is 2.25.4
SNOWFLAKE_VERSION step2 is 2.25.4
Loaded plugins: enabled_repos_upload, langpacks, package_upload, product-id, search-disabled-repos, subscription-manager
rhel-7-server-extras-rpms | 1.9 kB 00:00:00
rhel-7-server-optional-rpms | 1.9 kB 00:00:00
rhel-7-server-rh-common-rpms | 2.0 kB 00:00:00
rhel-7-server-rpms | 2.2 kB 00:00:00
rhel-7-server-satellite-tools-6.10-rpms | 2.3 kB 00:00:00
rhel-7-server-supplementary-rpms | 2.2 kB 00:00:00
rhel-server-rhscl-7-rpms | 2.0 kB 00:00:00
Package unixODBC-2.3.1-14.el7.x86_64 already installed and latest version
Nothing to do
Uploading Enabled Repositories Report
Loaded plugins: langpacks, product-id, subscription-manager
PKG_TYPE is rpm
PKG_NAME is snowflake-odbc-2.25.4.x86_64.rpm
Backup existing odbcinst entries.
Installing snowflake-odbc-2.25.4.x86_64.rpm
Loaded plugins: enabled_repos_upload, langpacks, package_upload, product-id, search-disabled-repos, subscription-manager
Examining snowflake-odbc-2.25.4.x86_64.rpm: snowflake-odbc-2.25.4-1.x86_64
Marking snowflake-odbc-2.25.4.x86_64.rpm as an update to snowflake-odbc-2.20.2-1.x86_64
Resolving Dependencies
--> Running transaction check
---> Package snowflake-odbc.x86_64 0:2.20.2-1 will be updated
---> Package snowflake-odbc.x86_64 0:2.25.4-1 will be an update
--> Finished Dependency Resolution
rhel-7-server-extras-rpms/x86_64 | 1.9 kB 00:00:00
rhel-7-server-optional-rpms/x86_64 | 1.9 kB 00:00:00
rhel-7-server-rh-common-rpms/x86_64 | 2.0 kB 00:00:00
rhel-7-server-rpms/x86_64 | 2.2 kB 00:00:00
rhel-7-server-satellite-tools-6.10-rpms/x86_64 | 2.3 kB 00:00:00
rhel-7-server-supplementary-rpms/x86_64 | 2.2 kB 00:00:00
rhel-server-rhscl-7-rpms/x86_64 | 2.0 kB 00:00:00

Dependencies Resolved

===========================================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================================
Updating:
snowflake-odbc x86_64 2.25.4-1 /snowflake-odbc-2.25.4.x86_64 170 M

Transaction Summary
===========================================================================================================================================================
Upgrade 1 Package

Total size: 170 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : snowflake-odbc-2.25.4-1.x86_64 1/2
[WARN] SF_ACCOUNT is not set, please manually update the odbc.ini file after installation
Adding driver info to odbcinst.ini...
odbcinst: Driver installed. Usage count increased to 1.
Target directory is /etc
Adding connect info to odbc.ini...
odbcinst: Sections and Entries from stdin have been added to ODBC.INI
/usr/lib64/snowflake/odbc/lib/simba.snowflake.ini already exists.
CABundleFile=/usr/lib64/snowflake/odbc/lib/cacert.pem
SnowflakeDSIIDriver has been deleted (if it existed at all) because its usage count became zero
odbcinst: DSN removed (if it existed at all). ODBC_SYSTEM_DSN was used as the search path.
Cleanup : snowflake-odbc-2.20.2-1.x86_64 2/2
Uploading Package Profile
Loaded plugins: langpacks, product-id, subscription-manager
Verifying : snowflake-odbc-2.25.4-1.x86_64 1/2
Verifying : snowflake-odbc-2.20.2-1.x86_64 2/2

Updated:
snowflake-odbc.x86_64 0:2.25.4-1

Complete!
Uploading Enabled Repositories Report
Loaded plugins: langpacks, product-id, subscription-manager
Finished setup of Snowflake 2.25.4 ODBC driver.

 

 

After the update the snowflake connection was tested and it failed as follows (prior to the update the test worked)

isql -v snowflake my_username my_password

[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified

[ISQL]ERROR: Could not SQLConnect

 

After the update script was run the following directory had been removed

/usr/lib64/snowflake/odbc (/usr/lib64/snowflake still exist but odbc and it's contents were deleted)

 

Any insights or guidance would be welcome.

1 Reply

Avatar

Level 4

After further investigation it looks like the "yum install -y snowflake-odbc-2.25.4.x86_64.rpm" step executed by

./snowflake_odbc-setup.sh --snowflake 2.25.4 removed the odbc directory in /usr/lib64/snowflake.  To fix this issue command "yum reinstall -y snowflake-odbc-2.25.4.x86_64.rpm" was run which successfully recreated the missing directory.  After a few additional minor configuration changes the snowflake connection works fine.