存档

作者存档

WebLogic如何更换64位JDK

2010年5月18日 hashei 没有评论

使用32位JDK时,JVM一般设置最大设置为1.7G,而现在服务器普遍内存都很大,当然可以通过多个server建立垂直集群来更好的利用资源,但不妨使用64位JDK。虽然WebLogic可以直接在setDomainEnv里指定JAVA_HOME来更改JDK,但肯定会遇到BEA-000438的错,原因在于缺少对应64位JDK的native io libaray(位于weblogic/server/native)。一种方式是从别处拷贝一份过来,还有一种是下载wls_generic.jar形式的安装文件,而不是已经带有JDK的。然后下载64位JDK安装(Jrockit下载),用java –jar wls_generic.jar来安装就可以了。

————————————————————————————

附一个错误分析,和native libaray相关,但并不是由于64位的关系,而是没有执行权限。

启动过程中发现

<Apr 28, 2010 6:27:15 PM GMT+08:00> <Error> <Socket> <BEA-000438> <Unable to loa
d performance pack. Using Java I/O instead
. Please ensure that a native performa
nce library is in: ‘/opt/java1.5/jre/lib/IA64N:/opt/java1.5/jre/lib/IA64N/server
:/opt/java1.5/jre/../lib/IA64N::/opt/weblogic/bea/weblogic90/server/native/hpux1
1/IPF64:/opt/weblogic/bea/weblogic90/server/native/hpux11/PA_RISC:/opt/weblogic/
bea/weblogic90/server/native/hpux11/PA_RISC/oci920_8:/usr/lib’

没有启动native io,导致系统性能低下(这里要注意HP-UX里IA64N下的是32位JDK,IA64W下的才是64位JDK),而且java io配置的值较小,产生如下报错

<Apr 28, 2010 6:15:03 PM GMT+08:00> <Warning> <Socket> <BEA-000402> <There are:
5 active sockets, but the maximum number of socket reader threads allowed by the
configuration is: 4. You may want to alter your configuration.>

在应用使用过程中从而出现

<Apr 28, 2010 6:14:10 PM GMT+08:00> <Error> <Console> <BEA-240003> <Console enco
untered the following error javax.servlet.jsp.JspException: Broken pipe (errno:3
2)
        at com.bea.console.taglib.html.tree.TreeTag.print(TreeTag.java:231)
        at com.bea.console.taglib.html.tree.TreeTag.doEndTag(TreeTag.java:192)

观察控制台的thread信息

Self-Tuning Thread Pool    
Active Execute Threads    Execute Thread Total Count    Execute Thread Idle Count    Queue Length    Pending User Request Count    Completed Request Count    Hogging Thread Count    Standby Thread Count    Throughput    Health
16    58    15    6048    0    144840    4    38    4.577865205875421    OK

排队的请求数多达6000个,导致了OutOfMemory,在JAVA堆还很空的情况下

观察发现/opt/weblogic/bea/weblogic90/server/native/hpux11/IPF32下面和native io相关的libmuxer.so没有执行权限,chmod +x 后再次启动错误信息不再出现

分类: weblogic 标签: ,

欲速则不达

2010年4月12日 hashei 1 条评论

离上次更新已经有一个半月了,这段时间在机房待的比较多,弄的我耳鸣不止,双休日又读书,所以一直懒得动笔,难得的空闲时间又在沉迷《火炬之光》(Torch Light)。博这种东西,一旦有了惰性就完了啊,今天总算打起精神,记下最近走过的几个弯路。

在Linux上安装WAS7,图形界面无法启动的问题

$ ../JDK/jre.pak/repository/package.java.jre/java/jre/bin/java setup.jar The installer is unable to run in graphical mode. Try running the installer with the -console or -silent flag.

这个问题其实是freebsdjlu做实验的时候发现的,因为我之前安装都是没问题,所以一开始觉得是安装软件的问题,没下完整或者ftp没用二进制,后来发现是缺少compat-libstdc++-33这个包。

后来去查了安装环境要求,原来需要的包很多

Preparing Red Hat Enterprise Linux 5 for installation

Platforms that support both 32-bit and 64-bit applications require both the 32-bit and 64-bit versions of the following packages:

  • compat-libstdc++-33-3.2.3-61
  • compat-db-4.2.52-5.1
  • libXp-1.0.0-8
  • libXmu-1.0.2-5
  • libXtst-1.0.1-3.1
  • pam-0.99.6.2-3.26.el5
  •  libXft-2.1.10-1.1
  • 可以参考 Installing and verifying Linux packages来安装需要的包

    而且SELinux也是需要考虑的

