Apache nifi:在等待'QueryDatabaseTable'处理器的OnScheduled完成

时间:2017-07-10 20:10:20

标签: apache-nifi

我正在尝试使用QueryDatabaseTable创建我的第一个流,以便从Oracle数据库表中逐步提取行。

我收到以下错误。我启用了完全调试,但没有记录任何其他内容。

关于下一步尝试的想法?

2017-07-10 14:43:52,280 WARN [StandardProcessScheduler Thread-4] o.a.n.controller.StandardProcessorNode在等待'QueryDatabaseTable'处理器的OnScheduled完成时超时。尝试通过Thread.interrupt()取消任务。但是,它不保证任务将被取消,因为当前OnScheduled操作中的代码可能已被写入以忽略可能导致失控线程的中断。这可能会导致更多问题,最终需要重新启动NiFi。这通常是目标处理器'QueryDatabaseTable [id = 1e535f00-015d-1000-236d-7adebe14958a]中的一个错误,需要记录,报告并最终修复。

2017-07-10 14:43:52,280 ERROR [StandardProcessScheduler Thread-4] oanpstandard.QueryDatabaseTable QueryDatabaseTable [id = 1e535f00-015d-1000-236d-7adebe14958a] QueryDatabaseTable [id = 1e535f00-015d-1000-236d-由于java.lang.RuntimeException,7adebe14958a]无法调用@OnScheduled方法:执行处理器的OnScheduled任务之一时超时。处理器将不会被安排运行30秒:java.lang.RuntimeException:执行处理器的OnScheduled任务之一时超时。 java.lang.RuntimeException:执行处理器的OnScheduled任务之一时超时。         at org.apache.nifi.controller.StandardProcessorNode.invokeTaskAsCancelableFuture(StandardProcessorNode.java:1480)         at org.apache.nifi.controller.StandardProcessorNode.access $ 000(StandardProcessorNode.java:102)         在org.apache.nifi.controller.StandardProcessorNode $ 1.run(StandardProcessorNode.java:1303)         at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)         at java.util.concurrent.FutureTask.run(FutureTask.java:266)         at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201(ScheduledThreadPoolExecutor.java:180)         at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)         在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)         at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)         在java.lang.Thread.run(Thread.java:745) 引起:java.util.concurrent.TimeoutException:null         at java.util.concurrent.FutureTask.get(FutureTask.java:205)         at org.apache.nifi.controller.StandardProcessorNode.invokeTaskAsCancelableFuture(StandardProcessorNode.java:1465)         ...省略了9个常见帧

2017-07-10 14:43:52,280 ERROR [StandardProcessScheduler Thread-4] o.a.n.controller.StandardProcessorNode由于java.lang.RuntimeException而无法调用@OnScheduled方法:执行处理器的OnScheduled任务之一时超时。 java.lang.RuntimeException:执行处理器的OnScheduled任务之一时超时。         at org.apache.nifi.controller.StandardProcessorNode.invokeTaskAsCancelableFuture(StandardProcessorNode.java:1480)         at org.apache.nifi.controller.StandardProcessorNode.access $ 000(StandardProcessorNode.java:102)         在org.apache.nifi.controller.StandardProcessorNode $ 1.run(StandardProcessorNode.java:1303)         at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)         at java.util.concurrent.FutureTask.run(FutureTask.java:266)         at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201(ScheduledThreadPoolExecutor.java:180)         at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)         在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)         at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)         在java.lang.Thread.run(Thread.java:745) 引起:java.util.concurrent.TimeoutException:null         at java.util.concurrent.FutureTask.get(FutureTask.java:205)         at org.apache.nifi.controller.StandardProcessorNode.invokeTaskAsCancelableFuture(StandardProcessorNode.java:1465)         ...省略了9个常见帧

3 个答案:

答案 0 :(得分:5)

@OnScheduled的{​​{1}}方法正在尝试连接到您的数据库,并且似乎遇到问题导致它达到60秒的处理器调度超时。

您是否可以验证您的QueryDatabaseTable服务是否已正确配置,以及运行NiFi的服务器是否可以使用相同的凭据连接到数据库?

答案 1 :(得分:0)

我只有一台Nifi服务器正在运行。如果我有机会连接字符串,则会引发Oracle错误。所以我认为这是有效的。任何Tipps如何调试?

更新:我检查过,我没有从nifi到数据库的连接。这个错误具有误导性。

答案 2 :(得分:0)

就我而言,这是一个防火墙问题。我要求安全经理允许。也可以通过telnet检查连接。

telnet databaseserver port_number

预期产出:

Trying database_server...
Connected to 1database_server.
Escape character is '^]'.