resin-pro-3.1.6在5月5号已经正式发布,这次不再先发布一个dev版了。

第一时间提供破解下载 :

resin-pro-3.1.6.zip 下载 (10.6M)

resin-pro-3.1.6.tar.gz 下载 (10.6M)

Resin Change Log

我会及时破解Resin的最新版本!

虽然resin-pro-3.1.5早在2月26号就发布了,但一直标记为dev,今天发现已经不是dev了,赶紧下载回来破解。

resin-pro-3.1.5.zip 下载

resin-pro-3.1.5.tar.gz 下载

此次破解的跟上次的3.1.3一样,功能上完全没有任何限制了,可以使用session持久化、cache等,只需要做好相关的配置即可。

3.1.5的Change Log请看官方文档:Resin Change Log,同时可以看到3.1.6 snapshot了。

我会及时破解Resin的最新版本!

在mysql中使用默认字符集为utf8,结果想要把中文按拼音排序出现了问题,排出来的顺序乱七八糟,不是我们想要的结果。

 解决办法如下:

1、不想改变表定义及默认编码的情况,将字段先转换成gbk编码再排序:

SELECT * FROM table ORDER BY CONVERT( chinese_field USING gbk ) ;

前提是在安装mysql时安装了gbk字符集,不然会报错:

#1115 - Unknown character set: 'gbk'

在编译源码时加上gbk编码即可,如果已经安装好了,重新编译再安装,重新编译安装一般不会影响mysql的已有设置,包括数据都不会受到影响。

2、直接将字段的字符集改成gbk,然后直接使用order by 排序即可。

mysql 5.x支持某列单独定义字符集。

3、网上也有人说将字段定义加上binary属性也能达到效果,未作测试,不敢评论。

mysql的文档中也提到字符集校对规则:

SELECT * FROM t1 ORDER BY a COLLATE utf8_bin;

但此仅仅只影响校对规则,并不影响字符的字符集本身。

网上有很多关于Ubuntu 7.10 desktop下安装vmware的文章,但没有一个关于在server下安装的文章。经过研究,终于将vmware server 1.0.4安装到了Ubuntu 7.10 server下,安装过程如下:

1、必要条件

安装linux头文件,在后面的步骤需要,不然安装会不成功:

