gpt4 book ai didi

java - 替换 websphere Liberty 配置文件中的 WSCallHelper.clearStatementCache(connection)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:13:13 24 4
gpt4 key购买 nike

我正在将应用程序从 WAS7 迁移到 Liberty。

现有代码在某些情况下使用WSCallHelper.clearStatementCache(connection)(例如:在过程调用的情况下找不到包)。

我发现 WSCallHelper 在 liberty 服务器中不存在。

你能帮我想出一个自由的替代解决方案吗?它可以是特定的自由,也可以是支持所有服务器的通用方法。

最佳答案

了解更多关于您需要调用 WSCallHelper.clearStatementCache(connection) 的场景会很有帮助,但根据您所描述的内容,我假设它仅在错误路径。

在 Liberty 中,没有以编程方式清除语句缓存的 API。但是,缓存的语句只有在许多属性相同时才会匹配,例如:SQL 字符串、RS 可保存性、模式、隔离级别等。

为什么不需要 clearStatementCache:
您描述的调用 clearStatementCache 的示例场景是在数据库中找不到包时,但包应该反射(reflect)在 SQL 字符串或架构中。因此,假设您的应用程序不会重试失败的 SQL 字符串,您根本不需要调用 clearStatementCache。

如果你真的很想清除语句缓存:
正如 JDBC 规范所定义的,Statements 是 Connection 的子对象。因此,清除语句缓存的一种创造性方法是摆脱与错误语句的连接。调用 connection.close() 可能无法完成此操作,因为连接可以由应用程序服务器合并,但调用 connection.abort() 将摆脱底层连接,因此清除语句缓存。

关于java - 替换 websphere Liberty 配置文件中的 WSCallHelper.clearStatementCache(connection),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698993/

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