这几天一直在被一个问题纠结:一个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(业务流程优化)**:针对现有流程进行小规模的...
这些原理和方法论不仅为我们揭示了宇宙的本质,同时也提供了一整套认识世界、改造世界的工具,对于解决生活中的实际问题,以及个人成长、科技创新、社会治理等诸多方面,都有着深远的启示与指导意义。 唯物论是这...
学生需要利用已有的概念、定理、模型以及恰当的思路和方法去解决各种情况下的数学问题,得到问题的答案。问题解决还要求学生能够发现和提出分析和解决问题,这是深度学习过程中的关键部分。 在小学数学教学中,问题...
画图策略不仅是问题解决的工具,也是思维的可视化表达,有助于学生理清思路,找到解题路径。布鲁纳的认知-发现学习理论支持了这一观点,强调直觉思维在学习中的关键作用,认为通过发现法,学生可以提高智慧潜能,...
同时,思路分析文件则可以帮助参赛者梳理解决问题的逻辑,确保论述的连贯性和说服力。 六、团队协作与时间管理 美赛强调团队合作,每个队员的角色分配和沟通协调是成功的关键。同时,4天的竞赛时间需要合理安排,...
以“很多干部去基层锻炼走过场”为例,作为组织部负责监督的人员,考生需要设计一个调查方案来了解实际情况。解题思路如下: 1. 计划:制定调查计划,包括确定调查形式(明察暗访)、组建调查团队、安排调查时间和...
该文档旨在帮助学生掌握如何将一次函数的知识应用于解决实际问题,并通过梳理关键知识点和精选例题来提升学生的数学建模能力和解决实际问题的技巧。 **一、知识点梳理** 1. **数学建模的一般思路** 数学建模的...