apt-get install linux-headers-`uname -r` build-essential (注意`uname -r`中的`不是单引号
apt-get install xinetd (vmware的启动由xinetd负责,如果已经安装,则不需再安装了)

安装一些server版没有的包:

apt-get install  libx11-6 libx11-dev x-window-system-core x-window-system xspecs libxtst6 psmisc

网上也有人说安装如下包也可以,本人未作测试:

apt-get install xorg-dev

2、开始安装:

安装具体步骤请见:http://www.helloyesok.com/2007/11/12/install-vmware-server104-ubuntu710.html

安装过程中如果提示找不到头文件目录,则手工输入:/lib/modules/2.6.22-14-server/build/include,根据你的具体版本不同,2.6.22-14-server目录名称可能也会有所不同。

3、安装后

如果安装后启动不了,则再次运行vmware-any-any-update113目录下的runme.pl,重新配置一遍vmware。

打开防火墙的902端口,就可以在windows中的vmware server console连接了。

参考:http://www.onedoor.cn/note/archives_14363.html

由于种种原因,resin有时会遇到resin down机的情况,比如:java.lang.OutOfMemoryError。这样的问题如果从代码角度来解决问题,也不是一时半会能解决的,应急解决方案是启用resin-pro的ping功能。
    <resin:if test=”${isResinProfessional}”>
      <ping>
        <url>http://localhost:8080/ping.jsp</url>
        <sleep-time>1m</sleep-time>
        <try-count>5</try-count>
        <socket-timeout>30s</socket-timeout>
      </ping>
    </resin:if>

ping.jsp可随意写一些代码,纯html代码也行,只能服务器能响应返回200。

如果访问resin访问http://localhost:8080/ping.jsp返回不是200 code,然后再重试try-count次,如果依然不响应200,则将自动重启resin服务。

如果在resin tag下配置了:

  <system-property mail.smtp.host=”127.0.0.1″/>
  <system-property mail.smtp.port=”25″/>

还可以让resin自动给你发个邮件通知你它自动重启过了:

    <ping resin:type=”com.caucho.server.admin.PingMailer”>
      <url>http://localhost:8080/ping.jsp</url>
      <mail-to>fred@hogwarts.com</mail-to>
      <mail-from>resin@hogwarts.com</mail-from>
      <mail-subject>Resin ping has failed for server ${’${’}server.name}</mail-subject>
    </ping>

这样配置好了,不管resin出现什么故障,只要resin进程不死,就可以放心睡大觉了。

如果还启用了resin的session持久化存储,用户基本感觉不到服务已经重启过了。

如果启用了resin的cluster,那么请修改httpd.sh,将-server参数加上,不然重启resin后是没有cluster的。

当然,这此功能都是resin-pro版提供的,免费版不支持ping,也不支持session持久、cluster。我已经破解了resin-pro版,可放心启用这些功能,并且将及时破解resin发布的最新pro版本。

关于resin破解,请查看<<破解resin-pro-3.1>>

网页标题的写法还需要专门讨论?

满足下列条件就需要:

1、当你的网页编码是UTF-8

2、标题是中文

 如果1和2都满足,必须要将标题放在编码定义的下面,不然IE显示一片空白,而FireFox下没问题。

下面的写法在IE中显示一片空白,FireFox下正常:
<title>意见反馈 — 网络收藏夹 在线密码管理 自动登录所有网站–豌豆网(onedoor)</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

这种写法才是正确的写法:
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title>意见反馈 — 网络收藏夹 在线密码管理 自动登录所有网站–豌豆网(onedoor)</title>

没想到IE是如此的“不聪明”,而在做网页时最好按照规范来做。

或许,使用工具写html也是一个不错的主意…

在windows下正常运行,并能正确发送邮件的代码,移植到linux(ubuntu 7.1)下却出现了问题:

 java.lang.NullPointerException
 at java.lang.String.concat(String.java:1827)
 at com.sun.activation.registries.MailcapFile.parseLine(MailcapFile.java:235)
 at com.sun.activation.registries.MailcapFile.parse(MailcapFile.java:197)
 at com.sun.activation.registries.MailcapFile.createMailcapHash(MailcapFile.java:157)
 at com.sun.activation.registries.MailcapFile.<init>(MailcapFile.java:40)
 at javax.activation.MailcapCommandMap.loadFile(MailcapCommandMap.java:276)
 at javax.activation.MailcapCommandMap.<init>(MailcapCommandMap.java:128)
 at javax.activation.CommandMap.getDefaultCommandMap(CommandMap.java:44)
 at javax.activation.DataHandler.getCommandMap(DataHandler.java:136)
 at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:568)
 at javax.activation.DataHandler.getContent(DataHandler.java:501)
 at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1253)
 at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2012)
 at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1980)
 at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:381)
 at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:326)
 at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:322)
 at com.nes.util.OneDoorMailSender$MailSender.run(OneDoorMailSender.java:310)
 at java.lang.Thread.run(Thread.java:595)

经查看java doc(http://java.sun.com/products/javabeans/glasgow/javadocs/javax/activation/MailcapCommandMap.html)发现,在用户的根目录下有个隐藏的.mailcap文件:

-e
# Java Web Start
application/x-java-jnlp-file; /usr/local/java/jre/bin/javaws %s

原来最前面有个-e的东东,与java doc描述不符,注释掉这行,然后发送邮件成功。

附:

mailcap 文件搜索顺序:

MailcapCommandMap 在用户系统的各个位置查找 mailcap 文件条目。当发出请求以搜索 MailcapCommandMap 中的命令时,它以下面的顺序搜索 mailcap 文件:

  1. 以编程方式添加到 MailcapCommandMap 实例的条目。
  2. 用户主目录中的 .mailcap 文件。
  3. <java.home>/lib/mailcap 文件。
  4. 名为 META-INF/mailcap 的文件或资源。
  5. 名为 META-INF/mailcap.default 的文件或资源(通常只存在于 activation.jar 文件中)。

mailcap 文件格式:

# 注释以 '#' 开头并延续到行的末尾。
<mime type>; ; <parameter list>
# 其中参数列表由一个或多个参数组成,
# 其中参数类似于:x-java-view=com.sun.TextViewer
# 参数列表类似于:
纯文本; ; x-java-view=com.sun.TextViewer; x-java-edit=com.sun.TextEdit
# 注意,不包含 'x-java' 参数的 mailcap 条目
# 和遵守 RFC 1524 的条目将被忽略:
image/gif; /usr/dt/bin/sdtimage %s

#vi /etc/syslog.conf

加入以下行:
local7.*   /var/log/firewall/firewall.log

然后按照网上前人的经验,将/etc/init.d/sysklogd中的

SYSLOGD=”"

修改为:

SYSLOGD=”r”

再重启syslog:

/etc/init.d/sysklogd restart

发现514端口没打开。

再修改:

#vi /etc/default/syslogd

SYSLOGD=”"

修改为:

SYSLOGD=”-r”

#tail /var/log/messages

出现:

Jan  5 00:35:05 dingl-ubuntu syslogd 1.4.1#21ubuntu3: restart (remote reception).

说明syslog可接收外部日志了。

配置防火墙可从514端口接收外部日志:

/sbin/iptables -A INPUT -p udp –dport 514 -j ACCEPT
重启防火墙。

在远程设备上设置将日志发送到syslog服务器。

#tail /var/log/firewall/firewall.log

成功发现日志,配置成功。

12月 31st, 2007破解resin-pro-3.1

在网上查看了很多关于resin性能的文章,比较公认的说法是resin比tomcat的性能要高很多。

但最近在csdn上看了一篇文章,说resin 3.x的免费版与tomcat性能已经不相上下了。原因有两个:

1、tomcat从5.0后就开始在性能上不断改进,以达到生产环境的要求;

2、resin从3.0开始分为免费版与pro版,更多的性能改进被放到了pro版中了,所以免费版的性能就下降了。

基于这样的一些原因,更由于resin的pro版支持session持久化存储、负载均衡及cache等高端特性,于是对破解resin pro版产生了兴趣。

经过N个夜晚的奋战,终于把这个pro版给破解了。

网上也有人说破解得不好的resin pro版可能会使性能下降,个人感觉不存在这样的问题,只要破解了即可享用pro版的各种特性,性能也有大幅提高。

以下的resin启动的部分输出:

Resin Professional 3.1.4 (built Tue, 04 Dec 2007 11:27:12 PST)
Copyright(c) 1998-2007 Caucho Technology.  All rights reserved.

Starting Resin on Mon, 31 Dec 2007 17:18:52 +0800 (CST)

[17:18:53.640] {main} Proxy Cache disk-size=1024M memory-size=64M
[17:18:53.656] {main} PingThread[] starting, checking []
[17:18:54.109] {main}
[17:18:54.234] {main} Windows XP 5.1 x86
[17:18:54.343] {main} Java 1.5.0_11-b03, 32, mixed mode, GBK, zh, Sun Microsystems Inc.
[17:18:54.468] {main} user.name: dingl
[17:18:54.593] {main} resin.home = C:\resin-pro-3.1.4
[17:18:54.718] {main} resin.root = C:\resin-pro-3.1.4
[17:18:54.828] {main} resin.conf = /D:/workspace/project/resin-3.1.conf
[17:18:54.828] {main}
[17:18:55.734] {main} WebApp[http://localhost:80] Set web app root system property: ‘webapp.root’ = [D:\workspace\project\WebContent\]
[17:18:59.515] {main} WebApp[http://localhost:80] active
[17:19:00.171] {main} WebApp[http://localhost:80/resin-doc] active
[17:19:00.390] {main} WebApp[http://localhost:80/resin-admin] active
[17:19:00.500] {main} Host[] active
[17:19:00.640] {main} Socket JNI library is not available.
[17:19:00.640] {main} Resin will still run but performance will be slower.
[17:19:00.640] {main} To compile the Socket JNI library on Unix, use ./configure; make; make install.
[17:19:00.796] {main} hmux listening to localhost:6800
[17:19:00.921] {main} http listening to *:80
[17:19:01.140] {main} Server[id=,cluster=app-tier] active
[17:19:01.281] {main} Resin started in 9547ms

 可以看到已经没有关于license的提示了,并且增加了Proxy Cache disk-size=1024M memory-size=64M的输出,说明已经使用了cache来提高性能。

 值得一提的是,要想获得更好的性能,请使用linux/unix系统,因为在windows下,默认安装的resin是不能使用JNI库的,需要手工编译。而在linux/unix下,make源码后就已经将JNI库编译好了。这个特性可以从输出中看出来:

[17:19:00.640] {main} Socket JNI library is not available.
[17:19:00.640] {main} Resin will still run but performance will be slower.

linux/unix系统中没有这样的提示。

目前本blog提供resin-pro-3.1.3版的下载,地址为:

resin-pro-3.1.3 for windows 下载

resin-pro-3.1.3 for linux/unix 下载

resin-pro-3.1.4由于目前标记为dev,暂不破解此版本。3.1.5目前正在开发,尚未发布,目前已经可以看到3.1.5的change log了。

Ubuntu 7.1 Server安装后的配置

  Ubuntu 7.1 server从无到有搭建全能WEB生产环境(一) 

Mysql、Apache安装配置

  Ubuntu 7.1 server从无到有搭建全能WEB生产环境(二)

PHP安装配置

  Ubuntu 7.1 server从无到有搭建全能WEB生产环境(三)

JDK、Resin安装配置

  Ubuntu 7.1 server从无到有搭建全能WEB生产环境(四)

Rails运行环境Mongrel安装配置

  Ubuntu 7.1 server从无到有搭建全能WEB生产环境(五)

SSL配置

  Ubuntu 7.1 server从无到有搭建全能WEB生产环境(六)

防火墙iptables配置

Ubuntu 7.1 server从无到有搭建全能WEB生产环境(七)


© 2007 丁令的Blog | iKon Wordpress Theme by TextNData | Powered by Wordpress