I was seeing some Oracle waits along the lines of Sql.*net more data from client. It seemed to be particularly bad when attaching large documents. I ran across a tunable Oracle parameter called session data unit. It controls the packet size between the database server and the client. The default is 8192 bytes. You can go to 65535 bytes maximum. Both the client and server have to agree on the size or it will use the default.
On the oracle server side I added
SQLNET.AUTHENTICATION_SERVICES = (NTS)
DEFAULT_SDU_SIZE=32767
to sqlnet.ora
I then changed the connection string on the middle tier server to
data: jdbc:oracle:thin:@(DESCRIPTION=(SDU=32767)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX,XXX,XXX,XXX)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=XXXX)))
I am seeing less errors and have anecdotal reports that uploading documents is working better as well as improved performance in general so thought I would share