Resin服务器配置(转)

1Jdk和Resin安装步骤

1.下载jdklinux版本,j2sdk-1_4_2_10-linux-i586.bin。

2.下载resin-2.1.17.tar.gz。或更好版本

3.直接输入:j2sdk-1_4_2_10-linux-i586.bin就可以安装成功。本身它有安装脚本。

4.修改用户根目录下配置文件。(1)ls-a查看文件(2)vi.bash_profile添加:exportJAVA_HOME=/home/usboss/j2sdk1.4.2_10/

Note:配置这个文件类似于windows的配置windows的环境变量。修改了这个文件一定要重新登陆。

5.tar-zxfresin-2.1.17.tar.gz直接的解压就可以使用。

2文件Httpd.sh参数配置解释

1.文件位置:${resin30}/bin/httpd.sh

2.args='-J-server-Xms200m-Xmx1024m-Xloggc:./log/gc.log-XX:MaxNewSize=256m-XX:MaxPermSize=256m-Djava.awt.headless=true'

(1)J-server-Xms200m-Xmx1024m其中,-Xms200m表示启动时,初时内存大小,-Xmx1024m

最大内存占用大小。

(2)-XX:MaxNewSize=256m-XX:MaxPermSize=256m表示:内存的永久保存区域的大小

(3)-Djava.awt.headless=true解决在linux/unix验证码图片不能显示的问题。

3.然后,启动时展示

java-server-Xms200m-Xmx1024m-Xloggc:./log/gc.log-XX:MaxNewSize=256m-XX:MaxPermSize=256m-Djava.awt.headless=true-Xss1m-Dresin.home=/home/channel/appsvr/resin-3.0.22-Dserver.root=/home/channel/appsvr/resin-3.0.22-Djava.util.logging.manager=com.caucho.log.LogManagerImpl-Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImplcom.caucho.server.resin.Resin-socketwait35303-stdout/home/channel/appsvr/resin-3.0.22/log/stdout.log-stderr/home/channel/appsvr/resin-3.0.22/log/stderr.l

3查看日志的方法

1.可以看logs目录下stdout.log的输出信息。也可以看log目录下的。命令是:

实时信息:tail–100f日志文件名100代表了显示100行数据

静态历史信息:tail–100日志文件名100代表了显示100行数据

2.在resin/logs下的stdout.log是存放这server实时输出的信息。

3.vi命令可以看日志,可以查找等更多的功能。

4.stderr.log表示错误信息的日志。

4常见问题和解答

4.1解决:内存、heap、验证码显示的集成配置配置方式?

1.文件位置:${resin30}/bin/httpd.sh

2.args='-J-server-Xms200m-Xmx1024m-Xloggc:./log/gc.log-XX:MaxNewSize=256m-XX:MaxPermSize=256m-Djava.awt.headless=true'

(1)J-server-Xms200m-Xmx1024m其中,-Xms200m表示启动时,初时内存大小,-Xmx1024m

最大内存占用大小。

(2)-XX:MaxNewSize=256m-XX:MaxPermSize=256m表示:内存的永久保存区域的大小

(3)-Djava.awt.headless=true解决在linux/unix验证码图片不能显示的问题。

3.然后,启动时展示

java-server-Xms200m-Xmx1024m-Xloggc:./log/gc.log-XX:MaxNewSize=256m-XX:MaxPermSize=256m-Djava.awt.headless=true-Xss1m-Dresin.home=/home/channel/appsvr/resin-3.0.22-Dserver.root=/home/channel/appsvr/resin-3.0.22-Djava.util.logging.manager=com.caucho.log.LogManagerImpl-Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImplcom.caucho.server.resin.Resin-socketwait35303-stdout/home/channel/appsvr/resin-3.0.22/log/stdout.log-stderr/home/channel/appsvr/resin-3.0.22/log/stderr.l

4.2在linux/windows下,验证码图片不能正常显示?

答:修改位置:在resin3/bin/httpd.sh文件,在args位置,增加:-Djava.awt.headless=true

4.3对于OutOfMemoryError:PermGenspace,如何处理?

答:PermGenspace的全称是PermanentGenerationspace,是指内存的永久保存区域OutOfMemoryError:PermGenspace从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被Load的时候被放入PermGenspace区域,它和和存放Instance的Heap区域不同,GC(GarbageCollection)不会在主程序运行期对PermGenspace进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGenspace错误。这种错误常见在web服务器对JSP进行precompile的时候。

修改位置:在resin3/bin/httpd.sh文件,在args位置,增加:-XX:MaxNewSize=256m-XX:MaxPermSize=256m

4.4如何对标准日志输出配置大小和天数进行配置?

详细参见:

http://caucho.com/resin-3.0/config/log.xtp#Log-Levels

在Resin.conf文件中查找

<logname=""path="stdout:"timestamp="[%H:%M:%S.%s]"/>

如果是标准的Resin3.0的默认配置文件,大概第9行左右。

修改为如下内容:

按日期生成日志

<logname=""level="all"path="log/stdout.log"timestamp="[%H:%M:%S.%s]"

