Ejb MDB Pool Settings ignored?

Hi.
I have a series of MDBs, and have tried to increase performance by setting the InitialSize and MaxSize values of the bean in the ejb-j2ee-engine.xml (not version 3!).
However, it doesnt seem to make any difference and messages seem to be getting processed sequentially, as if there was only one instance of the bean.
Here is the layout of my xml.
<ejb-j2ee-engine
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ejb-j2ee-engine.xsd">
<description/>
<enterprise-beans>
<enterprise-bean>
<ejb-name>mySimpleMDB</ejb-name>
<jndi-name>jms/myTestQueue</jndi-name>
<message-props>
<destination-name>jms/myTestQueue</destination-name>
<connection-factory-name>jms/queueConnectionFactory</connection-factory-name>
<property>                    
<property-name>InitialSize</property-name>
<property-value>1</property-value>
</property>
<property>                    
<property-name>MaxSize</property-name>
<property-value>1</property-value>
</property>
<property>                    
<property-name>ResizeStep</property-name>
<property-value>1</property-value>
</property>
</message-props>
</enterprise-bean>
</enterprise-beans>
</ejb-j2ee-engine>
Is this the correct location - i am pretty sure it is by looking at the documentation.
regards,
Andrew

Hi Vladimir - here are the relevant XML files:
ejb-jar.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<ejb-jar>
     <display-name>TestApp</display-name>
          <message-driven>
               <description>Validates</description>
               <display-name>Validation</display-name>
               <ejb-name>FileValidationMDB</ejb-name>
               <ejb-class>com.test.dts.ejb.FileValidationMDBBean</ejb-class>
               <transaction-type>Container</transaction-type>
               <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
               <message-driven-destination>
                    <destination-type>javax.jms.Queue</destination-type>
               </message-driven-destination>
               <env-entry>
                    <description/>
                    <env-entry-name>ejb/beanRefContext</env-entry-name>
                    <env-entry-type>java.lang.String</env-entry-type>
                    <env-entry-value>classpath:beanRefContext.xml</env-entry-value>
               </env-entry>
          </message-driven>
     </enterprise-beans>
     <assembly-descriptor>
        <container-transaction>
            <method>
                <ejb-name>FileValidationMDB</ejb-name>
                <method-name>onMessage</method-name>
                <method-params>
                    <method-param>javax.jms.Message</method-param>
                </method-params>
            </method>
            <trans-attribute>Required</trans-attribute>
        </container-transaction>
    </assembly-descriptor>
</ejb-jar>
ejb-j2ee-engine.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ejb-j2ee-engine
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="ejb-j2ee-engine.xsd">
     <description/>
     <enterprise-beans>
          <enterprise-bean>
               <ejb-name>FileValidationMDB</ejb-name>
               <jndi-name>jms/dts/registeredFiles</jndi-name>
               <message-props>
                    <destination-name>jms/dts/registeredFiles</destination-name>
                    <connection-factory-name>jms/dts/queueConnectionFactory</connection-factory-name>
                    <property>
                         <property-name>parallel-consumers</property-name>
                         <property-value>10</property-value>
                    </property>
                    <property>
                         <property-name>InitialSize</property-name>
                         <property-value>10</property-value>
                    </property>
                    <property>
                         <property-name>MaxSize</property-name>
                         <property-value>10</property-value>
                    </property>
                    <property>
                         <property-name>ResizeStep</property-name>
                         <property-value>1</property-value>
                    </property>
               </message-props>
          </enterprise-bean>
     </enterprise-beans>
