java

Resin4.0安装小记

星期日, 十月 18th, 2009 | JAVA-and-J2EE, linux, php | 2 Comments

Resin出了4.0版本,一直喜欢尝试新东西的直接; 就下载安装了下,安装起来很简单,可以到Resin Download去下载,其实以前在windows中下载过,可惜执行的时候一闪而过,当时没有在意也没有去管他了,今天又在linux下去真正用下了;
1.tar zxvf resin-4.0.1.tar.gz
2.cd resin-4.0.1
3../configure
4.make & make install
5.修改resin.xml的用户组 www-user,给赋予webapps的对应的用户组权限
6../bin resin.sh start 不报错的就可以http://localhost:8080/看到页面了,记得防火墙的8080端口要打开哦

不过可惜的是4.0版本据说不稳定,有人发生宕机事件,还有就是有的在上面运行出错的问题;
再者看resin的主要意图是增加对php的支持,研习resin4.0版本的文档也不是很多
为了稳定还是延续使用ReResin Pro 3.1.9版本
最近会处理一些nginx+resin的处理,还有resin本身的集群功能;nginx+PHP(FastCGI)+mysql已经搭建完毕

Tags: , , , ,

遭遇db2频繁报内存不足的OS错误勘误解决方法

星期日, 十月 11th, 2009 | Database, JAVA-and-J2EE | 一条评论

异常信息,因为有数据库的轮循处理,查询比较频繁,加上有高的并发访问,不到2个小时就挂掉了
希望高手求解!(下面是论坛的求助和解决方案,最终还是sql的实参过多,缓存溢出造成)

2009-09-29-19.48.24.000000+480 I34133163H580 LEVEL: Warning
› Continue reading

Tags: , , ,

webgame的开发烦恼之多

星期一, 九月 28th, 2009 | Database, JAVA-and-J2EE | 2 Comments

做webgame开发遇到很多以前做软件时候不需要考虑的问题,面对高并发,外接任务的等灵活对接;
不单需要考虑的实现快速,还要考虑快速的扩展;
既要保证程序的快速实现,又要确实减少数据库的压力;
游戏的引擎设计很大程度上决定了你的产品上线后能应付多大的高并发,对应数据库的优化配置
貌似简单,不知道里面凝结多少智慧和汗水,也行这就是经验探索~~~~

聊记下:将近一个月的疯狂加班的思索和重构的欲望

Tags: , ,

126邮箱抛出了的一个异常

星期一, 九月 14th, 2009 | JAVA-and-J2EE | 4 Comments

今天用邮箱发送邮件的时候,抛出了的,看了下原来采用的spring框架下的一个bean没有定义,底部采用的是resin发布的,呵呵
记录下异常信息,聊以回忆!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
500 Servlet Exception
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named 'sanjinDailyDrawBox' is defined
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:387)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:968)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:246)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
	at com.caucho.server.webapp.Application.start(Application.java:1647)
	at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:621)
	at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:72)
	at com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:509)
	at com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:153)
	at com.caucho.server.webapp.ApplicationContainer.start(ApplicationContainer.java:670)
	at com.caucho.server.host.Host.start(Host.java:420)
	at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:621)
	at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:72)
	at com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:509)
	at com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:153)
	at com.caucho.server.host.HostContainer.start(HostContainer.java:504)
	at com.caucho.server.resin.ServletServer.start(ServletServer.java:971)
	at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:621)
	at com.caucho.server.deploy.AbstractDeployControllerStrategy.start(AbstractDeployControllerStrategy.java:56)
	at com.caucho.server.deploy.DeployController.start(DeployController.java:517)
	at com.caucho.server.resin.ResinServer.start(ResinServer.java:551)
	at com.caucho.server.resin.Resin.init(Resin.java)
	at com.caucho.server.resin.Resin.main(Resin.java:625)
 
 
--------------------------------------------------------------------------------
Resin Professional 3.0.23 (built Mon, 22 Jan 2007 02:25:17 PST)

Tags: , ,

JDBC事务隔离级别和db2中几个隔离级别行锁等

星期六, 八月 1st, 2009 | Database, JAVA-and-J2EE | 7 Comments

