[转帖]weblogic配置小总结 ._Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3186 | 回复: 0   主题: [转帖]weblogic配置小总结 .        下一篇 
晶晶
注册用户
等级:少校
经验:1086
发帖:89
精华:0
注册:2012-11-8
状态:离线
发送短消息息给晶晶 加好友    发送短消息息给晶晶 发消息
发表于: IP:您无权察看 2012-11-12 14:20:53 | [全部帖] [楼主帖] 楼主

下面内容都来之网络,在WebLogic11下可用,为了方便今后的工作进行简单的总结。 

1.        在产品模式下不用输入用户名密码自动启动
修改文件:startWebLogic.sh,增加下面红色字体部分:

SAVE_CLASSPATH=""
trap 'stopAll' 1 2 3 15
WLS_USER=”weblogic”
WLS_PW=”weblogic123”
if [ "${PRODUCTION_MODE}" = "true" ] ; then
WLS_DISPLAY_MODE="Production"
else
WLS_DISPLAY_MODE="Development"
fi
if [ "${WLS_USER}" != "" ] ; then
JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.management.username=${WLS_USER}"
fi
if [ "${WLS_PW}" != "" ] ; then
JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.management.password=${WLS_PW}"
fi


2.        控制台中文输出乱码问题
修改文件:startWebLogic.sh,增加下面红色字体部分

 if [ "${WLS_REDIRECT_LOG}" = "" ] ; then
echo "Starting WLS with line:"
echo "${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/l
ib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}"
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Dfile.encoding=GBK -Djava.security.policy=${WL_
HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}
else
echo "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}"
${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Dfile.encoding=GBK -Djava.security.policy=${WL_
HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS} >"${WLS_REDIRECT_LOG}" 2>&1
fi


3.        修改启动时内存大小
修改文件:setDomainEnv.sh

     修改前:

 if [ "${JAVA_VENDOR}" = "Sun" ] ; then
WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms256m –Xmx512m"
export WLS_MEM_ARGS_32BIT
else
WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_32BIT
fi


         修改后:

 if [ "${JAVA_VENDOR}" = "Sun" ] ; then
WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m –Xmx512m"
export WLS_MEM_ARGS_32BIT
else
WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"
export WLS_MEM_ARGS_32BIT
fi


4.        编写重启weblogic的脚本()

功能说明:重启时停止服务,自动备份输出日志到logs目录下,启动服务
新建文件: restart.sh

内容:

sh ./bin/stopWebLogic.sh
mv systemLog.log ./logs/ systemLog.log.`date '+%Y%m%d%H%M'`
nohup ./startWebLogic.sh > systemLog.log &
tail -f systemLog.log


修改文件的执行权限:chmod +x restart.sh

5.        Weblogic报出java.lang.OutOfMemoryError: PermGen space异常。
问题原因:Because the Classloader (and the Class objects it loaded) cannot be recycled. They are stored in the permanent heap generation by the JVM, and when you redepoy a new class loader is created, which loads another copy of all these classes. This can cause OufOfMemoryErrors eventually. 由于SUN JVM对permanent heap generation 区域的内容不做垃圾回收造成应用动态Load class文件过多引起的OutOfMemory错误。频繁deploy会导致weblogic报permGen 错误。
修改文件:setDomainEnv.sh

解决方案:(修改-XX:MaxPermSize由原来的128M调整为256M或512M)

MEM_PERM_SIZE="-XX:PermSize=48m"
export MEM_PERM_SIZE
MEM_MAX_PERM_SIZE= "-XX:MaxPermSize=512m"
export MEM_MAX_PERM_SIZE


6.        weblogic 部署出现too many file opens

问题原因: linux系统对用户打开太多文件的数量有限制,可以通过ulimit –a 查看到open files                      (-n) 1024。
修改文件:/etc/security/limits.conf,commEnv.sh(weblogic的公用环境设置文件)

修改内容:将文件中打开文件数限制从原来的1024调整为更大。
文件中增加下面内容:(user1 为对应的系统用户名)

#<domain>      <type>  <item>         <value>
#
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
User1 hard nofile 65535
User1 soft nofile 65535


commEnv.sh文件的修改:(下面这段脚本没太看懂,在上面的方案还不好使得情况下使用下面的修改)

# limit the number of open file descriptors
resetFd() {
      if [ ! -n "`uname -s |grep -i cygwin || uname -s |grep -i windows_nt || /
      uname -s |grep -i HP-UX`" ]
      then
      maxfiles=`ulimit -H -n`
if [ "$?" = "0" -a `expr ${maxfiles} : '[0-9][0-9]*$'` -eq 0 ]; then
      ulimit -n 65535
      fi
      fi
}


7.Weblogic部署Hibernate3出现ClassNotFoundException: org.hibernate.hql.ast.HqlToken的问题。
问题原因:WebLogic已经集成了antlr包 ,在使用Hibernate时,会先加载其本身所带的antlr包, 所以会和Hibernate 捆绑的antlr包冲突。可以通过修改hibernate的hibernate.query.factory_class参数为org.hibernate.hql.classic.ClassicQueryTranslatorFactory,但是这样会导致部分复杂的sql服务在hibernate下使用。下面介绍不调整这个参数的两种解决方案。
解决方案:(下面的解决方案不一定起作用,具体问题具体分析)
①:修改应用的weblogic.xml文件:增加下面问容,让系统启动优先加载应用中使用的lib包。

<container-descriptor>
<servlet-reload-check-secs>-1</servlet-reload-check-secs>
<session-monitoring-enabled>true</session-monitoring-enabled>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>


②:上传antlr-2.7.6.jar到${DOMAIN_HOME}/lib/,修改domain的setDomainEnv.sh文件

JAVA_PROPERTIES="${JAVA_PROPERTIES} ${CLUSTER_PROPERTIES}"
export JAVA_PROPERTIES
# Clear the pre_classpath here in case an application template wants to set it before the larger pre_classpath is invoked below
PRE_CLASSPATH="${DOMAIN_HOME}/lib/antlr-2.7.6.jar:"
export PRE_CLASSPATH




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论