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

Last updated on MARCH 08, 2017

Applies to:

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

Symptoms

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(T4CStatement.java:1019)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1315)
at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1890)
at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1855)
at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:304)
at App.main(App.java:24)
Caused by: oracle.net.ns.NetException: Size Data Unit (SDU) mismatch
at oracle.net.ns.Packet.processHeader(Packet.java:360)
at oracle.net.ns.Packet.receive(Packet.java:294)
at oracle.net.ns.DataPacket.receive(DataPacket.java:103)
at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:230)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:175)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:100)
at oracle.net.ns.NetInputStream.read(NetInputStream.java:85)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123)
at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1122)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:193)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:999)
... 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:
10.2.0.5
11.1.0.7
11.2.0.1
11.2.0.2
Other JDBC driver versions don't reproduce the problem.

Cause

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