首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当使用hibernate - envers并获取历史记录时,池连接没有空闲连接?

当使用hibernate - envers并获取历史记录时,池连接没有空闲连接?
EN

Stack Overflow用户
提问于 2019-02-28 16:40:51
回答 1查看 442关注 0票数 1

在websphere + oracle11g上有spring4+jaxb+jpa+hibernate-envers的应用。

有两个java方法,用于获取用户实体的历史记录:从rest - controller调用的方法getHistoryUser,它查找一个id的所有版本,并从基础中读取使用该id和版本的所有用户。extractUsers -只需将JPA - enities映射到字符串

我在websphere jdbc-resource上有base和poolConnection - param的参数。默认情况下,最大可用池连接数为10。我对此值有一个错误-服务不响应,所有连接都会中断。我可以对40个池连接使用变通方法,而且它是有效的。

当客户端调用getHistoryUser方法时-我没有可用的连接,你能帮助并说明原因吗?

代码语言:javascript
运行
AI代码解释
复制
public String getHistoryUser(String id) {
        logger.log(Level.INFO, "get history id=" + id);
        AuditReader auditReader = AuditReaderFactory.get(entityManagerFactory.createEntityManager());

        List<Number> auditVersions = auditReader.getRevisions(UserRecord.class, id);
        List<UserRecord> userRecords = auditVersions.stream().map(item -> {
            UserRecord elem = auditReader.find(UserRecord.class, id, item.intValue());
            elem.setVersion(item.intValue());
            return elem;
        }).collect(Collectors.toList());

        StringBuilder result = new StringBuilder();
        extractUsers(UserRecords).stream().forEach(item -> {
            result.append(item);
        });
        return result.toString();
    }



    private List<String> extractUsers(List<UserRecord> userRecords) {
        logger.log(Level.INFO, "extractUserRecords..");
        if (CollectionUtils.isEmpty(userRecords) || userRecords.stream().allMatch(x -> x == null)) {
            return new ArrayList<>();
        }

        return riskMetricRecords.stream().map(userRecord -> {
            String userRecord = (String) deserialize(userRecord.getUser());
            return appendMetaInfoInEntity(user, "<User>", userRecord.getPrKey(), Integer.toString(userRecord.getVersion()));
        }).collect(Collectors.toList());
    }

在我的JPA enity中,有用于使用hibernate envers的任何字段和@Audit注释

在日志中我也看到了一个有趣的警告..

