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
https://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
https://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 <[email protected]> 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 <[email protected]>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&nbsp;/var/store/activemq,
> and reinject the data in an external volume with more space that you can
> mount then in&nbsp;/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:
> &gt; Hi Apache James Brain Trust,
> &gt;
> &gt; I am having issues with my James server. I am running James 3.8, JPA
> in a
> &gt; Docker Container. A user was attempting to email a large video file
> and
> &gt; that seems to have crashed the server. I get this message in the log
> file:
> &gt;
> &gt; [WARN ] o.a.a.b.r.Queue - Usage(Main:store:queue://spool:store)
> &gt; percentUsage=100%, usage=20779975, limit=20765548,
> &gt; percentUsageMinDelta=1%;Parent:Usage(Main:store) percentUsage=100%,
> &gt; usage=20779975, limit=20765548, percentUsageMinDelta=1%: Persistent
> store
> &gt; is Full, 100% of 20765548. Stopping producer
> &gt; (ID:7a04cd6de807-43041-1775136440917-5:2:1:1) to prevent flooding
> &gt; queue://spool.
> &gt;
> &gt; I am struggling to figure out how to resolve this issue (I found this
> link,
> &gt; but I am unable to figure where the ActiveMQ files are located) (
> &gt;
> knowledge.informatica.com/s/article/Persistent-store-is-Full-100-of-Stopping-producer-ID-to-prevent-flooding-error-in-DataExchange-logs?language=en_US
> &gt
> <http://knowledge.informatica.com/s/article/Persistent-store-is-Full-100-of-Stopping-producer-ID-to-prevent-flooding-error-in-DataExchange-logs?language=en_US&gt>;
> ).
> &gt;
> &gt; I would appreciate your help in resolving this issue (restarting the
> server
> &gt; has not helped). How do you stop the "producer"?
> &gt;
> &gt; Also, where can I find the configuration file for ActiveMQ?
> &gt;
> &gt; I would also like to know how to back up the database files, if that
> is
> &gt; possible?
> &gt;
> &gt; Is there any documentation on how to migrate from 3.8 to 3.9?
> &gt;
> &gt; I look forward to any feedback.
> &gt;
> &gt; Best regards,
> &gt;
> &gt; Gil Espinoza
> &gt;
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]

Reply via email to