锁定老帖子 主题:dbcp基本配置和重连配置
精华帖 (0) :: 良好帖 (12) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-09-29
兄弟,还要请教一个问题:
实现方式很简单,分析jboss的对应SecureIdentityLoginModule的实现,无非就是走了Blowfish加密算法,自己拷贝实现一份。 Java代码 1. private static String encode(String secret) throws NoSuchPaddingException, NoSuchAlgorithmException, 2. InvalidKeyException, BadPaddingException, IllegalBlockSizeException { 3. byte[] kbytes = "jaas is the way".getBytes(); 4. SecretKeySpec key = new SecretKeySpec(kbytes, "Blowfish"); 5. 6. Cipher cipher = Cipher.getInstance("Blowfish"); 7. cipher.init(Cipher.ENCRYPT_MODE, key); 8. byte[] encoding = cipher.doFinal(secret.getBytes()); 9. BigInteger n = new BigInteger(encoding); 10. return n.toString(16); 11. } 12. 13. private static char[] decode(String secret) throws NoSuchPaddingException, NoSuchAlgorithmException, 14. InvalidKeyException, BadPaddingException, IllegalBlockSizeException { 15. byte[] kbytes = "jaas is the way".getBytes(); 16. SecretKeySpec key = new SecretKeySpec(kbytes, "Blowfish"); 17. 18. BigInteger n = new BigInteger(secret, 16); 19. byte[] encoding = n.toByteArray(); 20. 21. Cipher cipher = Cipher.getInstance("Blowfish"); 22. cipher.init(Cipher.DECRYPT_MODE, key); 23. byte[] decode = cipher.doFinal(encoding); 24. return new String(decode).toCharArray(); 25. } 为什么自己写的加密方法替换这两个不行?难道只能用Blowfish加密算法吗? |
|
返回顶楼 | |
发表时间:2010-09-29
可以的,是我自己测试的时候弄错了一个地方,不好意思啊
|
|
返回顶楼 | |
发表时间:2010-10-25
楼主你好!我正在做数据库连接池的自动重连这块儿,看到你的文章,非常受用,但是也遇到一个问题。
我按照楼主的“testWhileIdle”配置: <!-- sql 心跳 --> <property name= "testWhileIdle" value="true"/> <property name= "testOnBorrow" value="false"/> <property name= "testOnReturn" value="false"/> <property name= "validationQuery" value="select 1"/> <property name= "validationQueryTimeout" value="1"/> <property name= "timeBetweenEvictionRunsMillis" value="60000"/> <property name= "numTestsPerEvictionRun" value="${jdbc.maxActive}"/> 试了一下。发现自动重连的确挺好用,但是也是非常奇怪,为何数据库重启后,没等到扫描线程去恢复连接池,竟然新的请求直接可以访问到数据库了。 我用的数据库是 mysql,跟踪日志发现,这个时候的确是重建了一个连接,不过对于数据库重启后的首次用户访问,也只是针对这次访问新建了一个连接而已。等到扫描线程的时间间隔到了,才恢复了整个连接池。 我很不明白,当拿到的连接是无效的时候,又是怎么当场重建的。看到你的解释:“正因为在获取异常链接后,因为做了_conn.isClosed()判断,所以异常链接并没有返回到连接池中,所以到数据库重启恢复后,每次都是调用pool重新构造一个新的connection,所以后面就正常了”。但是看完这段解释,在 commons-dbcp 和 commons-pool 的源代码中也没有找到具体的实现。 如果楼主有时间,能否详细解释一下这个地方,最好能够将源码中具体是在哪里实现的说一下,非常感谢! |
|
返回顶楼 | |
发表时间:2011-08-15
技术参数解释还是看原版英文吧,
http://commons.apache.org/dbcp/configuration.html 楼主翻译的实在不敢恭维! |
|
返回顶楼 | |
发表时间:2011-08-15
xiemingmei 写道 技术参数解释还是看原版英文吧,
http://commons.apache.org/dbcp/configuration.html 楼主翻译的实在不敢恭维! 这么早的帖子都给你翻起来了哈,这篇文章写的比较随便,可以将就的看下。 可以看下其他的关于dbcp的文章:http://agapple.iteye.com/category/1486610 |
|
返回顶楼 | |