You should consider the following points if you have enabled Security-Enhanced Linux (SELinux) on your Red Hat Enterprise Linux Version 5 operating system.

  • If SELinux is enabled and enforced while you are installing the product from the CD, then you must mount the CD with the following option:
     -o context=system_u:object_r:textrel_shlib_t
  • If you enable SELinux after installing the product while SELinux was disabled, then the file labels will be reset when the system is rebooted. In this case, you must run the relabel_was.sh script located in app_server_root /properties/version/nif/config/script to relabel the product runtime files. Note that running the relabel_was.sh command is not necessary if you made security mode changes with the commandsetenforce, which does not required a system reboot.
    后来在一篇博客上看到这么一段

    My little poor server

    为什么一开始决定要在Windows Server 2003 64bit上安装Oracle9i呢?于是给服务器安装了Windows Server 2003 64bit操作系统。

    可是为什么硬件架构是AMD64和Intel 64呢?Oracle9i没有这两个架构的64bit版本。于是格式化了重新安装Redhat Enterprise Linux 5。

    可是又为什么不是正版的Redhat Enterprise Linux 5呢?于是格式化安装了Redhat Enterprise Linux 4 Update 2。

    可是为什么RHEL4 Update 2不能在阵列上设置MPIO呢?于是格式化安装了Redhat Enterprise Linux 4 Update 4。

    时间就这样在一遍一遍地折磨服务器和折磨群众的过程中悄然溜走,转眼就到了下班的时候,Yeah,明天再说了。
    博主在评论里的一句话道出了真理:都是在出现问题以后才去检查软硬件兼容表的,呵呵。

在IBM刀片机上安装RHEL报错

在一台IBM的刀片机(JS21,PowerPC芯片)上直接安装redhat5.5——rhel-server-5.5-ppc-dvd。安装过程中报错:

md: Autodetecting RAID arrays.

md: autorun …

md: … autorun DONE.

RAMDISK: Compressed image found at block 0

RAMDISK: ran out of compressed data

invalid compressed format (err=1)

Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

机器上原先有操作系统AIX5.3

用上面这串错误去Google的话,会得到很多不同的解释,就是说造成这个问题的原因有多种。一次次的尝试很耗费时间,最后找到了这篇文章,《IBM Installation Toolkit:在 POWER 上加载 Linux》,用文中提到的工具IBM Installation Toolkit for Linux on POWER一次就安装成功了。(因为RHEL 5.5本月头上刚发布,所以工具介绍里没有写明支持,但是安装没有问题,5.3以上都用能用这个来安装)

这个问题其实和先前那个一样,被原有的知识所误导——X86平台上IBM的ServerGuide是为安装Windows操作系统准备的,安装Linux直接用安装盘即可,上手就去做,欲速则不达。

分类: 每周精华 标签: ,

Java 类加载器的又一篇文章

2010年3月3日 hashei 2 条评论

之前写过两篇关于java类加载的文章,分别是:《WebSphere的类加载机制和故障排查》,《再谈WebSphere的类加载和故障排查》。今天在IBM网站上看到一篇《深入探讨 Java 类加载器》,分享出来炒炒冷饭。以后遇到问题的时候也能有点方向。

Java 虚拟机默认的行为就已经足够满足大多数情况的需求了。不过如果遇到了需要与类加载器进行交互的情况,而对类加载器的机制又不是很了解的话,就很容易花大量的时间去调试 ClassNotFoundExceptionNoClassDefFoundError 等异常。本文将详细介绍 Java 的类加载器,帮助读者深刻理解 Java 语言中的这个重要概念。

互联网网站的反爬虫策略浅析(转)

2010年2月28日 hashei 没有评论

很早就看过,不过那时候没网站,也就没上心,自从开了JQ公会,头两月还好,第三个月搜狗的爬虫每天就占了几G的流量,不过那时候是虚拟主机,可配置性不大。现在转到VPS,也要开始注意了。

http://robbin.javaeye.com/

互联网网站的反爬虫策略浅析

因为搜索引擎的流行,网络爬虫已经成了很普及网络技术,除了专门做搜索的Google,Yahoo,微软,百度以外,几乎每个大型门户网站都有自己的搜索引擎,大大小小叫得出来名字得就几十种,还有各种不知名的几千几万种,对于一个内容型驱动的网站来说,受到网络爬虫的光顾是不可避免的。

一些智能的搜索引擎爬虫的爬取频率比较合理,对网站资源消耗比较少,但是很多糟糕的网络爬虫,对网页爬取能力很差,经常并发几十上百个请求循环重复抓取,这种爬虫对中小型网站往往是毁灭性打击,特别是一些缺乏爬虫编写经验的程序员写出来的爬虫破坏力极强。曾经有一次我在JavaEye的日志里面发现一个User-Agent是Java的爬虫一天之内爬取了将近100万次动态请求。这是一个用JDK标准类库编写的简单爬取网页程序,由于JavaEye网站内部链接构成了回环导致程序陷入了死循环。对于JavaEye这种百万PV级别的网站来说,这种爬虫造成的访问压力会非常大,会导致网站访问速度缓慢,甚至无法访问。

