【问题标题】:How to restrict pool size of MDB on Glassfish v3如何在 Glassfish v3 上限制 MDB 的池大小
【发布时间】:2014-10-05 03:52:54
【问题描述】:

我的消息驱动 Bean 执行高度密集的操作,所以我想限制它的池大小,否则我的服务器会超载。我已经尝试过这个(代码)但它不起作用,它的池仍然是 32(经验测试,我不时重新启动服务器,所以没有池实例)。

@MessageDriven( mappedName = "jms/TestTopic", activationConfig = {
    @ActivationConfigProperty( propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge" ),
    @ActivationConfigProperty( propertyName = "destinationType", propertyValue = "javax.jms.Topic" ),
    @ActivationConfigProperty( propertyName = "subscriptionDurability", propertyValue = "Durable" ),
    @ActivationConfigProperty( propertyName = "clientId", propertyValue = "Reader" ),
    @ActivationConfigProperty( propertyName = "subscriptionName", propertyValue = "Reader" ),
    @ActivationConfigProperty( propertyName = "endpointPoolMaxSize", propertyValue = "1" ),
    @ActivationConfigProperty( propertyName = "endpointPoolResizeCount", propertyValue = "1" ),
    @ActivationConfigProperty( propertyName = "endpointPoolSteadySize", propertyValue = "0" )
} )
public class Reader implements MessageListener {

我在 JDK 6 上的 Glassfish v3 上使用 EJB 3。应用程序使用 EE 6 标准。

你能帮我如何限制池吗?感谢您的帮助。

【问题讨论】:

标签: glassfish jms pool message-driven-bean


【解决方案1】:

我建议创建一个 sun-ejb-jar.xml 并将池配置放入其中。请参阅 http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_1-0.dtd 中的 bean-pool 了解原始的血腥细节。详情请参阅http://download.oracle.com/docs/cd/E19798-01/821-1750/6nmnbjlfi/index.html 中的 bean-pool,经过精心打磨。

【讨论】:

  • 与 sun-ejb-jar.xml 配合得很好,谢谢
【解决方案2】:

我关注了@vkraemer 发布的链接,下面是我的代码 sn-p。似乎还需要steady-pool-sizeresize-quantity,因为它们的默认值与低最大池大小不兼容。

<glassfish-ejb-jar>
    <enterprise-beans>
        <ejb>
            <ejb-name>SimpleClassName</ejb-name>
            <bean-pool>
                <steady-pool-size>1</steady-pool-size>
                <resize-quantity>1</resize-quantity>
                <max-pool-size>6</max-pool-size>
            </bean-pool>
        </ejb>
    </enterprise-beans>
</glassfish-ejb-jar>

但要注意

设置较小的max-pool-size 会导致过多的对象破坏 (并因此导致过多的对象创建)作为实例被销毁 如果当前池大小超过max-pool-size,则从池中提取。

...来自 GlassFish performance-tuning-guide

【讨论】:

    猜你喜欢
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 2017-01-28
    • 2019-01-04
    相关资源
    最近更新 更多