无法从google云数据流连接Oracle server

无法从google云数据流连接Oracle server,oracle,google-cloud-dataflow,apache-beam,ojdbc,Oracle,Google Cloud Dataflow,Apache Beam,Ojdbc,我正在尝试从运行在“CST”时区的Oracle server读取数据。我的google数据流正在“us-central1”地区运行。我正在使用ApacheBeam-2.3.0JDBCIO.read()方法从Oracle服务器读取数据。我能够使用“DirectRunner”从服务器连接和读取数据,但使用ojdbc8驱动程序jar在“DataflowRunner”中出现以下错误 (901b8e8f2f8a547a):java.lang.RuntimeException:org.apache.beam

我正在尝试从运行在“CST”时区的Oracle server读取数据。我的google数据流正在“us-central1”地区运行。我正在使用ApacheBeam-2.3.0
JDBCIO.read()
方法从Oracle服务器读取数据。我能够使用“DirectRunner”从服务器连接和读取数据,但使用ojdbc8驱动程序jar在“DataflowRunner”中出现以下错误

(901b8e8f2f8a547a):java.lang.RuntimeException:org.apache.beam.sdk.util.UserCodeException:java.sql.SQLException:无法创建PoolableConnectionFactory(ORA-00604:递归sql级别1发生错误
ORA-01882:未找到时区区域
)
位于com.google.cloud.dataflow.worker.MapTaskExecutorFactory$3.typedApply(MapTaskExecutorFactory.java:338)
位于com.google.cloud.dataflow.worker.MapTaskExecutorFactory$3.typedApply(MapTaskExecutorFactory.java:308)
位于com.google.cloud.dataflow.worker.graph.Networks$TypeSafeNodeFunction.apply(Networks.java:63)
位于com.google.cloud.dataflow.worker.graph.Networks$TypeSafeNodeFunction.apply(Networks.java:50)
位于com.google.cloud.dataflow.worker.graph.Networks.replaceDirectedNetworkNodes(Networks.java:87)
位于com.google.cloud.dataflow.worker.MapTaskExecutorFactory.create(MapTaskExecutorFactory.java:154)
位于com.google.cloud.dataflow.worker.DataflowWorker.doWork(DataflowWorker.java:308)
位于com.google.cloud.dataflow.worker.DataflowWorker.getAndPerformWork(DataflowWorker.java:264)
位于com.google.cloud.dataflow.worker.DataflowBatchWorkerHarness$WorkerThread.doWork(DataflowBatchWorkerHarness.java:133)
位于com.google.cloud.dataflow.worker.DataflowBatchWorkerHarness$WorkerThread.call(DataflowBatchWorkerHarness.java:113)
位于com.google.cloud.dataflow.worker.DataflowBatchWorkerHarness$WorkerThread.call(DataflowBatchWorkerHarness.java:100)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
原因:org.apache.beam.sdk.util.UserCodeException:java.sql.SQLException:无法创建PoolableConnectionFactory(ORA-00604:递归sql级别1发生错误
ORA-01882:未找到时区区域
)
位于org.apache.beam.sdk.util.UserCodeException.wrap(UserCodeException.java:36)
位于org.apache.beam.sdk.io.jdbc.JdbcIO$ReadFn$DoFnInvoker.invokeSetup(未知源)
位于com.google.cloud.dataflow.worker.dofInstanceManager$ConcurrentQueueInstanceManager.deserializeCopy(dofInstanceManager.java:63)
位于com.google.cloud.dataflow.worker.dofInstanceManager$ConcurrentQueueInstanceManager.peek(dofInstanceManager.java:45)
位于com.google.cloud.dataflow.worker.userpardonfactory.create(userpardonfactory.java:94)
位于com.google.cloud.dataflow.worker.defaultpardonfactory.create(defaultpardonfactory.java:74)
位于com.google.cloud.dataflow.worker.MapTaskExecutorFactory.createParDoOperation(MapTaskExecutorFactory.java:415)
位于com.google.cloud.dataflow.worker.MapTaskExecutorFactory$3.typedApply(MapTaskExecutorFactory.java:326)
... 14多
原因:java.sql.SQLException:无法创建PoolableConnectionFactory(ORA-00604:递归sql级别1发生错误
ORA-01882:未找到时区区域
)
位于org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2294)
位于org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2039)
位于org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533)
位于org.apache.beam.sdk.io.jdbc.JdbcIO$ReadFn.setup(JdbcIO.java:503)
原因:java.sql.SQLException:ORA-00604:递归sql级别1发生错误
ORA-01882:未找到时区区域
位于oracle.jdbc.driver.t4cttiorer11.processError(t4cttiorer11.java:494)
位于oracle.jdbc.driver.t4cttiorer11.processError(t4cttiorer11.java:441)
位于oracle.jdbc.driver.t4cttiorer11.processError(t4cttiorer11.java:436)
位于oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:1061)
位于oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:550)
位于oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623)
位于oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)
位于oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:499)
位于oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1279)
位于oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:663)
位于oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:688)
位于oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:39)
位于oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:691)
位于org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:39)
位于org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:256)
位于org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2304)
位于org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2290)
位于org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2039)
位于org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533)
位于org.apache.beam.sdk.io.jdbc.JdbcIO$ReadFn.setup(JdbcIO.java:503)
位于org.apache.beam.sdk.io.jdbc.JdbcIO$ReadFn$DoFnInvoker.invokeSetup(未知源)
位于com.google.cloud.dataflow.worker.dofInstanceManager$ConcurrentQueueInstanceManager.deserializeCopy(dofInstanceManager.java:63)
位于com.google.cloud.dataflow.worker.dofInstanceManager$ConcurrentQueueInstanceManager.peek(dofInstanceManager.java:45)
位于com.google.cloud.dataflow.worker.userpardonfactory.cre
// Solution 2
TimeZone timeZone = TimeZone.getTimeZone("yourTimeZone");
TimeZone.setDefault(timeZone);

// Solution 3
oracle.jdbc.timezoneAsRegion=false