Databases 11 min read

Why Did Incr‑Sync Stall? Solving Oracle SocketTimeout Errors in OceanBase OMS

A production OceanBase Oracle‑mode database experienced excessive Incr‑Sync delay due to a DDL timeout, and the article walks through log analysis, the oracleSocketTimeout parameter issue, configuration changes, verification steps, and final recommendations to resolve the blockage.

Aikesheng Open Source Community
Aikesheng Open Source Community
Aikesheng Open Source Community
Why Did Incr‑Sync Stall? Solving Oracle SocketTimeout Errors in OceanBase OMS

Fault Background

In a production environment, an OceanBase (Oracle mode) database's incremental sync link (DDL + DML) suffered excessive delay, with the Incr‑Sync component's position stuck at 2025-04-29 12:08:25, increasing business risk for sync data read latency.

OMS migration tool page showed continuously growing delay.

Analysis Process

Check connector.log

Inside the Incr‑Sync component container, the log repeatedly attempted to create an index DDL and reported

java.sql.SQLRecoverableException: IO Error: Socket read timed out

.

[2025-04-29 14:48:01.395] [WARN] [sinkTask-9] ... java.sql.SQLRecoverableException: IO Error: Socket read timed out ...

Check Oracle data volume

The table contains about 34 million rows, so index creation naturally takes time.

Check connector_sink_msg.log

The sink side of OMS Incr‑Sync showed no new DML consumption, stuck around 12:08:30, indicating DML was blocked by the failing DDL.

oracleSocketTimeout parameter issue

The error originates from the JDBC connection between Incr‑Sync and Oracle exceeding the socket timeout. The default oracleSocketTimeout is 50 s; increasing it may resolve the issue.

Investigate OMS documentation about the incr‑sync component and socketTimeout.

The parameter exists; raising it is worth trying.

Modification

Update the Incr‑Sync component's sink module to add oracleSocketTimeout with a value of 1800 s.

Verify parameter effect

After modification, connector.log prints the JDBC URL with the new socketTimeout=1800000 setting.

jdbc:oracle:thin:@//10.19.51.23:1521/zdbrenzy.actionskydba.com?rewriteBatchedStatements=true&GetConnectionTimeout=20000&socketTimeout=1800000

Check DDL execution completion

After waiting, msg/ddl_msg.log shows the DDL was successfully consumed and the index was created in Oracle.

1[2025-04-29 15:00:17.560] receive ddl:CREATE INDEX IDX_JYMX_UNIT_STATUS ...

The monitoring UI now progresses normally, confirming the issue is resolved.

Root Cause and Conclusion

The immediate cause was repeated DDL execution failures blocking the Incr‑Sync position. The underlying cause was the default oracleSocketTimeout (50 s) being too short for large tables, causing the JDBC connection to drop.

Recommendations:

Add oracleSocketTimeout to Incr‑Sync and include it in operation standards.

Increase the default timeout from 50 s to 600 s (or an appropriate value).

References

[1] Incr‑Sync component: https://www.oceanbase.com/docs/community-oms-cn-1000000003497874

[2] Official article 1: https://www.oceanbase.com/knowledge-base/oms-ee-1000000000253329

[3] Official article 2: https://www.oceanbase.com/docs/enterprise-oms-doc-cn-1000000000613559

OceanBaseDDLOMSIncr-SyncSocketTimeout
Aikesheng Open Source Community
Written by

Aikesheng Open Source Community

The Aikesheng Open Source Community provides stable, enterprise‑grade MySQL open‑source tools and services, releases a premium open‑source component each year (1024), and continuously operates and maintains them.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.