Hibernate Mapping 加载慢,时常连接超时问题

遗留工程开发新功能 增加了几张表 用eclipse hibernate 插件自动生成映射文件(*.hbm.xml)和Entity, 然后开发dao, 单元测试的时候发现时间有点久, 偶尔还有这样的异常

Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:555)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:613)
... 49 more
Caused by: org.dom4j.DocumentException: Connection timed out Nested exception: Connection timed out
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:546)
... 50 more

刚开始误以为数据库连接超时,但偶然中发现新生成的映射文件的头与之前的映射文件的头不一致
新映射文件头是这样的

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

已有映射文件头

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

发现解析新映射文件需要好几秒

Feb 27, 2016 1:58:04 PM org.hibernate.cfg.Configuration addResource
INFO: Reading mappings from resource : config/bar/Award.hbm.xml
Feb 27, 2016 1:58:09 PM org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
INFO: Mapping class: com.foo.activities.bar.entity.Award -> award

而将http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd改成http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd后, 立即解析完成

Feb 27, 2016 2:00:00 PM org.hibernate.cfg.Configuration addResource
INFO: Reading mappings from resource : config/bar/Award.hbm.xml
Feb 27, 2016 2:00:00 PM org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
INFO: Mapping class: com.foo.activities.bar.entity.Award -> award

为什么会有这样大的差距呢,而在浏览器中实际访问上述两个url, 却得到相反的认识, 访问http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd很快, 而访问http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd压根访问不了。

尝试跟踪了半天源码也没找到具体哪里不同。可有什么工具可以便捷的定位到底是哪一处代码执行较久吗? 现在使用JDK自带的jvisualvm中的Sample, 定位的还是很粗粒度, 如

基本上就是异常信息中的类信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值