<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    WorkerThread Reutilisation and JMS [JBoss 5.1]
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="http://community.jboss.org/people/michael.faber">Michael Faber</a> in <i>Performance Tuning</i> - <a href="http://community.jboss.org/message/608766#608766">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Hi JBoss Community,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>i am having some configuration problems with JMS and the corresponding WorkerThreads from the ThreadPool.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I experienced some OutOfMemory exceptions when running some bigger batch jobs on the server side that are triggered using JMS. Looking at the application with the VisualVM tool i saw that JBoss is spawning a big amount of WorkerThreads (up to 100, which is the default configuration value) which process the JMS messages.</p><p>Since the configuration for JMS is to work with max 15 concurrent threads, i would expect JBoss to resuse old WorkerThreads, if there is one available in state "waiting" (i.e. a WorkerThread already spawned, that completed processing). The result i got is, that JBoss starts reusing old threads only if the limit of configured WorkerThreads is reached, i.e. if 100 WorkerThreads are started, JBoss will use an existing Thread for the next JMS message, since it is not allowed to spawn a new one.</p><p>Therefore we have a lot of 'idle' WorkerThreads that consume memory which lead to the OOM exception in the end. As a workaround i can limit the size of the WorkerThreadPool, however i was wondering if this is the wanted behaviour for the application server.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span>I had a look around Google and found some JBoss WorkerThread issues with JMS when Connections/Sessions/Senders are not closed (</span><a class="jive-link-external-small" href="http://community.jboss.org/message/157561#157561" target="_blank">http://community.jboss.org/message/157561</a><span>). I checked the code to send messages to JMS for this issue, however these suggestions did not help to reuse WorkerThreads in my case. </span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Hence, the following questions:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>1) Is the issue described in the thread above still an issue in JBoss 5.1 ?</p><p>2) Is the described behaviour (the full utilisation of all possible WorkerThreads) the wanted behaviour or should old WorkerThreads be reutilized by JBoss before spawning new ones ?</p><p>3) Is there any configuration i missed that i can use to configure JMS or the JBoss behaviour on this part ?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Any feedback is appreciated, thanks for your time.</p><p>Michael</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/608766#608766">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in Performance Tuning at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2078">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>