Instance Pooling in EJB

For example my Bean get maximum of 1000 request at a time, is there is any algorithm to calculate the minimum and maximum number of instances in the pool, any how the app server will take care of creating and destroying the bean instances depends upon the request load. I just want to know is there is any other way to calculate.

Dear Paul,
with reference from Professional EJB by Wrox in
chapter # 3, stateful session bean has three states,
1. Doesnt exist and not referenced
2. exist and referenced
3. exist and not referenced
you said that it is not being pooled in stateful
session bean. what is the difference between 2. and 3.
above.
Thanks,
Life cycle:
Does Not Exist -> Method Ready -> Passive
Nadeem, a stateful session bean can exist and not be referenced because it is passivated, or the client no longer has a use for it and it hasn't been cleaned up. These beans "live" until they are removed by a timeout or until the client removes them.
Pooling stateful beans makes little since except to save initial creation time. They maintain the state of their client. The client has control of this bean exclusively. Unlike stateless session beans, which can be pooled and swapped amoung numerous clients as there is not state to worry about.
Further, you cannot make concurrent calls against stateful session beans because they are not pooled and cannot be swapped.
Here it is explained in more detail:
http://octopus.cdut.edu.cn/~yf17/javaent/ebeans/ch07_04.htm
Paul

Similar Messages

  • Instance Pool

    I am new to Weblogic & started straight away from 6.1. I am learning Stateful session bean. While going thru Stateful Session Bean tutorial, there is a mention that (which is a vendor specific) we can define & force the container to have a maximum number of instances of Beans in the instance pool.
    In WLS 6.1, in which file one define the number of instances of EJB to be created in the pool maintained by EJB container?

    Hi,
    Following links might help you.
    http://help.sap.com/saphelp_nw04/helpdata/EN/ca/7cb340be761b07e10000000a155106/content.htm
    Re: Connection to antivirus server (avira) adapter
    Manoj

  • Instance pooling across a cluster

    I have to work in a cluster and am new to Weblogic.
    What I need to do: specify the maximam number of instances created for
    a stateless session bean
    What I know: It can be achieved in a EJB container via instance
    pooling algorithm.
    What I don't know: Whether it can be achieved in a cluster? i.e. Can
    a stateless session bean be pooled across a cluster?
    Help needed!!!!
    Many thanks

    "Xiao" <[email protected]> wrote in message
    news:[email protected]..
    I have to work in a cluster and am new to Weblogic.
    What I need to do: specify the maximam number of instances created for
    a stateless session bean
    "<max-beans-in-free-pool>" tag will do the job for you. But this is
    per server pool size.
    What I know: It can be achieved in a EJB container via instance
    pooling algorithm.
    What I don't know: Whether it can be achieved in a cluster? i.e. Can
    a stateless session bean be pooled across a cluster?
    StatelessSessionBean, by default, is clusterable. So client call on this
    bean will round-robin
    on the servers of the cluster. But pool size is per server. Each server,
    hosting this SLSB, will
    have the pool size defined in the <max-beans-in-free-pool> tag.
    Cheers,
    ..maruthi
    Help needed!!!!
    Many thanks

  • Instance Pooling

    hi all,
    I have a doubt in Instace Polling,
    max-beans-in-free-pool>500</max-beans-in-free-pool>
    <initial-beans-in-free-pool>250</initial-beans-in-free-pool>
    these tags are mainly to tell the App server about the maximum number of instances
    for a bean. So the App server wont creates more than that, am i right.
    in this sense we have to be more careful while specifying the Number. if we are
    not specified the tag it is well and good because the container will take of creating
    and destroying the beans depends upon the load. Take for example if I put <max-beans-in-free-pool>
    is 10 , and my server gets something like 1000 request than it will be a problem
    right. So my question is how to achieve that number 500,200 .......

    I'd suggest the WLS docs. Head to http://edocs.bea.com
    -- Rob
    lax wrote:
    I am reading Ed Roman EJB 2.0 Docs, I did't able find any thing related to this
    in that docs. Could u plz suggest me any docs. I want to know for both Session
    and Entity Bean.
    Rob Woollen <[email protected]> wrote:
    What type of beans are you asking about (stateless, entity, or MDB)?
    Also, the EJB docs have a pretty good discussion about how this works.
    You might want to start there.
    -- Rob
    Lax wrote:
    hi all,
    I have a doubt in Instace Polling,
    max-beans-in-free-pool>500</max-beans-in-free-pool>
    <initial-beans-in-free-pool>250</initial-beans-in-free-pool>
    these tags are mainly to tell the App server about the maximum numberof instances
    for a bean. So the App server wont creates more than that, am i right.
    in this sense we have to be more careful while specifying the Number.if we are
    not specified the tag it is well and good because the container willtake of creating
    and destroying the beans depends upon the load. Take for example ifI put <max-beans-in-free-pool>
    is 10 , and my server gets something like 1000 request than it willbe a problem
    right. So my question is how to achieve that number 500,200 .......

  • How to get an instance of Session EJB 3.0  in a JSP?

    Hi! All,
    Can any one help me in looking up SessionEJB in a JSP.
    I know how to look up a EJB 2.x bean ; but since EJB 3.0 does not have a home interface,there is no meaning of using PortableRemoteObject.narrow() method and then using home method create() to create the instance of the bean.
    can you plase help me how can I look up for an instance of Session Bean 3.0 ?
    Thanking you in advance,
    Samba.

    Check out this tutorial:
    http://www.oracle.com/technology/obe/JavaEE_tutorial_10131/index.htm

  • Stateless Bean - scope of instance variable in EJB Timer call back function

    Hi,
    I would like to know on the scope of an instance variable of a Stateless Bean object,
    when used in a EJB Timer call back.Let me explain this in more detail below.
    I have a requirement to use a EJB Timer.
    For this, I have created a stateless object since Timer creation needs to be done
    from a stateless bean. I have a member variable "count" of the stateless bean class.
    In the timer call back(ejbTimeout), I am able to use this count variable during
    each time of the call back, and the value of this variable is also updated properly.
    I have a few queries with respect to the above behaviour:
    1) Does stateless bean object not get destroyed once the Timer is created from the Bean?
    2) If the Bean object is not destroyed, then when does the bean object get destroyed?
    3) If both (1) and (2) are not true, then can anyone explain on how the above behaviour is possible?
    Thanks in advance,
    Ulrich

    Hi Ulrich,
    The ejb timer is associated with the stateless session bean component, not with a particular bean instance. There is no formal relationship between the bean instance that called createTimer() and the bean instance on which the timer callback happens. If they're the same in your test run that's just a coincidence and not something your application should be depending on.
    In the stateless session bean model, the container can create and destroy stateless session bean instances at any time. The container is free to pick any stateless session bean instance to service any client invocation or timer callback. If you need to pass context into a timer callback, one way to do it is via the timer "info" object. However, the info object is immutable so it wouldn't be a good match for a counter. You could of course always just use a database for any necessary coordinated state.
    --ken                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • How to use connection pool in EJB??

    Hi,all:
    i put below codes in setEntityContext method.
    but i get a error message from console:
    java.lang.ClassCastException in setEntityContext. why?can u help me?thanks a lot.
                   // Create a OracleConnectionPoolDataSource instance
                   OracleConnectionPoolDataSource ocpds = (OracleConnectionPoolDataSource)ic.lookup(dbName);
                   // Create a pooled connection
                   PooledConnection pc = ocpds.getPooledConnection();
                   // Get a Logical connection
                   con = pc.getConnection();

    maybe try this: // Create a OracleConnectionPoolDataSource instance
    Object obj = ic.lookup(dbName);
    OracleConnectionPoolDataSource ocpds
            = (OracleConnectionPoolDataSource)PortableRemoteObject.narrow(obj, OracleConnectionPoolDataSource.class);

  • Can l make an instance of EJB home handler / Datasource shared by EJB objs

    all ejb guru
    As far as l know, it is general rule of thumb to cache the EJB home handlers and datasource object at EJB bean instance. But can l go a step further, make the same instance of EJB home handlers and datasource object shared by more than 1 EJB bean instance ?
    ( l checked out the methods of javax.ejb.EJBhome and javax.sql.DataSource. They are not declared as synchronized. It seems to me that EJB home handlers and datasource object are not thread safe and not suitable for being shared. Even they are thread-safe, if they are shared by 1+ EJB bean instance. Sharing EJB home handlers and datasource object may interfere the thread management of EJB container. Am l correct ? )
    It is highly appreciated someone can share with me your insight in this issue.
    thanks & regards
    Danny

    Okay, you got me there. However, it's usually a better practice to start a new thread with your specific question instead of resurrecting old threads that (obviously) nobody cared enough to answer.
    DataSources are retrieved from the container via JNDI. You may (generally) cache them in order to alleviate the JNDI lookup without worrying about Threads, as there is only (usually) one DataSource object per server (or node in a cluster). Do not cache (in your code) the Connection objects obtained from the DataSource - always close them in order to return them to the pool maintained by the DataSource.
    Caching EJB HomeHandles is the accepted manner of avoiding repeated JNDI calls to locate EJBs. Typically, extracting the EJBHome from the HomeHandle re-initializes whatever network operations are embedded in the EJBHome object(s) by the vendor's implementation. Once again, you do not necessarily need to worry about Threads - the container and vendor implementation is already taking care of that for you, transparently.
    Think about it: if there were Threading issues, even retrieving the above objects via JNDI would ensure that J2EE application servers wouldn't be Thread safe and all operations would be, essentially, blocked each time. Obviously, this is not the case since both DataSources and EJBHome objects can have multiple clients using them simultaneously. Just because there's not explicit synchronized tag on any of the methods defined in these interfaces doesn't mean they're single-Thread objects.

  • How Stateless Session Bean instances in pool

    Hi,
    I am not clear about , stateless bean having "pool" of objects to be used by multiple clients.when those instances will be created or who will generate them.
    Is this pool specific to ejb container or any vendor container.
    thanks in advance,

    Hi , my question is about Stateless Session Bean ,
    how StatelessSession bean will behave when some 100
    clients wil call homeObject simultaneously.The EJBs(including stateless) are single threaded so one client can access one Bean at a time. As per your question if some 100 clients are invoking home.create() method then it has to invoke on 100 EJBs. The instance pool size can be specified while deploying. In the descriptor (application server speific). So if the number of simultaneous clients is more than the pool size then some clients have to wait.
    Now my second question is how and who will create
    these instance .The container will create the pool as per the application server spcific deployment descriptor.

  • Session ejb 3.0 stateful and same instance

    Hello,
    I'm using OC4J 10.1.3.3 and EJB 3.0/JSP
    In a jsp I do two different lookup for a STATEFUL
    session ejb 3.0, and I want two different instances
    of the ejb, instead I get the same one...
    Please help. Thanks.

    Hi,
    The code for stateful is perfectly fine and working in a normal way. The way you are trying to implement the stateful session bean in your application is wrong.
    think of binding the stateful session bean with HttpSession object.
    So that you will get a unique stateful session bean object.

  • EJB call across server instance with multiple Datasource

    Hi,
              I posted in the EJB group and was told people here will be able to help.
              I'm currently facing a serious integration problem. The problem occurs when an EJB in my application (my instance) tries to call another EJB in a separate application (in another instance). Hope someone can help me to overcome this.
              My setup is WLS 8.1 SP2 (1 domain, 2 instances) with Oracle 9i.
              The scenario is as follows:
              EJB A (tx required) in instance A calls EJB B (tx required) in instance B.
              EJB A uses datasource A in instance A to update database A and EJB B uses datasource B in instance B to update database B.
              When I tried with both datasources using non-XA driver and both using XA driver the result is the same, EJB A executes fine and can successfully invoke the method on EJB B. But when EJB B tries to lookup the datasource B, it goes to instance A to do that and of course fails to find it.
              It only works when I create and deploy datasource B (XA) to instance A as well, meaning I now have datasources A and B in instance A.
              It all works well when I use a servlet(e.g.) in instance A to call EJB B. Leading me to suspect that the error could be due to some problems or behaviour which I may have missed out during the propagation of the transaction or the EJB context.
              This behaviour seems very illogical, can someone please enlighten me. Any help will be very much appreciated.
              Thanks,
              Kelvin

    You might try asking this over in the transaction group:
    http://forums.bea.com/bea/forum.jspa?forumID=2052
    -thorick

  • 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

  • Paradox - Should entity CMP EJB be faster than stateless session bean?

    Please bear with me on this.
    Just thinking of this scenario: hello world application. It can be implemented both as stateless session bean and entity bean.
    There's no persistent. So for the entity bean, it will be container managed, and no code to do anything to the load/remove/create. - comparably the same as stateless bean.
    Next, for the stateless session bean, each client call would require a dedicated instance of the EJB on the server (although for a very short amount of time). For the entity bean, it's shared, so only 1 instance is needed. It's also thread safe.
    So, for a very high traffic, shouldn't the entity bean do better because of single instance?
    What's other overhead?
    Does the entity bean cost more connections than the stateless bean?

    Feels like a comparison between apples and oranges.
    A stateless session bean is like every other instance, so these can be pooled by the EJB container. The container is free to create an instance for each client if necessary. That's different.
    A stateless session bean doesn't have to deal with a database that may or may not be located on another machine the way an entity bean does. There could be another network round trip involved. That's different.
    Session and entity beans are intended for entirely different purposes. Just because you can write Hello World with both doesn't mean it's representative of what EJBs are used for. I don't think it's a good, meaninful comparison. JMO - MOD

  • EJB client spawning threads

    We've got problems with respect to the number of EJB client threads (ExecuteThread) spawned by WebLogic in a client JVM. As the number of threads increase (~1700 in a JVM with 512Mb of memory and 2 hours of uptime), the JVM performance degrades substantially - although almost all these threads are waiting for requests, as one can see in the thread dump attached bellow.
    This problem happens in an integration scenario involving both WebLogic (8.1 and 6.1 as service providers) and webMethods Integration Server (version 6.0.1); the webMethods EJB adapter (version 1.2) acts like EJB client from the WebLogic instances, and the "EJB client spawning threads" can be detected by thread dumps extracted from the Integration Server JVM. The URL property from the wm EJB adapter has been setup as t3://server:port. The Integration Server runs with Java HotSpot(TM) Server VM (build 1.4.2 1.4.2.02-040225-19:18-PA_RISC2.0 PA2.0 (aCC_AP), mixed mode) JRE in HP-UX (11.11) environment.
    Although we couldn't reproduce this problem in a prod like environemnt, we'd identified that initially, WebLogic (weblogic.jar from WebLogic 6.1) spawns 5 ExecuteThreads plus 3 additional threads (TimeEventGenerator, SpinnerRandomSource and HighPriority TimeEventGenerator) in the first access of an EJB not matter the instance used, as well as two new threads (ExecuteThread) for each access to new WebLogic instances (different from previously accessed WebLogic instances). With weblogic.jar from the WebLogic 8.1 SP4 the behavior is slightly different: from the second instance access toward, only two new Threads (ExecuteThread in weblogic.JavaSocketReaders queue) are created.
    We have also noticed that this problem should not be reflect of context classloaders because the counter of the ExecuteThread for the default pool only increases; in case of a pool cached in separate context classloaders, we should see "duplicate" threads with the same counter (starting with 0), which is not the case.
    The questions are 1) why weblogic is spawning so much threads; 2) is there any setup/config to limit the number of WebLogic threads in the client context ?
    Excerpt from the thread dump:
    Full thread dump Java HotSpot(TM) Server VM (1.4.2 1.4.2.02-040225-19:18-PA_RISC2.0 PA2.0 (aCC_AP) mixed mode):
    "ExecuteThread: '1749' for queue: 'default'" daemon prio=10 tid=05734140 nid=4813 lwp_id=583942 in Object.wait() [0x0dfbe000..0x0dfbe4f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <4a5ef9f0> (a weblogic.common.internal.DynaQueue)
         at weblogic.common.internal.DynaQueue.getW(DynaQueue.java:228)
         - locked <4a5ef9f0> (a weblogic.common.internal.DynaQueue)
         at weblogic.socket.JavaSocketMuxer.processSockets2(JavaSocketMuxer.java:252)
         at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:233)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    "ExecuteThread: '1742' for queue: 'default'" daemon prio=10 tid=04c263f0 nid=4812 lwp_id=583845 runnable [0x06449000..0x064494f0]
         at java.net.SocketInputStream.socketRead0(Native Method)
         at java.net.SocketInputStream.read(SocketInputStream.java:129)
         at weblogic.socket.JavaSocketMuxer.processSockets2(JavaSocketMuxer.java:281)
         - locked <4a5ee690> (a java.net.Socket)
         at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:233)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    "ExecuteThread: '1735' for queue: 'default'" daemon prio=10 tid=05733fd8 nid=4811 lwp_id=583784 in Object.wait() [0x064ca000..0x064ca4f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <4c40a6b8> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
         - locked <4c40a6b8> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
    "ExecuteThread: '1734' for queue: 'default'" daemon prio=10 tid=01ecd940 nid=4810 lwp_id=583783 in Object.wait() [0x0654b000..0x0654b4f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <4c40a728> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
         - locked <4c40a728> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
    "ExecuteThread: '1733' for queue: 'default'" daemon prio=10 tid=05733e70 nid=4806 lwp_id=583777 in Object.wait() [0x066ce000..0x066ce4f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <4c40a798> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
         - locked <4c40a798> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
    "ExecuteThread: '1732' for queue: 'default'" daemon prio=10 tid=01ecd7d8 nid=4801 lwp_id=583771 in Object.wait() [0x065cc000..0x065cc4f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <4c40a808> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
         - locked <4c40a808> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
    "ExecuteThread: '1731' for queue: 'default'" daemon prio=10 tid=05733d08 nid=4798 lwp_id=583766 in Object.wait() [0x067d0000..0x067d04f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <4c40a878> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
         - locked <4c40a878> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
    ... (cut for brevity)
    "ExecuteThread: '2' for queue: 'default'" daemon prio=10 tid=009251b8 nid=172 lwp_id=569500 in Object.wait() [0x3d61f000..0x3d61f4f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <4a5b4498> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
         - locked <4a5b4498> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
    "ExecuteThread: '1' for queue: 'default'" daemon prio=10 tid=00924ee8 nid=171 lwp_id=569499 in Object.wait() [0x3d6a0000..0x3d6a04f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <4a5b40f0> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
         - locked <4a5b40f0> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
    "ExecuteThread: '0' for queue: 'default'" daemon prio=10 tid=00925050 nid=170 lwp_id=569498 in Object.wait() [0x3d7a2000..0x3d7a24f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <4a5b3d48> (a weblogic.kernel.ExecuteThread)
         at java.lang.Object.wait(Object.java:429)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:94)
         - locked <4a5b3d48> (a weblogic.kernel.ExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:118)
    "Thread-2" daemon prio=10 tid=00bec5f0 nid=18 lwp_id=569246 in Object.wait() [0x41e2e000..0x41e2e4f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <46c14ff0> (a com.wm.app.repov4.server.RepoServer$RepoLockTimeoutMgr)
         at com.wm.app.repov4.server.RepoServer$RepoLockTimeoutMgr.run(RepoServer.java:1533)
         - locked <46c14ff0> (a com.wm.app.repov4.server.RepoServer$RepoLockTimeoutMgr)
    "Thread-1" daemon prio=10 tid=00bec488 nid=17 lwp_id=569244 in Object.wait() [0x41eaf000..0x41eaf4f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <46c150a8> (a com.wm.driver.queue.data.DataQueue)
         at java.lang.Object.wait(Object.java:429)
         at com.wm.driver.queue.data.DataQueue.dequeue(DataQueue.java:310)
         - locked <46c150a8> (a com.wm.driver.queue.data.DataQueue)
         at com.wm.driver.queue.data.DataQueue.dequeueCommit(DataQueue.java:260)
         - locked <46c150a8> (a com.wm.driver.queue.data.DataQueue)
         at com.wm.driver.queue.data.DataQueue.dequeueCommit(DataQueue.java:254)
         - locked <46c150a8> (a com.wm.driver.queue.data.DataQueue)
         at com.wm.app.repov4.server.RepoServerBase$RepoEventManager.run(RepoServerBase.java:224)
    "Log Thread" prio=10 tid=00bec320 nid=16 lwp_id=569243 in Object.wait() [0x41f30000..0x41f304f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <46c15120> (a com.wm.util.sync.SimpleQueue)
         at com.wm.util.sync.SimpleQueue.deq(SimpleQueue.java:171)
         - locked <46c15120> (a com.wm.util.sync.SimpleQueue)
         at com.wm.util.sync.SimpleQueue.deq(SimpleQueue.java:126)
         - locked <46c15120> (a com.wm.util.sync.SimpleQueue)
         at com.wm.app.b2b.server.ServerLogHandler$LogThread.run(ServerLogHandler.java:268)
    "Cron Daemon" prio=10 tid=00bec1b8 nid=15 lwp_id=569241 in Object.wait() [0x41fb1000..0x41fb14f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <46c15190> (a java.util.Vector)
         at com.wm.util.Cron.run(Cron.java:424)
         - locked <46c15190> (a java.util.Vector)
         at java.lang.Thread.run(Thread.java:534)
    "Cron Daemon Pool2" prio=10 tid=00bec050 nid=14 lwp_id=569240 in Object.wait() [0x42032000..0x420324f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <46c15268> (a com.wm.util.pool.PooledThread)
         at java.lang.Object.wait(Object.java:429)
         at com.wm.util.pool.PooledThread.run(PooledThread.java:103)
         - locked <46c15268> (a com.wm.util.pool.PooledThread)
         at java.lang.Thread.run(Thread.java:534)
    "Cron Daemon Pool1" prio=10 tid=00bebee8 nid=13 lwp_id=569239 in Object.wait() [0x420b3000..0x420b34f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <46c152d0> (a com.wm.util.pool.PooledThread)
         at java.lang.Object.wait(Object.java:429)
         at com.wm.util.pool.PooledThread.run(PooledThread.java:103)
         - locked <46c152d0> (a com.wm.util.pool.PooledThread)
         at java.lang.Thread.run(Thread.java:534)
    "webMethods Integration Server" prio=10 tid=000870e0 nid=12 lwp_id=569238 in Object.wait() [0x42134000..0x421344f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <46c152f0> (a com.wm.app.b2b.server.Server)
         at java.lang.Object.wait(Object.java:429)
         at com.wm.app.b2b.server.Server.run(Server.java:353)
         - locked <46c152f0> (a com.wm.app.b2b.server.Server)
    "Signal Dispatcher" daemon prio=10 tid=00086f78 nid=7 lwp_id=569231 waiting on condition [0x00000000..0xffffffff]
    "Finalizer" daemon prio=10 tid=00086e10 nid=5 lwp_id=569229 in Object.wait() [0x4293b000..0x4293b4f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <46c15668> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
         - locked <46c15668> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:188)
    "Reference Handler" daemon prio=10 tid=00086ca8 nid=4 lwp_id=569228 in Object.wait() [0x429bc000..0x429bc4f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <46c15340> (a java.lang.ref.Reference$Lock)
         at java.lang.Object.wait(Object.java:429)
         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:120)
         - locked <46c15340> (a java.lang.ref.Reference$Lock)
    "main" prio=10 tid=00086b40 nid=1 lwp_id=569222 in Object.wait() [0x68ff3000..0x68ff24f0]
         at java.lang.Object.wait(Native Method)
         - waiting on <46c152f0> (a com.wm.app.b2b.server.Server)
         at java.lang.Thread.join(Thread.java:1001)
         - locked <46c152f0> (a com.wm.app.b2b.server.Server)
         at java.lang.Thread.join(Thread.java:1054)
         at com.wm.app.b2b.server.Server.start(Server.java:141)
         at com.wm.app.b2b.server.Main.main(Main.java:40)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:324)
         at com.wm.proxy.Proxy.invokeStaticMethod(Proxy.java:166)
         at com.wm.app.server.ServerProxy.ServerMain_main(ServerProxy.java:77)
         at com.wm.app.server.ServerApp.start(ServerApp.java:105)
         at com.wm.app.Application.launch(Application.java:490)
         at com.wm.app.server.Main.main(Main.java:50)
    "VM Thread" prio=7 tid=000167f8 nid=3 lwp_id=569227 runnable
    "VM Periodic Task Thread" prio=8 tid=00016908 nid=11 lwp_id=569235 waiting on condition
    "Suspend Checker Thread" prio=10 tid=00016880 nid=6 lwp_id=569230 runnable

    We already opened a case. Actually, we did reproduce the problem: it happens because there is a hardware load balancing between the client and the WebLogic Server.
    As far as I know, EJB load balancing can be done only with WebLogic clusters. Could you confirm that ?

  • Accessing Tangosol from an EJB

    Hi,
         I have an EJB that when my EJB executes the following method for the first time, it starts up an instance of Tangosol:
         NamedCache cache = CacheFactory.getCache(cacheName);
         I don't want an instance of tangosol to just automatically start up one time on the first call to a Tangosol method given above. This is because I have custom parameters I'd want to use when I start up Tangosol, and I want to have control over when I start and stop Tangosol.
         How would I be able to get the EJB to automatically start an instance of Tangosol with command line params of cache config and tangosol override locations specified, along with a modified classpath?
         If this can't be done, how can I just get my EJB to not instantiate Tangosol, thus implying that I manually start up n instances before my EJB call.
         Thanks in advance,
         - N

    Thx Dimitry. Those provide me with 3 great options to start up Tangosol Coherence from Weblogic or my EJB.
         Two issues:
         1. This is how I would start my instance of Tangosol Coherence from my EJB or Weblogic. I'm testing this in my EJB now but it's not working. Please advice. Note that I'd pass the system properties for my two xml configs but I removed these here for sake of simplicity. I do this from ejbCreate() method. No new thread creation here.
         DefaultCacheServer dcs = new DefaultCacheServer();
         String[] args = new String[5];
         args[0] = "-server";
         args[1] = "-Xms512m";
         args[2] = "-Xmx512m";
         args[3] = "com.tangosol.net.DefaultCacheServer";
         args[4] = "5";
         dcs.main(args);
         dcs.start();
         2. Is there any way I can avoid having to start up Tangosol Coherence from Weblogic or EJB? For example, if I already have my two instances running on machine A, I don't want the EJB or weblogic to start up another Tangosol Coherence node. Is this possible? I've noticed that when I call CacheFactory.getCluster() or CacheFactory.getCache() that even if I have other instances of Tangosol running on machine A that were started from the command line aren't being recognized and an instance is automatically started from my EJB when I didn't ask it to. Why does this occur? Once the "automatically created" instance of Tangosol from my EJB is created, my other two instances I started separately from the cmd line recognize this EJB created tangosol instance. I need to get around this so that my EJB does not bring up a Tangosol node, but instead checks to see if a node exists and if so, just proceed as normal, otherwise it should either create a new node or throw an error.
         Thx,
         - N
         > Hi,
         >
         > You can configure Coherence from a
         > ServletContextListener, like Cameron suggested.
         > Alternatively, if you use WebLogic, you can use
         > Application LIfecycle Events - see <a
         > href="http://edocs.bea.com/wls/docs90/programming/life
         > cycle.html">Programming Application Lifecycle
         > Events</a> (WebSphere has a similar functionality -
         > 'WebSphere Startup Beans). Yet another alternative -
         > you can use a Stateless Session Bean with maximum and
         > initial pool size = 1 and configure Coherence during
         > it's initialization.
         >
         > Regards,
         > Dimitri
         Message was edited by:
         noah

Maybe you are looking for

  • System Error cming while filtering the value

    Hi Bw Expert, I am facing one problem while doing the filter on a characterisitc in report.I am getting short dump on that. Wheras when i am doing drill down on the characteristic then i am able to do the filter. OPls help me.

  • Can't start up after adding new account

    Hi there, I've just added a new user account and when. I restated my MacBook pro, i cannot log in to either of my accounts. The screen hangs in the log in page. Doesn't even give me the option to enter password. Can someone please help me!

  • Use of CMS/JDI for portal development

    I have recently installed JDI offline and online and configured it for use of XI develpoment but now i am asked to Use CMS to transport portal components or contents. My Question, is it possible to Use CMS for portal transports and Can i get any kind

  • I'm having trouble uploading

    The first file I uploaded (around 220 mb) did not show a status, and the bottom left was showing an error on the page. The file is there now and it seems fine but it never told be when it was done. My 2nd file is 1.5 gb zipped. Same issues, no status

  • HT5372 no bookmarks tab in Safari help

    I'm new to this but I can't see the bookmark tab in safari therefore I can't bookmark any web pages.  Please help .