这几天一直在被一个问题纠结:一个stateful session bean的实例变量中保存了一个ResultSet的实例,但是,当这个实例在该bean的一个方法中被创建后,从该方法返回后却发现这个ResultSet实例被关闭了。
这个问题我最初的第一直觉是,一定是什么地方调用了ResultSet的close方法。经过,一次又一次的调试断点可以断定没有调用这个方法。这时候觉得似乎和事务相关,觉得是某次调用抛出了异常,导致事务退出。但是,现在再想想,即使是有异常,也不是根本原因。根本原因还是事务相关。
由于一直没有明确的思路,这个问题就放了几天一直到昨天。这次我决定把之前down掉的调试环境搭建起来。因为我的调用是从另一个虚拟机发起。现在,想想这一步也不是必须的。其实完全可以找到那个方法的调用点,打上断点就可以断定是从哪个分支过来的。
确定了上游调用逻辑后,思路就清晰起来了: stateful session bean中定义的几个方法是业务方法,在一个上游方法中,被依次调用。问题是,第一个方法A创建并保持了一个ResultSet的实例,后续的方法B,C都依赖于这个ResultSet实例。当方法B被调用时,报了一个错:ResultSet already close。
此时,我开始关注这个Bean的事务,它是容器管理的事务。类型是Required。上游调用方法是一个普通类的方法没有事务关联,所以,每次调用方法A就会重新发起一个事务。这时候,我想是不是因为这里的问题?每次方法返回,事务就终结于是在事务中创建的ResultSet实例就close了。
为了验证我的想法我把事务的类型改成了Supports。这样如果调用方没有事务,会话bean的方法A就不会关联到一个事务。改完之后重起application server,运行case结果通过了。看来真是这里的问题。
现在的疑问是这个问题是怎么引入的?联想到系统刚刚升级到了EJB3,很多配置从XML文件一道了类中。于是查看了原来的配置文件,发现原来事务的类型是Bean,但是Bean中并没有用到事务,所以相当于没有事务。现在,升级的时候把它搞错了写成了Container。
重头梳理这个问题的解决思路,其实如果先去看改动历史应该能很快的确定问题所在。我也确实这么做了,但是只看了类文件的改动历史没有看配置文件。还是,问题定位的不准确。
分享到:
相关推荐
数据资产梳理方案是针对企业内部数据资源进行系统化管理和保护的重要步骤,其目的是提升...通过自动化的工具和技术,可以有效提升梳理效率,确保数据分类分级的准确性和合规性,从而构建一个安全、高效的数据管理体系。
在公务员面试中,结构化面试是一种常见的考核方式,旨在全面评估考生的综合素质,特别是他们的计划、组织、协调和问题解决能力。通过对【标题】"公务员结构化面试五大常见题型解题思路梳理.doc"的分析,我们可以了解...
当面对一个积极的社会现象,如“官员流行开微博”,答题时首先明确现象的内涵和外延,即官员开微博是为了加强与民众的沟通。然后表达肯定的态度,阐述其背景(如政府服务宗旨的提升,网络技术的发展等),意义(如...
这篇文档主要讨论的是论文思路梳理,特别是在毕业设计的背景下,涉及图像处理中的水印嵌入和检测技术。首先,文章提到了一个常数'i',它在表达前景和背景时起到重要作用。'Ip2州灭肾py21'可能是某种算法或者操作的...
总结来说,面试中面对社会热点问题,考生应具备全面、深入的分析能力,能够从多个角度出发,既看到现象的积极面,也不回避问题的存在,提出切实可行的解决策略。这种答题思路训练有助于提高考生的逻辑思维和表达能力...
根据给定文件的信息,我们可以梳理出16个经典面试问题及其回答思路。下面将逐一解析这些问题,以便求职者能够更好地准备面试。 ### 1. 介绍一下自己 - **回答思路**: - 开场简短介绍自己的基本信息。 - 着重讲述...
首先,步骤梳理是企业信息化建设的起点,它包括对企业内部和外部环境的深入分析,识别关键业务点、信息化管理问题以及可能的解决方案。步骤优化分为两种类型:BPI(业务步骤优化)和BPR(业务步骤重组)。BPI是对...
综上所述,四年级数学上册5解决问题的策略5.1.1用列表的方法解决求两积之和(差)的实际问题是一个非常实用的教学内容,它不仅能够锻炼学生的逻辑思维能力,还能提升他们解决实际问题的能力。通过精心设计的教学活动...
其目的是为了明确企业管理的关键点、识别存在的问题以及探索解决问题的方法。而流程优化则是指通过对现有流程进行调整和改进,以提高整体效率和效果的过程。 **BPI(业务流程优化)**:针对现有流程进行小规模的...
流程梳理是企业信息化建设的起点,包括对内部和外部因素的分析,识别管理的关键点,明确需要解决的问题和解决方案。流程优化是针对现有流程进行小规模改善,如BPI(业务流程优化),追求局部改进。而BPR(业务流程...
《生活与哲学》一书梳理了诸多重要的哲学原理和方法论,主要涵盖了唯物论、认识论和辩证法三大领域。这些知识对于理解和解决实际问题具有深远意义。 首先,唯物论强调世界的本质是物质,物质决定意识。一切从实际...
学生需要利用已有的概念、定理、模型以及恰当的思路和方法去解决各种情况下的数学问题,得到问题的答案。问题解决还要求学生能够发现和提出分析和解决问题,这是深度学习过程中的关键部分。 在小学数学教学中,问题...
画图策略不仅是问题解决的工具,也是思维的可视化表达,有助于学生理清思路,找到解题路径。布鲁纳的认知-发现学习理论支持了这一观点,强调直觉思维在学习中的关键作用,认为通过发现法,学生可以提高智慧潜能,...
同时,思路分析文件则可以帮助参赛者梳理解决问题的逻辑,确保论述的连贯性和说服力。 六、团队协作与时间管理 美赛强调团队合作,每个队员的角色分配和沟通协调是成功的关键。同时,4天的竞赛时间需要合理安排,...
以“很多干部去基层锻炼走过场”为例,作为组织部负责监督的人员,考生需要设计一个调查方案来了解实际情况。解题思路如下: 1. 计划:制定调查计划,包括确定调查形式(明察暗访)、组建调查团队、安排调查时间和...
该文档旨在帮助学生掌握如何将一次函数的知识应用于解决实际问题,并通过梳理关键知识点和精选例题来提升学生的数学建模能力和解决实际问题的技巧。 **一、知识点梳理** 1. **数学建模的一般思路** 数学建模的...
- **实现问题全面覆盖**:在确保内容的独立性后,我们还需要确保问题的每一个方面都能在我们列出的内容中找到对应项,即所有的解决方案都被考虑到,没有遗漏,达到“完全穷尽”的要求。 #### 三、创造初始假设的...