kettle内置的jndi管理是simple-jndi,功能确实比较简单,我需要监控kettle性能,druid确实是很不错的选择,但没有提供对应的支持,我改进了druid源码,实现了simple-jndi的接口,就可以在simple-jndi/jdbc.properties中配置druid数据源了,通过druid可以得到很多监控数据。

  具体druid的使用请参考官方教程:https://github.com/alibaba/druid/wiki/%E9%A6%96%E9%A1%B5,相当详细。

  具体代码如下:

/*
* Copyright 1999-2101 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/ package com.alibaba.druid.support.simplejndi; import java.sql.SQLException;
import java.util.Properties; import org.osjava.sj.loader.convert.Converter; import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.alibaba.druid.support.logging.Log;
import com.alibaba.druid.support.logging.LogFactory; /**
* 支持simple-jndi
* <h1>配置示例:</h1>
* <pre>
pgDruidTest/converter=com.alibaba.druid.support.simplejndi.DruidDataSourceConverter
pgDruidTest/type=javax.sql.DataSource
pgDruidTest/driverClassName=org.postgresql.Driver
pgDruidTest/url=jdbc:postgresql://127.0.0.1:5432/kettleRep
pgDruidTest/username=postgres
pgDruidTest/password=postgres
pgDruidTest/maxActive=50
pgDruidTest/minIdle=10
pgDruidTest/initialSize=5
pgDruidTest/validationQuery=SELECT 1
pgDruidTest/maxWait=10000
pgDruidTest/removeabandoned=true
pgDruidTest/removeabandonedtimeout=60
pgDruidTest/logabandoned=false
pgDruidTest/filters=stat,config,log4j
pgDruidTest/connectionProperties=druid.log.stmt.executableSql=true
</pre>
* date: 2016年1月31日 下午12:54:10
* @author jinjuma@yeah.net
*/
public class DruidDataSourceConverter implements Converter { private final static Log LOG = LogFactory.getLog(DruidDataSourceConverter.class);
/**
*
* @see org.osjava.sj.loader.convert.Converter#convert(java.util.Properties, java.lang.String)
*/
@Override
public Object convert(Properties properties, String type) {
try {
DruidDataSource dataSource = new DruidDataSource();
DruidDataSourceFactory.config(dataSource, properties);
return dataSource;
} catch (SQLException e) {
LOG.error("properties:"+properties, e);
}
return null;
} }

  我已将以上改进pull requests到官方了,并已经合并,官方新版应该直接支持作为kettle的数据源配置了。

技术杂记-改造具有监控功能的数据库连接池阿里Druid,支持simple-jndi,kettle的更多相关文章

  1. 数据库连接池——C3P0&Druid(快速入门)

    数据库连接池--C3P0&Druid (一) 数据库连接池 每一个事物都有其存在的意义,在初学jdbc的时候,我们建立数据库连接对象后,会对其进行释放,但是数据库连接的建立和关闭是非常消耗资源 ...

  2. 数据库连接池:Druid

    转自: http://www.cnblogs.com/windlaughing/p/3287501.html Java连接数据库方法概述 java.sql提供了一些接口和类,用于支持数据库增删改查等相 ...

  3. 第13章—数据库连接池(Druid)

    spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...

  4. spring+mybatis+c3p0数据库连接池或druid连接池使用配置整理

    在系统性能优化的时候,或者说在进行代码开发的时候,多数人应该都知道一个很基本的原则,那就是保证功能正常良好的情况下,要尽量减少对数据库的操作. 据我所知,原因大概有这样两个: 一个是,一般情况下系统服 ...

  5. 数据库连接池 c3p0 druid

    druid 数据库连接池 c3p0 使用C3P0数据源时需要依赖 mchange-commons-java-0.2.3.4.jar包.缺少该jar包则会报错!

  6. 阿里巴巴(alibaba)系列_druid 数据库连接池_监控(一篇搞定)记录执行慢的sql语句

    参考帖子:http://www.cnblogs.com/han-1034683568/p/6730869.html Druid数据连接池简介 Druid是Java语言中最好的数据库连接池.Druid能 ...

  7. springboot activiti 整合项目框架源码 druid 数据库连接池 shiro 安全框架

    官网:www.fhadmin.org 工作流模块---------------------------------------------------------------------------- ...

  8. springboot activiti 整合项目框架源码 shiro 安全框架 druid 数据库连接池

     官网:www.fhadmin.org 工作流模块--------------------------------------------------------------------------- ...

  9. 数据库连接池 - (druid、c3p0、dbcp)

    概述: 在这里所谓的数据库连接是指通过网络协议与数据库服务之间建立的TCP连接.通常,与数据库服务进行通信的网络协议无需由应用程序本身实现. 原因有三: 实现复杂度大,需要充分理解和掌握相应的通信协议 ...

随机推荐

  1. bzoj 2729: [HNOI2012]排队

    2729: [HNOI2012]排队 Time Limit: 10 Sec Memory Limit: 128 MB Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体 ...

  2. Docker命令详解

    Docker命令详解   最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...

  3. Anaconda 安装 ml_metrics package

    ml_metrics is the Python implementation of Metrics implementations a library of various supervised m ...

  4. DataGridView实现各种效果

    http://www.cnblogs.com/greatverve/archive/2012/03/05/multi-datagridview.html

  5. 2016百度之星 初赛2A ABEF

    只做了1001 1002 1005 1006.剩下2题可能以后补? http://acm.hdu.edu.cn/search.php?field=problem&key=2016%22%B0% ...

  6. CH模拟赛 皇后游戏

    /* 做的时候手推了一下n=2的四种情况,再排一下序就可以了,证明不是很严谨,但我想这就行了,毕竟全是套路 */ #include<iostream> #include<cstdio ...

  7. Tiny Mapper

    今天看到一个对象映射工具-TinyMapper 1.介绍 Tiny Mapper是一个.net平台的开源的对象映射组件,其它的对象映射组件比如AutoMapper有兴趣的可以去看,Tiny Mappe ...

  8. MVC-命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Html”(是否缺少程序集引用?)

    如上截图,明明引用了“System.web.mvc”,可是还出这样的错误. 解决方法: 1.右键引用的“System.Web.Mvc” 2.<复制本地>一样选择<True> 3 ...

  9. discuz首页设置默认地址不带forum.php后缀的方法

    最近在研究discuz,上传安装几部搞定,打开首页跳到含有"/forum.php"的网址,到管理中心改了好一会儿也没好.那么如何实现discuz首页设置不带forum.php后缀呢 ...

  10. MySQL 应用优化

    一.使用连接池 二.减少对MySQL的访问 (A) 避免对同一数据做重复检索. (B) 使用查询缓存,MySQL的查询缓存会存储SELECT查询的命令文本和相应的结果. (C) 增加CACHE层 三. ...