如何对通过 MS JDBC 驱动程序运行的 MS SQL Server 查询强制执行查询超时?

2023-11-23

我们怎样才能让 MS JDBC 驱动程序在 n 秒后抛出超时错误?

背景

我们有一个应用程序,默认情况下使用 Microsoft JDBC 驱动程序(版本 4.0)来查询 SQL Server 2014。

大多数时候,查询需要 10-20 秒才能完成。然而,有时查询需要超过 5 分钟才能完成。

我们希望应用程序将耗时超过 5 分钟的查询视为错误。目前该应用程序没有提供超时设置,因此我们只能研究 MS JDBC 驱动程序的超时设置,但我找不到任何东西来标记长时间运行的查询有超时错误。

I have找到 jTDS 驱动程序的超时设置 (socketTimeout)。

MS 驱动程序是否有等效的“socketTimeout”或“queryTimeout”?我已尝试以下所有方法,但均不适用于 MS 驱动程序:

#None of these enforce a timeout with the MS Driver
jdbc:sqlserver://hostname\instanceName;databaseName=mydb;queryTimeout=10
jdbc:sqlserver://hostname\instanceName;databaseName=mydb;socketTimeout=10
jdbc:sqlserver://hostname\instanceName;databaseName=mydb;queryTimeout=10


#This works great with the jTDS driver:
jdbc:sqlserver://hostname\instanceName;databaseName=mydb;socketTimeout=10

Microsoft MSSQL-JDBC 现已开源。最近 MSSQL-JDBC 团队实施套接字超时 & 查询超时s。这绝对能解决你的问题。

使用连接查询:

String conURL = "jdbc:sqlserver://localhost;userName=sa;password=PASSW0RD;database=master;queryTimeout=5";
SQLServerConnection con = (SQLServerStatement) DriverManager.getConnection(conURL);

或使用数据源....

SQLServerDataSource ds = new SQLServerDataSource();
ds.setUser("sa");  
ds.setPassword("PASSWORD");  
ds.setServerName("localhost");  
ds.setPortNumber(1433);   
ds.setDatabaseName("master");
ds.setQueryTimeout(5);
SQLServerConnection con = (SQLServerConnection) ds.getConnection();

