Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Memory leak after sending ByteMesssage to AMQ #160

Open
geertschuring opened this issue Nov 22, 2023 · 1 comment
Open

Memory leak after sending ByteMesssage to AMQ #160

geertschuring opened this issue Nov 22, 2023 · 1 comment

Comments

@geertschuring
Copy link

Specifications

  • JMSToolBox version: 6.2.0
  • OS (Name, version, 32/64bits): Windows 64bits
  • Q provider (kind, version) : Apache Artemis MQ Artemis v2.x

Expected Behavior

Send a large file and clear the contents from the local memory afterwards.

Actual Behavior

The file is send, but the memory is not cleared, it remains on the heap of JMSToolbox even after closing the connection to the broker.

Steps to Reproduce the Problem

  1. Send a new message to a Queue with Payload Type: Bytes and of significant size (like 200MB)
  2. Observe the heap of JMSToolbox, trigger a GC and notice the memory it not released.
  3. Repeat above steps until JMSToolbox crashed with out of memory errors.
@geertschuring geertschuring changed the title Memory leak after sending binary file to AMQ Memory leak after sending ByteMesssage to AMQ Nov 22, 2023
@titou10titou10
Copy link
Contributor

titou10titou10 commented Nov 23, 2023

Not sure it's a bug, but mostly inherent to the way JTB is working
There is no "lazy loading" of messages, so if you have 200 messages in the message browser, those 200 messages are all "loaded" in JTB memory

You can adjust the memory used by JTB by editing the JMSToolBox.ini file in the installation directory by changing the "-Xms"and "-Xmx" parameters
There is no maximum set by default, so JTB will use half of the RAM of your machine on Windows for example

{...} it remains on the heap of JMSToolbox even after closing the connection to the broker.

The heap does not go down after a while after closing the connection?

  1. Observe the heap of JMSToolbox, trigger a GC and notice the memory it not released.

How do you trigger a GC?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants