Updated on 2022-11-10 GMT+08:00

Full or Incremental Phase Error: Got minus one from a read call

Scenarios

During a full or incremental synchronization with Oracle serving as the source, an error is reported, and the log information is as follows: service LOGMANAGER failed, cause by: Unable to connect to DBMS: url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=*.*.*.*)(PORT=1521))(CONNECT_DATA=*)) user=*, Caused by: IO Error: Got minus one from a read call.

Possible Causes

  • The source database server rejects access from the IP address of the DRS task.
  • The source database connection information has changed.
  • The number of connections to the source database has reached the upper limit.

Solution

  1. Modify the sqlnet.ora file in $ORACLE_HOME/network/admin to allow the IP address of the DRS task to access the source database.

    • If a whitelist is used, TCP.INVITED_NODES must contain the DRS task IP address.
    • If a blacklist is used, TCP.EXCLUDED_NODES cannot contain the DRS task IP address.

  2. Check whether the source database information (such as the IP address, port number, or service name/sid) is modified. If the source database information is modified, perform the following operations:

    • Restore the modified source database information. The DRS task will automatically retry to continue the synchronization task.
    • Create a synchronization task again.

  3. Run the following commands to check whether the number of connections to the source database has reached the upper limit.

    • Run the following command to check the current number of connections:
      select count(*) from v$process;
    • Run the following command to check the maximum number of connections:
      select value from v$parameter where name ='processes';

    If the number of connections to the source database has reached the upper limit, run the following command to change the maximum number of connections allowed by the database:

    alter system set processes = 300 scope = spfile;

    Restart the database for the modification to take effect.