weblogic.ejb20.cache.CacheFullException - Weblogic

This is a discussion on weblogic.ejb20.cache.CacheFullException - Weblogic ; Hi, i am creating 3000 entity beans in a single transaction, and the following error happened: EJB Exception:; nested exception is: weblogic.ejb20.cache.CacheFullException I guess that the above error occurs because the max-beans-in-free-pool is by default in 1000 in weblogic 8.1. ...

+ Reply to Thread
Results 1 to 8 of 8

Thread: weblogic.ejb20.cache.CacheFullException

  1. weblogic.ejb20.cache.CacheFullException


    Hi, i am creating 3000 entity beans in a single transaction, and the following
    error happened:

    EJB Exception:; nested exception is: weblogic.ejb20.cache.CacheFullException

    I guess that the above error occurs because the max-beans-in-free-pool is by default
    in 1000 in weblogic 8.1. That attribute in property editor window only is shown
    when the beans are stateless session or message driven beans. How do i set a different
    value to max-beans-in-free-pool attibute for entity beans?


  2. Re: weblogic.ejb20.cache.CacheFullException


    Edit the weblogic-ejb-jar.xml;

    Set the to the required value, in your case 3,000.


    ReportRequest


    10000
    ReadOnly



    WebLogic_CMP_RDBMS
    6.0
    META-INF/weblogic-cmp-rdbms-jar.xml




    86400

    ReportRequest



    "Andres Gonzalez" wrote:
    >
    >Hi, i am creating 3000 entity beans in a single transaction, and the
    >following
    >error happened:
    >
    >EJB Exception:; nested exception is: weblogic.ejb20.cache.CacheFullException
    >
    >I guess that the above error occurs because the max-beans-in-free-pool
    >is by default
    >in 1000 in weblogic 8.1. That attribute in property editor window only
    >is shown
    >when the beans are stateless session or message driven beans. How do
    >i set a different
    >value to max-beans-in-free-pool attibute for entity beans?
    >



  3. Re: weblogic.ejb20.cache.CacheFullException


    Maybe, I didnt explain the problem well. If i set the attribute
    to 3000 it dosnt work because the pool´s size is still in 1000. Then, in the process
    of create the beans, when the first 1000 beans are created there is no problem,
    but when the container tries to create the bean 1001 it cannot passivate any bean
    because the size of the pool is in 1000, the transaction is the same and it cannot
    commit the beans created to the database until the transaction finish. I tried
    to modify the weblogic-ejb-jar.xml by this way:


    Destinatario


    5000


    5000



    WebLogic_CMP_RDBMS
    6.0
    META-INF/weblogic-cmp-rdbms-jar.xml



    ejb.DestinatarioHome


    but it dosnt seems to work because the application still throws the CacheFullException
    when the container tries to create the bean number 1001.

    "Roger Lee" wrote:
    >
    >Edit the weblogic-ejb-jar.xml;
    >
    >Set the to the required value, in your case 3,000.
    >
    >
    > ReportRequest
    >
    >
    > 10000
    > ReadOnly
    >

    >
    >
    > WebLogic_CMP_RDBMS
    > 6.0
    > META-INF/weblogic-cmp-rdbms-jar.xml
    >

    >

    >

    >
    > 86400
    >

    > ReportRequest
    >

    >
    >
    >"Andres Gonzalez" wrote:
    >>
    >>Hi, i am creating 3000 entity beans in a single transaction, and the
    >>following
    >>error happened:
    >>
    >>EJB Exception:; nested exception is: weblogic.ejb20.cache.CacheFullException
    >>
    >>I guess that the above error occurs because the max-beans-in-free-pool
    >>is by default
    >>in 1000 in weblogic 8.1. That attribute in property editor window only
    >>is shown
    >>when the beans are stateless session or message driven beans. How do
    >>i set a different
    >>value to max-beans-in-free-pool attibute for entity beans?
    >>

    >



  4. Re: weblogic.ejb20.cache.CacheFullException


    That sounds a little strange. If the cache size is set to 5000, then the cache
    should hold simultaneously hold 5000 beans that are active in any open transactions.
    When the transaction that requires 3000 beans is running, is it the only active
    transaction ? It sounds like the cache could be populated with beans that are
    active in other transactions besides the transaction that requires 3000 beans.

    -thorick

    "Andres Gonzalez" wrote:
    >
    >Maybe, I didnt explain the problem well. If i set the
    >attribute
    >to 3000 it dosnt work because the pool´s size is still in 1000. Then,
    >in the process
    >of create the beans, when the first 1000 beans are created there is no
    >problem,
    >but when the container tries to create the bean 1001 it cannot passivate
    >any bean
    >because the size of the pool is in 1000, the transaction is the same
    >and it cannot
    >commit the beans created to the database until the transaction finish.
    >I tried
    >to modify the weblogic-ejb-jar.xml by this way:
    >
    >
    > Destinatario
    >
    >
    > 5000
    >

    >
    > 5000
    >

    >
    >
    > WebLogic_CMP_RDBMS
    > 6.0
    > META-INF/weblogic-cmp-rdbms-jar.xml
    >

    >

    >

    > ejb.DestinatarioHome
    >

    >
    >but it dosnt seems to work because the application still throws the CacheFullException
    >when the container tries to create the bean number 1001.
    >
    >"Roger Lee" wrote:
    >>
    >>Edit the weblogic-ejb-jar.xml;
    >>
    >>Set the to the required value, in your case 3,000.
    >>
    >>
    >> ReportRequest
    >>
    >>
    >> 10000
    >> ReadOnly
    >>

    >>
    >>
    >> WebLogic_CMP_RDBMS
    >> 6.0
    >> META-INF/weblogic-cmp-rdbms-jar.xml
    >>

    >>

    >>

    >>
    >> 86400
    >>

    >> ReportRequest
    >>

    >>
    >>
    >>"Andres Gonzalez" wrote:
    >>>
    >>>Hi, i am creating 3000 entity beans in a single transaction, and the
    >>>following
    >>>error happened:
    >>>
    >>>EJB Exception:; nested exception is: weblogic.ejb20.cache.CacheFullException
    >>>
    >>>I guess that the above error occurs because the max-beans-in-free-pool
    >>>is by default
    >>>in 1000 in weblogic 8.1. That attribute in property editor window only
    >>>is shown
    >>>when the beans are stateless session or message driven beans. How do
    >>>i set a different
    >>>value to max-beans-in-free-pool attibute for entity beans?
    >>>

    >>

    >



  5. Re: weblogic.ejb20.cache.CacheFullException


    Andres,
    I'm having the same problem. The max-beans-in-cache is set to 3000. 2 users simulataneously
    tried to query around 2000 records. Each one got only 1500 and got a cachefull
    exception. So looks like the cache is shared across transactions! If that's the
    case, how the hell we can retrieve more records simultaneously? Did you figure
    out ?

    Thanks
    Swamy

    "Andres Gonzalez" wrote:
    >
    >Hi, i am creating 3000 entity beans in a single transaction, and the
    >following
    >error happened:
    >
    >EJB Exception:; nested exception is: weblogic.ejb20.cache.CacheFullException
    >
    >I guess that the above error occurs because the max-beans-in-free-pool
    >is by default
    >in 1000 in weblogic 8.1. That attribute in property editor window only
    >is shown
    >when the beans are stateless session or message driven beans. How do
    >i set a different
    >value to max-beans-in-free-pool attibute for entity beans?
    >



  6. Re: weblogic.ejb20.cache.CacheFullException


    Hi

    Your cache must have a max size large enough to handle your
    peak simultaneous transaction load.

    -thorick



  7. Re: weblogic.ejb20.cache.CacheFullException


    Thorick,
    We have simultaneously around 2000 users logging on and +bly executing the same
    query which fetches around 2000 records. From what you are saying, I should set
    the max-beans-in-cache to 2000 x 2000 = 4,000,000. When noticed the memory usage,
    each bean instance approximately takes upto 4K. So in this case, the memory usage
    would be 16,000,000K. We are talking about 16G memory for maintaining the cache
    ?? And number of users in future will rise to more than 5000. Is it better to
    just use the JDBC /SQL for the queries of this nature??

    Thanks
    Swamy

    "thorick" wrote:
    >
    >Hi
    >
    >Your cache must have a max size large enough to handle your
    >peak simultaneous transaction load.
    >
    >-thorick
    >
    >



  8. Re: weblogic.ejb20.cache.CacheFullException


    If you truly have that many ejbs simultaneously enrolled in transactions, then
    yes, the cache must be big enough to hold all the instances. Does every user
    actually have to have 2000 beans in the cache ? Are many of these values read
    only reference values that are not updated ?

    -thorick



+ Reply to Thread