【问题标题】:Does liquibase 3.5.x have a default timeout while executing the changeset?liquibase 3.5.x 在执行变更集时是否有默认超时?
【发布时间】:2018-05-17 00:10:30
【问题描述】:

我是 liquibase 新手,需要知道使用 oracle 12 c 和 ojdbc7 的 liquibase 3.5.x 在执行任何变更集时是否有默认超时。我尝试执行非常延迟的变更集,最多执行 24 小时,即使变更集延迟了 24 小时,liquibase 仍然不会超时。 liquibase 变更集过期时是否有默认超时? 如果是,我想将默认值更改为自定义值。 我有从https://github.com/liquibase/liquibase/tree/3.5.x 下载的 liquibase 3.5.x 的所有源代码。 我已经看到帖子解释了定义 jdbc 超时How can I set the Liquibase database connection timeout and retry count? 的显式方法。但我正在研究与 liquibase 中的默认超时有关的内容。 如果在 liquibase 源代码中定义了默认超时,请指导我在哪里可以找到它并根据我的要求自定义超时。 在源代码中,我可以看到一些在 postgresql 文件中定义的“超时”,但找不到任何适用于 oracle 的“超时”。请帮我解决这个问题。谢谢。

【问题讨论】:

  • 我认为(可能是错误的)liquibase 中没有语句超时功能。 Liquibase 依赖于与数据库的 JDBC 连接。以及 JDBC 连接。 JDBC 驱动程序是可以定义语句超时的驱动程序。所以我猜你必须在你的数据库连接设置中为 JDBC 连接设置这个。
  • 你能给我举个例子吗?我不想更改我的应用程序数据库连接属性,我能否以某种方式在属性文件或其他内容中单独编写超时,并使用我正在执行 liquibase 的指定主机中的 -D 变量调用此超时?我想要做的就是在不触及主应用程序数据库连接属性的情况下隔离超时概念(仅限指定主机)。

标签: oracle12c liquibase ojdbc


【解决方案1】:

我找到了上述问题的简单解决方案。

对于 Oracle JDBC 连接:
Liquibase 自带了很多参数,其中之一是 --driverPropertiesFile=/path/to/file.properties,我们可以在其中指定需要的 jdbc 参数和链接将该属性文件添加到 liquibase update 命令。示例 file.properties 可以具有 oracle.jdbc.ReadTimeout=6000(时间以毫秒为单位)
- 超时后需要“liquibase releaseLocks”。

【讨论】:

    猜你喜欢
    • 2021-02-28
    • 2019-07-29
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    相关资源
    最近更新 更多