代码语言:javascript
运行
AI代码解释
复制
[2/27/19 10:50:32:516 MSK] 00000103 SystemOut     O [2019-02-27 10:50:32.516] WARN  ework.orm.jpa.vendor.HibernateJpaDialect JDBC Connection to reset not identical to originally prepared Connection - please make sure to use connection release mode ON_CLOSE (the default) and to run against Hibernate 4.2+ (or switch HibernateJpaDialect's prepareConnection flag to false


How to fix this issue. It just code bug or some fueture of hibernate?
EN

回答 1

Stack Overflow用户

发布于 2019-04-11 11:12:20

您是否尝试过关闭entityManager?

如下所示:

代码语言:javascript
运行
AI代码解释
复制
EntityManager entityManager = entityManagerFactory.createEntityManager();
AuditReader auditReader = AuditReaderFactory.get(entityManager);
...
entityManager.close();

我也有同样的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54930415

复制
相关文章
CAN通信的数据帧和远程帧「建议收藏」
(先来一波操作,再放概念) 远程帧和数据帧非常相似,不同之处在于: (1)RTR位,数据帧为0,远程帧为1; (2)远程帧由6个场组成:帧起始,仲裁场,控制场,CRC场,应答场,帧结束,比数据帧少了数据场。 (3)远程帧发送特定的CAN ID,然后对应的ID的CAN节点收到远程帧之后,自动返回一个数据帧。
全栈程序员站长
2022/07/23
6.7K0
CAN通信的数据帧和远程帧「建议收藏」
详解CAN总线:标准数据帧和扩展数据帧
CAN协议可以接收和发送11位标准数据帧和29位扩展数据帧,CAN标准数据帧和扩展数据帧只是帧ID长度不同,以便可以扩展更多CAN节点。
不脱发的程序猿
2022/10/04
10.5K0
详解CAN总线:标准数据帧和扩展数据帧
数据帧的学习整理
事先声明,本文档所有内容均在本人的学习和理解上整理,不具有权威性,甚至不具有准确性,本人也会在以后的学习中对不合理之处进行修改。
全栈程序员站长
2022/09/20
2.9K0
数据帧的学习整理
[视频编码] 视频编码的三种帧:I帧,B帧,P帧
在视频压缩编码中,所有的帧被分成了三个种类,I帧,B帧和P帧,其实就是Intra-Prediction帧,Bi-prediction帧和Prediction帧。顾名思义,就是帧内预测帧,双向预测帧以及(单向)预测帧。
轻舞飞扬SR
2021/02/24
2.3K0
视频中的 I 帧,P 帧,B 帧
视频传输原理 视频是由一幅幅帧图像和一组音频构成的,视频的播放过程可以简单理解为一帧帧的画面按照时间顺序呈现出来的过程。但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大。这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流中的一部分画面进行压缩(编码)处理。 编码器将多张图像进行编码后生产成一段一段的 GOP ( Group of Pictures ) 如下图, 解码器在播放时则是读取一段一段的 GOP 进行解码后读取画面再渲染显示。GO
用户1097444
2022/06/29
3.7K0
视频中的 I 帧,P 帧,B 帧
函数栈帧的创建和销毁
函数栈帧( stack frame )就是函数调用过程中在程序的调用栈( call stack )所开辟的空间,这些空间是用来存放:
xxxflower
2023/04/16
8900
函数栈帧的创建和销毁
[C语言]函数栈帧的创建和销毁
返回值并不会随着函数作用域的销毁而销毁,而是放在eax中准备返回,当通过pop出栈回到main函数中再将返回值放到局部变量中。
IT编程爱好者
2023/04/12
5610
[C语言]函数栈帧的创建和销毁
函数栈帧的创建与销毁
最近在学习C语言的过程中遇到了一些问题,在询问老师和查询相关资料的基础上了解到了函数栈帧的相关概念,对下列问题也有了答案。
摘星
2023/04/28
5460
函数栈帧的创建与销毁
CAN总线学习笔记(2)- CAN协议数据帧与遥控帧
依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。好记性不如烂笔头,加油!
全栈程序员站长
2022/09/14
2.7K0
CAN总线学习笔记(2)- CAN协议数据帧与遥控帧
函数栈帧的创建和销毁
        ①函数参数和函数返回值    ②临时变量(包括函数的非静态的局部变量以及编译器自动生产的其他临时变量)   ③保持上下文信息(包括在函数调用前后需要保持不变的寄存器)
二肥是只大懒蓝猫
2023/03/28
7890
函数栈帧的创建和销毁
创建和使用逐帧动画
AnimationDrawable可以用来创建一个新类是由一个表示Drawable资源-frame动画,可以使用XML。在的应用res/drawable讲动画目录Drawable资源定义为外部资源。
全栈程序员站长
2022/07/05
3710
JAVA腾晖数据帧对接指南
十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F表示,其中:A~F相当于十进制的10~15,这些称作十六进制数字。
gang_luo
2020/08/13
3.9K1
JAVA腾晖数据帧对接指南
音频帧、视频帧及其同步
音频帧的概念没有视频帧那么清晰,几乎所有视频编码格式都可以简单的认为一帧就是编码后的一副图像,而音频帧会因编码格式的不同而不同,如 PCM 音频流可以直接进行播放,下面以 MPEG 音频帧格式为例介绍音频帧。
刘盼
2021/02/08
4.2K0
IP协议的数据帧长度是多少
1、如果使用PPP协议,帧最大长度1510字节,其中数据长度(加载上层的协议数据)不超过1500字节; 2、如果在以太网中,帧的长度为:64~1518字节(10~100Mbps 的以太网),1G及以上的以太网,帧长度为512~1518字节;其中数据长度(加载上层的协议数据)不超过1500字节。
葆宁
2019/04/18
3.7K0
Easy Tech:什么是I帧、P帧和B帧?
I帧、P帧和B帧(I-frames、P-frames and B-frames)的概念是视频压缩领域的基础。这三种帧类型在特定情况下用于提高编解码器的压缩效率、压缩流的视频质量,以及使得流去应对传输和存储时候的错误和故障。
LiveVideoStack
2021/09/23
3.5K0
Easy Tech:什么是I帧、P帧和B帧?
[TCP/IP] 数据链路层-ethereal 抓包分析数据帧
1.下载 http://dx1.pc0359.cn/soft/e/ethereal.rar
唯一Chat
2019/09/10
1.7K0
[TCP/IP] 数据链路层-ethereal 抓包分析数据帧
MMFlow :帧与帧之间的追光者
光流(Optical Flow),字面理解为“光的流动”,更准确的说法为:时变图像上的二维运动场,是视频数据的重要视觉线索,在动作识别、视频理解、视频分割、目标跟踪以及全景拼接等领域,都有广泛应用。
OpenMMLab 官方账号
2022/01/18
1.3K0
MMFlow :帧与帧之间的追光者
[android] 帧布局
/*******************2016年5月3日 更新**************************************/
唯一Chat
2019/09/10
7010
帧头
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
sofu456
2019/12/10
9190
点击加载更多

相似问题

Laravel mix.sass "prependData“不向scss文件提供数据

13

Webpack -导出SASS (.scss)文件

23

(Laravel)如何在webpack.mix.js中实现sass和tailwindcss

20

如何使用laravel-mix正确组合sass和less文件?

123

如何将sass和scss与webpack相结合?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文