Service Bus 12.2.1: Unexpected heap usage when posting large binary files with Chunk Streaming Mode (Doc ID 2154069.1)

Last updated on MAY 04, 2017

Applies to:

Oracle Service Bus - Version 12.2.1.0.0 to 12.2.1.0.0
Information in this document applies to any platform.

Symptoms

 The issue occurs when writing a large amount of binary data to the service with a POST method through Service Bus 12.2.1.

The binary data is streamed from the client through all OSB components to the servlet, but assigning the complete payload additionally to an object of type:
com.bea.wli.sb.util.ReusableDataSourceMemoryBuffer

This greatly increases the heap usage to a potentially problematic level.

When reading a large amount of binary data from the service with a GET method, the binary data is streamed from the servlet through all OSB components to the client without using any additional heap memory.
The POST method is expected to work in a similar fashion.

The following stack trace shows ReusableDataSourceMemoryBuffer.readUntil() is invoked to buffer the outbound request message in memory which is unnecessary in the pass-through case:

 

 

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