Clustering read-only bean-managed entity ejbs

          I'm designing a data caching approach that relies on using read-only entity ejbs with bean-managed persistence. My design is based on the fact that WebLogic blocks on entity bean access by concurrent users for a given bean instance (unique primary key). I would like to keep only one entity bean instance active(timeoutSetting=0) for eacy primary key for all users to share. That way I only have to hit the database one time to initially populate data in the entity bean. I'm worried about this approach in a WebLogic clustered environment. From reading notes in this newsgroup and other doc, it appears that WebLogic might not use one instance of the entity bean (based upon unique primary key) in a clustered environment. Is that true (that being multiple users could get their own instance of the entity bean with the same primary key)?
          Thanks,
          Bryan
          

Typically, the read-write EJBs are on each WL server instance, so there is
          no remote invocation -- it is all done by reference.
          Cameron Purdy
          Tangosol, Inc.
          http://www.tangosol.com
          +1.617.623.5782
          WebLogic Consulting Available
          "Bryan Dixon" <[email protected]> wrote in message
          news:[email protected]...
          >
          > I guess I'm confused about read-write (not read-only) entity beans being
          pinned or not. This is from WebLogic 5.1 EJB doc:
          > "read-write entity EJBs do not use a clustered EJBObject stub; a client's
          method calls to a particular EJB always go to a single WebLogic Server
          instance. If the server that a client is using fails, the client must
          re-find the entity EJB using the cluster-aware home stub."
          >
          > Doesn't that mean the entity bean instance for a primary key is pinned to
          a single WebLogic Server instance? Maybe I'm just misunderstanding
          terminology about what a "particular EJB" is - I was thinking it is an
          entity bean instance for a unique primary key.
          >
          > Thanks,
          > Bryan
          >
          >
          > "Cameron Purdy" <[email protected]> wrote:
          > >>I was thinking that read-write entity beans were pinned.
          > >
          > >Not unless you pin them. Basically, that means that the JAR/XML that
          > >contains/specifies the EJB only is on one server.
          > >
          > >> So if two separate weblogic instances in a cluster did a find on an
          entity
          > >ejb with the same primary key and then performed some business method on
          > >that entity ejb, would there really be two separate bean instances in
          each
          > >weblogic instance for the same primary key?
          > >
          > >If it is not pinned, yes.
          > >
          > >--
          > >Cameron Purdy
          > >Tangosol, Inc.
          > >http://www.tangosol.com
          > >+1.617.623.5782
          > >WebLogic Consulting Available
          > >
          > >
          > >"Bryan Dixon" <[email protected]> wrote in message
          > >news:[email protected]...
          > >>
          > >> Toa, thanks again.
          > >>
          > >> There are a couple of things I'm not clear about though. One is that I
          > >want one instance of an entity bean per primary key, not a singleton of
          the
          > >entity bean itself. How would JNDI in a clustered environment help me
          > >there?
          > >>
          > >> The other question I have is about having multiple instances of an
          entity
          > >bean for the same primary key in the cluster. I was thinking that
          > >read-write entity beans were pinned. So if two separate weblogic
          instances
          > >in a cluster did a find on an entity ejb with the same primary key and
          then
          > >performed some business method on that entity ejb, would there really be
          two
          > >separate bean instances in each weblogic instance for the same primary
          key?
          > >>
          > >> Thanks again,
          > >> Bryan
          > >>
          > >> "Tao Zhang" <[email protected]> wrote:
          > >> >
          > >> >"Bryan Dixon" <[email protected]> wrote:
          > >> >>
          > >> >>The reason I was wanting one instance per primary key is that I want
          to
          > >use this entity bean to cache some data from database tables. This data
          > >doesn't change frequently, so we were wanting to get it from this entity
          > >bean's memory instead of constantly hitting the database. This data is
          > >global to all users, so we don't want to store it in stateful session
          beans.
          > >> >>
          > >> >>After reading more about the read-only cache-strategy it doesn't
          appear
          > >that any sycnhronization will occur if the entity bean for a given
          primary
          > >key is updated (state data is updated) in one weblogic instance, that
          change
          > >will not get synced up with other weblogic instances for that same
          primary
          > >key. Is that correct?
          > >> >>
          > >> >It's correct. If you do want to have exact one copy in the cluster.
          You
          > >can read Using JNDI in cluster environment.
          > >> >
          > >> >>If I deploy this entity bean with read-write cache-strategy the
          WebLogic
          > >doc reads as if I will get one instance per primary key that is pinned to
          > >one WebLogic instance and I won't get any fail-over or load-balancing on
          the
          > >ejbObject (the entity bean instance). Did I read this correctly? If
          that
          > >is the case, what is the advantage of setting up read-write entity beans
          to
          > >be clusterable - just the Home objects? I definitely could be
          > >misunderstanding something in the doc since I'm very new to clustering.
          > >> "Tao
          > >> >Zhang"
          > >> ><[email protected]> wrote:
          > >> >>>
          > >> >
          > >> >It's not only instance in the cluster. Probably many instances.
          > >> >
          > >> >If you use 2 tier clustering, failover will not happen because of
          > >co-location. But if you use 3 tier cluster, you can write the special
          code
          > >in the client side to do failover and load-balance.
          > >> >
          > >> >In a 2 tier cluster, actually the ejb load balancing and failover is
          > >almost useless.
          > >> >
          > >> >But in 3 tier, you can use it.
          > >> >
          > >> >Hope this help.
          > >> >
          > >> >
          > >> >
          > >> >>>"Bryan Dixon" <[email protected]> wrote:
          > >> >>>>
          > >> >>>>Thanks Tao.
          > >> >>>>
          > >> >>>>A couple more questions...
          > >> >>>>I was planning deploying this entity bean with the read-only
          > >cache-strategy which means our transaction attribute would be
          > >TXN_NOT_SUPPORTED. Also, our db isolation is TRANSACTION_READ_COMMITTED.
          > >> >>>>
          > >> >>>>Based upon how I was planning on deploying this entity bean, would
          > >WebLogic create an instance of the bean for each primary key in each
          > >cluster? I'm just trying to figure out how many duplicate bean instances
          > >for the primary key I could have across all clusters. I was really just
          > >wanting one instance that is shared among all clients and was hoping that
          > >the clustering would provide me with fail-over if that one cluster went
          > >down.
          > >> >>>>
          > >> >>>If you use 3 tier cluster structure, it's impossible to know how
          many
          > >instances of ejb with the same primary key. Probably one instance for
          each
          > >wls instance.
          > >> >>>In wls5.1, it's impossible to host only read only entity bean
          instance
          > >in the 3-tier cluster. Because read only entity bean are clusterable in
          both
          > >home and remote interface.
          > >> >>>
          > >> >>>>Regarding making the bean a pinned service, which it sounds like I
          > >might have to do to get the results I want, how do I do that? Is that a
          > >deployment descriptor setting? Also, if I make it a pinned service, do I
          > >get any fail-over suport by clustering the bean?
          > >> >>>>
          > >> >>>For the pinned service, you can just deployed on one or several
          server
          > >instances. The per-server properties file is a good place to put the
          > >weblogic.ejb.deploy property. If only one pinned service in the cluster,
          you
          > >can't get fail over. If the that server instance fails, the home stub
          will
          > >be removed from the jndi in other server instances.
          > >> >>>
          > >> >>>Why do you must need only one instance in the cluster? Do you want
          > >exact-only-copy? You can read Using JNDI doc about its in cluster
          > >environment.
          > >> >>>
          > >> >>>
          > >> >>>
          > >> >>>
          > >> >>>>Thanks again,
          > >> >>>>Bryan
          > >> >>>>
          > >> >>>>
          > >> >>>>
          > >> >>>>"Tao Zhang" <[email protected]> wrote:
          > >> >>>>>
          > >> >>>>>
          > >> >>>>>Bryan Dixon <[email protected]> wrote in message
          > >> >>>>>news:[email protected]...
          > >> >>>>>>
          > >> >>>>>> I'm designing a data caching approach that relies on using
          > >read-only
          > >> >>>>>entity ejbs with bean-managed persistence. My design is based on
          the
          > >fact
          > >> >>>>>that WebLogic blocks on entity bean access by concurrent users for
          a
          > >given
          > >> >>>>>bean instance (unique primary key). I would like to keep only one
          > >entity
          > >> >>>>>bean instance active(timeoutSetting=0) for eacy primary key for
          all
          > >users to
          > >> >>>>>share. That way I only have to hit the database one time to
          > >initially
          > >> >>>>>populate data in the entity bean. I'm worried about this approach
          in
          > >a
          > >> >>>>>WebLogic clustered environment. From reading notes in this
          newsgroup
          > >and
          > >> >>>>>other doc, it appears that WebLogic might not use one instance of
          the
          > >entity
          > >> >>>>>bean (based upon unique primary key) in a clustered environment.
          Is
          > >that
          > >> >>>>>true (that being multiple users could get their own instance of
          the
          > >entity
          > >> >>>>>bean with the same primary key)?
          > >> >>>>>>
          > >> >>>>>
          > >> >>>>>
          > >> >>>>>It's true. In a cluster environment, each wls instance can have
          their
          > >ejb
          > >> >>>>>instance. The block of concurrent access to the ejb data is up to
          > >your
          > >> >>>>>transaction attribute and isolation level and your database.
          > >> >>>>>
          > >> >>>>>If you only want to keep one instance active, you can make the
          > >read-only
          > >> >>>>>entity bean a pinned service, to be deployed in one instance. But
          the
          > >> >>>>>network overhead is worse.
          > >> >>>>>
          > >> >>>>>
          > >> >>>>>> Thanks,
          > >> >>>>>> Bryan
          > >> >>>>>
          > >> >>>>>
          > >> >>>>
          > >> >>>
          > >> >>
          > >> >
          > >>
          > >
          > >
          >
          

