Using the iControl Java API, I had developed a data collection module for retrieving all the statistical values from the device for all the objects namely WideIp, Pool, PoolMember, etc., The Java program is executed periodically using a scheduler, which will trigger the data collection process. The scheduler is configured such a way that it'll trigger the data collection process every minute. When this scheduled program is executed indefinitely, after one hour, java heap memory is exhausted and OutOfMemory error is displayed in the log file. When the process is monitored, it has been noted that the heap memory is growing proportionately. In my code, all the variables are utilized such a way that, after the execution of a method the variables and objects are de-referenced appropriately, so that the objects would be eligible for garbage collection.
As per the heap memory monitoring results, more number of byte and byte objects are initialized but not properly released. In my code, there are no variables or objects utilizing the byte or byte. Probably, those objects are utilized by the iControl Library while communicating with the device and retrieving required details.
Could anyone please let me know whether it's a known issue in the iControl API? Please provide your suggestions or approach this handle this problem.
I had attached the image files representing the memory usage and object utilization in heap memory.