您的位置:首页 > 运维架构

关于OpenClinica部署出错的问题汇总(一)

2014-07-10 16:05 471 查看
前段时间,写了两篇文章,分别是在windows和linux平台下部署OpenClinica3.2的基础教程。其实笔者在刚开始接触OpenClinica的时候,部署上面也常常出现千奇百怪的问题。解决问题的方法,还是希望大家自己总结。在此,我把自己的方法分享给大家。

问题一:java.lang.OutOfMemoryError: PermGen space

这个问题其实挺简单的,想解决它,就是调整tomcat分配的内存。官网的建议挺有意的,推荐配置是2GB内存,但是在实际应用中我发现,想要让Open正常运行,物理机最少需要2GB内存。在这里只能对官方数据呵呵了。

下面说正题,调整tomcat分配的内存,百度一下有很多种方法。我在这里给出一种专门针对2GB物理内存的配置方法,以供大家参考。

JAVA_OPTS='-server -d64 -Xms2g -Xmx20g -XX:PermSize=1g -XX:MaxPermSize=4g -XX:-UseGCOverheadLimit'

这句话需要修改tomcat/bin/catalina.sh。将这句话放在该文件的开头。

然后重启tomcat,一切搞定。

问题二:SEVERE: Error listenerStart
Jul 10, 2014 1:07:30 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/openclinica] startup failed due to previous errors
Jul 10, 2014 1:07:30 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/openclinica] registered the JDBC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Jul 10, 2014 1:07:30 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/openclinica] appears to have started a thread named [net.sf.ehcache.CacheManager@6609e5f0] but has failed to stop it. This is very likely to create a memory leak.
Jul 10, 2014 1:07:30 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/openclinica] appears to have started a thread named [net.sf.ehcache.CacheManager@508b00d5] but has failed to stop it. This is very likely to create a memory leak.
Jul 10, 2014 1:07:30 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/openclinica] appears to have started a thread named [Timer-2] but has failed to stop it. This is very likely to create a memory leak.
如果tomcat中log信息显示以上的错误,说明Open没有连接上数据库。
出现如下的原因有两种:

1、OpenClinica中datainfo.properties数据库用户名和密码配置错误。这个文件的具体路径为“tomcat/webapps/sunecrf/WEB-INF/classes”

2、由于重启tomcat导致的JDBC连接池为正确释放。解决方法,使用ps -A命令列出所有运行中的进程。使用kill -9 FID 杀掉java进程和postgres进程。

然后使用/etc/init.d/postgresql-8.4 start 启动postgresql数据库,然后/usr/local/tomcat/bin/startup.sh启动OpenClinica。一切正常。

小结:

关于部署OpenClinica过程中出现的问题,我目前就遇到这两类。如果后续还有的话,我会更新进来,也希望大家如果发现更过的问题,也可以告诉我。大家互相进步,我的QQ和电话在我的个人主页的个人信息中都有。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息