max-beans-in-free-pool of an MDB in a cluster - Weblogic

This is a discussion on max-beans-in-free-pool of an MDB in a cluster - Weblogic ; If I have ... - a cluster with 3 managed servers in it. - an application that contains a Message Driven Bean (MDB). - set max-beans-in-free-pool=1 for the MDB - deployed that application in the cluster (as opposed to a ...

+ Reply to Thread
Results 1 to 4 of 4

Thread: max-beans-in-free-pool of an MDB in a cluster

  1. max-beans-in-free-pool of an MDB in a cluster


    If I have ...
    - a cluster with 3 managed servers in it.
    - an application that contains a Message Driven Bean (MDB).
    - set max-beans-in-free-pool=1 for the MDB
    - deployed that application in the cluster (as opposed to a specific managed server)

    What is the max number of concurrent MDB instances I can have in my cluster?
    a. 1 - because this is what is defined in the MDB's descriptor
    b. 3 - 1 instance per managed server in the cluster
    c. Something else.

    I only want to have one concurrent instance at cluster level, but have failed
    to find any doco that answers this question for me.
    I am in design stage, and am thinking of failover/recovery so it is importan to
    me to know if the MDB app. can exist inside the cluster or not.

    Thanks in advance.

  2. Re: max-beans-in-free-pool of an MDB in a cluster


    "KSS" wrote in message
    news:4002a228@newsgroups.bea.com...



    >
    > I only want to have one concurrent instance at cluster level, but have

    failed
    > to find any doco that answers this question for me.


    That's interesting, why only one instance across the whole cluster, that
    seems to defeat the purpose of the cluster? Clients aren't going to be able
    to create these anyway,

    > I am in design stage, and am thinking of failover/recovery so it is

    importan to
    > me to know if the MDB app. can exist inside the cluster or not.
    >

    I would recommend two things before moving forward since you're making
    critical design choices. First how JMS works in a clustered environment:
    http://edocs.bea.com/wls/docs81/clus...g.html#1008605 toward
    the bottom. Second how clustered EJB works, see above and:
    http://edocs.bea.com/wls/docs81/cluster/index.html and how MDBs function in
    WLS: http://edocs.bea.com/wls/docs81/ejb/...s.html#1107234


    ~RU


    > Thanks in advance.




  3. Re: max-beans-in-free-pool of an MDB in a cluster


    Thanks for the pointers.

    I only want a single instance of the MDB because I have to retain message sequence.
    With more than one instance available in the cluster (and not knowing how the
    link between JMS and the MDB is triggered and managed inside WLS cluster) I run
    the risk of breaking the message sequence even if the producer and Q are configured
    either for FIFO delivery.

    Having quickly looked at it, I think that deploying to the server should work
    - but with a specific
    weblogic.rmi.cluster.CallRouter implementation doing the load-balancing for my
    MDB, i.e. always use the same server.
    Obviously we will have to try it ...

    Thanks again.
    KSS

    "ryan upton" wrote:
    >
    >"KSS" wrote in message
    >news:4002a228@newsgroups.bea.com...
    >
    >
    >
    >>
    >> I only want to have one concurrent instance at cluster level, but have

    >failed
    >> to find any doco that answers this question for me.

    >
    >That's interesting, why only one instance across the whole cluster, that
    >seems to defeat the purpose of the cluster? Clients aren't going to
    >be able
    >to create these anyway,
    >
    >> I am in design stage, and am thinking of failover/recovery so it is

    >importan to
    >> me to know if the MDB app. can exist inside the cluster or not.
    >>

    >I would recommend two things before moving forward since you're making
    >critical design choices. First how JMS works in a clustered environment:
    >http://edocs.bea.com/wls/docs81/clus...g.html#1008605 toward
    >the bottom. Second how clustered EJB works, see above and:
    >http://edocs.bea.com/wls/docs81/cluster/index.html and how MDBs function
    >in
    >WLS: http://edocs.bea.com/wls/docs81/ejb/...s.html#1107234
    >
    >
    >~RU
    >
    >
    >> Thanks in advance.

    >
    >



  4. Re: max-beans-in-free-pool of an MDB in a cluster


    I post my findings in response to my own question.

    A MDB will have a max of X instances inside a cluster where the MDB is deployed
    to the cluster (and not to specific servers inside the cluster) where X = max-free-beans-in-pool
    * no-managed-servers-in-cluster.
    This obviously is NOT what I want because this is NOT what I have asked to happen,
    but I understand why it happens this way. By deploying to cluster I want the max-beans
    to be applicable at cluster level and not at managed server level.


    The low-level Cluster API allows specific routing, but CallRouter implementations
    are only available for RMI and EJB's with a Home interface, and a MDB does not
    have a Home interface, so no help there.


    Therefore, the only way I have found to ensure message sequence is to deploy the
    MDB to a specific managed server inside the cluster, or to a specific managed
    server outside the cluster (depending on what you want and your machine setup).
    This obviously raises scalability issues with only horizontal scalability being
    available by directing specific message-types to specific queues and then increasing
    the number of MDB's that are deployed (one per message type). If the volume of
    messages for a specific message-type then increases beyond available capacity
    I can not readily see a solution that does not entail a new, or dedicated, machine.

    Possible bug?
    By writing a single "co-ordinating" MDB that simply calls Service methods in other
    classes to process the message, I ran into the problem that I could not deploy
    the MDB more thanonce, even though each specific deployment targetted a different
    queue. I wrapped the MDB in a "do-nothing" class (to give it a different name)
    and then I could deploy OK.
    This looks like a hangover from the expecatations of what a developer would want
    to deploy when thinking in Entity and Session EJB terms - unfortunately the MDB
    does not conform to this way of thinking.





    "KSS" wrote:
    >
    >Thanks for the pointers.
    >
    >I only want a single instance of the MDB because I have to retain message
    >sequence.
    >With more than one instance available in the cluster (and not knowing
    >how the
    >link between JMS and the MDB is triggered and managed inside WLS cluster)
    >I run
    >the risk of breaking the message sequence even if the producer and Q
    >are configured
    >either for FIFO delivery.
    >
    >Having quickly looked at it, I think that deploying to the server should
    >work
    >- but with a specific
    >weblogic.rmi.cluster.CallRouter implementation doing the load-balancing
    >for my
    >MDB, i.e. always use the same server.
    >Obviously we will have to try it ...
    >
    >Thanks again.
    >KSS
    >
    >"ryan upton" wrote:
    >>
    >>"KSS" wrote in message
    >>news:4002a228@newsgroups.bea.com...
    >>
    >>
    >>
    >>>
    >>> I only want to have one concurrent instance at cluster level, but

    >have
    >>failed
    >>> to find any doco that answers this question for me.

    >>
    >>That's interesting, why only one instance across the whole cluster,

    >that
    >>seems to defeat the purpose of the cluster? Clients aren't going to
    >>be able
    >>to create these anyway,
    >>
    >>> I am in design stage, and am thinking of failover/recovery so it is

    >>importan to
    >>> me to know if the MDB app. can exist inside the cluster or not.
    >>>

    >>I would recommend two things before moving forward since you're making
    >>critical design choices. First how JMS works in a clustered environment:
    >>http://edocs.bea.com/wls/docs81/clus...g.html#1008605

    >toward
    >>the bottom. Second how clustered EJB works, see above and:
    >>http://edocs.bea.com/wls/docs81/cluster/index.html and how MDBs function
    >>in
    >>WLS: http://edocs.bea.com/wls/docs81/ejb/...s.html#1107234
    >>
    >>
    >>~RU
    >>
    >>
    >>> Thanks in advance.

    >>
    >>

    >



+ Reply to Thread