flink-cdc icon indicating copy to clipboard operation
flink-cdc copied to clipboard

flink oracle cdc Got minus one from a read call

Open mrchenwx opened this issue 3 years ago • 2 comments

Describe the bug(Please use English) A clear and concise description of what the bug is.

Environment :

  • Flink version : 1.13.3
  • Flink CDC version: 2.1.0
  • Database and version: oracle 19c

To Reproduce Steps to reproduce the behavior:

  1. Thes test data :
  2. The test code :
Properties properties = new Properties();
       properties.setProperty("decimal.handling.mode","STRING");
       SourceFunction<String> sourceFunction = OracleSource.<String>builder()
               .hostname("123.51.162.87")
               .port(1521)
               .database("ORA19C") // monitor XE database
               .schemaList("C##FS") // monitor inventory schema
               .tableList("C##FS.test") // monitor products table
               .username("usr001")
               .password("pwd000")
               .debeziumProperties(properties)
               .deserializer(new JsonDebeziumDeserializationSchema()) // converts SourceRecord to JSON String
               .build();
       StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
       env.addSource(sourceFunction)
               .print().setParallelism(1); // use parallelism 1 for sink to keep message ordering
       env.execute();
  1. The error : Caused by: java.lang.RuntimeException: Failed to resolve Oracle database version at io.debezium.connector.oracle.OracleConnection.resolveOracleDatabaseVersion(OracleConnection.java:158) at io.debezium.connector.oracle.OracleConnection.(OracleConnection.java:70) at io.debezium.connector.oracle.OracleConnectorTask.start(OracleConnectorTask.java:53) at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:130) at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:759) at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:188) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLRecoverableException: IO 错误: Got minus one from a read call at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:854) at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:793) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:57) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:747) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:562) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:208) at io.debezium.jdbc.JdbcConnection.lambda$patternBasedFactory$0(JdbcConnection.java:179) at io.debezium.jdbc.JdbcConnection$ConnectionFactoryDecorator.connect(JdbcConnection.java:116) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:872) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:867) at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:638) at io.debezium.jdbc.JdbcConnection.queryAndMap(JdbcConnection.java:512) at io.debezium.connector.oracle.OracleConnection.resolveOracleDatabaseVersion(OracleConnection.java:128) ... 8 more Caused by: oracle.net.ns.NetException: Got minus one from a read call at oracle.net.ns.NSProtocolNIO.doSocketRead(NSProtocolNIO.java:557) at oracle.net.ns.NIOPacket.readNIOPacket(NIOPacket.java:403) at oracle.net.ns.NSProtocolNIO.negotiateConnection(NSProtocolNIO.java:127) at oracle.net.ns.NSProtocol.connect(NSProtocol.java:340) at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1596) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:588) ... 21 more

Additional Description the pom.xml:

<dependencies>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-core</artifactId>
            <version>1.13.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-clients_2.11</artifactId>
            <version>1.13.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-table-common</artifactId>
            <version>1.13.3</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-table-api-java-bridge -->
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-table-api-java-bridge_2.11</artifactId>
            <version>1.13.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-table-planner-blink_2.11</artifactId>
            <version>1.13.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java_2.11</artifactId>
            <version>1.13.3</version>
        </dependency>
        <dependency>
            <groupId>com.ververica</groupId>
            <artifactId>flink-connector-oracle-cdc</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.oracle.ojdbc</groupId>
            <artifactId>ojdbc10</artifactId>
            <version>19.3.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.75</version>
        </dependency>
    </dependencies>

I tried to monitor the Oracle data, but failed to connect to the database, io.debezium.jdbc.JdbcConnection#patternBasedFactory(String urlPattern, io.debezium.config.Field...) the urlPattern is "jdbc:oracle:thin:@${hostname}:${port}/${dbname}" but I use the SID connection What should I do?.Thanks.

mrchenwx avatar Apr 11 '22 13:04 mrchenwx

@mrchenwx Could you try to reproduce the problem with SQL CDC connector? Also it looks like a network related issue according to the stack trace, so you might need to check if the network works properly.

PatrickRen avatar Apr 19 '22 09:04 PatrickRen

Closing this issue because it was created before version 2.3.0 (2022-11-10). Please try the latest version of Flink CDC to see if the issue has been resolved. If the issue is still valid, kindly report it on Apache Jira under project Flink with component tag Flink CDC. Thank you! cc @GOODBOY008

gong avatar Feb 03 '24 06:02 gong

Closing this issue because it was created before version 2.3.0 (2022-11-10). Please try the latest version of Flink CDC to see if the issue has been resolved. If the issue is still valid, kindly report it on Apache Jira under project Flink with component tag Flink CDC. Thank you!

PatrickRen avatar Feb 28 '24 15:02 PatrickRen