0

我在我的应用程序中使用 Spring MVC + hibernate。应用服务器是 IBM WebSphere v7。在重新启动和重新启动应用程序后,Db2syscs进程使 CPU 使用率达到 99% 并消耗大约1,034,352K的内存使用量。这大约需要10~15 分钟。我尝试增加分配给 DB2 的堆大小,但没有任何区别。

编辑

这些是我在 spring 配置文件中的休眠属性。添加缓存、池属性会产生影响吗?

<prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.connection.datasource">jdbc/logincfg</prop>
<prop key="hibernate.transaction.factory_class">org.hibernate.transaction.CMTTransactionFactory
</prop>
<prop key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WebSphereExtendedJTATransactionLookup
</prop>
4

2 回答 2

0

如果您在 linux 上运行,请尝试使用 db2top 之类的监视器来确定哪个查询正在搅动您的 CPU。

 db2top -d <your database name>   
于 2012-11-07T14:22:02.230 回答
0

WebSphere本身处理其数据源的所有池和缓存级别。所有与 JDBC 相关的配置都可以通过WebSphere 管理控制台执行。尝试使用connection pool datasource instead of XA datasource. 还要检查heuristic hazard in server configuration。这些将减少 CPU 的负载。

于 2012-11-12T08:01:30.763 回答