2016-10-27 2 views
5

Ich wollte meine JSON-Zeichenfolge in SQL-Anweisung mithilfe von ConvertJSONtoSQL-Prozessor konvertieren. Beispiel: JSON-String -Apache NiFi: JSONtoSQL (Oracle-Datenbank) konvertieren

{"cpuwait":"0.0","servernamee":"mywindows","cpusys":"5.3","cpuidle":"77.6","datee":"29-SEP-2016","timee":"00:01:33","cpucpuno":"CPU01","cpuuser":"17.1"} 

Tabellenstruktur in oracle db -

CREATE TABLE cpu (
    datee varchar2(15) DEFAULT NULL, 
    timee varchar2(10) DEFAULT NULL, 
    servernamee varchar2(20) DEFAULT NULL, 
    cpucpuno varchar2(4) DEFAULT NULL, 
    cpuuser varchar2(5) DEFAULT NULL, 
    cpusys varchar2(5) DEFAULT NULL, 
    cpuwait varchar2(5) DEFAULT NULL, 
    cpuidle varchar2(5) DEFAULT NULL 
); 

Konfiguration verwendet für MySQL Datenbank:

Datenbankverbindung url: jdbc: mysql: // localhost: 3306/testnifi

Datenbanktreiber Klassenname: com.mysql.jdbc.Driver

Ich wurde erfolgreich mit MySQL verbunden mit (DBCP Verbindungspool) JDBC URL, Benutzername und Passwort. ConvertJSONtoSQL Prozessor erfolgreich dort gearbeitet und ich bekomme gültige SQL-Anweisung als Ausgabe. Aber , wenn ich versuche, das gleiche mit Oracle Database Ich erhalte

ERROR [Timer-gesteuerte Prozessgewinde 6] oanpstandard.ConvertJSONToSQL java.sql.SQLException: Strom wurde bereits geschlossen

Meine Konfiguration für Oracle DB-Verbindung:

ConvertJSONtoSQL processor config

DBCP config

Ich suchte nach dem Fehler in Google, aber ich fand, dass dieser Fehler auftreten wird, wenn lange Datentypen in Datenbanktabellen verwendet wurden, aber ich verwende sie nicht. Ich ging durch den Quellcode von ConvertJSONtoSQL Prozessor (folgende Stack-Trace) und versuchte, das gleiche in Eclipse zu implementieren, wo ich keinen Fehler bekomme, kann ich eine Verbindung zur Datenbank herstellen und Abfragen vornehmen.

Also gibt es einen Fehler in meiner Konfiguration?

Nifi Version - 0.7.0/1.0 (i in den beiden gleichen Fehler bin immer)

Java-Version - java8

Oracle DB-Version - Oracle Database 11g Express Edition

komplette Stapel Spur

2016-10-19 07: 10: 06.557 ERROR [Timer-Driven Prozess-Thread-6] oanpstandard.ConvertJSONToSQL java.sql.SQLException: Strom bereits cl gewesen ased bei oracle.jdbc.driver.LongAccessor.getBytesInternal (LongAccessor.java:156) ~ [ojdbc6.jar: 11.2.0.1.0] bei oracle.jdbc.driver.LongAccessor.getBytes (LongAccessor.java:126) ~ [ojdbc6.jar: 11.2.0.1.0] unter oracle.jdbc.driver.LongAccessor.getString (LongAccessor.java:201) ~ [ojdbc6.jar: 11.2.0.1.0] unter oracle.jdbc.driver.T4CLongAccessor .getString (T4CLongAccessor.java:427) ~ [ojdbc6.jar: 11.2.0.1.0] unter oracle.jdbc.driver.OracleResultSetImpl.getString (OracleResultSetImpl.java:1251) ~ [ojdbc6.jar: 11.2.0.1.0 ] bei oracle.jdbc.driver.OracleResultSet.getString (OracleResultSet.java:494) ~ [ojdbc6.jar: 11.2.0.1.0] bei org.apache.commons.dbcp.DelegatingResultSet.GetString (DelegatingResultSet.java:263) ~ [na na] bei org.apache.nifi.processors.standard.ConvertJSONToSQL $ ColumnDescription.from (ConvertJSONToSQL.java:677) ~ [save-Standard-0.7.0-Prozessoren. jar: 0.7.0] bei org.apache.nifi.processors.standard.ConvertJSONToSQL $ TableSchema.from (ConvertJSONToSQL.java:621) ~ [save-Standard-Prozessoren-0.7.0.jar: 0.7.0] bei org.apache.nifi.processors.standard.ConvertJSONToSQL.onTrigger (ConvertJSONToSQL.java:267) ~ [save-Standard-Prozessoren-0.7.0.jar: 0.7.0] bei org.apache.nifi.processor.AbstractProcessor. OnTrigger (AbstractProcessor.java:27) [API-save-0.7.0.jar: 0.7.0] bei org.apache.nifi.controller.StandardProcessorNode.onTrigger (StandardProcessorNode.java:1054) [save-Rahmen-Core- 0.7.0.jar: 0.7.0] bei org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call (ContinuallyRunP rocessorTask.java:136) [save-Rahmen-Core-0.7.0.jar: 0.7.0] bei org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call (ContinuallyRunProcessorTask.java:47) [save-Framework- der Kern-0.7.0.jar: 0.7.0] bei org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent $ 1.run (TimerDrivenSchedulingAgent.java:127) [save-Rahmen-Core-0.7.0.jar: 0.7. 0] bei java.util.concurrent.Executors $ RunnableAdapter.call (Unknown Source) [na 1.7.0_40] bei java.util.concurrent.FutureTask.runAndReset (Unknown Source) [na 1.7.0_40] bei java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301 (Unknown Source) [na 1.7.0_40] bei java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (Unknown Source) [na 1.7.0_40] in Java .util.concurrent.ThreadPoolExecuto r.runWorker (Unknown Source) [na 1.7.0_40] bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (Unknown Source) [na 1.7.0_40] bei java.lang.Thread.run (Unknown Source [) 1.7.0_40

+0

Bitte geben Sie Ihren Prozessor Workflow –

Antwort