贴主要的代码
KettleEnvironment.init();
JobMeta jm = new JobMeta(dirPath + File.separator + filename, null);
Job job = new Job(null, jm);
if (params != null) {
Iterator<Map.Entry<String, String>> entries = params.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<String, String> entry = entries.next();
job.setVariable(entry.getKey(), entry.getValue());
job.start();
job.waitUntilFinished();
if(job.getErrors()>0){//执行失败,写入日志
List<JobEntryResult> jobEntryResults = job.getJobEntryResults();
LoggingBuffer loggingBuffer = KettleLogStore.getAppender();
StringBuffer stringBuffer = new StringBuffer();
jobEntryResults.forEach(jobEntryResult -> { //获取job任务中 多个转化出错的日志
if(jobEntryResult.getResult().getNrErrors()>0){
StringBuffer logTextBuffer = loggingBuffer.getBuffer(jobEntryResult.getLogChannelId(), false);
stringBuffer.append(logTextBuffer);
//记录日志到文件中 模拟代码
WriterAndReadUtil.write(stringBuffer.toString(),logFilePath, DateUtil.getCurrentDay("yyyyMMdd"));
java 调用kettle 记录job里面转化报错日志贴主要的代码KettleEnvironment.init();JobMeta jm = new JobMeta(dirPath + File.separator + filename, null);Job job = new Job(null, jm);if (params != null) { Iterator<Map.Entry<String, String>> entries = params.entr
在kettle执行的过程中,如果遇到错误,kettle会停止运行。在某些时候,并不希望kettle停止运行,这时候可以使用错误处理(Step Error Handling)。错误处理允许你配置一个步骤来取代出现错误时停止运行一个转换,出现错误的记录行将会传递给另一个步骤。在Step error handling settings对话框里,需要设置启用错误处理。
下面例子中读取postgres
kettle不管是在job还是转换时出错之后如果没有做错误处理那么所有的程序都会停止,所以在设置发送邮件时只设置一个在运行出错时就不会收到邮件。
作业的设置如下:当转换正常时程序会执行发送邮件3不执行错误时发送邮件,报错时执行的是错误时发送邮件。
正常和错误的发送邮件设置一样,节点链接方式改为错误时执行即可。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ueq3gYv-1598436367210)(https://imgblog.csdnimg.cn/2020
报错信息如下:
2020/07/29 13:04:41 - Spoon - Running transformation using the Kettle execution engine
2020/07/29 13:04:41 - Spoon - 转换已经打开.
2020/07/29 13:04:41 - Spoon - 正在打开转换 [jobs]...
2020/07/29 13:04:41 - Spoon - 开始执行转换.
2020/07/29 13:04:42 - jobs - 为了转换解除补丁开
一点寒芒先至:
启动eclipse时提示org.osgi.framework.BundleException
Flickor:
启动eclipse时提示org.osgi.framework.BundleException
贰拾、肆:
使用idea工具 junit 测试错误 junit/textui/ResultPrinter 解决方法
梦想橡皮擦: