自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

如何获得Java动态代理的代理类

JDK 代理生成器,在生成类是会根据参数“sun.misc.ProxyGenerator.saveGeneratedFiles”来决定是否将二进制保存到本地文件中,具体的路径查看源码:ProxyGenerator.access$000(this.val$name) + ".class"根据access$000这个方法生成的路径来保存在openjdk中这个access$000 是...

2011-09-18 23:46:33 324

原创 清理回滚段表空间

创建一个新的回滚段(如果不行,则先将tablespace=''设置为空,删除掉旧的回滚段)create undo tablespace undotbs1 datafile '/opt/oracle/app/oradata/undotbs1.dbf' size 10m reuse autoextend on;切换undo表空间alter system set undo_tablesp...

2011-08-24 15:19:25 216

原创 jdbc scrollable resultset

jdbc 的resultset有三种cursor类型:ResultSet.TYPE_FORWARD_ONLY:表示cursor只能向前移动,absolute first last等方法无效。ResultSet.TYPE_SCROLL_INSENSITIVE:表cursor可以自由移动,但对于修改不敏感ResultSet.TYPE_SCROLL_SENSITIVE:表cursor...

2011-08-11 17:11:05 197

原创 oracle 存储过程调优小结

1.对于分区表中的数据,直接删除掉分区表,alter table table_name drop partition partition_name; 因为分区表的分区相当于一个独立的表,删除分区相当于直接删除一个表速度快。2.在删除大量数据时,批量删除,使用rownum一次只删除一部分,这样删除的语句可能存在一个循环,如:有多个表,每个表每次删除1000条数据,这样会存在一个问题,当只有一...

2011-08-09 14:08:32 125

oracle 使用带参游标删除分区表

在生产环境中会产生大量的数据,而许多数据过了一定时间后就无效了,需要删除一般可以根据时间来创建分区表,将不同时间的数据放在不同的分区表中,需要清理的时候不需要通过delete语句来删除,而是通过drop分区表的方式,这样速度会非常快如 日志表 TEST_LOG1.建立默认的分区 TEST_LOG2.定时任务每个月创建一个分区表如:TEST_LOG201108093....

2011-08-09 10:45:05 190

原创 DBCP 学习-Abandoned

DBCP-330 DBCP-352return new DelegatingDatabaseMetaData(this, _conn.getMetaData());每次都会新建一个DelegatingDatabaseMetaData,而DelegatingDatabaseMetaData 自己添加到connection trace中 addTrace,这样就会导致每次getMeta...

2011-07-22 15:48:44 141

原创 DBCP学习-多个不受控制的连接池

https://issues.apache.org/jira/browse/DBCP-342DBCP-93 DBCP-339 DBCP-342 都是同一个问题问题描述:在常见connectionPool的时候,由于SQLException(例如密码错误等)导致在王connectionPool添加连接的时候发生异常,旧的处理时直接抛出,不会返回在下一次调用getConnect...

2011-07-22 02:04:07 150

原创 DBCP学习-bug334

https://issues.apache.org/jira/browse/DBCP-334?page=com.atlassian.jira.plugin.ext.subversion%3Asubversion-commits-tabpanel#issue-tabs在DBCP的bug report上有一个bug:The BasicDataSource should have the "...

2011-07-22 01:29:37 137

原创 DBCP 学习-1

BasicDataSourceFactory 使用JNDI时用来创建 BasicDataSource BasicDataSource 先创建一个ConnectionFactory (DriverConnectionFactory) 驱动连接工厂,通过加载driverClassName, Class.forName(driverClassName); 再根据url得到Driver, Dr...

2011-07-22 00:10:27 95

imp导入大数据量文件

在使用exp、imp将数据转移时,由于现场的数据可能是海量,在使用exp导出的时候,exp会导出建表语句和表的内容,建表中有一个参数initial,这个参数表示表的初始化的大小,默认是64k,而exp时,会根据表的大小动态的改变这个值,那么在导入的时候,会先创建这个表,而假如是海量数据,那么创建表就会失败,导入不成功解决:先创建表(initial默认64k),导入时,指定ignore=y,...

2011-07-21 14:08:25 497

原创 java interrupted使用

1 interrupedjava中当一个线程sleep时,调用其中断方法是无效的,因此在异常的处理中需要将线程interrupt(),否则线程依然是非interrupt状态。下面的例子中,线程将进入死循环,不会退出,因为主线程调用了interrupt()方法时,线程s正在睡眠。正确的方法应该在异常中调用Thread.currentThread().interrupt();publi...

2011-07-07 17:17:51 137

原创 基于事件的NIO多线程服务器

最近在学习mina2,在ibm developerworks发现一篇文章对于理解mina的架构很有益处,特作此记录。http://www.ibm.com/developerworks/cn/java/l-niosvr/例子的架构:1.服务主程序,接受请求将key交给reader来处理,reader是多线程的方式,维护一个静态的key的列表。2.实现了和mina2类似...

2011-07-07 16:08:37 64

原创 JAVA断点续传简单实现-改进3

改进:1.取消任务可以将任务下载的详细情况保存下来2.可以根据保存的下载详细信息重新下载任务http方式适合高并发,短连接的方式,对于长连接,下载大型文件并不适合。接下来尝试使用nio来实现断点续的功能...

2011-07-07 15:50:05 109

原创 JAVA断点续传简单实现-改进2

1 每次不会全部提交子任务(大文件下载的子任务太多),每次提交3个任务。2 对于下载失败的任务,会尝试3次重新下载。3 修改了Progressor收到的更新消息丢失的问题(大量子任务同步时,消息丢失),在Progressor和DownTask的update方法上都加上synchronized。4 子任务下载的大小超过5M,使用FileChannel.map方法,提高速度...

2011-06-30 01:31:01 67

原创 JAVA断点续传简单实现-改进1

实现了客户端 1 多线程分段下载2 使用观察者模式实现了下载信息反馈3 在servlet中实现了取得文件大小的功能下次改进点:1.使用Executors,不好暂停2.使用HttpURLConnection不好对通信的各种异常进行处理3.数据量很大时可以用FileChannel来改进大文件的写入速度 4.保存文件下载信息,可以对位下载完成的任务重新进行下载5...

2011-06-29 17:18:25 76

原创 RandomAccessFile方法使用测试

[code="java"]public class Test { public static void main(String[] args) throws IOException, InterruptedException { test1();// test2(); test3(); } private static void test1...

2011-06-28 16:44:38 116

原创 JAVA断点续传简单实现

断点续传主要是使用http协议中range的属性来取得资源的部分内容,由于一般服务是不对外直接提供url访问的,一般都是通过id,在servlet中输出byte[]来实现,所以要想实现断点续传一般要自己实现一个服务端。一个简单实现:服务端:主要是分析了range属性,利用RandomAccessFile读取内容输出字节流[code="java"]public class Dow...

2011-06-28 01:24:14 143

原创 线程安全之-XML解析

一个项目中需要从HTTP中读取XML 同步数据到数据库中,在大量数据的压力测试下,发现有数据丢失经过调试发现在控制台产生异常: FWK005进一步定位发现在解析XML的时候,xml inputstream为空之前的代码:[code="java"]import javax.xml.parsers.DocumentBuilder;import javax.xml.parse...

2011-06-27 14:24:57 452

多线程发送消息之流控

近期接触到流量,由于旧的版本流控不准确,所以相对其改进一下整体方案:使用jdk1.5的信号量机制,没法送一条消息,信号量加1,当信号量达到上限时,阻塞,等待定时线程来清理(每100毫秒尝试清理一次)1.首先想到使用Semaphore来实现,不过测试时发现,由于semaphore不能够重入,这导致,在1秒钟内一个线程发送了一条之后,就会阻塞,这样一秒钟每个线程只能发送一条消息。...

2011-06-24 16:40:30 149

原创 oracle stream

常识:Stream是oracle的消息队列(也叫oracle Advanced Queue)技术的一种扩展应用。Oracle的消息队列和其他队列产品功能类似,都是通过发布/订阅的方式来解决事件管理。流复制(Stream Replication)是基于消息队列的一个数据共享技术,他可以实现两个数据库之间数据库级、Schema级、table级的数据同步,并且这种同步可以是双向的。Oracle高...

2010-08-26 22:29:26 74

原创 python快速入门

1.输出 print "Hello World"2.执行脚本文件 python helloworld.py3.在命令行里执行脚本 execfile("helloworld.py")4.退出 import sys sys.exit() 或者raise SystemExit5.变量赋值,for循环,输出 principal = 1000 ...

2010-08-15 14:06:05 55

原创 vi 编辑器

vi编辑器公分为3种模式,分别是一般模式,编辑模式,与命令行模式。一般模式:vi处理文件时,一进入该文件,就是一般模式了。在这个模式中可以使用上下左右来移动光标,可以删除字符或删除整行来处理内容,也可以复制粘贴。编辑模式:在一般模式中可以进行删除,复制,粘贴等操作,却无法进行编辑操作,要等到按下 i I o O a A r R等才回进入编辑模式,要回到一般模式,则必须按下Esc...

2010-08-11 22:16:15 37

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除