聊记下对应的事务处理问题 ———工作中头疼的事务拆分,降低事务的–文字简介–

JDBC的数据隔离级别设置:
JDBC 数据库隔离级别 数据访问情况
TRANSACTION_READ_UNCOMMITTED ur 就是俗称“脏读”(dirty read),在没有提交数据时能够读到已经更新的数据
TRANSACTION_READ_COMMITTED cs 在一个事务中进行查询时,允许读取提交前的数据,数据提交后,当前查询就可以读取到数据。update数据时候并不锁住表
TRANSACTION_REPEATABLE_READ rs 在一个事务中进行查询时,不允许读取其他事务update的数据,允许读取到其他事务提交的新增数据
TRANSACTION_SERIALIZABLE rr 在一个事务中进行查询时,不允许任何对这个查询表的数据修改。

JDBC事务隔离级别
为了解决与“多个线程请求相同数据”相关的问题,事务之间用锁相互隔开。多数主流的数据库支持不同类型的锁;因此,JDBC API 支持不同类型的事务,它们由 Connection 对象指派或确定。在 JDBC API 中可以获得下列事务级别:
› Continue reading

Tags: , , , ,

db2频现“锁等待”或“911”错误–案例分析之原因及处理方法

星期日, 七月 26th, 2009 | Database, JAVA-and-J2EE | 没有评论

为什么db2频现“锁等待”或“911”错误
—开始以为911不会引发什么严重的问题,然事实上情况要比我想象的严重,不单纯是拆除事务的原因了,要处理对应的信息了,下列的分析对自己有很大帮助,特此摘录,也感谢撰写本文的原作者。
——————以下为摘录——————————————————————————
大家都知道,多个事务同时更新同一个数据行时必定要发生锁等待。虽然这个是造成锁等待或锁超时的原因,但不是全部。有不少同事在开发过程中发现这样的问题:自己只做一个根据主键update语句,就更新一行,且确知没有别人在更新这行,为什么语句迟迟没反应,想死锁了一样。本人通过几次尝试和试验发现了“秘密”。即db2的严重影响并发性能的地方:

1、无索引,relation scan 锁等待;
2、有索引,update时索引不能并发访问,需“串行”独占访问;
3、锁升级,行锁升级为表锁,阻塞其他事务的行级更新。

试验环境:
db2 v8系列或v9.1.4
db2命令行
› Continue reading

Tags: , , ,

jsp中response.sendRedirect引发的异常之解决方法

星期三, 六月 17th, 2009 | JAVA-and-J2EE | 一条评论

前几天的一个异常让人头疼,从网上查找也不得其法,后自己一看,原来是filter引发的转向错误!
解决方法很简单:
只要把转向的注释掉,让它自己转向就可以了,其他的事情交给filter去处理就可以了,就是两面都处理引发次问题!
if(user==null){
//response.sendRedirect(request.getContextPath()+”/index.jsp”);
return;
}
异常信息如下:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.i5a6.filter.ToBuildFilter.doFilter(ToBuildFilter.java:27)
root cause

java.lang.IllegalStateException
org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
org.apache.jsp.users.payment.star_005fplus_005fwarehouse_jsp._jspService(star_005fplus_005fwarehouse_jsp.java:70)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.i5a6.filter.ToBuildFilter.doFilter(ToBuildFilter.java:27)

Tags: , , ,

Android程序之初试–环境搭建

星期四, 一月 8th, 2009 | Android, JAVA-and-J2EE | 一条评论

Google手机操作系统平台-Android是一个开放源代码的操作系统,内核为Linux. 作为开发者,我们所关心的是这个平台的架构以及所支持的开发语言。
下面是这个平台的架构模型:

图片看不清,可点击查看,支持滚轮缩放….

› Continue reading

Tags: ,

Java反编译器之Java Decompiler

星期二, 十二月 23rd, 2008 | JAVA-and-J2EE | 没有评论

Java Decompiler”, 由 Pavel Kouznetsov开发,目前最新版本为0.2.6.
它由 C++开发,并且官方可以下载 windows、linux和苹果Mac Os三个平台的可执行程序。

