Goldengate Monitor Memory Usage
Goldengate Monitor is Oracle's GUI solution for administrators to monitor and alert on Goldengate targets. I really think this product has some great features, however it is not without fault. Recently we noticed that our monitor server was frequently failing. From the server log:
<Error> (thread=PacketListener1, member=1): Stopping cluster due to unhandled exception: java.lang.OutOfMemoryError: Java heap space
We decided to take a look at resource utilization using jconsole via a VNC session. If you've never used this before it's really a great tool to give you an idea of the performance of your java processes.
In the screenshot above you can see the upward trend of memory usage by the Monitor Weblogic process, indicating a memory leak. By default this process is able to consume up to 2GB of memory. If you're monitoring a somewhat large environment it's likely you'll see frequent crashes of this process.
As a workaround we increased the memory allocation during startup, like so:
nohup ./startManagedWebLogic.sh MONITORSERVER_server1 http://someserver.domain.com:7002 -Xms8192m -Xmx8192m &
In this example I've given it 8GB of memory, which you can also confirm from the jconsole with the MAX and COMMITTED fields under the Memory tab.
Unfortunately this really is just a workaround. In the screenshot above you can see that over the course of about 20 days we were already pretty close to our 8GB threshold. As the administrator, you'll need to restart the weblogic processes periodically or setup a job to automatically do so.
We attempted to use JDK 1.8 in the hopes that memory usage was more efficient, however Goldengate Monitor requires JDK 1.7 and will not run under 1.8 unfortunately. Monitor has the potential to be a really great tool for administrators and developers. Hopefully Oracle addresses this memory issue in a future update.
As always, please let me know if you have any questions and be sure to subscribe for frequent updates on all things Oracle Goldengate!