While working with large payloads in Oracle Integration Cloud (OIC), especially from BIP report responses, many developers store the complete response inside a string variable for later processing or logging.
This works initially, but when the payload becomes too large, OIC may start showing a warning like:
“String size limit”
This is commonly seen when the string exceeds around 10,000 characters (10K).
OIC Server limit:
If the size of a string variable exceeds 10,000 characters, a warning message is shown in the activity stream. Oracle Integration does not currently impose a limit on the size of string variables. However, this may be subject to change in the future, which could result in a flow execution failing when the limit is exceeded.
Common Scenario
We had a use case where:
OIC was calling a BIP Report
The report response contained a very large XML/Base64 payload
Entire response was stored in a string variable
Integration completed successfully, but OIC generated a warning notification
Typical warning behavior:
Integration still succeeds
Activity stream shows warning
OIC dashboard displays alert notification
Performance may degrade due to heavy in-memory string handling
Why This Happens
OIC internally maintains limits for string handling in memory.
When a very large payload is stored in:
Assign activity variables
String variables
Logger messages
Tracking fields
OIC raises a String Size Limit Warning.
This does not always fail the integration immediately, but it can:
Increase memory usage
Slow down execution
Create unnecessary activity stream overhead
Impact overall integration performance
Real Impact on Performance
Large string variables can cause:
1. Increased Memory Consumption
Huge payloads remain loaded in memory during runtime.
2. Slower Assign Activities
Assigning massive strings repeatedly increases processing time.
3. Activity Stream Overhead
OIC tries to maintain activity and debug information.
4. Payload Serialization Cost
Large string conversion operations impact performance.
5. Difficult Debugging
Very large payload logs become hard to analyze.
Recommended Resolution
1. Avoid Storing Full Payload in String Variables
Instead of:
Storing complete BIP response
Storing entire Base64 output
Keeping full XML/JSON in string variables
Store only:
Required nodes
Specific fields
IDs/status values
2. Use Stage File for Large Content
For large payload processing:
Write payload into Stage File
Process file stream-wise
Avoid keeping everything in memory
This is the best approach for:
Large XML
CSV
Base64 documents
Huge BIP outputs
3. Read Only Required Data
Instead of mapping the complete payload:
Extract only needed elements using:
XPath
JSON path
Stage File Read
Example:
Employee Number
Report Status
File Name
Document ID
Avoid unnecessary full payload assignments.
4. Avoid Logging Full Payloads
Do not log:
Entire XML
Complete Base64
Large JSON responses
Instead log:
Record count
Transaction ID
Small status messages
5. Use Attachments/File References When Possible
For document-heavy integrations:
Pass file references
Use attachments
Use opaque/binary handling
Instead of converting everything into strings.
Best Practice Architecture
Recommended flow:
Call BIP Report
Receive large payload
Store in Stage File / Attachment
Read only required fields
Pass file reference downstream
Avoid huge string variables
Key Takeaway
If OIC shows: String Size Limit Warning. it usually means:
Integration processed a very large string payload
OIC memory threshold warning was triggered
Integration may still succeed
But performance optimization is needed
Reference:



No comments:
Post a Comment