本站下载地址: 主要提供个windows的,jd-gui-026windows.zip

之所以认为它还不错,是其有下面几个功能:
1. 支持对整个Jar文件进行反编译,并本源代码可直接点击进行相关代码的跳转
2. 支持众多Java编译器的反编译(支持泛型, Annotation和enum枚举类型)

jdk1.1.8
jdk1.3.1
jdk1.4.2
jdk1.5.0
jdk1.6.0
jikes-1.22
harmony-jdk-r533500
Eclipse Java Compiler v_677_R32x, 3.2.1 release
jrockit90_150_06

图片看不清,可点击查看,支持滚轮缩放….

图例
3. 快速查找源文件功能(Ctrl+Shift+T)
4. 安装方便.只有600K,直接运行即可。
5. 支持文件的拖放功能,源代码高亮显示

另外,用eclipse的jad反编译插件听说也很不错,不过java Decompiler 支持整个jar包反编译感觉很舒服

Tags: , ,

ImageMagick for java 使用Jmagick压缩高质量图片jmagick-win-6.3.9-Q16.zip

星期一, 十二月 1st, 2008 | JAVA-and-J2EE | 5 Comments

在做pdf文档转成jpg的时候,发现了Jmagick的创建高质量的图片的一个java类库,自己以前使用另外的一个类库,感觉这个更好点,就试着用了下,感觉不错

1.使用的windows下的jmagick-win-6.3.9-Q16.zip 地址是:http://downloads.jmagick.org/6.3.9/

2.doc对应的api地址:http://downloads.jmagick.org/jmagick-doc/

3.安装ImageMagick,官方网站:http://www.imagemagick.org/

我使用的是:ImageMagick-6.4.6-4-Q16-windows-dll.exe点击下载

4. 安装ImageMagick-6.4.6-4-Q16-windows-dll.exe,将 安装目录下(按自己所安装的目录找) 下的所有dll文件 copy 到系统盘下的 “C:\WINDOWS\system32\”文件夹里

5. 配置环境变量
再环境变量path里添加新的值 “C:\Program Files\ImageMagick-6.4.6-4-Q16“使用IDE可以不用配置

6.解压jmagick-win-6.3.9-Q16.zip
将 jmagick.dll 复制到系统盘下的 “C:\WINDOWS\system32\”文件夹里 和 复制到jdk的bin(例“D:\jdk6\bin”)文件里各一份
将 jmagick.jar 复制到Tomcat下的lib文件夹里 和 所使用项目的WEB-INF下lib文件里 各一份

7.web应用如果部署到tomcat下,那么最好在catalina.bat文件中改变如下设置
set JAVA_OPTS=%JAVA_OPTS% -Xms256M -Xmx768M -XX:MaxPermSize=128M – Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager – Djava.util.logging.config.file=”${catalina.base}\conf\logging.properties”
避免heap溢出的问题,参数看你自己的机器而定。( -Xms256M -Xmx768M -XX:MaxPermSize=128M )

8.还要注意如果部署到web应用,你在使用的class里面需要
System.setProperty(“jmagick.systemclassloader”,”no”);
要不然会报出UnsatisfiedLinkError: no JMagick in java.library.path.
实例测试code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    package com.utils;
 
import magick.ImageInfo;
import magick.MagickApiException;
import magick.MagickException;
import magick.MagickImage;
 
public class Treamspdf {
 public static void main(String[] args) {
resetsize("E:/mylearn/workspace/TTPDF/src/com/utils/http_imgload.jpg","new.jpg");
}
	public static void resetsize(String picFrom,String picTo){
		try{
			ImageInfo info=new ImageInfo(picFrom);
			MagickImage image=new MagickImage(new ImageInfo(picFrom));
			MagickImage scaled=image.scaleImage(120, 97);
			scaled.setFileName(picTo);
			scaled.writeImage(info);
		}catch(MagickApiException ex){
			ex.printStackTrace();
		} catch(MagickException   ex)   {
			ex.printStackTrace();
		}
	}
}

常用的水印,切图,压缩等简单程序工具类,继续下面
› Continue reading

Tags: ,

Search

文章分类

Links

Meta