我有一个 Struts-hibernate 应用程序(struts 1.3 / hibernate 4.3),该应用程序使用Oracle10G进行Db连接。 Apache Tomcat7 用于部署和运行 Jdk-6 的应用程序。我们正在使用 linux服务器作为具有16gb物理内存的OS。一次将有多个用户(至少500个)使用此应用程序。
我面临一个重大问题,例如,登录到应用程序并进行了一些活动之后,一段时间后它自动挂起并冻结,并且Log4j或服务器的控制台日志中没有向上滚动的日志信息,只有加载微调器盘旋。当时无法进行任何活动,无法单击任何按钮或浏览页面等。冻结期间,甚至也没有其他任何多用户可以登录。
我在下面提到了应用程序正在使用的一些配置,以便您可以获得一些概述;
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="1500" minSpareThreads="24"
maxIdleTime="60000" />
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="100" connectionTimeout="20000"
redirectPort="8443" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"/>
export JAVA_OPTS="-Dfile.encoding=UTF-8 -d64 -Xms1024m -Xmx6000m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+UseParallelGC"
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<property name="show_sql">false</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.idle_test_period">100</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">100</property>
<property name="hibernate.c3p0.max_statements">500</property>
<property name="hibernate.c3p0.timeout">100</property>
我已经使用代码中的事务commit
和rollback
正确地处理了所有休眠会话,然后关闭了会话。
任何想法,如果以上配置引起了此问题以及我还需要配置什么,以便应用程序平稳运行,而在多用户或单用户情况下也不会停止。