webMethods

webMethods

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
  • 1.  Webmethods On-Prem Connection to cloud snowflake

    Posted Fri February 07, 2025 05:51 AM
    Edited by kiran kumar Fri February 07, 2025 05:59 AM

    Hi Team,

    We have a requirement from client, where they want to connect on-prem Server to cloud snowflake database. I am trying to find any documents or reference on configuring, enabling the snowflake database connection.

    Did anyone implemented/enabled the snowflake connection from on-prem Integration server to snowflake. Any Admin documentation/implementation step doc also helps, I don't see much information available in JDBC Adapter documentation and also no document for snowflake etcc.



    ------------------------------
    kiran kumar
    ------------------------------



  • 2.  RE: Webmethods On-Prem Connection to cloud snowflake

    Posted Sun February 09, 2025 08:24 AM

    Hi Kirun Kumar.

    We did this on a project last year. I am no longer on the project but I can try to get you some info.

    Ping me on LinkedIn.

    Regards

    Wayne Leishman 



    ------------------------------
    Wayne Leishman
    ------------------------------



  • 3.  RE: Webmethods On-Prem Connection to cloud snowflake

    Posted Mon February 10, 2025 08:24 AM

    How about https://docs.webmethods.io/on-premises/webmethods-adapter-for-jdbc/en/10.3.0/webhelp/index.html#page/jdbc-webhelp%2Fre-db_conn_spec_snowflake_2.html%23wwconnect_header



    ------------------------------
    - Chirag
    ------------------------------



  • 4.  RE: Webmethods On-Prem Connection to cloud snowflake

    Posted Mon February 10, 2025 03:32 PM

    Kiran, in addition to the reference doc that Chirag has shared, here is what we provided in our webMethods (on-prem) JDBC adapter connection  "Other  properties" field:

    authenticator=snowflake;useProxy=true;proxyHost=<proxy IP if needed>;proxyPort=<proxy port>;
    schema=<schema name>;warehouse=<your warehouse>;role=<role>;
    CLIENT_SESSION_KEEP_ALIVE=true;CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY=n;
    nonProxyHosts=*.snowflakecomputing.com
     
    authenticator=snowflake: Specifies the authentication mechanism to be used. In this case, we set it to "snowflake," indicating that Snowflake's authentication will be employed, likely alongside the provided user and password for authentication purposes. We used "snowflake" since our on-premise to cloud connection was being done through a private link, so this was good enough. See below for other values available for authenticator parm.
     
    useProxy=true | false. We used true. Indicates whether a proxy will be utilized or not. In this configuration, it's set to "true," implying that a proxy will be used for the JDBC connection.
     
    proxyHost=n.n.n.n: Specifies the host or IP address of the proxy server that will be used for the JDBC connection.
     
    proxyPort=n: Indicates the port number of the proxy server, enabling the JDBC adapter to communicate through the designated proxy server.
     
    schema=<schema name>: Specifies the default schema name that will be used for the connection. 
     
    warehouse=<your warehouse>: Specifies the Snowflake warehouse that will be used for this connection. It defines the computing resources allocated to execute queries.
     
    role=<role>: Defines the role that will be assumed upon connection. Roles in Snowflake determine the set of privileges available for a session.
     
    CLIENT_SESSION_KEEP_ALIVE=true | false: We set ours to true. This indicates whether the client session should be kept alive. When set to "true," it ensures the client session remains active.
     
    CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY=n: We set our value to 3600. This specifies the frequency of heartbeat signals (in seconds) sent to keep the session alive. In this case, in our case we set it to 3600 seconds (1 hour), ensuring the session remains active by sending a signal every hour.
     
    Note: The authenticator property in a Snowflake JDBC connection can have different values depending on the authentication method used. Here are some possible values and their explanations:
     
    authenticator=snowflake (this is what we used)   - Uses Snowflake's built-in authentication with a username and password.
     
    authenticator=externalbrowser   - Enables OAuth-based authentication via an external web browser, requiring the user to log in interactively.
     
    authenticator=okta  - Uses Okta for federated authentication, requiring an account and user parameters along with Okta SSO credentials.
     
    authenticator=oauth    - Uses an OAuth access token for authentication, requiring the token property to be set.
     
    authenticator=saml    - Uses Security Assertion Markup Language (SAML) for single sign-on (SSO) authentication.
     
    authenticator=jwt  - Uses JSON Web Token (JWT) for key-pair-based authentication, often used for service accounts and automated access.
     
    Finally, you will need to get the required JDBC driver for Snowflake (jar) and put it in the Integration Server's WmJDBCAdapter package's static jars folder, then either reload the package.


    ------------------------------
    Wayne Leishman
    ------------------------------