查看运行进程的环境变量
在日常部署环境中常常需要为应用配置各种环境变量,如AIX系统下使用32位JDK的时候,需要增大heap size的时候需要设置LDR_CNTR=MAXDATA=0XB0000000@DSA这个环境变量。为了验证环境变量是否生效需要查看进程运行的环境变量。
专业系统工程师打杂,副业Linux geek
在日常部署环境中常常需要为应用配置各种环境变量,如AIX系统下使用32位JDK的时候,需要增大heap size的时候需要设置LDR_CNTR=MAXDATA=0XB0000000@DSA这个环境变量。为了验证环境变量是否生效需要查看进程运行的环境变量。
之前opera一直都不支持socks代理模式,在使用ssh翻墙的时候需要额外安装Privoxy来把ssh的socks代理转换成http代理。Opera 11.10后开始支持socks代理协议。但是还不能简单地在Settings->Preferences->Network->Proxy Servers里面设置socks代理。
在开发系统里面,代码更新快。每次更新class都要重启会很麻烦,特别是像websphere was 这样庞大的应用服务器。重启一次的时间真是…… =.=!所以好多开发人员都喜欢在tomcat上开发,搞好了再放上去was上面测试。 作为商业软件websphere was有免重启重新加载class的设置,他原理也是定时扫描应用的class文件有没有更新,如果有的就重新加载。当然会对应用服务器带来一定的开销,所以只建议对开发服务器和UAT测试服务器设置,不建议对生产系统和压力测试系统设置。
有一次在客户的一个weblogic系统,我在shell环境变量明明设unlimited的值是65535,但是他日志死活都报too many open file。到底设置到底生效了没有?还是系统的压力真的那么大?lsof看应该是没那么大。就不知道怎么查那个weblogic的JVM进程的unlimited值是多少呢? 原来cat /proc/PID/limits可以知道某个进程的unlimited值!
如果was启用了安全性,在停止WAS server的时候必须输入用户名和密码:./stopServer.sh server1 -username wasadmin -password wasadmin 黑客可以通过查询脚本、shell 历史、ps -ef等方法看到用户名、密码,造成安全隐患。 解决问题的方法:编辑 /WebSphere安装目录/profiles/server目录/properties/soap.client.props com.ibm.SOAP.securityEnabled=true com.ibm.SOAP.loginUserid=wasadmin com.ibm.SOAP.loginPassword=wasadmin com.ibm.SOAP.loginUserid登录DMGR的用户名,com.ibm.SOAP.loginPassword 为登录DMGR的密码。
“你爱一个人就要伤害她,因为唯有内疚才能让爱更加持久。” 这一段对白是《婚前试爱》的一个核心的对白,整个故事都是围绕这句外卖妹的对白而发生的。 近来学习ing哈佛大学公开课的幸福课。课程的英文原名叫Positive Psychology积极心理学。我更喜欢课程的英文的原名。所以我就是用这个课程学到的知识点来分析一下这部戏荒谬的观点!
在学习websphere的时候就觉得比weblogic复杂很多。我的同事说was和weblogic最大的不同就是was十分灵活,能适应不同环境,不同的拓扑的需要,特别是分布式的数据中心。今天看到一遍关于巨型websphere拓扑的最佳实践文档更是目瞪口呆。 拓扑 1: 每一个节点和节点应用服务器均衡。这种适合应用变化较少的生产环境。 DMGR部署在专用服务器上。30节点分别部署在专用的服务器上,每个节点至少有40个server。大约一个cell里面有1200个server。
WebSphere Application Server V7的新功能:Runtime Provisioning。应用服务器启动的时候不启动所有的组件,在需要时再启动组件。 应用场景: 1、应用只使用servlets和JDBC。没用使用EJB,安全性等,可以打开选项。加快应用服务器的启动时间,节约内存。 2、在Node agent、dmgr、proxy server、administrative agent,这些需要快速启动的组件。只会启动部分的管理组件。 打开方法: 在系统管理=>Deployment Manager。的配置页面里面。选上在需要时启动组件的复选框。 在系统管理=>Node Agent。的配置页面里面。选上在需要时启动组件的复选框。 应用程序服务器 > 服务器配置页面。选上在需要时启动组件的复选框。 (英文版的选项框名字:start components as needed)
继续调查上一篇blog的故障。在websphere的SystemOut里面发现很多WTRN0006W的信息。 [10/24/07 14:59:52:662 EST] 0000000f TimeoutManage I WTRN0006W: Transaction 0000011056531F8D000000050001C7E40B304AAB611AB4FC574CE136F63A9E07BE78A01B0000011056531F8D000000050001C7E40B304AAB611AB4FC574CE136F63A9E07BE78A01B00000001 has timed out after 120 seconds. 这个日志意味着这个事务在交易生命周期时间(Total transaction lifetime timeout)里面不能提交或者回滚。webspere默认值为120秒。当然WTRN0006W本身不是问题所在,而是一种症状。我们需要找到导致WTRN0006W的原因才能解决问题。
这几天有个客户的系统很慢。要调查原因,应该是DB2死锁的问题。但是当时没抓到死锁,所以没能够找到导致死锁的sql预计。这样只能换一个方法,从中间件入手,找最慢的URL。然后通过url找到相关的应用,应用找sql。 前提是IHS日志的格式有统计记录页面时间,例如: LogFormat “%h %t %u %v:%p(%P) %m-%H %TSec. %>s %b \”%U\” \”%q\”” common