Ref: https://github.com/Microsoft/mssql-jdbc/wiki/QueryTimeout

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对通过 MS JDBC 驱动程序运行的 MS SQL Server 查询强制执行查询超时? 的相关文章

  • 在 Sql STUFF 命令中将最后一项的逗号分隔符替换为“and”

    如果我查询的输出是英国 美国 印度 是否可以像英国 美国那样显示查询结果and India 这是我的查询 Select stuff Select Distinct Country as text from tbl Country where
  • SQL Server 中的嵌套事务

    sql server 允许嵌套事务吗 如果是的话那么交易的优先级是什么 来自 SQL Server 上的 MSDN 文档 嵌套交易 http msdn microsoft com en us library ms189336 SQL 90
  • 批量插入不适用于 NULL 数据

    当我从 CSV 文件将批量数据插入到表中时 它不起作用 显示错误 第 2 行第 9 列的批量加载数据转换错误 类型不匹配或指定代码页的字符无效 csv 文件中的第 9 列值为空 我该如何处理这个问题 根据这些信息 我认为目标表的特定字段被定
  • SQL Server中的列级与表级约束?

    A 列级 GO CREATE TABLE Products ProductID INT CONSTRAINT pk products pid PRIMARY KEY ProductName VARCHAR 25 GO b 表层 CREATE
  • sql server 2008 对 exec 语句的限制

    我只需要仔细检查 t sql 中的 EXEC 命令是否有字符限制 如果我有一个带有 varchar max 的变量并使用 EXEC 执行命令 你认为这样可以吗 thanks 应该没问题 根据这篇 MSDN 文章 http msdn micr
  • Sql Server 的夏令时

    我们正在使用一个以 C Unix 格式存储日期的旧应用程序 C 时间基本上是自 1970 年 1 月 1 日以来的秒数 日期以整数形式存储在 SQL Server 数据库中 我正在为使用这些日期的报告编写视图 到目前为止 我正在使用以下命令
  • 实体框架中的批量插入

    我使用批量插入插入大量记录 例如 20K 当我仅插入一个实体时 它会正常工作 但是 当我用来插入多个实体 例如一对多 时 它将仅插入父实体 而不会插入子实体 我的实体和代码 Customer cs public class Customer
  • 合并sql中的列

    我正在使用 SQL Server 2017 有一个存储过程 其中我有一个带有连接的简单选择 例如 SELECT p legacyKey AS JobNumber p Name AS JobName G Label AS DesignStat
  • SQL 查询将文本数据存储在 Varbinary(max) 中

    有没有办法让 varbinary 在 SQL Server 中接受文本数据 这是我的情况 我有相当大量的 XML 我计划以 压缩 格式存储它们 这意味着 Varbinary 但是 当我进行调试时 我希望能够翻转配置开关并以纯文本形式存储 以
  • 当我使用可变参数而不是常量参数时,为什么我的内联表 UDF 慢得多?

    我有一个表值内联 UDF 我想过滤该 UDF 的结果以获得一个特定值 当我使用常量参数指定过滤器时 一切都很好 并且性能几乎是瞬时的 当我使用可变参数指定过滤器时 它会花费明显更大的时间块 大约是逻辑读取的 500 倍和持续时间的 20 倍
  • 我可以根据多列删除数据库重复项吗?

    I 不久前问过这个问题 https stackoverflow com questions 4952250 how to delete duplicates from a database table based on a certain
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e
  • Oracle JDBC 预取:如何避免 RAM 不足/如何使 oracle 更快高延迟

    使用 Oracle java JDBC ojdbc14 10 2 x 加载包含多行的查询需要很长时间 高延迟环境 这显然是 Oracle JDBC 中的默认预取默认大小 10 每 10 行需要一次往返时间 我正在尝试设置一个激进的预取大小来
  • 如何删除 Sql Server 2005 中存在的临时 SP

    我的问题很简单 如何删除临时存储过程 如果存在 这是因为当我在脚本中创建临时 SP 时 它会在第二次运行时抛出类似 数据库中已存在名为 sp name 的对象 的错误 我不想向用户显示此消息 请帮我 您的解决方案受到高度赞赏 临时进程的删除
  • Entity Framework 6(代码优先)实体版本控制和审计

    我正在考虑将 Entity Framework 6 1 1 与 SQL Server 2008 R2 一起使用 目前 我正在使用代码优先的 EF 功能创建模型和数据库 我的基本用例是创建一个特定实体的所有更改的日志 ID是关键栏 以帮助审核
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 插入具有只读主键列的表

    我正在使用一个使用 sql server 数据库的应用程序 我试图在表中插入一行 如下所示 该表有一个主键 prodNum 这是自动生成的密钥 当我尝试向表中插入一行时 如下所示 在行中intResult oSglProdTableAdap
  • 如何在 SQL Server 中不循环更新列?

    出于性能角度的考虑 我只需要删除循环并使用一些联接或其他解决方案来更新 Result 表中的数据并获得循环返回的相同结果 标量函数 CREATE FUNCTION MultiplyerScl a INT b INT RETURNS INT
  • 计算2个日期之间每个日期的记录数

    我必须创建一个查询来返回多轴图表的结果 我需要计算为 2 个日期之间的每个日期创建的 ID 数量 我试过这个 DECLARE StartDate datetime2 7 11 1 2020 EndDate datetime2 7 2 22
  • 将 SQL Server 2008 DB 迁移到 Postgres [重复]

    这个问题在这里已经有答案了 我想将 SQL Server 2008 数据库迁移到 Postgres 有没有一种无痛的方法来做到这一点 是否有任何工具可以扫描架构和存储过程以标记兼容性问题 无痛http dbconvert com conve

