我在使用 Kafka connect 时得到了著名的"ora-01882:找不到时区区域"。
我正在使用 ojdbc8.jar。
过去,当我使用 Kubernetes启动的 Java 程序中使用它时,我在 Kubernetes 配置的 args 字段中使用了以下 appraoch。
args: ["-Xms2g", "-Xmx2g", "-cp", "/app/entellect-fetcher-assembly.jar", "-Doracle.jdbc.timezoneAsRegion=false", "com.elsevier.entellect.fetcher.SqlFetcher"]
使用它解决了问题。
但是,当我使用汇合舵图时,args 不可用,因此我求助于使用融合文档中描述的 env 变量 (CONNECT_OPTS https://docs.confluent.io/5.0.0-beta1/cli/command-reference/index.html:
请看下面:
env: - name: CONNECT_OPTS value: "-Doracle.jdbc.timezoneAsRegion=false" - name: CONNECT_REST_ADVERTISED_HOST_NAME valueFrom: fieldRef: fieldPath: status.podIP - name: CONNECT_BOOTSTRAP_SERVERS value: {{ template "cp-kafka-connect.kafka.bootstrapServers" . }} - name: CONNECT_GROUP_ID value: {{ template "cp-kafka-connect.groupId" . }}
我在这方面并不成功。
我想知道以前是否有人经历过这种情况,他们是否可以分享他们的解决方案。无论是直接设置时区,还是如何设置我上面尝试过的内容,或者更改驱动程序等等。
我已经尝试过使用 odjbc6.jar 并且可以工作,但是对于某些数字,我得到了一些糟糕的反序列化。不知道为什么。因此,我想尝试使用 odjbc8.jar。
我想一定有某种方法:)
注意我到目前为止的配置:
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector connection.password=*********** transforms= table.whitelist=ACTIVITYDATA mode=bulk topic.prefix=pp_db_ connection.user=pharmapendium4 name=PP numeric.mapping=best_fit value.converter=org.apache.kafka.connect.json.JsonConverter connection.url=jdbc:oracle:thin:@xx.x.xx.xxx:1521:pp numeric.precision.mapping=false key.converter=org.apache.kafka.connect.json.JsonConverter
您可以编辑 jar 文件:ojdbc8.jar
.
即defaultConnectionProperties.properties
,可以在 path:ojdbc8.jaroraclejdbc
中找到。
在那里,您将添加一行:
oracle.jdbc.timezoneAsRegion=false