【问题标题】:What to do if user closes page in the middle of a mysql long query?如果用户在 mysql 长查询中间关闭页面怎么办?
【发布时间】:2011-02-28 17:23:34
【问题描述】:

如果用户只是关闭页面,mysql 查询会发生什么?我应该为此做任何检查吗?我正在使用 JPA 2.0(EclipseLink 2.0)、JSF 2.0、EJB 3.1(lite) 和 Glassfish 3.1。谢谢。

【问题讨论】:

    标签: java mysql jpa


    【解决方案1】:

    在数据库中,查询将继续运行直到完成。可以终止运行查询的会话,但在数据库之外提供该功能存在安全问题。

    【讨论】:

      【解决方案2】:

      通常,您无法检测到它或中止正在进行的查询。由于无法从 Java 中断正在进行的查询,因此您无法使用 CPU 时间来完成该过程。

      为什么会有这样的问题?你想避免什么?

      【讨论】:

        【解决方案3】:

        在 JPA 中,您可以定义一个传递给 JDBC 的超时。您还可以设置一个 maxResults 来限制返回的行数。

        JDBC 现在还提供了一个 cancel() API,但 JPA 还没有公开这个。

        【讨论】:

        • FWIW JDO 还提供了一个 cancel() API,还允许手动关闭查询(及其结果)。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-23
        • 2011-12-13
        • 1970-01-01
        • 2012-07-15
        • 1970-01-01
        • 1970-01-01
        • 2020-05-19
        相关资源
        最近更新 更多