- 博客(5)
- 收藏
- 关注
原创 Spring SQLErrorCodeSQLExceptionTranslator在Mysql/Oracle并存多数据源下的一个BUG
发现问题最近公司想把原Oracle数据库都迁移到Mysql,这个切换需要一段时间过渡,所以存在Oracle、Mysql在项目中同时使用的情况。这样就需要使用多数据源的技术。多数据源配置本身比较简单,但有一个场景出现了一点小意外。考虑如下代码: // 自己通过try-catch实现insertOrUpdate语义 Data data = new Data(); tr...
2018-06-11 16:21:37 15154
原创 Java Classloader基础
背景最近在引入一款开源项目投产时,在生产环境出现了一个ClassNotFoundException,仔细看完异常信息后才发现其产生于一个NullPointerException。SomeClass.getClassLoader().getParent(); // => null奇怪在于,测试环境并未出现过这个异常,生产环境却有。最后经过对比,发现两个环境启动脚本上的差异。# 存在NullPointe
2017-03-27 14:45:07 384
原创 Mongodb 3.x 多副本集群配置
1主2从的模式在数据量不大的情况下完全能满足生产要求,所以考虑生产上使用mongodb首先应该是搭建3副本的集群。1. Mongodb多副本集群基本概念Mongodb在多副本集群(Replic set)中,提供了自动Failover机制。Replic set会自动选举一个可写的PRIMARY(Master),其他机器为SECONDARY(Slave)。如果PRIMARY不能提供服务时,会重新选举。
2017-03-09 15:21:35 796
原创 Mongodb 3.x 安装及权限配置
IntroMongodb本身已经是比较成熟并已经广泛使用的一款nosql产品。了解该产品最好的方式当然是官网,考虑到网络和语言习惯,一些具有中文站则会给我们更大的便利。这篇文章主要记录一下折腾Mongodb3.x的一些步骤,其中所有的内容都是通过阅读官方文档了解的。 一、Mongodb安装由于大部分时候Mongodb serever都是跑在Linux环境下,所以这里默认操作系统都是Linux ce
2017-02-15 15:48:36 1623
原创 Jstack线程状态BLOCKED/TIMED_WAITING/WAITING解释
一、线程5种状态新建状态(New) 新创建了一个线程对象。就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。运行状态(Running) 就绪状态的线程获取了CPU,执行程序代码。阻塞状态(Blocked) 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才
2016-10-17 17:35:10 50716 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人