随机推荐

  • 我正在寻找一种简单的矩阵 [NxM] 快速 DCT 和 IDCT 算法

    我正在寻找一种简单的算法来快速执行DCT任意大小 NxM 的矩阵 类型 2 以及逆变换算法IDCT 也称为 DCT 类型 3 我需要 DCT 2D 算法 但即使 DCT 1D 算法也足够好了 因为我可以使用 DCT 1D 来实现 DCT 2
  • 如何在asp.net中使用JSON和JQuery从WebMethod返回DataTable?

    我是新来的JSON 我创建了一个示例 它返回String from WebMethod并将返回的值赋给asp net Label控制 返回字符串的 JSON 示例
  • AttributeError:模块“tensorflow”没有属性“get_default_graph”

    我正在做一些与图像字幕相关的任务 并且我已经加载了像这样的初始模型的权重 model InceptionV3 weights imagenet 但我收到这样的错误 AttributeError module tensorflow has n
  • BinaryFormatter 忽略程序集版本

    我有以下方法来生成对象的哈希值 效果非常好 但是 当我更改程序集的版本时 即使对象相同 哈希值也会发生变化 public static string GetHash Object item MemoryStream memoryStream
  • 如何获取Java中特定包中的所有Class文件?

    正如描述所述 如何获取给定包名称的所有 Java 类文件的列表 我在 SO 和其他网站上看到了很多问题和方法来查找特定 Java 包中的所有类 大多数解决方案对我来说都不起作用 有时 他们处理 Jar 文件 但不处理文件夹中的 普通 Jav
  • SSH 的 java.sql.Connection 扩展 [重复]

    这个问题在这里已经有答案了 我有一个位于防火墙后面的 MySQL 数据库 只能通过 SSH 连接访问 有谁知道 java sql Connection 的实现 它允许我与该数据库建立 SSH 连接 您可以使用 SSH 的端口转发来执行此操作
  • templateUrl 不适合我

    我按照 angular io 入门项目使用种子结构 到目前为止一切正常 现在我想更改顶部组件以从单独的文件中查看视图 但我遇到了麻烦 工作代码是 import Component View from angular2 core Compon
  • 不带括号的构造函数调用[重复]

    这个问题在这里已经有答案了 有什么区别吗 var obj1 new Constructor and var obj2 new Constructor 鉴于Constructor是构造函数吗 根据MDN docs new foo 相当于 ne
  • 是否可以确定哪个 Fortran 编译器生成了“.mod”文件?

    假设我的机器上已经安装了一个软件包 我想弄清楚是否需要重新生成模块包含文件 mod 使它们与我的其余编译兼容 有什么办法可以做到这一点吗 我在某些时候遇到了类似的问题 涉及库和模块文件 但没有源 因为在某些情况下 获得正确的编译器比获得重新
  • 使用AppDelegate共享数据

    我找到了一些资料来解释如何使用 AppDelegate 在 iOS 应用程序中的对象之间共享数据 我已经很轻松地实现了它 并且对于我的情况来说这看起来是一个很好的方法 思考什么could使用 AppDelegate 完成 我想知道应该在哪里
  • 在史莱姆中加载新的依赖项?

    我正在使用 emacs 和 swank clojure 我如何解决以下情况 我已向 project clj 添加了新的依赖项 我在 shell 中运行 lein deps 来获取新的 dep 我有一个打开的现有史莱姆会话 并且想要使用新部门
  • Windows PowerShell 在哪里设置 $profile?

    我想移动我的默认 My Documents WindowsPowerShell 文件夹 但是 当我尝试这样做时 PowerShell 当然找不到 profile 是否有一个文件或其他内容可以编辑以将 PowerShell 指向不同的启动文件
  • 当 ajax 调用更改其值时,AngularJS 中的 ng-repeat 列表不会更新

    我完全糊涂了 当 ajax 调用更改其值时 为什么我的 ng repeat 不刷新 我在这里看到了很多问答 但没有一个谈到ajax调用 HTML div class row div class col xs 4 col sm 4 col m
  • 从泛型转换为特定子类

    我有一堂这样的课 public class MyClass
  • 闪亮的数据表:在新窗口中弹出有关所选行的数据

    我有一个闪亮的数据表 当用户选择某一行时 我想在新窗口中根据所选行显示一些其他数据 我尝试使用shinyBS包 但如果没有操作按钮我就无法使用它 而且我不想包含操作按钮 我希望在选择一行时显示弹出窗口 有任何想法吗 mymtcars hea
  • Android 资源 txt 文件的路径

    我正在做 FileReader fin new FileReader file android asset myFile txt 在 Android 项目和许多变体中 在运行时我得到一个文件未找到异常 该文件在资产文件夹中存在且正确 因此我
  • 在 Chrome 中,为什么 SVGforeignObjects 不缩放相对定位的内容?

    我在 SVG 中使用相对定位的 HTML 元素foreignObject 然而 在 Chrome 中 相对定位的内容并不尊重scale or viewBox 因此 它的尺寸不合适 这是我在 jsFiddle 上遇到的问题的示例 所有三个文本
  • 如何在 Django 中编辑和删除数据?

    我正在使用 django 1 0 并且我已经使用 Django 书中的示例创建了我的模型 我能够执行添加数据的基本功能 现在我需要一种检索该数据的方法 将其加载到表单中 change form 或其他东西 EDIT它并将其保存回数据库 其次
  • 出现错误 EBUSY:资源繁忙或锁定

    尝试运行 Nodejs 应用程序来测试 Raspberry 3 B Gpio Onoff 模块 但当我尝试运行该应用程序时出现此错误 fs js 114 throw err Error EBUSY resource busy or lock
  • 如何对通过 MS JDBC 驱动程序运行的 MS SQL Server 查询强制执行查询超时?

    我们怎样才能让 MS JDBC 驱动程序在 n 秒后抛出超时错误 背景 我们有一个应用程序 默认情况下使用 Microsoft JDBC 驱动程序 版本 4 0 来查询 SQL Server 2014 大多数时候 查询需要 10 20 秒才