JAVA—咖啡馆

——欢迎访问rogerfan的博客,常来《JAVA——咖啡馆》坐坐,喝杯浓香的咖啡,彼此探讨一下JAVA技术,交流工作经验,分享JAVA带来的快乐!本网站部分转载文章,如果有版权问题请与我联系。

BlogJava 首页 新随笔 联系 聚合 管理
  447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

#

     摘要: 在传统的RPC编程接口逐渐淡出人们视线的同时,新的、更便于使用且附加了更多特性的RPC编程接口也不断涌现,CORBA作为分布式对象计算技术的典范,在很长一段时间内极大地吸引了大家的注意,但是由于CORBA规范试图覆盖过多的内容,使得CORBA显得过于复杂,也极大地限制了CORBA的应用范围,本系列将向大家介绍几种轻量级的,更适于在Java开发中使用的RPC编程接口:RMI、XML-RPC、SOAP。

RMI(Remote Method Invocation)
与本系列将介绍的其它两种RPC编程接口不同,RMI(Remote Method Invocation)显得有些老旧,它是在Java-IDL加入J2SE之前被引入的。RMI开发流程与CORBA如出一辙(从出现的时间上无法确定RMI是否是按照CORBA规范定制的),因此,其开发过程相对比较烦琐,但是由于RMI是EJB的基础,因此,它在Java开发中具有十分重要的地位。

以下是创建远程方法调用的5个步骤:

1. 定义一个扩展了Remote接口的接口,该接口中的每一个方法必  阅读全文
posted @ 2011-09-24 10:21 rogerfan 阅读(4445) | 评论 (0)编辑 收藏

     摘要: XML-RPC是一种简单的,轻量级的通过HTTP协议进行RPC通信的规范。本文以Apache XML-RPC 3.0为基础,对XML-RPC的基本原理及Apache XML-RPC 3.0的主要特性进行了讨论和分析。

  阅读全文
posted @ 2011-09-24 10:16 rogerfan 阅读(3165) | 评论 (0)编辑 收藏

     摘要: 现在流行安卓系统,鉴于囊中羞涩,买不起手机,所以我就在网上找了个安卓模拟器,特整理了一下,发给大家,对安卓系统感兴趣的朋友不妨拿来解解馋吧。
方法如下:
一.安装java JDK 1.6,并配置以下三个环境变量:
下载地址
1.添加
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.6.0_10
  阅读全文
posted @ 2011-08-25 14:41 rogerfan 阅读(3541) | 评论 (2)编辑 收藏

     摘要: Tomcat内存设置方法
windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。
所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存:
如:java -Xms64m -Xmx128m a.jar.
tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。在Tomcat在改变这个设置
有两种方法:
1. 适合用%tomcat_home%\bin中的startup.bat脚本启动,需要在环境变量中加上CATALINA_OPTS这个属性 。
如 SET CATALINA_OPTS= -Xms64m -Xmx512m;
ms是最小的,mx是  阅读全文
posted @ 2011-01-11 16:57 rogerfan 阅读(730) | 评论 (0)编辑 收藏

     摘要: 分享一下多年来在myeclipse中支持jquery、ext、YUI、mooto等主流框架的自动完成、提示、调试等方法。百忙之中非常想念各位群友,MMT很快就会回来。以下着重介绍link方式安装,不推荐升级模式安装,升级安装会带来很多问题,并且尝尝安装不成功。

1、从http://update1.aptana.org/studio/3.2/024747/index.html下载aptana studio的eclipse插件 aptana_update_024747.zip

2、在D:\Myeclipse下创建myPlugins文件夹。 (我的myeclipse装在D盘)

3、在 D:\Myeclipse\eclipse\links 下创建一个link文件aptana.link,内容如下:path=D:\\Myeclipse\\myPlugins\\aptana

4、在 D:\Myeclipse\myPlugins中创建文件夹aptana,在这个aptana文件夹下创建名为eclipse的文件夹。 阅读全文
posted @ 2010-12-09 15:40 rogerfan 阅读(1907) | 评论 (0)编辑 收藏

     摘要: 首 先在代码与生产库间建立一个Connection,将读取到的数据放在ResultSet对象,然后再与开发库建立一个Connection。从 ResultSet取出数据后通过TestConnection插入到开发库,以此来实现Copy。代码写完后运行程序,速度太慢了,一秒钟只能Copy 一千条数据,生产库上有上亿条数据,按照这个速度同步完要到猴年马月呀,用PreparedStatement批处理速度也没有提交多少。我想能不能用多 线程处理,多个人干活总比一个人干活速度要快。
假设生产库有1万条数据,我开5个线程,每个线程分2000条数据,同时向开发库里插数据,Oracle支持高并发这样的话速度至少会提高好多倍,按照这 个思路重新进行了编码,批处理设置为1万条一提交,统计插入数量的变量使用 java.util.concurrent.atomic.AtomicLong,程序一运行,传输速度飞快CPU利用率在70%~90%,现在一秒钟可 以拷贝50万条记录,没过几分钟上亿条数据一条不落地全部Copy到目标库。  阅读全文
posted @ 2010-11-26 14:11 rogerfan 阅读(957) | 评论 (0)编辑 收藏

     摘要: 1. SELECT子句中避免使用 “*”
当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*’ 是一个方便的方法.不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析的过程中, 会将“*” 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间.

2.使用DECODE函数来减少处理时间
使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表. 例如:
Sql代码 1.SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’;
2.SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0030 AND ENAME LIKE ‘SMITH%’;
SELECT COUNT(*),SUM(SAL) FROM EMP WHERE DEPT_NO = 0020 AND ENAME LIKE ‘SMITH%’;   阅读全文
posted @ 2010-11-19 14:06 rogerfan 阅读(543) | 评论 (0)编辑 收藏

     摘要: 1、将文件checkout到本地目录
svn checkout path(path是服务器 上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co

2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)

3、将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
例如:svn commit -m “add test file for my test“ test.php
简写:svn ci

4、加锁/解锁
svn lock -m “LockMessage“ [--force] PATH
例如:svn lock -m “lock te  阅读全文
posted @ 2010-11-18 10:28 rogerfan 阅读(1300) | 评论 (0)编辑 收藏

posted @ 2010-11-10 11:10 rogerfan 阅读(773) | 评论 (0)编辑 收藏

     摘要: 常见的内存溢出有以下两种:

java.lang.OutOfMemoryError: PermGen space

java.lang.OutOfMemoryError: Java heap space



---------------------------------------------------------

这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。


一、java.lang.OutOfMemoryError: PermGen space

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,
这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,
它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主  阅读全文
posted @ 2010-11-08 14:57 rogerfan 阅读(4892) | 评论 (0)编辑 收藏

     摘要: 1. 环境:

1.1. Red Hat Linux 9

1.2. Tomcat 5.5.17

2. 需要解决一下几个问题

2.1. 不同的tomcat启动和关闭监听不同的端口

2.2. 不同的tomcat的启动文件startup.sh 中要指定各自的CATALINA_HOME和CATALINA_BASE这两个环境变量。