</ejb-j2ee-engine>
jms-resources.xml
<?xml version="1.0" encoding="UTF-8"?>
<jms-resources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="jms-resources.xsd">
     <connection-factory>
          <name>jms/dts/XAConnectionFactory</name>
          <sap-local-factory-type>
               <type>javax.jms.XAConnectionFactory</type>
               <virtual-provider>default</virtual-provider>
          </sap-local-factory-type>
     </connection-factory>
     <connection-factory>
          <name>jms/dts/queueConnectionFactory</name>
          <sap-local-factory-type>
               <type>javax.jms.XAQueueConnectionFactory</type>
               <virtual-provider>default</virtual-provider>
          </sap-local-factory-type>
     </connection-factory>
     <connection-factory>
          <name>jms/dts/topicConnectionFactory</name>
          <sap-local-factory-type>
               <type>javax.jms.XATopicConnectionFactory</type>
               <virtual-provider>default</virtual-provider>
          </sap-local-factory-type>
     </connection-factory>
     <destination>
          <name>jms/dts/registeredFiles</name>
          <type>javax.jms.Queue</type>
          <sap-local-destination-type>
               <virtual-provider>default</virtual-provider>
               <!-- Properties for Message delivery -->
          <property>
            <description>
               Message Delivery Attempts Limited - We dont limit...
            </description>
            <config-property-name>
               deliveryAttemptsLimited
            </config-property-name>
            <config-property-value>false</config-property-value>
         </property>
         <property>
            <description>Delay in Milliseconds</description>
            <config-property-name>
               deliveryDelayInterval
            </config-property-name>
            <config-property-value>60000</config-property-value>
         </property>
          </sap-local-destination-type>
     </destination>
</jms-resources>
Hope this sheds some light on the subject...
Andrew

