For all TIBCO Adapters using C++ SDK APIs on Unix platforms (Solaris, HP-UX, AIX, etc.), memory deallocation does not happen.

For all TIBCO Adapters using C++ SDK APIs on Unix platforms (Solaris, HP-UX, AIX, etc.), memory deallocation does not happen.

book

Article ID: KB0091386

calendar_today

Updated On:

Products Versions
TIBCO Adapter SDK -
Not Applicable -

Description

Description:
When using an adapter that has been built using C++ SDK APIs on the following platforms, memory deallocation does not happen when processing large complex messages:
- Solaris
- HP-UX
- IBM AIX
This known issue exists for the following sets of adapters.

> TIBCO Adapter for Active Database
> TIBCO Adapter for R/3
> TIBCO Adapter for Teradata
> TIBCO Adapter for MQSeries
> TIBCO Adapter for LDAP
> TIBCO Adapter for COM
> TIBCO Adapter for File
> TIBCO Adapter for Peoplesoft.
> TIBCO Adapter for CORBA
> TIBCO Adapter for Remedy
> TIBCO Adapter for Tuxedo
> Custom Adapters using C++ TIBCO Adapter SDK APIs.

Symptoms
========
When the adapter is running on a Unix platform and processing large messages (&gt1.5MB),
1. Adapter allocates memory depending on the number of threads and message size.
2. Once the adapter processes messages, the memory allocated is seen to remain the same.
3. Message processing slows down.
4. Adapter will either core dump (Bus Error) or throw memory allocation failed error when it reaches the maximum memory available for the process

Impact
======
Loss of Functionality - the adapter terminates, unless the available memory for the process is increased.

Cause
=====
For large and complex messages, the memory consumption by the Adapter SDK may be high.  A crash may result when the memory consumption requirement exceeds the virtual memory available to the process (i.e. a message sent via the Adapter needs more memory than is available to the process).


Workaround
==========
Any one of the below workarounds can be applied:
1. Increase the memory available to the process.
2. Avoid sending messages that require more memory than that allowed by the OS process.
3. If using JMS, create separate JMS sessions for all adapter services which process complex messages.
4. If there are multiple services in an adapter instance, split and distribute the services to multiple instances.

Resolution
=========
Engineering is currently investigating possible ways to reduce the memory consumption by the Adapter SDK needed for large and complex messages.
Symptoms:

Cause:

Issue/Introduction

For all TIBCO Adapters using C++ SDK APIs on Unix platforms (Solaris, HP-UX, AIX, etc.), memory deallocation does not happen.