好久好久没有写博客了,发现再不写博客我都快忘了我有这个博客了!好了,不说废话了。
最近项目使用kettle的地方比较多,鉴于项目优化的思考决定使用jndi来为kettle脚本设置数据源。这样不仅可以控制连接数,而且可以减少大量的数据库配置,那么我们怎么样才能实现在Web项目中调度配置了jndi的kettle脚本呢?先留下一个伏笔,我们来讲一下kettle支持的jndi。
对了忘了提一句,从笔记七开始kettle的版本升级为5.x。5.x提供很多新的类和组件功能。很好的支持了项目。如果在图形界面上配置kettle脚本并执行的话,那么我们只需要在pdi-ce-5.1.0.0-752/data-integration/simple-jndi/jdbc.properties中配置我们的数据库连接。可能和我说的路径有些出入,不过我相信聪明的网友可以明白我的意思并成功找到该文件。如图:
修改好之后,我们需要重启一下,我们的kettle编辑器。
重启之后,就可以成功通过jndi来配置DB连接来。如图:
这样就可以使用jndi配置简单的数据库连接池来配置kettle脚本了。连接成功之后,还需要配置我们的连接池,在上图可以很容易的找到连接池配置项,在里面进行简单的配置就可以了。
可能有人要问了为什么要通过jndi配置DB连接?理由其实非常简单,就是可以统一配置,节约我们配置的脚本的时间(要知道配置一个脚本非常容易,直接使用jdbc配置就可以了,一旦脚本几百上千数量级,那么只要修改一次数据库连接,那可是非常要命的)。
好了,说了简单的配置编辑器使用的jndi配置,那么接下来说一下如果web项目调度kettle脚本并且使用jndi来配置kettle的jndi数据库连接。
废话不多说,直接上图:
这样项目这样配置就可以了,但是需要注意的是simple-jndi需要配置一个系统属性,就是接下来这段代码。
System.setProperty("org.osjava.sj.root", application.getRealPath("/META-INF/simple-jndi"));
这里的路径是指向上图中的simple-jndi文件夹。所以只要可以确定到simple-jndi就可以了。直接执行就可以了。