All,
I am getting below exception for JDBC to JDBC example and hitting below error.
I have verified the table and it exist in DB. I have attached the property
file. Please help on this.
2016-12-19 11:07:32,186 INFO storage.DiskStorage (DiskStorage.java:<init>(53))
- using
/opt/data/data04/yarn/local/usercache/bj9306/appcache/application_1482167280022_0009/container_e15_1482167280
022_0009_01_000006/tmp as the basepath for spooling.
2016-12-19 11:07:32,190 INFO server.Server (Server.java:registered(110)) -
Server started listening at /0.0.0.0:41067
2016-12-19 11:07:33,240 INFO engine.StreamingContainer
(StreamingContainer.java:processHeartbeatResponse(812)) - Deploy request:
[OperatorDeployInfo[id=1,name=JdbcInput,type=INPUT,checkpoint={ffff
ffffffffffff, 0,
0},inputs=[],outputs=[OperatorDeployInfo.OutputDeployInfo[portName=outputPort,streamId=POJO's,bufferServer=<null>]]],
OperatorDeployInfo[id=2,name=JdbcOutput,type=GENERIC,checkpoin
t={ffffffffffffffff, 0,
0},inputs=[OperatorDeployInfo.InputDeployInfo[portName=input,streamId=POJO's,sourceNodeId=1,sourcePortName=outputPort,locality=CONTAINER_LOCAL,partitionMask=0,partitionKeys=
<null>]],outputs=[]]]
2016-12-19 11:07:34,266 ERROR engine.StreamingContainer
(StreamingContainer.java:run(1431)) - Abandoning deployment of operator
OperatorDeployInfo[id=2,name=JdbcOutput,type=GENERIC,checkpoint={ffff
ffffffffffff, 0,
0},inputs=[OperatorDeployInfo.InputDeployInfo[portName=input,streamId=POJO's,sourceNodeId=1,sourcePortName=outputPort,locality=CONTAINER_LOCAL,partitionMask=0,partitionKeys=<null>]
],outputs=[]] due to setup failure.
java.lang.RuntimeException: java.sql.SQLSyntaxErrorException: ORA-00942: table
or view does not exist
at
com.datatorrent.lib.db.jdbc.JdbcTransactionalStore.getCommittedWindowIdHelper(JdbcTransactionalStore.java:240)
at
com.datatorrent.lib.db.jdbc.JdbcTransactionalStore.getCommittedWindowId(JdbcTransactionalStore.java:196)
at
com.datatorrent.lib.db.AbstractTransactionableStoreOutputOperator.setup(AbstractTransactionableStoreOutputOperator.java:97)
at
com.datatorrent.lib.db.jdbc.AbstractJdbcTransactionableOutputOperator.setup(AbstractJdbcTransactionableOutputOperator.java:95)
at
com.datatorrent.lib.db.jdbc.JdbcPOJOInsertOutputOperator.setup(JdbcPOJOInsertOutputOperator.java:59)
at
com.datatorrent.lib.db.jdbc.JdbcPOJOInsertOutputOperator.setup(JdbcPOJOInsertOutputOperator.java:47)
at com.datatorrent.stram.engine.Node.setup(Node.java:187)
at
com.datatorrent.stram.engine.StreamingContainer.setupNode(StreamingContainer.java:1309)
at
com.datatorrent.stram.engine.StreamingContainer.access$100(StreamingContainer.java:130)
at
com.datatorrent.stram.engine.StreamingContainer$2.run(StreamingContainer.java:1388)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not
exist
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
at
oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
at
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
at
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
at
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
at
oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
at
com.datatorrent.lib.db.jdbc.JdbcTransactionalStore.getCommittedWindowIdHelper(JdbcTransactionalStore.java:229)
... 9 more
2016-12-19 11:07:34,266 ERROR engine.StreamingContainer
(StreamingContainer.java:run(1431)) - Abandoning deployment of operator
OperatorDeployInfo[id=1,name=JdbcInput,type=INPUT,checkpoint={fffffff
fffffffff, 0,
0},inputs=[],outputs=[OperatorDeployInfo.OutputDeployInfo[portName=outputPort,streamId=POJO's,bufferServer=<null>]]]
due to setup failure.
java.lang.RuntimeException: java.sql.SQLSyntaxErrorException: ORA-00933: SQL
command not properly ended
at
com.datatorrent.lib.db.jdbc.JdbcPOJOInputOperator.setup(JdbcPOJOInputOperator.java:145)
at
com.datatorrent.lib.db.jdbc.JdbcPOJOInputOperator.setup(JdbcPOJOInputOperator.java:67)
at com.datatorrent.stram.engine.Node.setup(Node.java:187)
at
com.datatorrent.stram.engine.StreamingContainer.setupNode(StreamingContainer.java:1309)
at
com.datatorrent.stram.engine.StreamingContainer.access$100(StreamingContainer.java:130)
at
com.datatorrent.stram.engine.StreamingContainer$2.run(StreamingContainer.java:1388)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00933: SQL command not
properly ended
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
at
oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
at
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)
at
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
at
oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)
at
oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)
at
com.datatorrent.lib.db.jdbc.JdbcPOJOInputOperator.populateColumnDataTypes(JdbcPOJOInputOperator.java:158)
at
com.datatorrent.lib.db.jdbc.JdbcPOJOInputOperator.setup(JdbcPOJOInputOperator.java:142)
... 5 more
2016-12-19 11:07:34,275 INFO engine.WindowGenerator
(WindowGenerator.java:activate(178)) - Catching up from 1482174389500 to
1482174454275
2016-12-19 11:07:36,297 INFO engine.StreamingContainer
(StreamingContainer.java:processHeartbeatResponse(799)) - Undeploy request: [1,
2]
2016-12-19 11:07:36,298 INFO engine.StreamingContainer
(StreamingContainer.java:undeploy(561)) - Undeploy complete.
End of LogType:dt.log
--More--
<?xml version="1.0"?>
<configuration>
<!-- <property> <name>dt.application.{appName}.operator.{opName}.prop.{propName}</name>
<value>some-default-value (if value is not specified, it is required from
the user or custom config when launching)</value> </property> -->
<!-- memory assigned to app master <property> <name>dt.attr.MASTER_MEMORY_MB</name>
<value>1024</value> </property> -->
JdbcToJdbcApp
<!-- JDBC driver in use -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.databaseDriver</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<!-- URL to connect to the DB master -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.databaseUrl</name>
<value>jdbc:oracle:thin:@//host:port/db</value>
</property>
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.userName</name>
<value>username</value>
</property>
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.password</name>
<value>password</value>
</property>
<!-- # rows that the operator can retrieve in a window -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.fetchSize</name>
<value>120</value>
</property>
<!-- POJO class -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcInput.port.outputPort.attr.TUPLE_CLASS</name>
<value>com.att.dti.jdbc2jdbc.PojoEvent</value>
</property>
<!-- Query to fetch data -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.query</name>
<value>select * from test_event_table</value>
</property>
<!-- Input Table name -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.tablename</name>
<value>test_event_table</value>
</property>
<!-- JDBC driver in use -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.databaseDriver</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<!-- URL to connect to the DB master -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.databaseUrl</name>
<value>jdbc:oracle:thin:@//host:port/db</value>
</property>
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.userName</name>
<value>username</value>
</property>
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.password</name>
<value>password</value>
</property>
<!-- # rows that the operator can retrieve in a window -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.batchSize</name>
<value>5</value>
</property>
<!-- Output Table name -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.tablename</name>
<value>test_output_event_table</value>
</property>
<!-- POJO class -->
<property>
<name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.port.input.attr.TUPLE_CLASS</name>
<value>com.att.dti.jdbc2jdbc.PojoEvent</value>
</property>
</configuration>