- 浏览: 354709 次
- 性别:
- 来自: 杭州
最新评论
-
无红墙:
另一种修改,请参考:https://github.com/ta ...
Dubbo不能优雅停机,导致停止服务的时候,业务掉单 -
fish_no7:
if (handler instanceof WrappedC ...
Dubbo不能优雅停机,导致停止服务的时候,业务掉单 -
frankfan915:
lizhou828 写道怎么解决?设置NetTimeoutFo ...
Communications link failure错误分析 -
lizhou828:
怎么解决?
Communications link failure错误分析 -
frankfan915:
ileson 写道 解决办法sh设置NetTimeoutFo ...
Communications link failure错误分析
文章列表
将文件保存到数据库,并取出
- 博客分类:
- 工作总结
这几天在做将文件保存到数据库的一个工作,因为在cloud中规定不能将文件download下来并且保存在server上。
要做的工作是:
1. 从FTP上download下来字节流并且保存到数据库
2.从数据库读出这个数据流并且显示相应的数据
步骤:
1.建立表ad_download_file,字段有fileid,filename,filedata。用BLOB存储文件
CREATE TABLE ad_download_file (
filename VARCHAR2(50) NOT NULL,
fileid INTEGER NOT NULL,
fi ...
在struts2中可以在struts.properties文件中设置default local。如:struts.locale=zh_CN
查看源代码发现他是通过annotation Inject来设置的。
@Inject(value=StrutsConstants.STRUTS_LOCALE, required=false)
public static void setDefaultLocale(String val) {
defaultLocale = val;
}
public static final String STRU ...
Struts2的核心代码在于xwork,下面是xwork的源代码的下载地址
http://release.opensymphony.com/xwork/2.0.7/
今天工作的时候发生了这个错误,弄了一个下午,还是没有看源代码的原因啊。
ERROR - ParametersInterceptor - [setParameters]: Unexpected Exception caught setting 'd-49653-p' on 'class dgut.ke.actions.SubjectAction: Error setting expression 'tempdate' ...
今天在做移植java项目到云平台的工作,遇到了执行数组参数的存储过程的问题。先介绍一下怎么样执行数组参数的存储过程。
//创建descriptor,typeArrayName是数据库中数组变量的名称
ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor(typeArrayName, conn);
//将descriptor和valueObject mapping形成一个Array对象
ARRAY array = new ARRAY(descriptor, oracleConn, valueObject);
//c ...
贪婪算法是解决最优化问题的一种基本方法。它采用逐步构造最优解的思想,在问题求解的每一个阶段,都作出一个在一定标准下看上去最优的决策;决策一旦作出,就不可再更改。制定决策的依据称为贪婪准则。贪婪算法需要考虑以下步骤:
1 、明确问题的求解目标。
2 、分析问题所包含的约束条件。
3 、建立优化函数。优化函数通常可以通过综合分析问题的求解目标及约束条件归纳出来。
4 、制定贪婪准则。清楚问题的求解目标、所包含的约束条件及优化函数之后,就可以着手制定一个可行的贪婪准则。贪婪准则的制定是用贪婪算法解决最优化问题的关键,它关系到问题能否得到成功解决及解决质量的高低。
接下来列举一些具体的 ...
tomcat修改PermGen内存大小的步骤(linux环境):51Testing软件测试网'ZW)RyoXM
1,被修改的文件:/opt/tomcat/bin/catalina.sh$O@KtB0
51Testing软件测试网l&kLq%dQvI
2,在catalina.sh中增加以下语句:51Testing软件测试网\N/ELu@:v
# ----------------------------------------------------------------------------- Sgi2c?0
JAVA_OPTS="-Xms256m -X ...
动态规划主要指的现阶段的所做决策最优决策加上将来所做的最优决策组合起来肯定是最优决策,它需要满足三个条件:
1.最优化原理(最优子结构性质):一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其 ...
各种收集器的回收比较(收集器的介绍参见http://blog.csdn.net/historyasamirror/article/details/6233007):
0.386: [GC [PSYoungGen: 7680K->1272K(8960K)] 7680K->7632K(19200K), 0.0439756 secs] [Times: user=0.06 sys=0.00, real=0.05 secs]
0.430: [Full GC [PSYoungGen: 1272K->0K(8960K)] [PSOldGen: 6360K->7629K(10 ...
Memory Analyzer工具的使用
- 博客分类:
- JVM调优
本文目的是在记录下Memery Analyzer的功能。Memery Analyzer是一个很好的内存泄漏的分析工具。当发生内存泄漏的时候我们可以先用jmap dump下内存,然后分析。
从上图可以看到它的所有功能。
1. Histogram可以列出内存中的对象,对象的个数以及大小。
2. Dominator Tree可以列出那个线程,以及线程下面的那些对象占用的空间,如下图,我们可以发现LinkedList占用了很多空间
3.Top consumers通过图形列出最大的object
4.Leak Suspects通过MA自动分析泄漏的原因
最近在研究JVM优化方面的知识,今天就顺便用JVM的查看工具测试了一下当发生OutOfMemoryError的时候如何通过工具来分析出错原因。
需要的工具Eclipse Memory Analyzer。
1.在eclipse的run argument中输入以下VM参数(关于Xms,Xmx,Xmn的具体含义参考http://unixboy.iteye.com/blog/174173)。设置了堆空间为20M,年轻代为10M。通过参数-XX:+HeapDumpOnOutOfMemoryError指定发生OutOfMemoryError的时候dump下内存(文件名为java_pid〈进程ID〉.hp ...
项目要用到Quartz,所以研究了一下Quartz的配置.虽然很简单,但还是查看了一天的资料才配置好,发现浪费了很多时间,其实可以看Quartz自带的实例就可以完成配置,不过自己动手做过的确更有把握一点。
Quartz需要配置三个文件web.xml,quartz.property,quartz_job.xml
下面是web.xml,从配置中可以看到是用QuartzInitializerServlet来初始化的。config-file的文件名可以指定。
<?xml version="1.0" encoding="UTF-8"?>
<w ...
这几天在分析ThreadPoolExecutor的时候看到了Unsafe类就研究了一下。
Unsafe的源代码可以见http://xiao-jiang51.iteye.com/blog/850413
的分析。
因为Unsafe定义了私有的构造函数,而且限制类用户定义的类来访问Unsafe对象。如下代码,如果是开发人员自定义的类去调用的话,就会返回SecurityException.这个类怎么控制非java自带类不能访问unsafe类呢,先调用getCallerClass方法获得那个类调用unsafe,然后获得那个类的classloader,如果classloader是空就是引导加载器加载的类,也 ...
TreeMap是一种红黑树。红黑树的介绍可以查看http://wangyu.iteye.com/blog/190763
存储结构为;
private transient Entry<K,V> root = null;
put方法:通过排序树查找的方法找到相应的位置,然后插入。再调用fixAfterInsertion()方法旋转,调整成红黑树。
public V put(K key, V value) {
Entry<K,V> t = root;
if (t == null) {
// TBD:
...
Vector类继承了类AbstractList实现了接口implements List<E>, RandomAccess, Cloneable, java.io.Serializable
存储结构是:
protected Object[] elementData;
添加和删除方法:
public synchronized void insertElementAt(E obj, int index) {
modCount++;
if (index > elementCount) {
throw new ArrayIndexOutOfBou ...
LinkedHashSet 通过继承hashSet();然后调用hashmap的构造函数,用LinkedHashMap来存储数据
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
map = new LinkedHashMap<E,Object>(initialCapacity, loadFactor);
}
下面是LinkedHashSet的源代码
public class LinkedHashSet<E>
extends HashSet& ...