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

Similar Messages

  • 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 .......

  • 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

  • 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.

  • How to do batchreading of collections in EJB3

    Hi!
    I'm trying to migrate a small example from using ordinary toplink mapping in the mapping workbench to EJB3. There are some collections in that example that I want to be read as batch. (It's a check box called "Batch Reading" in the mapping workbench). Is it possible to do this in EJB3 and how? It would be very useful as it has proven to me to be a very effective way of limiting the number of roundtrips to the database.
    Regards,
    Bjorn Boe

    Beautiful!
    One other thing that I've noticed is the lack of support for configuring caching on the mappings. The closest I've come to documentation on this has been to configure bean instance pool timeout in the orion-ejb-jar.xml, which I hope was documentation on something else. Do you know if there are any plans on doing something there or other ways to get around this that won't involve using the mapping workbench for mappings?
    Regards,
    Bjorn Boe

  • MGR-11401 error in ORACLE 7.3.4 servers

    Hi All,
    I want to run a shell script connecting to oracle database and redirect the output to a file. Please find the command i am using and the error received. Kindly suggest me an alternate or correct the same.
    GMX-/home/oracle/health: svrmgrl @dbhealth.sql |tee dbcheck.lst
    Oracle Server Manager Release 2.3.4.0.0 - Production
    Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.
    Oracle7 Server Release 7.3.4.0.0 - Production
    With the distributed and parallel query options
    PL/SQL Release 2.3.4.0.0 - Production
    SVRMGR> MGR-11401: input error, unable to read input line
    MGR-01508: unable to close the current file

    Hi all,
    I am using HPUX OS. Please find the contents of my script.
    spool db_check.lst
    !echo =============================================================
    !echo DATABASE HEALTH CHECK REPORT
    !echo =============================================================
    !echo
    !echo =====================
    !echo CURRENT DATE and TIME
    !echo ======================
    Select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') "Current Date/Time" from dual;
    !echo
    !echo =================
    !echo VERSION
    !echo =================
    select * from v$version;
    !echo
    !echo =================
    !echo DATABASE NAME
    !echo =================
    Select name from v$database;
    !echo
    !echo ===========================================
    !echo Instance Pools and memory companents detail
    !echo ===========================================
    Show parameter pool
    sho parameter sort
    sho parameter cache
    !echo
    !echo ==================
    !echo CONTROL FILES
    !echo ==================
    select * from v$controlfile;
    !echo
    !echo ==================
    !echo LOG FILE GROUPS
    !echo ==================
    select * from v$logfile;
    !echo
    !echo ==================
    !echo LOG FILE MEMBERS
    !echo ==================
    select * from v$log;
    !echo
    !echo ============================
    !echo TABLESPACES AND DATAFILES
    !echo ============================
    select TABLESPACE_NAME, to_char(file_id, '999') "File_id", FILE_NAME, BYTES/1024/1024 "Size in MB" , STATUS
    from dba_data_files
    order by TABLESPACE_NAME, file_name;
    !echo
    !echo ============================
    !echo UTILIZATION OF TABLESPACES
    !echo ============================
    select t.tablespace, t.totalspace as " Totalspace(MB)",
    round((t.totalspace-nvl(fs.freespace,0)),2) as "Used Space(MB)",
    nvl(fs.freespace,0) as "Freespace(MB)",
    round(((t.totalspace-nvl(fs.freespace,0))/t.totalspace)*100,2) as "%Used",
    round((nvl(fs.freespace,0)/t.totalspace)*100,2) as "% Free"
    from
    (select round(sum(d.bytes)/(1024*1024)) as totalspace,d.tablespace_name tablespace
    from dba_data_files d
    group by d.tablespace_name) t,
    (select round(sum(f.bytes)/(1024*1024)) as freespace,f.tablespace_name tablespace
    from dba_free_space f
    group by f.tablespace_name) fs
    where t.tablespace=fs.tablespace (+)
    order by t.tablespace;
    !echo
    !echo ===========================
    !echo TABLESPACES utl >90
    !echo ============================
    select t.tablespace, t.totalspace as " Totalspace(MB)",
    round((t.totalspace-nvl(fs.freespace,0)),2) as "Used Space(MB)",
    nvl(fs.freespace,0) as "Freespace(MB)",
    round(((t.totalspace-nvl(fs.freespace,0))/t.totalspace)*100,2) as "%Used",
    round((nvl(fs.freespace,0)/t.totalspace)*100,2) as "% Free"
    from
    (select round(sum(d.bytes)/(1024*1024)) as totalspace,d.tablespace_name tablespace
    from dba_data_files d
    group by d.tablespace_name) t,
    (select round(sum(f.bytes)/(1024*1024)) as freespace,f.tablespace_name tablespace
    from dba_free_space f
    group by f.tablespace_name) fs
    where t.tablespace=fs.tablespace (+)
    and round(((t.totalspace-nvl(fs.freespace,0))/t.totalspace)*100,2) >=90
    order by t.tablespace
    !echo
    !echo
    !echo LIBRARY CACHE HIT RATIO. THIS VALUE SHOULD BE GREATER 95%
    !echo ===========================================================
    select sum(pins)/(sum(pins)+sum(reloads))*100 "Hit Ratio" from v$librarycache;
    !echo
    !echo ==================================
    !echo LIBRARY CACHE PIN HIT RATIO STATISTICS
    !echo =========================================
    select namespace,pins,pinhits,pinhitratio,reloads from v$librarycache;
    !echo
    !echo =========================================================
    !echo DICTIONARY HIT RATIO. THIS VALUE SHOULD BE GREATER 85%
    !echo ==========================================================
    select (1-(sum(getmisses)/sum(gets)))*100 "Hit Ratio"
    from v$rowcache;
    !echo
    !echo =========================================
    !echo DICTIONARY CACHE PIN HIT RATIO STATISTICS
    !echo =========================================
    select parameter,gets,getmisses,scans,scanmisses from v$rowcache;
    !echo
    !echo ==========================================================
    !echo DATABASE BUFFER HIT RATIO. THIS VALUE SHOULD BE GREATER 95%
    !echo ===========================================================
    select name,value from v$sysstat where name in ('db block gets','consistent gets','physical reads');
    select round((1-(pr.value/(bg.value+cg.value)))*100,2)
    from v$sysstat pr, v$sysstat bg, v$sysstat cg
    where pr.name='physical reads'
    and bg.name='db block gets'
    and cg.name='consistent gets';
    !echo
    !echo ==================================
    !echo REDO LOG BUFFER STATISTICS.
    !echo 'redo buffer allocation retries' SHOULD BE NEAR 0; 'redo entries' SHOULD BE LESS THAN 1%
    !echo ==========================================================================================
    select name, value from v$sysstat
    where name in ('redo buffer allocation retries','redo entries');
    !echo ==================================
    !echo STATISTICS OF ROLLBACK SEGMENT
    !echo IF ANY WAITS IN FIRST SQL STATEMENT EXCEEDS 1% OF TOTAL IN SECOND SQL STATEMENT, CREATE MORE ROLLBACK SEGMENTS.
    !echo ===============================================================================================================
    select class,count from v$waitstat where class in
    ('system undo header','system undo block','undo header','undo block');
    select sum(value) from v$sysstat
    where name in ('db block gets','consistent gets');
    !echo
    !echo =======================
    !echo STATISTICS OF SORTS
    !echo =======================
    select name,value from v$sysstat where name in
    ('sorts (memory)', 'sorts (disk)');
    !echo
    !echo =====================
    !echo STATISTICS OF I/O
    !echo =====================
    select name,phyrds,phywrts,readtim,writetim
    from v$filestat a, v$dbfile b
    where a.file# = b.file#
    order by readtim desc;
    !echo
    !echo =====================
    !echo Database users detail
    !echo =====================
    select username,default_tablespace,temporary_tablespace from dba_users;
    !echo ==================================
    !echo OBJECTS WHOSE STATUS ARE INVALID
    !echo ===================================
    select OBJECT_NAME, owner, object_type, STATUS from all_objects where
    object_type in
    ('FUNCTION','INDEX', 'LIBRARY','PACKAGE','PACKAGE BODY',
    'PROCEDURE', 'SEQUENCE','SYNONYM','TABLE','TRIGGER',
    'TYPE','UNDEFINED','VIEW')
    and status = 'INVALID'
    and OWNER not in ('SYS','SYSTEM')
    spool off
    exit;

  • JBoss Clustering problem

    I am not sure if this issue belongs to this forum. If not, please let me know and I will post it in the appropriate forum.
    My application has clustered remote SLSBs with "FirstAvaliable" policy.
    The BMP Entity Beans are set for cache invalidation as they exist at local level only. They is no clustering of entity beans.
    I am using Commit Option A.
    I want cache to invalidate bean on all nodes except the node it was accessed from.
    Here the cache is being cleared even on the node it was last accessed from.
    I executed a business method on the same node (due to FirstAvailable) and here is the list of methods encountered.
    setEntityContext
    ejbFindByPrimaryKey
    ejbActivate
    ejbLoad
    getAllAccounts
    ejbStore
    setEntityContext
    ejbActivate
    ejbLoad
    getAllAccounts
    ejbStore
    setEntityContext
    ejbActivate
    ejbLoad
    getAllAccounts
    ejbStore
    My expectation is that second and third time, in addition to my business method, only ejbLoad and ejbStore should be executed.
    After info from guides and forum topics, I have configured as under :
    cluster-service.xml
    ============
    I am using the default behaviour of JBoss-Cluster based bridge
    jboss.cache:service=InvalidationManager
    ${jboss.partition.name:DefaultPartition}
    DefaultJGBridge
    jboss:service=${jboss.partition.name:DefaultPartition}
    jboss.cache:service=InvalidationManager
    standardjboss.xml
    ============
    Container Configuration is defined as under : (Commit Option is A)
    <container-configuration>
    <container-name>Standard BMP 2.x EntityBean with cache invalidation</container-name>
    <call-logging>false</call-logging>
    <invoker-proxy-binding-name>entity-rmi-invoker</invoker-proxy-binding-name>
    <sync-on-commit-only>true</sync-on-commit-only>
    <insert-after-ejb-post-create>false</insert-after-ejb-post-create>
    <container-interceptors>
    org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor
    org.jboss.ejb.plugins.LogInterceptor
    org.jboss.ejb.plugins.SecurityInterceptor
    org.jboss.ejb.plugins.TxInterceptorCMT
    org.jboss.ejb.plugins.EntityCreationInterceptor
    org.jboss.ejb.plugins.EntityLockInterceptor
    org.jboss.ejb.plugins.EntityInstanceInterceptor
    org.jboss.ejb.plugins.EntityReentranceInterceptor
    org.jboss.resource.connectionmanager.CachedConnectionInterceptor
    org.jboss.ejb.plugins.EntitySynchronizationInterceptor
    org.jboss.cache.invalidation.triggers.EntityBeanCacheBatchInvalidatorInterceptor
    org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor
    </container-interceptors>
    <instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
    <instance-cache>org.jboss.ejb.plugins.InvalidableEntityInstanceCache</instance-cache>
    <persistence-manager>org.jboss.ejb.plugins.BMPPersistenceManager</persistence-manager>
    <locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
    <container-cache-conf>
    <cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
    <cache-policy-conf>
    <min-capacity>50</min-capacity>
    <max-capacity>1000000</max-capacity>
    <overager-period>300</overager-period>
    <max-bean-age>600</max-bean-age>
    <resizer-period>400</resizer-period>
    <max-cache-miss-period>60</max-cache-miss-period>
    <min-cache-miss-period>1</min-cache-miss-period>
    <cache-load-factor>0.75</cache-load-factor>
    </cache-policy-conf>
    </container-cache-conf>
    <container-pool-conf>
    100
    </container-pool-conf>
    <commit-option>A</commit-option>
    </container-configuration>
    jboss.xml
    ======
    <?xml version="1.0"?>
    <security-domain>java:/jaas/defaultLdap</security-domain>
    <enterprise-beans>
    <ejb-name>ejb/ApplicationService</ejb-name>
    <security-domain>java:/jaas/defaultLdap</security-domain>
    <resource-ref>
    <res-ref-name>jdbc/OracleDS</res-ref-name>
    <jndi-name>java:/jdbc/OracleDS</jndi-name>
    </resource-ref>
    True
    <cluster-config>
    <home-load-balance-policy>
    org.jboss.ha.framework.interfaces.FirstAvailable
    </home-load-balance-policy>
    <bean-load-balance-policy>
    org.jboss.ha.framework.interfaces.FirstAvailable
    </bean-load-balance-policy>
    </cluster-config>
    <ejb-name>ejb/ApplicationEntity</ejb-name>
    <security-domain>java:/jaas/defaultLdap</security-domain>
    <resource-ref>
    <res-ref-name>jdbc/OracleDS</res-ref-name>
    <jndi-name>java:/jdbc/OracleDS</jndi-name>
    </resource-ref>
    <configuration-name>Standard BMP 2.x EntityBean with cache invalidation</configuration-name>
    <cache-invalidation>True</cache-invalidation>
    cache-invalidation.xml (No Change)
    ==============
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE server>
    <!-- $Id: cache-invalidation-service.xml,v 1.4 2003/08/27 04:31:54 patriot1burke Exp $ -->
    <!-- ===================================================================== -->
    <!-- -->
    <!-- Cache Invalidation Service -->
    <!-- -->
    <!-- ===================================================================== -->
    <!--
    Uncomment if you want to activate the cache invalidation mechanism accross
    nodes using the JMS bridge
    PropagationMode can be : IN_OUT = 1, IN_ONLY = 2, OUT_ONLY = 3
    You can also set the ProviderUrl attribute to another IP:port setting if you
    must lookup your JMS information in other JMS trees i.e.
    MyOtherNode:1099
    -->
    <!--
    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager
    <depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager
    jboss.cache:service=InvalidationManager
    jboss.mq.destination:service=Topic,name=JMSCacheInvalidationBridge
    jboss.cache:service=InvalidationManager
    java:/ConnectionFactory
    topic/JMSCacheInvalidationBridge
    1
    -->
    Thanks.

    hi ,
    In this scenario u can use the load balancer instead of fail over clustering .
    I would suggest u to create apache proxy for redirect the request for many jboss instance.
    Rgds
    kathir

  • Accessing AQ from MDB in JBoss

    Hi All,
    I am trying to read the messages from AQ. I am able to read the messages through a JMS client but not able to get any breakthrough with MDB...kindly help.
    I wrote a simple MDB....
    package com.ameripath.billinginterface.mdb;
    import java.util.Enumeration;
    import java.util.Hashtable;
    import javax.jms.Message;
    import javax.jms.MessageListener;
    import javax.jms.TextMessage;
    import javax.ejb.ActivationConfigProperty;
    import javax.ejb.MessageDriven;
    @MessageDriven(activationConfig =
              @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Topic"),
              @ActivationConfigProperty(propertyName="destination", propertyValue="topic/OAQRequestTopic")
    public class AQMDB implements MessageListener {
         public void onMessage(Message message) {
              String reqMsg = null;
    System.out.println("!!!!!!!!!!!!!1Inside onMessage~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    updated Jboss-service.xml with...
    <mbean code="jmx.service.oracle.aq.OAQDestination"
    name="jmx.service.oracle.aq:service=OAQRequestTopic">
    <attribute name="JndiName">topic/OAQRequestTopic</attribute>
    <attribute name="JMSStyle">topic</attribute>
    <attribute name="IsXA">false</attribute>
    <attribute name="URL">jdbc:oracle:thin:@192.168.200.73:1521:INTORCL</attribute>
    <attribute name="Username">oas_intgrtn</attribute>
    <attribute name="Password">oas_intgrtn</attribute>
    <attribute name="PayloadFactory"></attribute>
    <attribute name="Schema">oas_intgrtn</attribute>
    <attribute name="Destination">MULTI_QUEUE</attribute>
    <depends>jboss:service=Naming</depends>
    </mbean>
    updated jms-ds.xml with....
    <!-- The OAQ JMS provider loader -->
    <mbean code="org.jboss.jms.jndi.JMSProviderLoader"
    name="jboss.mq:service=JMSProviderLoader,name=OAQJMSProvider">
    <attribute name="ProviderName">OAQJMSProvider</attribute>
    <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
    <!-- <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JBossMQProvider</attribute> -->
    <attribute name="QueueFactoryRef">OAQQueueConnectionFactory</attribute>
    <attribute name="TopicFactoryRef">OAQTopicConnectionFactory</attribute>
    </mbean>
    also updated standardjboss.xml with ...
    <invoker-proxy-binding>
    <name>oaq-message-driven-bean</name>
    <invoker-mbean>default</invoker-mbean>
    <proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
    <proxy-factory-config>
    <JMSProviderAdapterJNDI>OAQJMSProvider</JMSProviderAdapterJNDI>
    <ServerSessionPoolFactoryJNDI>StdJMSPool</ServerSessionPoolFactoryJNDI>
    <MaximumSize>5</MaximumSize>
    <MaxMessages>5</MaxMessages>
    <MDBConfig>
    <ReconnectIntervalSec>10</ReconnectIntervalSec>
    <DLQConfig>
    <DestinationQueue>queue/DLQ</DestinationQueue>
    <MaxTimesRedelivered>10</MaxTimesRedelivered>
    <TimeToLive>0</TimeToLive>
    </DLQConfig>
    </MDBConfig>
    </proxy-factory-config>
    </invoker-proxy-binding>
    <!-- for AQ -->
    <container-configuration>
    <container-name>OAQ Message Driven Bean</container-name>
    <call-logging>false</call-logging>
    <invoker-proxy-binding-name>oaq-message-driven-bean</invoker-proxy-binding-name>
    <container-interceptors>
    <interceptor>org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor</interceptor>
    <interceptor>org.jboss.ejb.plugins.LogInterceptor</interceptor>
    <interceptor>org.jboss.ejb.plugins.RunAsSecurityInterceptor</interceptor>
    <!-- CMT -->
    <interceptor transaction="Container">org.jboss.ejb.plugins.TxInterceptorCMT</interceptor>
    <interceptor transaction="Container" metricsEnabled="true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
    <interceptor transaction="Container">org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor</interceptor>
    <!-- BMT -->
    <interceptor transaction="Bean">org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor</interceptor>
    <interceptor transaction="Bean">org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT</interceptor>
    <interceptor transaction="Bean" metricsEnabled="true">org.jboss.ejb.plugins.MetricsInterceptor</interceptor>
    <interceptor>org.jboss.resource.connectionmanager.CachedConnectionInterceptor</interceptor>
    </container-interceptors>
    <instance-pool>org.jboss.ejb.plugins.MessageDrivenInstancePool</instance-pool>
    <instance-cache></instance-cache>
    <persistence-manager></persistence-manager>
    <container-pool-conf>
    <MaximumSize>100</MaximumSize>
    </container-pool-conf>
    </container-configuration>
    <!-- for AQ -->
    I am getting this error on deployment of this MDB....
    18:35:07,236 INFO [Ejb3AnnotationHandler] found EJB3: ejbName=AQMDB, class=com.
    ameripath.billinginterface.mdb.AQMDB, type=MESSAGE_DRIVEN
    18:35:07,548 INFO [Ejb3Deployment] EJB3 deployment time took: 500
    18:35:07,627 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:service=E
    JB3,jar=bi_pocapp.ejb3,name=AQMDB with dependencies:
    18:35:08,189 WARN [ServiceController] Problem starting service jboss.j2ee:servi
    ce=EJB3,jar=bi_pocapp.ejb3,name=AQMDB
    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
    sorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    Kindly suggest a fix
    thanks in anticipation

    Hi,
    I´m facing exactly the same problem and weren´t able to solve it. Anyone was able to acomplish this?
    Regards,
    Vinicius

  • Static Methods in Util class

    Dear Gurus,
    I am new to Java and working on a Java Web Application which is already running.
    1)
    I found that the util class methods are static also not Synchoronised.
    I feel this is wrong because if any 2 user accesses the methods concurrently
    then those 2 users will not get expected results.
    2)
    Basically servlets are not thread safe. Then how actually it serves different users who are accessing
    concurrently without any issues.
    Can any one please clarify me the doubts?
    Thanks in advance
    Goudham

    You can declare servlets to be multithreaded. Servlet
    containers are supposed to be able to instanciate a
    different instance of a servlet for every simultanious
    request if you tell it to in the servler descriptor.
    Tomcat does this, and I'm sure that WebLogic, BEA,
    and the Sun on do as well. That way you don't have
    to worry about multi-requests hitting one instance of
    a servlet object. This does add more overhead, but
    sometimes that's ok.To be more precise, you can declare servlets to be non-thread-safe (i.e. SingleThreadModel). This has the affect of preventing concurrent requests from being dispatched to the Servlet instance. Most (in my experience, all) Servlet containers provide the means by which you can set the maximum size of the instance pool for a SingleThreadModel servlet.
    Your best bet is to make your Servlet classes stateless and therefore inherently thread safe. To do this, simply don't define any non-final static or non-static fields and never change the state of those fields). This gives you the greatest scalability. If you must, then have your Servlet implement SingleThreadModel and define an appropriately sized instance pool.
    Of course this won't do anything directly to deal with helper classes and their thread safety issues.
    Chuck

  • EJB or not EJB?

    Hi all,
    I am fairly new to J2EE, and have recently been reading up on it, checking out the blueprints and the tutorials.
    I have recently finished a web app based on Microsoft technology (ASP and COM+), and we now wish to rewrite it the J2EE way.
    My dilema is that I cannot decide if I need to use EJB's, or if the application really warrants it. I could easily just build it in the Web container using JSP, Servlets and JavaBeans.
    Basically, the app. is just a glorified tool for clients to browse/search through a very large database (45 million entries). We have lots of behind the scenes functionality to provide page level access control that interfaces with a legacy CICS server, but essentially that about it. The majority of the front end will be implemented in applets.
    Any guidance would be gratefully received.

    As per my recommendation you should use EJB in your application because of the following factors:-
    1. You can separate the presentation logic, business logic and the data persistence logic of your application using EJB.
    2. For presentation always use JSP ,unless it is applet.It should contain least(not none) java code.
    3. The EJBs should be used for business logic and persistence logic. EJBs are broadly of 2 types i.e. Session beans and Entity Beans. Use Session beans for workflow management and Entity Beans for persistence management. Keep in mind that it is useful to use Enity beans only if reusability of the database access logic is required. Non reusable database logic can be coded in Session beans as using in it Entity beans will result in unwanted overheads.
    4. You can easily manage transactions using EJB, just by making a simple entry in the XML deployment desciptor.To accomplish this using JSP/Servlet you need to use java transactions API(UserTransaction and all).
    5. You donot need to write the database access logic in case of CMP entity beans.
    6. Container manages synchronisation of the data in the entity bean and the data in the database, thus it ensures that you always get latest data from the database. The synchronised is taken care by the callback methods defined in the EntityBean interface.
    7. In case of entity beans perfomance is optimised since Container is handling complex things like maintaining the pool of instances of Stateless Session beans and Entity Beans. The instances are swapped between different EJB object as and when required by the container. Also the instances are returned to the instance pool once they have been used.
    I feel that these few points can help you.

  • Resource Management on iAS

    I would like to know is iAS implementing Instance Pooling so as to
    reuseing the EJB instance?
    I ask this question because my application would use quite a lot of
    stateless session beans. Once the seesion bean finish it's job and
    suppose to be destroied, the overhead to instantiate the same session
    bean for other client would be counted.
    Regards,
    K.K.

    iAS has a default pool of 10 instances per bean. This of course is
    configurable to whatever sensible number you want.
    So the overhead is not a real problem provided your machine has the
    necessary resources (memory and disk)
    regards
    Han-Dat
    kkfung wrote:
    >
    I would like to know is iAS implementing Instance Pooling so as to
    reuseing the EJB instance?
    I ask this question because my application would use quite a lot of
    stateless session beans. Once the seesion bean finish it's job and
    suppose to be destroied, the overhead to instantiate the same session
    bean for other client would be counted.
    Regards,
    K.K.

  • Proxying EJB Container Request

    Hi,
    As part of our application we have an Applet that requires communication
    with EJB Container objects (Session beans, Message-driven beans ). Rather
    than executing RMI calls directly to the WLS Cluster we would like to proxy
    these requests through our web-server (IIS 5.0). I was wondering if
    there's a way for us to do this (route the EJB Container requests through
    the IIS webserver) without having to write Proxy Servlets?
    Any help would be appreciated!
    Regards,
    OA

    EnterTheDragon wrote:
    it is said *'EJB container maintains an instance pool.'*
    Is it a pool of Session beans ? is it a pool of Entity beans ?
    Can anybody please elaborate at this part what pool they talk about ?The part of the pool that holds things, would be the part that holds instances.

  • One Topic, One MDB, Multiple Deployments?

              I want to deploy EJBs representing multiple applications in a single server. Each
              of these applications has different reasons for wanting to receive messages sent
              to a particular single system-wide "event" topic. Ideally, I would develop a single
              MDB class that each application would deploy with its own message selector(s). This
              sounds like it should work -- but then I saw this in section 4.11 of the JMS Performance
              Guide:
              "Note: Topic-driven MDBs have vendor-specific semantics. In WebLogic, MDBs that listen
              on a
              topic currently receive one message per deployment [as of 6.0SP1]. If you have an
              MDB with
              multiple instances on a single server listening on a topic, it will receive only
              one copy of a
              published message regardless of the number of instances. If you have an MDB deployed
              across
              multiple machines listening on a topic, then each deployment will receive a copy
              of any published
              message on that topic. In other words, you will get multiple copies of the message
              distributed
              evenly once to each of your MDB deployments."
              Does this mean that I can't do what I described above?
              TIA,
              Mark
              

    I think WL is giving you the behavior you are looking for. The same MDB pool with multiple
              instances will only receive one copy of the message. Different MDB pools will each receive
              their own copy of the message, regardless of what server they exist on.
              For example,
              A1: MDB pool with selector x=a,
              A2: MDB pool with selector x=a
              B: MDB pool with selector x=b
              AB: MDB pool with selector x=a OR x=b
              publish msg property x = a:
              pool A1 will receive one copy of msg and give to one of its instances
              pool A2 will receive one copy of msg and give to one of its instances
              pool AB will receive one copy of msg and give to one of its instances
              pool B will NOT receive the msg
              Tom
              Mark Shaffer wrote:
              > I want to deploy EJBs representing multiple applications in a single server. Each
              > of these applications has different reasons for wanting to receive messages sent
              > to a particular single system-wide "event" topic. Ideally, I would develop a single
              > MDB class that each application would deploy with its own message selector(s). This
              > sounds like it should work -- but then I saw this in section 4.11 of the JMS Performance
              > Guide:
              >
              > "Note: Topic-driven MDBs have vendor-specific semantics. In WebLogic, MDBs that listen
              > on a
              > topic currently receive one message per deployment [as of 6.0SP1]. If you have an
              > MDB with
              > multiple instances on a single server listening on a topic, it will receive only
              > one copy of a
              > published message regardless of the number of instances. If you have an MDB deployed
              > across
              > multiple machines listening on a topic, then each deployment will receive a copy
              > of any published
              > message on that topic. In other words, you will get multiple copies of the message
              > distributed
              > evenly once to each of your MDB deployments."
              >
              > Does this mean that I can't do what I described above?
              >
              > TIA,
              >
              > Mark
              

  • Assertion Failed error in Load test.

    hi all
    i am getting the following error during load test when clicking on a button in a row in a table which extends
    ObjectArrayDataProvider.This error around 10 to 20 times for 1500 users load test after around half an hour.
    my ui: table tag contains the following tags nested in it
    <ui:tableRowGroup binding="#{view$ViewCommodityPrices.tableRowGroup1}" id="tableRowGroup1" rows="10"
    sourceData="#{view$ViewCommodityPrices.defaultTableDataProvider}" sourceVar="currentRow">
    <ui:tableColumn binding="#{view$ViewCommodityPrices.tableColumn1}" headerText="Customer Type" id="tableColumn1">
    <ui:staticText binding="#{view$ViewCommodityPrices.cust_type_statictext}" id="cust_type_statictext" text="#{currentRow.value['column1']}"/>
    </ui:tableColumn>
    SRVE0068E: Uncaught exception thrown in one of the service methods of the servlet: Faces Servlet. Exception thrown : javax.servlet.ServletException: Assertion Failed
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:907)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
         at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:194)
         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
         at mgeretail.gateway.SecurityFilter.doFilter(SecurityFilter.java:205)
         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
         at com.cj.gzipflt.GzipFilter.doFilter(GzipFilter.java:47)
         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
         at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:696)
         at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:641)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:475)
         at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
         at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:92)
         at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
         at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1425)
         at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:92)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
         at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
         at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
         at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
         at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
         at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
         at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:193)
         at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:725)
         at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:847)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)
    ---- Begin backtrace for Nested Throwables
    javax.faces.FacesException: Assertion Failed
         at com.sun.faces.util.Util.doAssert(Util.java:1353)
         at com.sun.faces.util.InstancePool.checkin(InstancePool.java:157)
         at com.sun.faces.el.ValueBindingImpl.checkinExpressionInfo(ValueBindingImpl.java:449)
         at com.sun.faces.el.ValueBindingImpl.getType(ValueBindingImpl.java:375)
         at com.sun.rave.web.ui.util.ConversionUtilities.convertValueToObject(ConversionUtilities.java:103)
         at com.sun.rave.web.ui.util.ConversionUtilities.convertRenderedValue(ConversionUtilities.java:614)
         at com.sun.rave.web.ui.component.HiddenField.getConvertedValue(HiddenField.java:98)
         at javax.faces.component.UIInput.validate(UIInput.java:638)
         at javax.faces.component.UIInput.executeValidate(UIInput.java:849)
         at javax.faces.component.UIInput.processValidators(UIInput.java:412)
         at com.sun.rave.web.ui.component.TableRowGroup.iterateTableColumnChildren(TableRowGroup.java:2069)
         at com.sun.rave.web.ui.component.TableRowGroup.iterate(TableRowGroup.java:1990)
         at com.sun.rave.web.ui.component.TableRowGroup.processValidators(TableRowGroup.java:1720)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIForm.processValidators(UIForm.java:170)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:946)
         at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:373)
         at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:80)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:220)
         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:91)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:907)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
         at com.sun.rave.web.ui.util.UploadFilter.doFilter(UploadFilter.java:194)
         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
         at mgeretail.gateway.SecurityFilter.doFilter(SecurityFilter.java:205)
         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
         at com.cj.gzipflt.GzipFilter.doFilter(GzipFilter.java:47)
         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
         at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:696)
         at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:641)
         at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:475)
         at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
         at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:92)
         at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744)
         at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1425)
         at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:92)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
         at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
         at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
         at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
         at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
         at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
         at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
         at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:193)
         at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:725)
         at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:847)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)

    Upgrade to 1.1_02 [1]. The instance pool stuff was removed in that release.
    [1] https://javaserverfaces.dev.java.net/servlets/ProjectDocumentList?folderID=5225&expandFolder=5225&folderID=5222

Maybe you are looking for