gpt4 book ai didi

derby - 如何关闭在 WildFly 上正确定义为 DataSource 的嵌入式 Derby

转载 作者:行者123 更新时间:2023-12-04 21:14:21 29 4
gpt4 key购买 nike

当我在 WildFly 上正常定义 Derby 数据源时,db.lck 文件未被删除,这表明每次关闭 WildFly 时数据库都没有正确关闭。因为嵌入式 Derby 需要一个特殊的关闭过程,该过程正在获取与以“;shutdown=true”字符串结尾的 JDBC URL 的新连接。

所以,我需要一个类似关机钩子(Hook)的东西来执行关机程序。我发现旧的 JBoss 有办法实现它:

https://developer.jboss.org/wiki/SetUpADerbyDatasource
http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/releases/org.jboss.jbossas/jboss-as-varia/6.0.0.Final/org/jboss/jdbc/DerbyDatabase.java

但我不知道如何在最近的 WildFly 上应用它,因为它的数据源定义中不再允许使用“mbean”和“depends”元素,而且我在最近的 WildFly 上找不到它的等价物。

我认为数据源定义的“connection-listener-class”变量是相当大的,它可能是实现它的一种方式。我还没有尝试过,但它看起来有点复杂,我不确定它是否能按预期工作。

那么,有没有办法用最近的 WildFly 定义一个执行 Derby 关闭程序的关闭 Hook ?

编辑:

我发布了将 Apache Derby 安装到 WildFly 的说明,其中包括我的解决方案。
http://www.nailedtothex.org/roller/kyle/entry/installing-apache-derby-to-wildfly

最佳答案

我用 MBean 找到了更好的解决方案。它只是在每次 WildFly 关机时执行关机程序。

只需克隆 this repository并建立一个 jar ,把它放到$WILDFLY_HOME/standalone/deployments .项目中有各种文件,所以在这里粘贴所有文件很烦人。

对 org.jboss.ironjacamar.jdbcadapters、connection-listener-class 和 connection-listener-property 的依赖是不必要的,所以现在 $WILDFLY_HOME/modules/org/apache/derby/main/module.xml可以简化如下:

模块.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.apache.derby">
<resources>
<resource-root path="derby.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>

关于derby - 如何关闭在 WildFly 上正确定义为 DataSource 的嵌入式 Derby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27835236/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com