此外,相当数量的的网页爬虫目的是盗取目标网站的内容。比方说JavaEye网站就曾经被两个竞争对手网站爬取论坛帖子,然后在自己的论坛里面用机器人发帖,因此这种爬虫不仅仅影响网站访问速度,而且侵犯了网站的版权。

对于一个原创内容丰富,URL结构合理易于爬取的网站来说,简直就是各种爬虫的盘中大餐,很多网站的访问流量构成当中,爬虫带来的流量要远远超过真实用户访问流量,甚至爬虫流量要高出真实流量一个数量级。像JavaEye网站虽然设置了相当严格的反爬虫策略,但是网站处理的动态请求数量仍然是真实用户访问流量的2倍。可以肯定的说,当今互联网的网络流量至少有2/3的流量爬虫带来的。因此反爬虫是一个值得网站长期探索和解决的问题。

阅读全文…

分类: 每周精华 标签:

软硬兼施 优化 WebSphere Application Server

2010年2月21日 hashei 没有评论

之前看的很多was优化案例,包括自己实施过程中都只从WebSphere的角度来考虑问题,虽然WAS的优化中包括了操作系统层面的优化,比如对AIX、HPUX的系统参数做出调整,对于网络tcp的参数做出改动,但并没有更进一步,在进行LPAR分区前就做出完整的规划。

WebSphere管理员和硬件与操作系统管理员往往交流不多,且是串行的实施顺序。虽说也就那么做下来了,但是是否充分发挥了硬件的资源,是否达到了最好的性能,最稳定的运行,还是可以有改进的余地?都值得探讨。IBM网站上这三篇文章可谓打通了两种管理员之间的任督二脉,看懂了总有好处。

本书提供了整体系统观点,重点关注在 Power System 和 AIX 上运行 WebSphere Application Server 负载的环境的端到端系统部署、调优和管理方法。因而,本书为两类截然不同的技术读者架起了一座桥梁,也就是硬件和操作系统管理员与 WebSphere Application Server 应用软件工程师。我们都了解,在典型的企业环境中,这两类技术读者需要密切合作,但仍然有着不同的视角和职责。然而,对于企业来说,在度量 Power System 和 AIX 上运行的 WebSphere Application Server 投资的成败时,最终要取决于所有系统架构师能否很好地理解如何同心协力地利用每种产品的特有优势。因而,我们首先要做的是澄清各种观点。

在 Power System 上优化 WebSphere Application Server,第 1 部分: 入门以及优化策略

在 Power System 上优化 WebSphere Application Server,第 2 部分: 设置 Power System 硬件和分区(上)

在 Power System 上优化 WebSphere Application Server,第 3 部分: 设置 Power System 硬件和分区(下)

有空么可以再看看《WebSphere Application Server V6.1 Planning and Design WebSphere Handbook Series》

SSH的一些知识

2010年2月14日 hashei 没有评论

最近的几个项目里都用到Linux,于是不能像UNIX下有同事帮忙配置好一切那样轻松,要自力更生了。首先记录一下每次都会用到却还没深深记录在我的艾宾浩斯记忆曲线中的SSH相关知识。

SSH的全称为Secure Shell Protocol,是一种在互联网上提供安全远程登录(取代telnet)及其它安全网络服务(取代FTP)的协议,只要在客户端连接时选择SSH协议即可。对于服务器端的配置,Red Hat Enterprise Linux默认开启了SSH服务,对于配置文件的详细解释,可以参考下面两篇文章。

sshd_config配置 详解

sshd_config 中文手册

由于SSH的传输加密特性,还可以用来做安全隧道

SSH tunnel tips 

IBM developworks上的这一篇 实战 SSH 端口转发 介绍的更为详细,而且有“X 协议转发实例分析”,在维护UNIX/LINUX时可以更方便。

安全隧道的实际用途之一么,当然是用来翻墙。

Firefox + Autoproxy + Tor 使用详解(转载)

MyEnTunnel+FireFox+FoxyProxy 通过SSH帐号翻墙教程

如何使用代理服务器

当然用PPTP建个VPN也是可以的

利用低端VPS开设VPN翻墙

科学松鼠会的一篇公钥安全机制与宫爆鸡丁的故事不错

扯远了,最后付一篇

Unix/Linux 系统自动化管理: 远程登录篇

分类: 信息安全, 每周精华 标签: