Size Data Unit (SDU) Mismatch Error When Using or Above JDBC Driver (Doc ID 1281122.1)

Last updated on MARCH 08, 2017

Applies to:

JDBC - Version to [Release 10.2]
JDBC - Version to [Release 11.1 to 11.2]
Information in this document applies to any platform.
***Checked for relevance on 23-Apr-2013***


When using certain later versions of the Oracle JDBC driver, attempts to drop a sequence, or to drop a table, fail under certain conditions with the an exception resembling the following:

java.sql.SQLRecoverableException: IO Error: Size Data Unit (SDU) mismatch
at oracle.jdbc.driver.T4CStatement.executeForRows(
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(
at oracle.jdbc.driver.OracleStatement.executeInternal(
at oracle.jdbc.driver.OracleStatement.execute(
at oracle.jdbc.driver.OracleStatementWrapper.execute(
at App.main(
Caused by: Size Data Unit (SDU) mismatch
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(
at oracle.jdbc.driver.T4CTTIfun.receive(
at oracle.jdbc.driver.T4CTTIfun.doRPC(
at oracle.jdbc.driver.T4C8Oall.doOALL(
at oracle.jdbc.driver.T4CStatement.doOall8(
at oracle.jdbc.driver.T4CStatement.executeForRows(
... 5 more

The problem reproduces when 3 conditions are all present:

1. The RDBMS is on a different platform from the calling JDBC application. When a Windows program connects to an RDBMS on Windows, or a Linux program connects to an RDBMS on Linux, the problem doesn't reproduce; the problem occurs when connecting from a Windows program to a Linux database (for example).

2. The RDBMS is configured for shared-server (i.e. MTS).

3. One of the following JDBC driver versions is used:
Other JDBC driver versions don't reproduce the problem.


Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms