Hello The issue is that 77mb do not fit in auto configured 20mb. René opened https://github.com/apache/james-project/pull/2999 which allows configuring the memory limit and would allow you a workaround. --
Best regards, Benoit TELLIER General manager of Linagora VIETNAM. Product owner for Twake-Mail product. Chairman of the Apache James project. Mail: [email protected] Tel: (0033) 6 77 26 04 58 (WhatsApp, Signal) Le avr. 11, 2026 9:53 PM, de Gilberto Espinoza <[email protected]>Dear Rene, Thanks for the reply. I was able to locate the activemq folder and deleted the files. That resolved the issue. I'll review the information at the link you provided about migration. It seems it is not a straightforward undertaking. @Benoit: The file size is about 77.5MB. I do experience frequent memory issues, mainly because I run on a Linux Linode with only 2GB of RAM. But this was the first time I experience the persistent storage issue with activemq. Here is the content of the jvm. properties file: # ============================================= Extra JVM System Properties =========================================== # To avoid clutter on the command line, any properties in this file will be added as system properties on server start. # Example: If you need an option -Dmy.property=whatever, you can instead add it here as # my.property=whatever # (Optional). String (size, integer + size units, example: `12 KIB`, supported units are bytes KIB MIB GIB TIB). Defaults to 100KIB. # This governs the threshold MimeMessageInputStreamSource relies on for storing MimeMessage content on disk. # Below, data is stored in memory. Above data is stored on disk. # Lower values will lead to longer processing time but will minimize heap memory usage. Modern SSD hardware # should however support a high throughput. Higher values will lead to faster single mail processing at the cost # of higher heap usage. #james.message.memory.threshold=12K # Optional. Boolean. Defaults to false. Recommended value is false. # Should MimeMessageWrapper use a copy of the message in memory? Or should bigger message exceeding james.message.memory.threshold # be copied to temporary files? #james.message.usememorycopy=false # Mode level of resource leak detection. It is used to detect a resource not be disposed of before it's garbage-collected. # Example `MimeMessageInputStreamSource` # Optional. Allowed values are: none, simple, advanced, testing # - none: Disables resource leak detection. # - simple: Enables output a simplistic error log if a leak is encountered and would free the resources (default). # - advanced: Enables output an advanced error log implying the place of allocation of the underlying object and would free resources. # - testing: Enables output an advanced error log implying the place of allocation of the underlying object and rethrow an error, that action is being taken by the development team. #james.lifecycle.leak.detection.mode=simple # Should we add the host in the MDC logging context for incoming IMAP, SMTP, POP3? Doing so, a DNS resolution # is attempted for each incoming connection, which can be costly. Remote IP is always added to the logging context. # Optional. Boolean. Defaults to true. #james.protocols.mdc.hostname=true # Manage netty leak detection level see netty.io/wiki/reference-counted-objects.html#leak-detection-levels # io.netty.leakDetection.level=SIMPLE # Should James exit on Startup error? Boolean, defaults to true. This prevents partial startup. # james.exit.on.startup.error=true # Fails explicitly on missing configuration file rather that taking implicit values. Defautls to false. # james.fail.on.missing.configuration=true # JMX, when enable causes RMI to plan System.gc every hour. Set this instead to once every 1000h. sun.rmi.dgc.server.gcInterval=3600000000 sun.rmi.dgc.client.gcInterval=3600000000 # Automatically generate a JMX password upon start. CLI is able to retrieve this password. james.jmx.credential.generation=true # Disable Remote Code Execution feature from JMX # CF github.com/AdoptOpenJDK/openjdk-jdk11/blob/19fb8f93c59dfd791f62d41f332db9e306bc1422/src/java.management/share/classes/com/sun/jmx/remote/security/MBeanServerAccessController.java#L646 jmx.remote.x.mlet.allow.getMBeansFromURL=false -Xms1024M Thanks, Gil Espinoza On Tue, Apr 7, 2026 at 1:17 PM Benoit TELLIER wrote: > Hi Gilberto > > Out of curiosity, how large is the video file? > > Clearing the faulty mail is needed to restore the server. Backup then > clear files for ActiveMQ... > > Can you also share the JVM options used to run James? > > -- > > Best regards, > > Benoit TELLIER > > General manager of Linagora VIETNAM. > Product owner for Twake-Mail product. > Chairman of the Apache James project. > > Mail: [email protected] > Tel: (0033) 6 77 26 04 58 (WhatsApp, Signal) > > > Le avr. 7, 2026 10:47 AM, de Rene Cordier Hi > Gilberto, > > I ain't much of a JPA expert but I will try to answer to the best of my > capabilities, hoping it helps you. > > I think the EmbeddedActiveMq class creates a default activemq broker > with default storage settings, which must be around 20mb. The attachment > of your user seems slitghly bigger than this limit, filling up the > queue. James keeps crashing then I guess as the message keeps staying in > the queue. > > Is the faulty email important to keep or not? If not can try to clear > away the queue. The data of activemq should be inside the container at > /var/store/activemq. > > I think you can try to clean what's in > /var/store/activemq/brokers/KahaDB/* (cf > > github.com/apache/james-project/blob/3.8.x/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/EmbeddedActiveMQ.java > ) > > I guess you could back up the data as well, from /var/store/activemq, > and reinject the data in an external volume with more space that you can > mount then in /var/store/activemq ? > > There is unfortunately no configuration for ActiveMQ storage space. The > configuration file would be activemq.properties, but I think it is just > about some metrics configuration so far. But maybe that could be a nice > contribution to propose? > > Regarding the migration from 3.8 to 3.9, here there is a file for > upgrade instructions in general: > > github.com/apache/james-project/blob/master/upgrade-instructions.md#390-version > > I must admit people need to figure out which upgrade concerns which > product, if concerned or not, it's not really practical sorry. We got > room for improvement here I think too. > > Let me know if this helps you. > > Good luck :) > > Rene. > > On 4/3/26 08:05, Gilberto Espinoza wrote: > > Hi Apache James Brain Trust, > > > > I am having issues with my James server. I am running James 3.8, JPA > in a > > Docker Container. A user was attempting to email a large video file > and > > that seems to have crashed the server. I get this message in the log > file: > > > > [WARN ] o.a.a.b.r.Queue - Usage(Main:store:queue://spool:store) > > percentUsage=100%, usage=20779975, limit=20765548, > > percentUsageMinDelta=1%;Parent:Usage(Main:store) percentUsage=100%, > > usage=20779975, limit=20765548, percentUsageMinDelta=1%: Persistent > store > > is Full, 100% of 20765548. Stopping producer > > (ID:7a04cd6de807-43041-1775136440917-5:2:1:1) to prevent flooding > > queue://spool. > > > > I am struggling to figure out how to resolve this issue (I found this > link, > > but I am unable to figure where the ActiveMQ files are located) ( > > > knowledge.informatica.com/s/article/Persistent-store-is-Full-100-of-Stopping-producer-ID-to-prevent-flooding-error-in-DataExchange-logs?language=en_US > > > ; > ). > > > > I would appreciate your help in resolving this issue (restarting the > server > > has not helped). How do you stop the "producer"? > > > > Also, where can I find the configuration file for ActiveMQ? > > > > I would also like to know how to back up the database files, if that > is > > possible? > > > > Is there any documentation on how to migrate from 3.8 to 3.9? > > > > I look forward to any feedback. > > > > Best regards, > > > > Gil Espinoza > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected]
