`
samttsch
  • 浏览: 63827 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
JDK 代理生成器,在生成类是会根据参数“sun.misc.ProxyGenerator.saveGeneratedFiles”来决定是否将二进制保存到本地文件中, 具体的路径查看源码: ProxyGenerator.access$000(this.val$name) + ".class" 根据access$000这个方法生成的路径来保存 在openjdk中这个access$000 是对应 private static String dotToSlash(String name) {         return name.replace('.', '/'); } 所以 ...
创建一个新的回滚段(如果不行,则先将tablespace=''设置为空,删除掉旧的回滚段) create undo tablespace undotbs1 datafile '/opt/oracle/app/oradata/undotbs1.dbf' size 10m reuse autoextend on; 切换undo表空间 alter system set undo_tablespace=undotbs1 scope=both; 删除旧的表空间 drop tablespace undotbs2 including contents and datafiles;
jdbc 的resultset有三种cursor类型: ResultSet.TYPE_FORWARD_ONLY:表示cursor只能向前移动,absolute first last等方法无效。 ResultSet.TYPE_SCROLL_INSENSITIVE:表cursor可以自由移动,但对于修改不敏感 ResultSet.TYPE_SCROLL_SENSITIVE:表cursor可以自由移动,但对于修改敏感 TYPE_SCROLL_INSENSITIVE 如何实现: jdbc驱动在实现TYPE_SCROLL_INSENSITIVE会将sql语句的结果存在JVM的cache中,(数据库 ...
1.对于分区表中的数据,直接删除掉分区表,alter table table_name drop partition partition_name; 因为分区表的分区相当于一个独立的表,删除分区相当于直接删除一个表速度快。 2.在删除大量数据时,批量删除,使用rownum一次只删除一部分,这样删除的语句可能存在一个循环,如:有多个表,每个表每次删除1000条数据,这样会存在一个问题,当只有一个表中有数据需要删除时,删除其他表的sql其实是多余的 解决方法:使用数组来保存上次删除的条数(sql%count),这样如果一个表中没有需要删除的数据,下次执行sql时不会再执行 3.对于多个sql中相 ...
在生产环境中会产生大量的数据,而许多数据过了一定时间后就无效了,需要删除 一般可以根据时间来创建分区表,将不同时间的数据放在不同的分区表中,需要清理的时候不需要通过delete语句来删除,而是通过drop分区表的方式,这样速度会非常快 如 日志表 TEST_LOG 1.建立默认的分区 TEST_LOG 2.定时任务每个月创建一个分区表如:TEST_LOG20110809 3.定时任务删除过期分区表: cursor del_part_table (table_name in varchar2, part_prefix in varchar2 ,v_num in varchar2) is ...

DBCP 学习-Abandoned

DBCP-330 DBCP-352 return new DelegatingDatabaseMetaData(this, _conn.getMetaData()); 每次都会新建一个DelegatingDatabaseMetaData,而DelegatingDatabaseMetaData 自己添加到 connection trace中 addTrace,这样就会导致每次getMetaData()都会有一个DelegatingDatabaseMetaData 添加到这个connection中,从而GC不会回收. 解决方法: 在构建DelegatingDatabaseMetaData时调用s ...
https://issues.apache.org/jira/browse/DBCP-342 DBCP-93 DBCP-339 DBCP-342 都是同一个问题 问题描述: 在常见connectionPool的时候,由于SQLException(例如密码错误等)导致在王connectionPool添加连接的时候发生异常,旧的处理时直接抛出,不会返回 在下一次调用getConnection的时候依旧会发生这个问题,但是connectionPool是一个GenericObjectPool,connectionPool.addObject()添加连接失败,connectionPool这个对象本身还 ...

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 "softMinEvictableIdleTimeMillis" (get and set) as the GenericObjectPool, to avoid destroying id ...

DBCP 学习-1

BasicDataSourceFactory 使用JNDI时用来创建 BasicDataSource BasicDataSource 先创建一个ConnectionFactory (DriverConnectionFactory) 驱动连接工厂,通过加载driverClassName, Class.forName(driverClassName); 再根据url得到Driver, DriverManager.getDriver(url); 设置连接属性 connectionProperties 用户密码 创建一个DriverConnectionFactory,驱动连接工厂,其实就是物理 ...
在使用exp、imp将数据转移时,由于现场的数据可能是海量,在使用exp导出的时候,exp会导出建表语句和表的内容,建表中有一个参数initial,这个参数表示表的初始化的大小,默认是64k,而exp时,会根据表的大小动态的改变这个值,那么在导入的时候,会先创建这个表,而假如是海量数据,那么创建表就会失败,导入不成功 解决:先创建表(initial默认64k),导入时,指定ignore=y,表示忽略错误,创建表失败时,也会继续导入数据。 也可以导出少量数据,使用tables,query指定表和指定列,导出指定的数据 如果确定哪些数据,可以使用plsql导出insert语句

java interrupted使用

1 interruped java中当一个线程sleep时,调用其中断方法是无效的,因此在异常的处理中需要将线程interrupt(),否则线程依然是非interrupt状态。 下面的例子中,线程将进入死循环,不会退出,因为主线程调用了interrupt()方法时,线程s正在睡眠。 正确的方法应该在异常中调用Thread.currentThread().interrupt(); public static void main(String[] args) throws InterruptedException     {         Thread s =  new Thread(){     ...
最近在学习mina2,在ibm developerworks发现一篇文章对于理解mina的架构很有益处,特作此记录。 http://www.ibm.com/developerworks/cn/java/l-niosvr/ 例子的架构: 1.服务主程序,接受请求将key交给reader来处理,reader是多线程的方式,维护一个静态的key的列表。 2.实现了和mina2类似的filter,在调用accept方法前触发fireOnAccept,接受ok之后触发fireOnAccepted,notifier内部有一个listeners列表,事件触发时调用依次listeners指定的事件处理方 ...
改进: 1.取消任务可以将任务下载的详细情况保存下来 2.可以根据保存的下载详细信息重新下载任务 http方式适合高并发,短连接的方式,对于长连接,下载大型文件并不适合。 接下来尝试使用nio来实现断点续的功能
1 每次不会全部提交子任务(大文件下载的子任务太多),每次提交3个任务。 2 对于下载失败的任务,会尝试3次重新下载。 3 修改了Progressor收到的更新消息丢失的问题(大量子任务同步时,消息丢失),在Progressor和DownTask的update方法上都加上synchronized。 4 子任务下载的大小超过5M,使用FileChannel.map方法,提高速度
实现了客户端 1 多线程分段下载 2 使用观察者模式实现了下载信息反馈 3 在servlet中实现了取得文件大小的功能 下次改进点: 1.使用Executors,不好暂停 2.使用HttpURLConnection不好对通信的各种异常进行处理 3.数据量很大时可以用FileChannel来改进大文件的写入速度  4.保存文件下载信息,可以对位下载完成的任务重新进行下载 5.对速度进行控制(客户端和服务端分别控制)
Global site tag (gtag.js) - Google Analytics