如何在 Websphere Liberty 应用程序服务器中进行 snowfalkes DB JNDI 连接

how to do snowfalkes DB JNDI connection in Websphere Liberty application server

有没有办法在 websphere 应用程序服务器中配置雪花连接池。 我在 server.xml 文件中尝试了以下配置。但是不工作。

<dataSource id="SnowflakeDataSource" jndiName="jdbc/BM_SF" type="javax.sql.DataSource">
<properties db="abcd" schema="_TARGET" URL="jdbc:snowflake://adpdc_cdl.us-east-1.privatelink.snowflakecomputing.com" user="****" password="****" />
<jdbcDriver libraryRef="DatacloudLibs" javax.sql.DataSource="net.snowflake.client.jdbc.SnowflakeBasicDataSource"/>
</dataSource>

澄清一下,您的配置是为 Snowflake 数据源配置 WebSphere Application Server Liberty 的连接池,而不是 Snowflake 的连接池。

你的配置看起来还不错

当我查找您正在使用的 SnowflakeBasicDataSource class 时,我可以看到它有一个名为“databaseName”而不是“db”的 属性,所以您您需要在您的配置中切换它。

如果您还没有配置 Liberty 中的 jdbc-4.x 功能之一,并且您打算在 JNDI 中查找它(而不是注入它) ,您将需要 jndi-1.0 功能。

这里是一个有一些更正的例子:

  <featureManager>
    <feature>jdbc-4.2</feature>
    <feature>jndi-1.0</feature>
    ... your other features here
  </featureManager>

  <dataSource id="SnowflakeDataSource" jndiName="jdbc/BM_SF" type="javax.sql.DataSource">
    <properties databaseName="abcd" schema="_TARGET" URL="jdbc:snowflake://adpdc_cdl.us-east-1.privatelink.snowflakecomputing.com" user="****" password="****" />
    <jdbcDriver libraryRef="DatacloudLibs" javax.sql.DataSource="net.snowflake.client.jdbc.SnowflakeBasicDataSource"/>
  </dataSource>

如果这仍然不起作用,请查看您对 DatacloudLibs 库的定义,以确保它正确指向 Snowflake JDBC 驱动程序,如果它仍然不起作用,post 您看到的错误消息有助于确定原因。