Similar Messages

  • Bean Managed Entity Beans(EJB) using Tangosol.

    I am trying to use Bean Managed Entity Beans using Tangosol Coherence.
    The entity bean is currently configured in the weblogic-ejb-jar.xml with:
    <max-beans-in-cache>200</max-beans-in-cache>
    In the public void ejbLoad() method, I am calling the Tangosol Cache to load the entity bean.
    If we have have more that 200 request coming at the same time, we get an OutOfMemoryError exception.
    Is there anyway to overcome this limitation by somehow having the ejb cache to use the tangosol cache?
    Thanks for any help in advance.
    Krishan

    So far, it's not immediately obvious to us what the exact problem is that you are seeing. It sounds like the VM would be using at least 200MB just for the application server's own internal cache, for example, and that you are also using Coherence within the application server to provide additional caching.
    If possible, we should set up a phone call with you and your team, and we could get an engineer from our end to walk through your specific use case with you, so that we could understand what the exact technical challenge(s) is(are) in this particular application.
    Peace.
    p.s. You can email [email protected] directly to schedule a call.

  • Does WLS 6.1 sp2 allow (bean managed) entity beans to have transaction mode NOTSUPPORTED?

    Hi,
    I have created two bean managed entity beans, User and Role, abstracting users
    and groups in a ldap base. A User may have more than one Role. This is represented
    by a (bean managed) 1:many relationship directed from User to Role. For some weird
    reasons I get a transaction rollback when reading data, when transactions are
    turned on (REQUIRED).
    While we where running WLS 6.1 sp1 we had no problems with this as we could set
    transaction to NOTSUPPORTED for these two EJBs. Due to other hickups we had to
    upgrade to sp2 and suddenly the error reappears leading me to believe that NOTSUPPORTED
    isn't allowed anymore by the WLS. I know that NOTSUPPORTED isn't required by the
    EJB spec, but containers may support it and obviously WLS used to do just that.
    I have not seen any change in the release notes of sp2 that indicates that this
    behaviour has changed.
    Does anybody know if WLS really doesn't support NOTSUPPORTED for enity beans anymore
    in sp2?
    If anybody are curiuos or have any good ideas, the stacktrace I get is:
    javax.ejb.TransactionRolledbackLocalException: EJB Exception:
    - with nested exception:
    [javax.ejb.EJBException
    - with nested exception:
    [weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
    sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
    [java.util.ConcurrentModificationException]]]
    Start server side stack trace:
    java.rmi.RemoteException: EJB Exception: ; nested exception is:
         javax.ejb.TransactionRolledbackLocalException: EJB Exception:
    - with nested exception:
    [javax.ejb.EJBException
    - with nested exception:
    [weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
    sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
    [java.util.ConcurrentModificationException]]]
    java.util.ConcurrentModificationException
         at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:535)
         at java.util.LinkedList$ListItr.next(LinkedList.java:476)
         at weblogic.ejb20.manager.DBManager.beforeCompletion(DBManager.java:370)
         at weblogic.ejb20.internal.TxManager$TxListener.beforeCompletion(TxManager.java:481)
         at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:551)
         at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:88)
         at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:980)
         at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:1504)
         at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:216)
         at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
         at weblogic.ejb20.internal.BaseEJBLocalObject.postInvoke(BaseEJBLocalObject.java:207)
         at com.takecargo.domainentities.role.RoleBean_1ipw6_ELOImpl.getName(RoleBean_1ipw6_ELOImpl.java:86)
         at com.takecargo.domainentities.role.RoleConverter.getVOforRoleLocal(RoleConverter.java:51)
    Any kind of help would be appreciated:)
    Regards,
    Brynjar Glesnes

    WLS support NotSupported on Entity Beans.
    It looks like you've hit a bug in the EJB container where an internal Collection class has been modified while the
    container is running through an iterator on it.
    You should open a case with [email protected]
    -- Rob
    Brynjar Glesnes wrote:
    Hi,
    I have created two bean managed entity beans, User and Role, abstracting users
    and groups in a ldap base. A User may have more than one Role. This is represented
    by a (bean managed) 1:many relationship directed from User to Role. For some weird
    reasons I get a transaction rollback when reading data, when transactions are
    turned on (REQUIRED).
    While we where running WLS 6.1 sp1 we had no problems with this as we could set
    transaction to NOTSUPPORTED for these two EJBs. Due to other hickups we had to
    upgrade to sp2 and suddenly the error reappears leading me to believe that NOTSUPPORTED
    isn't allowed anymore by the WLS. I know that NOTSUPPORTED isn't required by the
    EJB spec, but containers may support it and obviously WLS used to do just that.
    I have not seen any change in the release notes of sp2 that indicates that this
    behaviour has changed.
    Does anybody know if WLS really doesn't support NOTSUPPORTED for enity beans anymore
    in sp2?
    If anybody are curiuos or have any good ideas, the stacktrace I get is:
    javax.ejb.TransactionRolledbackLocalException: EJB Exception:
    - with nested exception:
    [javax.ejb.EJBException
    - with nested exception:
    [weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
    sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
    [java.util.ConcurrentModificationException]]]
    Start server side stack trace:
    java.rmi.RemoteException: EJB Exception: ; nested exception is:
    javax.ejb.TransactionRolledbackLocalException: EJB Exception:
    - with nested exception:
    [javax.ejb.EJBException
    - with nested exception:
    [weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
    sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
    [java.util.ConcurrentModificationException]]]
    java.util.ConcurrentModificationException
    at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:535)
    at java.util.LinkedList$ListItr.next(LinkedList.java:476)
    at weblogic.ejb20.manager.DBManager.beforeCompletion(DBManager.java:370)
    at weblogic.ejb20.internal.TxManager$TxListener.beforeCompletion(TxManager.java:481)
    at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:551)
    at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:88)
    at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:980)
    at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:1504)
    at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:216)
    at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
    at weblogic.ejb20.internal.BaseEJBLocalObject.postInvoke(BaseEJBLocalObject.java:207)
    at com.takecargo.domainentities.role.RoleBean_1ipw6_ELOImpl.getName(RoleBean_1ipw6_ELOImpl.java:86)
    at com.takecargo.domainentities.role.RoleConverter.getVOforRoleLocal(RoleConverter.java:51)
    Any kind of help would be appreciated:)
    Regards,
    Brynjar Glesnes

  • Create and remove on read-only beans

    while playing around with read-only beans i found that calling create()
    ond read-only homes and remove on read only entities does work, which
    was new to me. 'work' just means changing the database ;)
    ist there any danger in using this (maybe just an internal feature which
    does not work in 7.0, ...) ?
    axel.

    You should definitely check out 7.0 and its support for optimistic caching. It
    does what you want.
    -- Rob
    Axel Großmann wrote:
    thanks for the quick response.
    Rob Woollen wrote:
    ist there any danger in using this (maybe just an internal feature which
    does not work in 7.0, ...) ?
    No, it'll work fine. Until 7.0, read-only beans always ran in an
    unspecified transaction. In 7.0, this has been relaxed to allow you to use
    all the tx attributes with read-only beans.sounds great; seems that we should give 7.0 beta a try.
    what comes to my mind is: if read-only beans would also write changes to
    their CMP fields to the database (and send invalidation message) we
    would have some kind of write-through-caching bean, wouldnt we ?
    this is actually what I'm searching for, since we have to port an
    application to weblogic with was designed using one bean per business
    object - mapping this to the two-bean read-mostly pattern without
    changing the present logic seems impossible without many changes and
    loosing the ability to run on other application servers too.
    so why not a 'read-mostly-bean' instead of manually implementing it ?
    axel.--
    AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
    by Michael Girdley, Rob Woollen, and Sandra Emerson
    http://learnWebLogic.com
    [att1.html]

  • Standby Database - from READ-ONLY to Managed Recovery

    We have a standby database set up for our production environment.
    We are able to switch logfile on production and perform the managed recovery and then switch over to READ-ONLY mode. However, when the database is in READ-ONLY mode...I cannot close it if there are active connections.
    There are 2 ways I can attempt to close the database...either by "shutdown immediate" or by issuing an "alter system kill session (##,##);"
    If I issue the "shutdown immediate", then the RFS process does not transmit any more files...saying the connection to host is not there. Therefore this is not a valid solution.
    I can use an alter system kill...to kill all active connections...but it would require to know what other connections are there.
    Does anybody know how to best do this...to close the database by forcing all connections to end (except your current one) so you can "alter database close" and switch over to managed recovery?
    Please HELP!
    Thanks.
    -Nicolas

    u just shutdown the server and restart in standby mode. it will apply all pending archive autometically.

  • Are Bean Managed Persistance EJBs a better choice for an application with a lot of Oracle 9i JDBC activity?

     

    You don't really give enough information to answer the question. Probably the most important questions are the coarseness of the database activity, the need for remoteability, and the need for a component and security model.
    The short, rule of thumb, answer is that Entity Beans (regardless of BMP vs. CMP) almost always have a significant performance penalty. You should choose Entity Beans because you need/want the features of Entity Beans, not because of performance.
    David

  • Re: Read Only Entity Bean

    I am trying to convert an entity bean into a read only bean .
    I am not sure how it works ? I read the documentation and it said that I had to
    set
    the following parameters
    cache-strategy>Read-Write</cache-strategy>
    read-timeout-seconds>100</read-timeout-seconds>
    If I set the time out time to 100 seconds will the container call the ejbLoad
    method
    to reload the bean after every 100 seconds or only when the a request is made
    on the
    bean
    Thanks a lot in advance for your answers.

    Kevin,
    "Kevin" <[email protected]> wrote in message
    news:3ec25923$[email protected]..
    I am trying to convert an entity bean into a read only bean .
    I am not sure how it works ? I read the documentation and it said that Ihad to
    set
    the following parameters
    cache-strategy>Read-Write</cache-strategy>
    read-timeout-seconds>100</read-timeout-seconds>
    If I set the time out time to 100 seconds will the container call theejbLoad
    method
    to reload the bean after every 100 seconds or only when the a request ismade
    on the
    bean
    Thanks a lot in advance for your answers.read-timeout-seconds make sense only for Read-Only
    cache strategy and defines cache element expiration time.
    For Read-Write strategy data will be loaded from the database
    in with every new transaction (if db-is-shared set to true).
    Hope this helps.
    Regards,
    Slava Imeshev

  • Read Only Entity Bean will not cache

    I'm using the Sun Java Application Server version 8.2. I've created a read only entity bean with a 900 second refresh. This bean has a findAll() method that I've created. The table it is reading from has only 22 rows of data that doesn't change (well, maybe 2 or 3 times a year).
    As stated I've set the read-only property to true and the refresh to 900 seconds. I've also set the caching settings, which I guess i don't really need to mess with from the defaults.
    I do not seem to be achieving any caching at all. My check for this is very simple. I simply load a drop down in the client application with these 22 values. After the intial load I add another row in the database. The newley added row always shows up in the drop down in real time. If i'm caching correctly I shouldn't see this value until the refresh time of 900 seconds. Is there something I am missing? I'm using NetBeans 5.0 to set the values of the entity beans and such.
    Thanks for the help!
    ryan

    Hi Ryan,
    The 8.2 read-only bean implementation still executes non-findByPrimaryKey queries within the database.
    If your application calls findByPrimaryKey or accesses a business method on one of the
    read-only beans returned from a query, that will not result in a database access (unless a refresh
    period boundary is crossed).
    We have added the additional optimization of caching specific result sets of non-findByPrimaryKey
    read-only bean finders in the latest development version of Glassfish (V2).
    https://glassfish.dev.java.net/public/downloadsindex.html#Official_supported_builds
    It will also be available in our Application Server release 9.1. There are no plans to backport this
    optimization to the 8.2 codebase.
    --ken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Results: read-only vs read/write ejb

    Here is some preliminary test results of read-only beans vs read/write
    beans.
    qualifier: I do not know how busy the Oracle server was as I do not
    have access to the machine. This means the results may not be meaningful.
    I am posting them anyway (and the code) to hopefully spark some other
    posts with more meaningful (and much higher) numbers.
    Results:
    read/write: 17/s
    read-only: 55/s
    Oracle server: Ultra-Sparc/10
    WLS: 935MHz Linux box
    client: 1.6GHz Linux box.
    JDK: 1.3.1_02.
    Obviously these results are slow and I assume something is wrong
    with the Oracle box - but it has been consistently slow over
    several weeks. So please don't post about the configuration - I admit
    there is likely something wrong with it. Please do post with your own
    performance experiences.
    while (true) {
    String id = reader.readLine();
    if (id == null)
    break; // finished
    MyAccount myAccount = home.findByPrimaryKey(new Long(id));
    Cheers.

    Which version of WLS are you using?
    Arunabh
    username wrote:
    username wrote:
    After giving hotspot some time to warm up on the client and server I
    was able to get 204 tps using the read-only ejb.
    However, the read-only ejb was able to modify attributes (ejbStore()) was
    getting called. This is obviously a bug as read-only ejbs do not call
    ejbStore() as stated in the manual.
    Also, after giving hotspot time to warm up, the readWrite EJB was the
    same speed as the readOnly ejb with the simple findByPrimaryKey().
    Has anyone else found readOnly ejbs are the same speed as readWrite?
    Thanks.

  • NON-transactional session bean access entity bean

    We are currently profiling our product using Borland OptmizeIt tool, and we
    found some interesting issues. Due to our design, we have many session beans which
    are non transactional, and these session beans will access entity beans to do
    the reading operations, such as getWeight, getRate, since it's read only, there
    is no need to do transaction commit stuff which really takes time, this could
    be seen through the profile. I know weblogic support readonly entity bean, but
    it seems that it only has benefit on ejbLoad call, my test program shows that
    weblogic still creates local transaction even I specified it as transaction not
    supported, and Transaction.commit() will always be called in postInvoke(), from
    the profile, we got that for a single method call, such as getRate(), 80% time
    spent on postInvoke(), any suggestion on this? BTW, most of our entity beans are
    using Exclusive lock, that's the reason that we use non-transactional session
    bean to avoid dead lock problem.
    Thanks

    Slava,
    Thanks for the link, actually I read it before, and following is what I extracted
    it from the doc:
    <weblogic-doc>
    Do not set db-is-shared to "false" if you set the entity bean's concurrency
    strategy to the "Database" option. If you do, WebLogic Server will ignore the
    db-is-shared setting.
    </weblogic-doc>
    Thanks
    "Slava Imeshev" <[email protected]> wrote:
    Hi Jinsong,
    You may want to read this to get more detailed explanation
    on db-is-shared (cache-between-transactions for 7.0):
    http://e-docs.bea.com/wls/docs61/ejb/EJB_environment.html#1127563
    Let me know if you have any questions.
    Regards,
    Slava Imeshev
    "Jinsong HU" <[email protected]> wrote in message
    news:[email protected]...
    Thanks.
    But it's still not clear to me in db-is-shared setting, if I specifiedentity
    lock as database lock, I assumed db-is-shared is useless, because foreach
    new
    transaction, entity bean will reload data anyway. Correct me if I amwrong.
    Jinsong
    "Slava Imeshev" <[email protected]> wrote:
    Jinsong,
    See my answers inline.
    "Jinsong Hu" <[email protected]> wrote in message
    news:[email protected]...
    Hi Slava,
    Thanks for your reply, actually, I agree with you, we need to
    review
    our db
    schema and seperate business logic to avoid db lock. I can not say,guys,
    we need
    to change this and that, since it's a big application and developedsince
    EJB1.0
    spec, I think they are afraid to do such a big change.Total rewrite is the worst thing that can happen to an app. The
    better aproach would be identifying the most critical piece and
    make a surgery on it.
    Following are questions in my mind:
    (1) I think there should be many companies using weblogic serverto
    develop
    large enterprise applications, I am just wondering what's the maintransaction/lock
    mechanism that is used? Transional session / database lock,
    db-is-shared
    entity
    I can't say for the whole community, as for my experience the standard
    usage patthern is session fasades calling Entity EJBs while having
    Required TX attribute plus plain transacted JDBC calls for bulk
    reads or inserts.
    is the dominant one? It seems that if you speficy database lock,
    the
    db-is-shared
    should be true, right?Basically it's not true. One will need db-is-shared only if thereare
    changes
    to the database done from outside of the app server.
    (2) For RO bean, if I specify read-idle-timeout to 0, it shouldonly
    load
    once at the first use time, right?I assume read-timeout-seconds was meant. That's right, but if
    an application constantly reads new RO data, RO beans will be
    constantly dropped from cache and new ones will be loaded.
    You may want to looks at server console to see if there's a lot
    of passivation for RO beans.
    (3) For clustering part, have anyone use it in real enterpriseapplication?
    My concern, since database lock is the only way to choose, how aboutthe
    affect
    of ejbLoad to performance, since most transactions are short live,if high
    volume
    transactions are in processing, I am just scared to death about
    the
    ejbLoad overhead.
    ejbLoad is a part of bean's lifecycle, how would you be scared ofit?
    If ejbLoads take too much time, it could be a good idea to profile
    used SQLs. Right index optimization can make huge difference.
    Also you may want cosider using CMP beans to let weblogic
    take care about load optimization.
    (4) If using Optimization lock, all the ejbStore need to do
    version
    check
    or timestamp check, right? How about this overhead?As for optimistic concurrency, it performs quite well as you can
    use lighter isolation levels.
    HTH,
    Slava Imeshev
    "Jinsong Hu" <[email protected]> wrote in message
    news:[email protected]...
    We are using Exclusive Lock for entity bean, because of we do
    not
    want
    to
    load
    data in each new transaction. If we use Database lock, that means
    we
    dedicate
    data access calls to database, if database deadlock happens,
    it's
    hard
    to
    detect,
    while using Exclusive lock, we could detect this dead lock in
    container
    level.
    The problem is, using Exclusive concurrency mode you serialize
    access to data represented by the bean. This aproach has negative
    effect on ablity of application to process concurrent requests.As
    a
    result the app may have performance problems under load.
    Actually, at the beginnning, we did use database lock and usingtransactional
    The fact that you had database deadlocking issues tells that
    application logic / database schema may need some review.
    Normally to avoid deadlocking it's good to group database
    operations mixing in updattes and inserts into one place so
    that db locking sequence is not spreaded in time. Moving to
    forced serialized data access just hides design/implementation
    problems.
    session bean, but the database dead lock and frequent ejbLoad
    really
    kill
    us,
    so we decided to move to use Exclusive lock and to avoid dead
    lock,
    we
    change
    some session bean to non-transactional.Making session beans non-transactions makes container
    creating short-living transactions for each call to entity bean
    methods. It's a costly process and it puts additional load to
    both container and database.
    We could use ReadOnly lock for some entity beans, but since weblogicserver will
    always create local transaction for entity bean, and we found
    transaction
    commit
    is expensive, I am arguing why do we need create container leveltransaction for
    read only bean.First, read-only beans still need to load data. Also, you may seeRO
    beans
    contanly loading data if db-is-shared set to true. Other reason
    can
    be
    that
    RO semantics is not applicable the data presented by RO bean (forinstance,
    you have a reporting engine that constantly produces "RO" data,
    while
    application-consumer of that data retrieves only new data and neverasks
    for "old" data). RO beans are good when there is a relatively stable
    data
    accessed repeatedly for read only access.
    You may want to tell us more about your app, we may be of help.
    Regards,
    Slava Imeshev
    I will post the performance data, let's see how costful
    transaction.commit
    is.
    "Cameron Purdy" <[email protected]> wrote:
    We are currently profiling our product using Borland
    OptmizeIt
    tool,
    and we
    found some interesting issues. Due to our design, we have
    many
    session
    beans which
    are non transactional, and these session beans will access
    entity
    beans
    to
    do
    the reading operations, such as getWeight, getRate, since
    it's
    read
    only,
    there
    is no need to do transaction commit stuff which really takes
    time,
    this
    could
    be seen through the profile. I know weblogic support readonly
    entity
    bean,
    but
    it seems that it only has benefit on ejbLoad call, my test
    program
    shows
    that
    weblogic still creates local transaction even I specified
    it
    as
    transaction not
    supported, and Transaction.commit() will always be called
    in
    postInvoke(),
    from
    the profile, we got that for a single method call, such as
    getRate(),
    80%
    time
    spent on postInvoke(), any suggestion on this? BTW, most of
    our
    entity
    beans are
    using Exclusive lock, that's the reason that we use
    non-transactional
    session
    bean to avoid dead lock problem.I am worried that you have made some decisions based on an improper
    understand of what WebLogic is doing.
    First, you say "non transactional", but from your description
    you
    should
    have those marked as tx REQUIRED to avoid multiple transactions
    (since
    non-transactional just means that the database operation becomesits
    own
    little transaction).
    Second, you say you are using exclusive lock, which you shouldonly
    use
    if
    you are absolutely sure that you need it, (and note that it
    does
    not
    work in
    a cluster).
    Peace,
    Cameron Purdy
    Tangosol, Inc.
    http://www.tangosol.com/coherence.jsp
    Tangosol Coherence: Clustered Replicated Cache for Weblogic
    "Jinsong Hu" <[email protected]> wrote in message
    news:[email protected]...
    >

  • 11gR2 Real Time Apply / open read only

    Hi,
    I have a single instance primary database with a physical standby. The release is 11.2.0.1.0.
    Max Availability mode
    LGWR SYNC transport
    Data Guard Broker configuration enabled
    Both the primary and standby database are registered with the Grid Infrastructure (Standalone installation on each server, no cluster)
    When I stop and start the standby database it seems to default to open read only using Managed Real Time Recovery.
    SQL> SELECT DEST_ID, RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS
    2> WHERE DEST_ID=2;
    DEST_ID RECOVERY_MODE
    2 MANAGED REAL TIME APPLY
    I do not want to Active Data Guard on this particular database. So I removed and added the database again using srvctl this time supplying the -s mount flag. Now when I stop/start the standby it opens in mount mode and MANAGED recovery which is OK.
    My question is why did the standby automatically get opened in read only. Is the a change in behaviour introduced along with Active Data Guard? Is the default behaviour for a database registered with Grid Infrastructure to simply start the database in open mode and becuase this is 11.2 standby this means open read only?
    Thanks

    Dear user234564,
    This has been introduced in Oracle Database 11g Data Guard New Features and it is called the Active Data Guard. With the new release you can open the physical standby database in read only mode and the real time apply will continue as it is on the mount stage. This ability has not been granted on 10g. So i think it could be the normal behaviour.
    11g physical standby database will be opened and the MRP process will still apply the archivelogs to the standby database. You can simply have it tested.
    Please refer;
    http://download.oracle.com/docs/cd/E11882_01/server.112/e10700/manage_ps.htm#CHDGJEFF
    Let me give you a quick hint but it is off topic;
    The number of standby databases that a primary database can support is increased from 9 to 30 in this release.
    The capability to create 30 standby databases, combined with the functionality of the Oracle Active Data Guard option, allows the creation of reader farms that can be used to offload large scale read-only workloads from a production database.Hope That Helps.
    Ogan

  • Primary Key for Read Only Entity Beans In EJB 3.0

    Hi,
    I have checked the spec for ejb 3.0 which mentions that, there is no common standard for the vendor to implement the Read only Entity Beans.
    My question over here is how it is implemented in OC4J??
    Do we need to specify a primary key attribute in the read-only entity bean?
    w.r.t BC4J(ADF) i remember, we used to create a read-only View Object with out specifying a primary key.
    Just want to check is that the way it works in EJB 3.0 (Implemented by OC4J).
    Thanks for your help in advance.
    Shiva

    Hi,
    Try using the JBoss embedded container:
    http://docs.codehaus.org/display/MAVENUSER/How+to+use+the+JBoss+Embedded+EJB3+Container+for+Unit+testing
    /klejs

  • Load balancing not happending but fail over is for Read only Entity beans

              The following are the configuration.
              Two NT servers with WL5.1 sp9 having only EJBs(Read only entity beans)
              One Client with WL5.1 sp9 having servlet/java application as
              EJB client.
              I am trying to make a call like findbyprimarykey in one of the
              entity bean. I could see the request is being directed only to the one of the
              server always. When I bring that server, fail over is happening to the other server.
              Here are the settings I have in the ejb-jar.xml :
                        <entity>
                             <ejb-name>device.StartHome</ejb-name>
                             <home>com.wl.api.device.StartHome</home>
                             <remote>com.wl.api.device.StartRemote</remote>
                             <ejb-class>com.wl.server.device.StartImpl</ejb-class>
                             <persistence-type>Bean</persistence-type>
                             <prim-key-class>java.lang.Long</prim-key-class>
                             <reentrant>False</reentrant>
                             <resource-ref>
                                  <res-ref-name>jdbc/wlPool</res-ref-name>
                                  <res-type>javax.sql.DataSource</res-type>
                                  <res-auth>Container</res-auth>
                             </resource-ref>
                        </entity>
              Here are the settings I have in the weblogic-ejb-jar.xml.
              <weblogic-enterprise-bean>
                        <ejb-name>device.StartHome</ejb-name>
                        <caching-descriptor>
                             <max-beans-in-cache>50</max-beans-in-cache>
                             <cache-strategy>Read-Only</cache-strategy>
                             <read-timeout-seconds>900</read-timeout-seconds>
                        </caching-descriptor>
                        <reference-descriptor>
                             <resource-description>
                                  <res-ref-name>jdbc/wlPool</res-ref-name>
                                  <jndi-name>weblogic.jdbc.pool.wlPool</jndi-name>
                             </resource-description>
                        </reference-descriptor>
                        <enable-call-by-reference>False</enable-call-by-reference>
                        <jndi-name>device.StartHome</jndi-name>
                   </weblogic-enterprise-bean>
              Am I doin any mistake in this?
              Any one's help is appreciated.
              Thanks
              Suresh
              

    we are using 5.1
              "Gene Chuang" <[email protected]> wrote in message
              news:[email protected]...
              > Colocation optimization occurs if your client resides in the same
              container (and also in the same
              > EAR for 6.0) as your ejbs.
              >
              > Gene
              >
              > "Suresh" <[email protected]> wrote in message
              news:[email protected]...
              > > Ok....the ejb-call-by-reference set to true is making the call to one
              server
              > > only. i am not sure why it is. I removed the property name and it
              works.
              > > Also I have one question, in our prduct environment, when i cache the
              ejb
              > > home it is not doing the load balancing. can any one help me for that.
              > > thanks
              > >
              > > Mike,
              > > From the sample pgm I sent, even from single client calls get load
              > > balanced.
              > >
              > > Suresh
              > >
              > >
              > > "Gene Chuang" <[email protected]> wrote in message
              > > news:[email protected]...
              > > > In WL, LoadBalancing will ONLY WORK if you reuse your EJBHome! Take
              your
              > > StartEndPointHome lookup
              > > > out of your for loop and see if this fixes your problem.
              > > >
              > > > I've seen this discussion in ejb-interest, and some other vendor
              (Borland,
              > > I believe it is), brings
              > > > up an interesting point: Clustering and LoadBalance is not in the
              J2EE
              > > specs, hence implementation
              > > > is totally up to the vendor. Weblogic loadbalances from the remote
              > > interfaces (EJBObject, EJBHome,
              > > > etc..), while Borland loadbalances from JNDI Context lookup.
              > > >
              > > > Let me suggest a third implmentation: loadbalance from BOTH Context
              > > lookup as well as stub method
              > > > invocation! Or create a smart replica-aware list manager which
              persists
              > > on the client thread
              > > > (ThreadLocal) and is aware of lookup/evocation history. Hence if I do
              the
              > > following in a client
              > > > hitting a 3 node cluster, I'll still get perfect round-robining
              regardless
              > > of what I do on the
              > > > client side:
              > > >
              > > > InitialContext ctxt = new InitialContext();
              > > > EJBHome myHome = ctxt.lookup(MY_BEAN);
              > > > myHome.findByPrimaryKey(pk); <== hits Node #1
              > > > myHome = ctxt.lookup(MY_BEAN);
              > > > myHome.findByPrimaryKey(pk); <== hits Node #2
              > > > myHome.findByPrimaryKey(pk); <== hits Node #3
              > > > myHome = ctxt.lookup(MY_BEAN);
              > > > myHome.findByPrimaryKey(pk); <== hits Node #1
              > > > ...
              > > >
              > > >
              > > > Gene
              > > >
              > > > "Suresh" <[email protected]> wrote in message
              > > news:[email protected]...
              > > > > Mike ,
              > > > >
              > > > > Do you have any reasons for the total number of machines to be 10.
              > > > >
              > > > > I tried with 7 machines.
              > > > >
              > > > >
              > > > > Here is my sample client java application running individual in the
              > > seven
              > > > > machines.
              > > > >
              > > > > StartEndPointHome =
              > > > > (StartEndPointHome)ctx.lookup("dev.StartEndPointHome");
              > > > > for(;;)
              > > > > {
              > > > > // logMsg(" --in loop "+currentTime);
              > > > > if (currentTime > nextRefereshTime)
              > > > > {
              > > > > logMsg("****- going to call");
              > > > > currentTime=getSystemTime();
              > > > > nextRefereshTime=currentTime+timeInterval;
              > > > > StartEndPointHome =
              > > > > (StartEndPointHome)ctx.lookup("dev.StartEndPointHome");
              > > > > long rndno=(long)(Math.random()*10)+range;
              > > > > logMsg(" going to call remotestub"+rndno);
              > > > > retVal =
              > > > >
              > >
              ((StartEndPointHome)getStartHome()).findByNumber("pe"+rndno+"_mportal_dsk36.
              > > > > mportal.com");
              > > > >
              > > > > logMsg("**++- called stub");
              > > > > }
              > > > >
              > > > >
              > > > >
              > > > > The range value is different for each of the machines in the
              cluster.
              > > > >
              > > > > If the first request starts at srv1, all request starts hitting the
              same
              > > > > server.
              > > > > If the first request starts at srv2, all request starts hitting the
              same
              > > > > server.
              > > > >
              > > > > I have the following for the url , user and pwd values for the
              context
              > > .
              > > > >
              > > > > public static String url="t3://10.11.12.14,10.11.12.117:8000";
              > > > > public static String user="guest";
              > > > > public static String password="guest";
              > > > >
              > > > >
              > > > >
              > > > > It would be great if you could help me.
              > > > >
              > > > > Thanks
              > > > > suresh
              > > > >
              > > > >
              > > > > "Mike Reiche" <[email protected]> wrote in message
              > > > > news:[email protected]...
              > > > > >
              > > > > > If you have only one client don't be surprised if you only hit one
              > > server.
              > > > > Try
              > > > > > running ten different clients and see if the hit the same server.
              > > > > >
              > > > > > Mike
              > > > > >
              > > > > >
              > > > > > "suresh" <[email protected]> wrote:
              > > > > > >
              > > > > > >The following are the configuration.
              > > > > > >
              > > > > > > Two NT servers with WL5.1 sp9 having only EJBs(Read only entity
              > > beans)
              > > > > > >
              > > > > > > One Client with WL5.1 sp9 having servlet/java application as
              > > > > > > EJB client.
              > > > > > >
              > > > > > >
              > > > > > >I am trying to make a call like findbyprimarykey in one of the
              > > > > > >entity bean. I could see the request is being directed only to
              the
              > > one
              > > > > > >of the
              > > > > > >server always. When I bring that server, fail over is happening
              to
              > > the
              > > > > > >other server.
              > > > > > >
              > > > > > >
              > > > > > >Here are the settings I have in the ejb-jar.xml :
              > > > > > > <entity>
              > > > > > > <ejb-name>device.StartHome</ejb-name>
              > > > > > > <home>com.wl.api.device.StartHome</home>
              > > > > > > <remote>com.wl.api.device.StartRemote</remote>
              > > > > > > <ejb-class>com.wl.server.device.StartImpl</ejb-class>
              > > > > > > <persistence-type>Bean</persistence-type>
              > > > > > > <prim-key-class>java.lang.Long</prim-key-class>
              > > > > > > <reentrant>False</reentrant>
              > > > > > > <resource-ref>
              > > > > > > <res-ref-name>jdbc/wlPool</res-ref-name>
              > > > > > > <res-type>javax.sql.DataSource</res-type>
              > > > > > > <res-auth>Container</res-auth>
              > > > > > > </resource-ref>
              > > > > > > </entity>
              > > > > > >
              > > > > > >
              > > > > > >Here are the settings I have in the weblogic-ejb-jar.xml.
              > > > > > >
              > > > > > ><weblogic-enterprise-bean>
              > > > > > > <ejb-name>device.StartHome</ejb-name>
              > > > > > >
              > > > > > > <caching-descriptor>
              > > > > > > <max-beans-in-cache>50</max-beans-in-cache>
              > > > > > > <cache-strategy>Read-Only</cache-strategy>
              > > > > > > <read-timeout-seconds>900</read-timeout-seconds>
              > > > > > > </caching-descriptor>
              > > > > > >
              > > > > > > <reference-descriptor>
              > > > > > > <resource-description>
              > > > > > > <res-ref-name>jdbc/wlPool</res-ref-name>
              > > > > > > <jndi-name>weblogic.jdbc.pool.wlPool</jndi-name>
              > > > > > > </resource-description>
              > > > > > > </reference-descriptor>
              > > > > > > <enable-call-by-reference>False</enable-call-by-reference>
              > > > > > > <jndi-name>device.StartHome</jndi-name>
              > > > > > > </weblogic-enterprise-bean>
              > > > > > >
              > > > > > >
              > > > > > >Am I doin any mistake in this?
              > > > > > >
              > > > > > >Any one's help is appreciated.
              > > > > > >Thanks
              > > > > > >Suresh
              > > > > >
              > > > >
              > > > >
              > > >
              > > >
              > >
              > >
              >
              >
              

  • Clustering read-write entity beans

              reading the WLS 6.1 documentation, it's unclear to me whether read-write entity
              bean
              method calls load-balancing and failover are supported. here's an excerpt from
              "Understanding Object Clustering":
              "When a home finds or creates a read-write entity bean, it obtains an instance
              on
              the local server and returns a stub pinned to that server. Load balancing and
              failover occur only at the home level."
              but here's what i find under "The WebLogic Server EJB Container":
              "read-write entity EJBs supports automatic failover on a safe exception,
              if home-is-clusterable is set to true. For example, failover is automatically
              supported if there is a failure after a method completes, or if the method
              fails to connect to a server."
              anyone know which is true?
              yan
              

    In WLS 6.1, there is fail-over for entity beans in a cluster. The stub contains a
              special load-balancing algorithm that returns to your original server until it
              fails. Then it will fail-over to a new server. If a server fails during a
              method-call, automatic fail-over only happens on a safe exception. Basically, when
              WLS determines that you have not actually connected to the failed server and have
              not done any work in the current transaction.
              -- Rob
              Yan wrote:
              > reading the WLS 6.1 documentation, it's unclear to me whether read-write entity
              > bean
              > method calls load-balancing and failover are supported. here's an excerpt from
              > "Understanding Object Clustering":
              >
              > "When a home finds or creates a read-write entity bean, it obtains an instance
              > on
              > the local server and returns a stub pinned to that server. Load balancing and
              > failover occur only at the home level."
              >
              > but here's what i find under "The WebLogic Server EJB Container":
              >
              > "read-write entity EJBs supports automatic failover on a safe exception,
              > if home-is-clusterable is set to true. For example, failover is automatically
              > supported if there is a failure after a method completes, or if the method
              >
              > fails to connect to a server."
              >
              > anyone know which is true?
              >
              > yan
              AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
              by Michael Girdley, Rob Woollen, and Sandra Emerson
              http://learnWebLogic.com
              [att1.html]
              

  • Problem with Read-Only Entity Bean

    Hi All,
    I have an Read-Only BMP that just read data from 20 tables and stores them in a Collection. In a 'Read-Only' Entity bean, the ejbLoad() is supposed to called periodically as defined by 'read-timeout-seconds' parameter in 'weblogic-ejb-jar.xml'. But this doesn't happen. Every time I invoke the EJB, ejbCreate() and ejbLoad() get called. Any suggestions will be highly appreciated.
    Here is the content of my 'weblogic-ejb-jar.xml' file.
    <?xml version="1.0"?>
    <!DOCTYPE weblogic-ejb-jar PUBLIC
    '-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN'
    'http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd'>
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>beanManaged</ejb-name>
         <entity-descriptor>
              <entity-cache>
                   <max-beans-in-cache>1</max-beans-in-cache>
                   <read-timeout-seconds>5</read-timeout-seconds>
                   <concurrency-strategy>ReadOnly</concurrency-strategy>
              </entity-cache>
         </entity-descriptor>
    <jndi-name>beanManaged</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    Thanks,
    Prem

    Yes, it calls ejbLoad() at intervals defined by read-timeout-seconds, but only when bean
    is requested by the client, and the cached copy is old. If bean just sits in the cache
    unused no ejbLoad()'s will be called.
    Prem Raghupathy <[email protected]> wrote:
    The weblogic document on 'Setting Entity EJBs to Read-Only' says "WebLogic Server
    never calls ejbStore() for a read-only entity EJB. ejbLoad() is called initially
    when the EJB is created; afterwards, WebLogic Server calls ejbLoad() only at intervals
    defined by the read-timeout-seconds deployment parameter.". Here is the link to
    the document
    http://edocs.bea.com/wls/docs61/ejb/EJB_environment.html#1074846
    Dimitri Rakitine <[email protected]> wrote:
    WebLogic doesn't reload Read-Only entity beans periodically. It loads
    bean instance only when client requests it, and instance is not in the
    cache, or cached instance is older than read-timeout-seconds.
    Prem Raghupathy <[email protected]> wrote:
    This is a multi-part message in MIME format.
    ---=_newsgroups3c21148f
    Content-Type: text/plain
    Content-Transfer-Encoding: 7bit
    Rajesh,
    Thanks for your reply. I&#8217;m using WL6.1 sp1. When I log the methodcalls,
    this is what I see on the server console.
    SetEntityContext()
    ejbCreate()
    ejbPostCreate()
    ejbLoad()
    As you see, the ejbLoad() doesn&#8217;t get called every 5 sec, eventhough I
    set the &#8216;read-timeout-seconds=5&#8217; in the weblogic-ejb-jar.xml,
    Do you have a working example for Read-Only BMP on WL6.1? The examplesdirectory
    in weblogic 6.1 doesn&#8217;t have one.
    Also find attached all the files. Any suggestions will be highly appreciated.
    Thanks,
    Prem.
    Rajesh Mirchandani <[email protected]> wrote:
    What version of the Server and Service pack are you using? Turn on
    JDBC
    logging and see if every ejbLoad() hits the DB.
    prem wrote:
    Hi All,
    I have an Read-Only BMP that just read data from 20 tables and storesthem in a Collection. In a 'Read-Only' Entity bean, the ejbLoad() is
    supposed to called periodically as defined by 'read-timeout-seconds'
    parameter in 'weblogic-ejb-jar.xml'. But this doesn't happen. Every
    time I invoke the EJB, ejbCreate() and ejbLoad() get called. Any suggestions
    will be highly appreciated.
    Here is the content of my 'weblogic-ejb-jar.xml' file.
    <?xml version="1.0"?>
    <!DOCTYPE weblogic-ejb-jar PUBLIC
    '-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN'
    'http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd'>
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>beanManaged</ejb-name>
    <entity-descriptor>
    <entity-cache>
    <max-beans-in-cache>1</max-beans-in-cache>
    <read-timeout-seconds>5</read-timeout-seconds>
    <concurrency-strategy>ReadOnly</concurrency-strategy>
    </entity-cache>
    </entity-descriptor>
    <jndi-name>beanManaged</jndi-name>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    Thanks,
    Prem--
    Rajesh Mirchandani
    Developer Relations Engineer
    BEA Support
    ---=_newsgroups3c21148f
    Content-Type: application/x-zip-compressed; name="C:\WebGain\bea\wlserver6.1\samples\examples\ejb20\basic\beanManaged\beanManaged.zip"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename="beanManaged.zip"
    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
    ---=_newsgroups3c21148f----
    Dimitri
    Dimitri

Maybe you are looking for