Similar Messages

  • SJSAS 8 connection pool settings ignored

    I have my connection pool settings set to 200 max connections and a 5 minutes max wait time. But when I run my application I get a "Cannot allocation more connections" exception after only 3 minutes and the database shows that there are less than 100 connections. What's the problem?
    Caused by: javax.resource.spi.ResourceAllocationException: Error in allocating a connection. Cause: In-use connections equal max-pool-size and expired max-wait-time. Cannot allocate more connections.
    at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:283)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:147)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:122)
    at com.sun.messaging.jms.ra.ConnectionFactoryAdapter.createConnection(ConnectionFactoryAdapter.java:96)
    ... 30 more
    Caused by: com.sun.enterprise.resource.PoolingException: In-use connections equal max-pool-size and expired max-wait-time. Cannot allocate more connections.
    at com.sun.enterprise.resource.IASNonSharedResourcePool.getResource(IASNonSharedResourcePool.java:275)
    at com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:211)
    at com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.java:172)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:268)
    ... 33 more

    I face a similar problem.
    I'm using Sun Application Server 8.1 and my systems connects to Iplanet LDAP 5.1.
    have my connection pool settings set to 100 max connections and a 3 minutes max wait time. But when i run my application, i found that the server never release any of my connection even when the connection expires from the pool. If i run a load test, I get a "Cannot allocation more connections" exception after a while.
    If i run the same code in Sun App Server 6.1, it works fine. Is there some problem with Sun Application Server 8.1? Is there a patch for it?

  • Monitoring EJB,Connection Pool,Servlets

    Hi,
    i have one doubt does oracle provides any MBeans to monitor ejb,connection pools etc..?
    thanks &regards
    Magesh.N

    Hi,
    i have one doubt does oracle9ias provides any MBeans to monitor ejb,connection pools etc..?
    thanks .ards
    Magesh.N

  • Adjust app pool settings for SSRS 2014?

    SSRS is no longer hosted in IIS.  So how do you adjust the SSRS app pool settings to never time out?
    thanks
    scott

    In the RSReportServer Configuration File see the "RecycleTime" setting...
    https://msdn.microsoft.com/en-us/library/ms157273.aspx?f=255&MSPPError=-2147217396

  • Starvation in EJB/MDB thread pool ?

    I am re-posting this article including the acronym EJB in the subject so that the EJB experts don't overlook this question. This question was moved from the JMS newsgroup to this newsgroup by a BEA moderator.
    Our application receives 10 different types of messages on one queue each. Thus we have 10 queues (MQ as a Foreign JMS provider with MDBs in a WLS). We have MDBs processing each of these queues. The producer (mainframe) that sends messages to these queues operates in batch mode.
    Option (1) Configure all MDBs in the same custom thread pool. If a blast of 500 messages arrives on one of the queues and all the threads start consuming messages, what happens to new messages that arrive on other queues ? Do they have to wait until these 500 messages are processed ? I would like someone from the BEA JMS implementation team to comment on this.
    Option (2) Configure smaller custom thread pools - one for each queue. Solves the problem above. Let us say we allocate 2 threads per MDB in custom thread pools. This ensures that none of the queues starve, however, if there is a practical limit on the maximum number of threads that can be configured, then this option introduces an inefficiency. What if there are 200 messages in one queue and zero messages in all others ? We are allowing only two threads to process those 200 messages while the other threads just sit and watch.

    I am re-posting this article including the acronym EJB in the subject so that the EJB experts don't overlook this question. This question was moved from the JMS newsgroup to this newsgroup by a BEA moderator.
    Our application receives 10 different types of messages on one queue each. Thus we have 10 queues (MQ as a Foreign JMS provider with MDBs in a WLS). We have MDBs processing each of these queues. The producer (mainframe) that sends messages to these queues operates in batch mode.
    Option (1) Configure all MDBs in the same custom thread pool. If a blast of 500 messages arrives on one of the queues and all the threads start consuming messages, what happens to new messages that arrive on other queues ? Do they have to wait until these 500 messages are processed ? I would like someone from the BEA JMS implementation team to comment on this.
    Option (2) Configure smaller custom thread pools - one for each queue. Solves the problem above. Let us say we allocate 2 threads per MDB in custom thread pools. This ensures that none of the queues starve, however, if there is a practical limit on the maximum number of threads that can be configured, then this option introduces an inefficiency. What if there are 200 messages in one queue and zero messages in all others ? We are allowing only two threads to process those 200 messages while the other threads just sit and watch.

  • File Association Settings Ignored

    Hello.
    I'm afraid I'm not too happy about this problem. I've been using iTunes recently as my media player. I do quite like iTunes, however, I'm not too happy that QuickTime must be installed in order for it to function.
    Since installing iTunes/QuickTime, my file association preferences for online audio files have been ignored. When I click a link to an MP3 file online, I still want Firefox to prompt me to either open the file in Windows Media Player or save it to my computer. However, clicking the link simply loads a new tab in which QuickTime attempts to play the file.
    Windows Media Player is set as my default player for MP3 files. QuickTime is set NOT to play MP3 files in both the "File Types" tab and the "MIME Types" window on the "Browser" tab of the plugin.
    I have been trying to fix this problem for days and I am sick and tired of it. Searching around the web, I've found many people who seem to have the same problem as I do, although I'm yet to find any kind of working solution. I'm hoping someone here can provide me with a working solution, otherwise I will have no alternative other than to uninstall both QuickTime and iTunes.
    Any suggestions would be appreciated.
    Windows XP
    Windows XP

    Try this, right click on a MP3 that you have on the HD and go to properties. Next to Opens with: click on Change and select another player to handle them. Also go to the settings of Firefox,-tools>options>downloads>plug-ins to see what is enabled in there to handle MP3's

  • Initial View Settings Ignored

    I've created a PDF and trying to control the inital settings in Document Properties/layout and magnification...But, after saving the settings and when the document is opened, they are ignored. I know I've been able to do this before, but not now. I'm using Macintosh Acrobat Pro 9.3.2.
    Thanks!

    I 'm not familar with that menu.
    Have you tried this, and then imediately save the file:
    Remember regardless of what you set each will show up on different Computers different ways.

  • Using Spring beans from EJB MDB

    I have a situation where I need to use spring beans from an EJB 3.0 MDB. The project does not have any webapps or anything,
    it will be only a MessageBean facade that needs to call spring beans. It is meant to be a service, that can be called by usign a single EJB message.
    The problem is I cannot get the spring context to load properly, since the MDBean it self is initialized(constructor called) only when it receives the first message from the broker, thus It's "too late" to initialize the spring context. What I want to do is load the spring context when the EJB is deployed in the Java EE container. So, is there a way I can call a some method, class, anything when the EJB is deployed in the container. Can I do something with a deployment descriptor?
    I am using glassfish V2 UR1, EJB 3.0, Spring 2.0.7 The project is deployed as a jar.

    Miku wrote:
    I have a situation where I need to use spring beans from an EJB 3.0 MDB. The project does not have any webapps or anything,
    it will be only a MessageBean facade that needs to call spring beans. It is meant to be a service, that can be called by usign a single EJB message. Why not make it a real service? Spring's contract first web services are a very nice way to go. It hides the fact that you're using a message-driven component for processing, too.
    %

  • Orion-ejb-jar.xml being ignored

    In oc4j 903 my orion-ejb-jar.xml file is being ignored at deployment time. It is in the META-INF directory of the ejb jar. Any ideas?

    changes to this file only get reflected if the tags exist initially. You can;t add new tags and hope to see them miraculously appear - which would be nice! Delete the orion-ejb-jar.xml from the application-deployments directory of your app, and redeploy, a new deployment version of the file will be generated.

  • Dynamically Undeploying EJBs / MDBs

    Hi,
    Is there a way to programmatically undeploy EJBs or MDBs. I am working with WLS6.1.
    I have a Message Driven Bean which should take messages from the Queue and parse
    the XML body of the message and save it into the database.
    In the MDB, onMessage(), I am checking if the Database is available, if it is
    not available, I am rolling back the message. But the problem is the message
    is consumed again. So I want to undeploy the MDB after some retries.
    Can I programmatically undeploy a Message Driven Bean or EJB.
    Thanks in advance
    Venkatesan

    Hi,
    Is there a way to programmatically undeploy EJBs or MDBs. I am working with WLS6.1.
    I have a Message Driven Bean which should take messages from the Queue and parse
    the XML body of the message and save it into the database.
    In the MDB, onMessage(), I am checking if the Database is available, if it is
    not available, I am rolling back the message. But the problem is the message
    is consumed again. So I want to undeploy the MDB after some retries.
    Can I programmatically undeploy a Message Driven Bean or EJB.
    Thanks in advance
    Venkatesan

  • EJB - MDB and Session and Entity - Seem to always run under same Thread

    I am working on an application that implemets a connection from an MDB to a Session EJB which inturn connects to a Entity EJB. All connections are impemented as Local Home. I use log4j for tracing and notice that the thread ID reported for all activity is the same "Thread ID: MessageListenerThreadPool : 0" .
    This confuses me because I thought that all EJB's would execute under different threads. Have I done something wrong? Have I missinterpreted the EJB implementation? Any opinions would be greatly appreciated!!

    Hi Kelly,
    This is a slight misinterpretation of the EJB threading requirements. There are a couple different issues as play here. First, the main threading guarantee made by the spec is that a particular instance of an EJB will not be invoked by the container on more than one thread at a time. This is one of the guarantees that simplifies the EJB programming model so that developers don't have to do anything special (e.g. the use of synchronized blocks) to handle concurrent access. Second, the EJB Local programming model requires that invocations have pass-by-reference semantics. Of course, the easiest way for the container to provide that behavior is to literally make the local invocation on the same thread.
    The call-flow you're describing touches a single instance from three different beans, so the threading guarantee is not violated. Hope that clears things up a bit.
    --ken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Upgrade to 14.0.1 Now font-family settings ignored for certain fonts e.g. Expert Sans

    Accepts {font-family: Arial, sans-serif, verdana} etc.
    But {font-family: Expert Sans, Arial, sans-serif, verdana} will fall back to Arial even though Expert Sans is installed on client PC. Works pre 14.0.1 and on Safari, Chrome, IE6/7/8 etc, so this is a feature of 14.0.1 release.

    Since the option to uncheck "allow pages to choose their own fonts" only appears after "advanced" is clicked, I understood what you meant.
    Let me put it this way. What I am expecting to happen: when I uncheck "allow pages to choose their own fonts," web pages will not choose their own fonts, but use the ones I've selected. What happens instead at tumblr: my selected fonts do not get used.
    To make it apparent, I selected Comic Sans for everything, and unchecked "allow pages to choose their own fonts." The results are shown in the first image below. I used sfgate.com as an example of a site where unchecking "allow pages..." works.
    The second image shows the font info from sfgate using the handy plug-in you mentioned. Comic Sans, my selected font, appears.
    The third image shows what I get at tumblr with the same settings I had at sfgate. As you can see, tumblr ignores my designation to use Comic Sans.
    For comparison purposes: the fourth image shows tumblr font info when "allow pages to choose their own fonts" IS checked.
    I have tested this with Firefox 12, 13, and 14 on Windows XP and Vista. I have tested it with multiple fonts (the font I usually designate is Verdana, but visually it's too close to Arial, so I used Comic Sans here) Tumblr ignoring the unchecking of "allow pages to choose their own fonts" happens in every instance. In short: tumblr.com breaks the Firefox option to choose your own fonts. Unchecking "allow pages to choose their own fonts" does not work at tumblr.
    Please note that by tumblr I do not mean individual blogs [myblog.tumblr.com], where the fonts can be set by the blog owner, and where unchecking "allow pages..." works. The problem is at tumblr.com, and also at tumblr.com/dashboard, the dashboard being what signed in tumblr users view, and which is 90% of their tumblr "experience."
    Another note: in my test, you'll notice I chose the same font for serif and sans-serif. Don't get sidetracked by that. Every version of Firefox, since it was first introduced, will happily use a single font across the board. There is no need to choose an actual serif font for "serif." The font I normally choose for both categories is Verdana.

  • Increase MDB pool size

    Hi.
    Is there anyway to increase the pool size for a message driven bean (ejb3) in Netweaver CE 7.1?
    Can this be done through the NWA application?
    Regards,
    Andrew

    You can do this on design-time if you specify the properties InitialSize, MaxSize & ResizeStep in ejb-j2ee-engine.xml of your application:
    <enterprise-bean>
       <bean-props>
          <property>
             <property-name>MaxSize</property-name>
             <property-value>1000</property-value>
          </property>
          <property>u2026</property>
       </bean-props>
    </enterprise-bean>
    Check also the reference about the properties: http://help.sap.com/saphelp_nwce10/helpdata/en/44/ee019ab68d27dfe10000000a1553f6/content.htm
    BR, Sergei

  • MDB Pool problem

    I'm running WebLogic 8.1 on one of the box. When I deploy my MDB, I'm setting initial beans in free pool to 15 and max beans in free pool to 70. However, after deployment in MDB it does show me initial beans to 15 on the console but if I go to the queue on which its listening and check number of consumer it shows only 13. Anything over 13 it shows 13 and no more. Why does this happen?

    Hello,
    Can you double check your figures using the weblogic.Admin tool
    see
    http://e-docs.bea.com/wls/docs81/admin_ref/cli.html#Commands_Managing_WebLogic_Server_MBeans
    Hoos

  • AME CS4-Memory Pool settings?

    I'm familiar with the memory settings in After Effects.  However, with my recent upgrade from 8GB to 16GB of memory, I was most excited to see an increase in AME speed.  So far, I have seen no change.  I found references to the "Adobe Memory Pool" in several places, but I haven't found a way to allocate more memory to AME.  I'm currently rendering a file in AME that I rendered back when I had 8GB of memory.  It's taking the exact same amount of time.  Memory usage during encode (with no other programs running) shown here:
    Is there a way I can speed up AME rendering?  (An upgrade to CS6 is forthcoming.  But in the meantime . . . )

    Adobe Media Encoder CS4 is a 32-bit application and is thus limited in the amount of RAM that it can use. Installing that additional RAM does no good for Adobe Media Encoder CS4.
    Since you have AME CS6 coming, you'll be happy to know that the CS6 Adobe video applications are 64-bit applications and can make good use of all of your RAM. Plus, there are a lot of other performance improvements.

Maybe you are looking for