2012-04-23 305 views
0

在我的组织中,我们通过三层应用系统进行数据输入操作。配置如下图所示:为什么Weblogic服务器不释放内存?

  • 操作系统:Linux
  • 应用软件使用已建成:JSF(在Java EE框架技术)
  • 数据库:的Oracle 11g

的问题:对于每个条目,创建一个Enterprise Bean并保存在Weblogic Sever中的队列中。 Bean被发送到数据库,但用于该bean的内存未被释放。因此,在一定时间内,当命中数达到峰值并且内存使用达到16GB或更多时,服务器会挂起响应,并且必须重新启动才能释放内存。

为了安全起见,我们将最大并发连接设置为最大。但是这没有帮助。

什么可能是问题以及如何调整系统?

回答

1

Bean正在发送到数据库,但用于 bean的内存未被释放。

可能的内存泄漏,因为某些资源,比如数据库连接这里不是在代码被关闭。

乘坐Heap Dump into an HPROF file并运行此使用Eclipse的内存分析工具或VisualVM 或使用监视此JConsole