archive-format="%Y-%m-%d.stdout.log.gz"

rollover-period="1W"/>

level日志级别:off/severe/warning/info/config/fine/finer/finest/all

path日志文件路径:log/stdout.log

archive-format归档格式:如2007-5-10.stdout.log.gz

rollover-period日志回滚方式:按天(15D)、按周(1W)、按月(1M)、按小时(1h)等。

按文件大小生成日志

<logname=""level="warning"path="log/stdout.log"timestamp="[%H:%M:%S.%s]"

archive-format="%Y-%m-%d.stdout.log.gz"

rollover-size="10mb"/>

rollover-size每个日志文件的大小:byte(5000)、kb(128kb)、mb(10mb)

其他参数同上。

按照USBOSS的日志输出方式,可能看文件大小比较合适,每个日志文件10M-20M就差不多了。

4.4.1指定debug日志

Ausefultechniqueistoenablefulldebugloggingtotrackdownaproblem:

<logname=''level='finer'path='log/debug.log'timestamp="[%H:%M:%S.%s]"rollover-period='1h'rollover-count='1'/>

4.4.2日志标准

NameAPIMeaning

offturnofflogging

severelog.severe("...")aseriousfailure,likelytopreventnormalprogramexecution

warninglog.warning("...")apotentialproblem

infolog.info("...")informationalmessages

configlog.config("...")staticconfigurationmessages,meanttoassistindebuggingproblemsassociatedwithparticularconfigurations

finelog.fine("...")tracinginformation

finerlog.finer("...")fairlydetailedtracingmessage

finestlog.finest("...")highlydetailedtracingmessage

allallmessagesshouldbelogged

4.5当出现内存耗没、或日志写的太快时,如果解决?

答:用top命令来查询一下全部进程的使用情况,发现有问题的进程,kill-9processId。

4.6当outofmemory时,出现死锁进程,如果解决?

答:首先用ps–ef|grepjava查看进程命令,看系统内存使用情况。如果是存在死锁进程,可以通过kill-9PID,来杀死它,然后重启。如果系统内存很小,可以对$RESION_HOME/bin/httpd.sh内的参数进行调整。

4.7当resin启动时,如何指定java的内存大小?

1.Window下内存设置:-J"-server-Xms500m-Xmx1000m”

2.Linux配置:resin3/bin/httpd.sh中的args。

4.8Kill了指定的java进程后,resin它又自动的重启,怎么kill那?

答:在httpd.sh文件中,有一个自动重启的perl脚本。可以通过ps–ef|grepjava,来找出谁在调用java进程,发现perl进程在调用java,使用ps–ef|grepperl,查找出来,先kill掉perl进程。然后再killjava进程。

4.9查看resin是否是自动重启?

答:httpd.sh–h,中一个-no-auto-restart:disableautomaticserverrestart,默认是自动重启的,可以指定这个启动参数,使得resin不自动重启。ps–ef|grepperl,看看这个进程是否是在启动状态。是否是让应用是否重启,可以根据具体情况来设定。更多信息,可以看wrapper.pl文件,搜索keepalive或auto-restart关键字,看它的初始参数值。

4.10Resin不能启动,报java不能发现?

答:首先,检查java是否安装和是否在用户下的.bash_profile中进行了配置。

其次,如果安装和配置正确,再检查用户是否正确。如果用户是通过sutoChangetheeffectiveuseridandgroupidtothatofUSER.例如:su–foo。这时执行shell命令:source或者..bash_profile。

4.11如何查看resin的命令参数解释?

答:查看命令参数httpd.sh–h,manhttpd.sh,vihttp.sh,

4.12如何配置session的超时时间?

usingsession-configandsession-timeouttocontrolthenumberofsessions

<web-appid='/dir'>

<session-config>

<!--2hourtimeout-->

<session-timeout>120</session-timeout>

<session-max>4096</session-max>

</session-config>

</web-app>

4.13Resin正常启动,DB中有用户,报用户不存在?

答:resin.conf中,一个conf只能配置一个<jndi-name>名称,并且这个名称必须是唯一的。否则,前面的将覆盖前面的,所以导致不能登陆。

4.14程序的建立连接数多时,系统死锁?

答:原因是resin.conf中,最大连接数配置的太少。这是可以调节到一个比较大的值。缺省为128个连接。

<max-connections>configuresthemaximumnumberofopenconnectionsallowedforResin'sdatabasepool.Sitescanuse<max-connections>tothrottlethenumberofdatabaseconnectionsforanoverloadedserver.Whenmax-connectionsisreachedandanapplicationcallsgetConnection,Resinwillwaitconnection-wait-timeoruntilaconnectionisfreedbeforeallocatinganewconnection.

default128

4.15服务器上的resin启动不了?

答:首先要查看,log/stderr.log,看看是什么原因。例如:resin-2.1.17用root用户启动过,那么就会在logs/access.log日志,当重新启动时,当向access.log文件中写东西时,将报错,因为是不同的用户建立的这个文件,需要首先删除这个文件。

相关推荐