当前位置: 首页 > 知识库问答 >
问题:

底层的雪花驱动程序在这里共享连接吗?

曹钊
2023-03-14

使用此代码:

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;


public Connection fetchSnowflakeConnection(SnowflakeSettings settings) {
    Properties properties = getProperties(settings);
    try {
        String connectStr = null;
        if (StringUtils.isBlank(settings.url)) {
            connectStr = "jdbc:snowflake://us-east-1.blah.com";
        } else {
            connectStr = "jdbc:snowflake://" + settings.url;
        }

        Driver driver = DriverManager.getDriver(connectStr);
        LOG.info("Snowflake driver version: {}.{}", driver.getMajorVersion(),
                driver.getMinorVersion());
        return DriverManager.getConnection(connectStr, properties);
    } catch (Exception e) {
        LOG.error("Problem getting Snowflake connection with these settings: " + settings.toString(),
                e);
    }
    return null;
}

连接是池连接吗?我使用的是基本的java DriverManager,但在Mark的世界中,它得到的是一个雪花驱动程序,它将连接池化。所以

DriverManager.getConnection(connectStr, properties);

正在获取池连接。对吧?

共有1个答案

唐修明
2023-03-14

连接是池连接吗?

不,通过DriverManager.getConnection(…)API调用得到的是一个新建的独立连接对象。

连接池是一个缓存管理函数,这个API和下面调用的Snowflake JDBC驱动程序实现不携带或执行这个函数。

附注。虽然数据源实现可以携带某种形式的连接池,但Snowflake的实现(SnowflakeBasicDataSource,2020年6月)是一个恰当命名的基本实现,它每次调用都生成一个新连接,并且不参与池。

 类似资料:
  • 并得到一个错误。 src.zip/py4j/java_gateway.py“,第1257行,在调用应答中,self.gateway_client,self.target_id,self.name)文件”/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/utils.py“,第63行,在deco返回f(*a,**kw)文件”/opt/amazon

  • 问题内容: 我目前正在为大学的一个班级做项目。我正在学习有关连接和操作数据库的信息,我们正在使用Microsoft .accdb文件。 这是我到目前为止所拥有的。 当寻找“ sun.jdbc.odbc.JdbcOdbcDriver”时,我得到以下输出。 似乎很容易解决。看来我想念司机或类似的东西。但是,我很难找到解决方法。JDK随附驱动程序吗?我需要单独下载吗?是否取决于我的操作系统?(Mac O

  • 我的java代码使用com.mongodb.DB的单个实例连接到mongo DB。现在我使用这个db实例跨越500个线程,这些线程对我的db执行命令。所有这些都并行运行。以下是conf参数: 现在,如果我使用“db.serverStatus().connections”检查我的数据库,我会得到以下结果:“current”:52,“available”:19999,“totalCreated”:Nu

  • 我试图理解Datastax Cassandra驱动程序中的连池,因此我可以更好地在我的Web服务中使用它。 我有留档的1.0版。它说: Java驱动程序异步使用连接,因此可以在同一个连接上同时提交多个请求。 他们通过连接理解什么?当连接到集群时,我们有:一个生成器、一个集群和一个会话。他们中的哪一个是连接? 例如,有一个参数: MaxSimultaneousRecestsPerConnection

  • 问题内容: 我已经将我的应用程序设置为通过UCanAccess连接到Access数据库,但是无法连接到共享驱动器上的数据库。请参阅下面的示例。 当我将共享驱动器上的文件夹映射到某个字母(例如P :)时,这很有趣。 有可能解决这个问题吗?我的用户对该文件夹具有读/写权限,但是我不想在每台计算机上映射驱动器。谢谢 问题答案: 您只是在连接URL中没有足够的正斜杠来表示UNC路径。如前所述,对于本地连接

  • 我在向Pentaho数据集成添加MSSQL SERVER连接时遇到问题。 我尝试了以下方法: 我已经下载了最新的jdbc驱动程序(sqljdbc42)并将它们移动到lib文件夹 我在SQL SERVER中创建了一个新用户,并授予了它所有权限...没有帮助。 非常确定用户名/密码和登录设置 多次重新安装Pentaho,重新安装JDBC驱动程序 我有一台Mac,但在平行上使用Windows,我在这个环