科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Java EE 常见性能问题解决手册6

Java EE 常见性能问题解决手册6

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 这篇文章,是PRO JAVA EE 5 Performance Management and Optimization 的一个章节,作者Steven Haines分享了他在调优企业级JAVA应用时所遇到的常见问题。

来源:IT专家网 2008年6月3日

关键字: 问题 3977 Java EE java

  • 评论
  • 分享微博
  • 分享邮件
事务

  使用Enterprise Java的一个好处就是它天生就支持事务。通过JAVAEE 5 EJB(Enterprise javaBeans)的注释,你可以控制事务中方法的使用。事务会以下面2中方式结束:

  •   1. 事务提交
  •   2. 事务回滚

  当一个事务被提交的时候,说明它已经完全成功了,但是当它回滚的时候,就说明发生了一些错误。回滚会是下面2种情况:

  •   1. 程序造成的回滚(程序回滚)
  •   2. 非程序造成的回滚(非程序回滚)

  通常,程序回滚是因为商业的规定。比如一个WEB程序做一个素描画的价格的调查,程序可能让用户输入年龄,并且商业规定18岁以上才可以进入。如果一个16岁的提交了信息,那么程序就会抛出一个错误,打开一个网页告诉他,他年龄还不能参与到这个信息的调查。因为程序抛出了异常,因此包含在程序中的事务的就会发生回滚。这只是普通的程序回滚,只有当发生大量的程序回滚才值得我们注意。

  另一方面,非程序回滚是非常糟糕的。有三种情形的非程序回滚:

  •   1. 系统回滚
  •   2. 超时回滚
  •   3. 资源回滚

  系统回滚意味着程序服务器中的一些东西非常的糟糕,恢复的几率很渺茫。超时回滚就是当程序服务器中的程序处理请求时超时;除非你把超时设置的很短才会出现这种错误。资源回滚就是当一个程序服务器管理内部的资源的时候发生错误。例如,如果你设置你的程序服务器通过一个简单的SQL语句去测试数据库的连接,但数据库对于程序服务器来说是无法连接的,这个时候任何和这个资源相关的事情都会发生资源回滚。

  如果发生非程序回滚,我们应该立刻注意,这个是不小的问题,但是你也需要留意程序回滚发生的频率。很多时候人们对发生的异常很敏感,因此你需要哪些异常对你程序来说才是重要的。

  总结

  尽管各个程序和他们的环境都各不相同,但是有一些共同的问题困扰着他们。这篇文章的注意力并不是放在程序代码的问题上,因为把注意力放在因为环境的问题而导致的低性能的问题上:

  •   1.内存溢出
  •   2.线程池大小
  •   3.JDBC连接池大小
  •   4.JDBC预先声明语句缓存大小
  •   5.缓存大小
  •   6.池大小
  •   7.执行事务时候的回滚

  为了有效的诊断性能的问题,你应该了解什么问题会导致什么样的症状。如果主要是程序的代码导致的恶果那你应该带着问题去寻求负责代码的人寻求帮助,但是如果问题是由环境引起的,那么就要依靠你的操作来解决了。

  问题的根源依赖于很多要素,但是一些指示器可以增加一些你处理问题时候的一些信心,依靠他们可以完全排除一些其他的原因。我希望这个文章能对你排解JAVAEE环境问题起到帮助。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章