Jbo.doconnectionpooling=true

I have a big problem with jbo.doconnectionpooling=true. In JDeveloper 9.0.3.4 (and also 9.0.5.2) when i turn this parameter on for my root application module (AM), then in my web application each request does Activate and Passivate operations on every AM instance usage (even if the AM pool size is sufficient to hold the active instance and jbo.dofailover=false). I dont post any data to database before commit, but between consequtive requests some or all state in BC Java layer (inserted, current rows, changed attribute values) of my VOs with jbo.doconnectionpooling=true are forgotten.
Reason why I need this so critically is that i have 9 separate applications, that each may have up to 1000 concurrent users. To make this configuration most performant, I'd like to have AM pools of 1000 instances. Without jbo.doconnectionpooling=true this would need potentially 9000 open connections to DB, but my service provider doesnt allow more than 1000 (and is complaining already on that). JDBC connection doesnt hold any uncommitted state for my application, so I decided to use jbo.doconnectionpooling=true, but unfortunately it behaves in my opinion not as stated in documentation.
Best Regards!
Mihkel Nõges
AS Cell Network
Estonia

Example BC log:
[537] Diagnostic Properties: Timing:false Functions:false Linecount:true Threshold:6
[538] Column count: 50
[539] ViewObject close prepared statements...
[540] ViewObject : Created new QUERY statement
[541] SELECT OppekavaVer.ID,         OppekavaVer.VERSIOON_NR,         OppekavaVer.OPPEKAVA_ID,          OppekavaVer.NIMETUS,         OppekavaVer.NIMETUS_ENG,          OppekavaVer.KVALIFIKATSIOON_ID,         OppekavaVer.KOGUMAHT,          OppekavaVer.PRAKTIKA_MAHT,         OppekavaVer.MAHU_MOOTYHIK_ID,          OppekavaVer.NOMINAALKESTVUS,         OppekavaVer.EESMARGID,          OppekavaVer.VASTUVOTUTINGIMUSED,         OppekavaVer.OPPETOO_KORRALDUS,          OppekavaVer.PRAKTIKA_VOIMALUSED,         OppekavaVer.ON_OSAKOORMUS,          OppekavaVer.OPPEJOUDUDE_KVALIFIKATSIOON,         OppekavaVer.ISCED_KOOD,          OppekavaVer.ON_ASENDATUD,         OppekavaVer.MUUTM_ARV,          OppekavaVer.MUUTJA,         OppekavaVer.MUUTM_AEG,          OppekavaVer.HARIDUSTASE_ID,         OppekavaVer.OPPEASUTUS_ID,          OppekavaVer.STANDARDID,         OppekavaVer.LOPETAMISE_TINGIMUSED,          OppekavaVer.ISCED_TASE,         OppekavaVer.NIMETUS_OTSING,          OppekavaVer.NOMINAALKESTVUS_KUUD,         Oppekava.ID  AS ID1,         Oppekava.KOOD,         Oppekava.OPPEASUTUS_ID  AS OPPEASUTUS_ID1,         Oppekava.ON_RIIKLIK_OPPEKAVA,          Oppekava.OPPEKAVA_KOOD,         OLEKUD.OKV_STAATUS(OppekavaVer.ID)  AS STAATUS,         Oppeasutus.NIMETUS_SHORT,         Oppeasutus.ID  AS ID2,         OppekavaVer.VASTUVOTU_OLEK,         OppekavaVer.AVAMISE_KUUP,          OppekavaVer.SULGEMISE_KUUP,         (select ms.syndmuse_aeg  from koolitusluba kl inner join menetlus                 m on  kl.ID=m.KOOLITUSLUBA_ID inner join menetlus_syndmus              ms    on   m.ID=ms.MENETLUS_ID and ms.OMISTATUD_OLEK=12570            where    OppekavaVer.OPPEKAVA_ID=kl.OPPEKAVA_ID union     select          ms.syndmuse_aeg     from menetlus m inner  join    menetlus_syndmus           ms on m.ID=ms.MENETLUS_ID      and    ms.OMISTATUD_OLEK=12570       where   OppekavaVer.ID=m.OPPEKAVA_VER_ID     and not exists(select  * from koolitusluba where oppekava_id=OppekavaVer.OPPEKAVA_ID))  AS REGISTREERIMISE_AEG FROM OPPEKAVA_VER OppekavaVer, OPPEKAVA Oppekava, OPPEASUTUS Oppeasutus WHERE OppekavaVer.OPPEKAVA_ID = Oppekava.ID AND OppekavaVer.OPPEASUTUS_ID = Oppeasutus.ID(+) AND (OppekavaVer.OPPEASUTUS_ID=? and OppekavaVer.VERSIOON_NR=(select max(versioon_nr) from oppekava_ver okv2 where okv2.oppekava_id=Oppekava.id)) ORDER BY OppekavaVer.NIMETUS ASC
[542] Binding param 1: 1014
[543] Column count: 9
[544] OracleSQLBuilder Executing Select on: OPPEASUTUS (false)
[545] Built select: 'SELECT ID, NIMETUS, KL_TYYP, REG_NR, KL_OMANDIVORM, NIMETUS_SHORT FROM OPPEASUTUS Oppeasutus'
[546] Executing FAULT-IN...SELECT ID, NIMETUS, KL_TYYP, REG_NR, KL_OMANDIVORM, NIMETUS_SHORT FROM OPPEASUTUS Oppeasutus WHERE ID=:1
[547] Column count: 9
[548] ViewObject close prepared statements...
[549] ViewObject : Created new QUERY statement
[550] SELECT Oppeasutus.ID,         Oppeasutus.NIMETUS,         Oppeasutus.KL_TYYP,         Oppeasutus.KL_OMANDIVORM,         Oppeasutus.REG_NR,         Oppeasutus.NIMETUS_SHORT FROM OPPEASUTUS Oppeasutus WHERE (Oppeasutus.ID = :1) ORDER BY Oppeasutus.NIMETUS
[551] Binding param 1: 1014
[552] DefaultConnectionStrategy is disconnecting an application module connection
[553] Database state was detected while disconnecting the application module's connection
[554] Passivating the application module state.
[555] **PCollManager.resolveName** tabName=PS_TXN
[556] Getting a connection for internal use...
[557]    Creating internal connection...
[558] Trying connection: DataSource='com.evermind.sql.OrionCMTDataSource@1c5'...
[559] <AM MomVer="0">
   <cd/>
   <TXN Def="0" New="0" Lok="2"/>
   <VO>
      <VO ac="0" Def="ehis.ok.da.OppeasutuseNimetus" Name="OppeasutuseNimetus"/>
      <VO It="1" Sz="100" St="0" ac="0" Def="ehis.ok.da.OppekavaVersioonid" Name="OppekavaVersioonidOtsing">
         <Wh>
            <![CDATA[OppekavaVer.OPPEASUTUS_ID=? and OppekavaVer.VERSIOON_NR=(select max(versioon_nr) from oppekava_ver okv2 where okv2.oppekava_id=Oppekava.id)]]>
         </Wh>
         <Or>
            <![CDATA[OppekavaVer.NIMETUS ASC]]>
         </Or>
         <args ct="1">
            <arg>
               <![CDATA[1014]]>
            </arg>
         </args>
         <Key>
            <![CDATA[00030000000433333838000000043333383800000003C20B0F]]>
         </Key>
      </VO>
   </VO>
</AM>
[560] **insert** id=1, parid=-1, collid=38612, keyArr.len=-1, cont.len=970
[561]    stmt: begin insert into "PS_TXN" values (:1, :2, :3, empty_blob(), sysdate) returning content into :4; end;
[562] **commit** #pending ops=1
[563] **insert** id=-1, parid=0, collid=38612, keyArr.len=-1, cont.len=665
[564]    stmt: begin insert into "PS_TXN" values (:1, :2, :3, empty_blob(), sysdate) returning content into :4; end;
[565] **commit** #pending ops=1
[566] OppekavaVersioonidOtsing notify ROLLBACK ...
[567] Clearing VO cache for OppekavaVersioonidOtsing
[568] Clear QueryCollection in cache...
[569] OppeasutuseNimetus notify ROLLBACK ...
[570] Clearing VO cache for OppeasutuseNimetus
[571] Clear QueryCollection in cache...
[572] OppeasutuseNimetus_0_findByKey notify ROLLBACK ...
[573] Clearing VO cache for OppeasutuseNimetus_0_findByKey
[574] Clear QueryCollection in cache...
[575] Clearing EO cache for ehis.ok.bo.OppekavaVer
[576] Clearing VO cache for OppekavaVersioonid
... Lots of Clearing VO caches
[830] Resetting AM=EhakAM
[831] ViewObject close prepared statements...
... Lots of closing prepared statements...
[911] DefaultConnectionStrategy is disconnecting an application module connection
[912] *** closing jdbc connection now **** ([Connection : com.evermind.sql.OrionCMTConnection@224])
[913] Reusing a cached session application module instance
[914] DefaultConnectionStrategy is re-establishing an application module connection
[915] Resetting AM=EhisOkModule
[916] Trying connection: DataSource='com.evermind.sql.OrionCMTDataSource@1c5'...
[917] Successfully logged in
[918] JDBCDriverVersion: 9.2.0.5.0
[919] DatabaseProductName: Oracle
[920] DatabaseProductVersion: Oracle9i Release 9.2.0.4.0 - Production JServer Release 9.2.0.4.0 - Production
[921] Propertymanager: skipping reload of file and system based properties
[922] {{ begin Loading BC4J properties
[923] -----------------------------------------------------------
[924] BC4J Property jbo.default.language='et' -->(MetaObjectManager) from System Default
[925] BC4J Property jbo.default.country='EE' -->(MetaObjectManager) from System Default
[926] BC4J Property DeployPlatform='LOCAL' -->(SessionImpl) from Client Environment
[927] Skipping empty Property ConnectionMode from System Default
[928] Skipping empty Property HostName from System Default
[929] Skipping empty Property ConnectionPort from System Default
[930] BC4J Property jbo.locking.mode='optimistic' -->(MetaObjectManager) from Client Environment
[931] Skipping empty Property ApplicationPath from System Default
[932] BC4J Property AppModuleJndiName='ehis.ok.da.EhisOkModule' -->(SessionImpl) from Client Environment
[933] BC4J Property java.naming.security.principal='37009232731' -->(SessionImpl) from Client Environment
[934] Skipping empty Property java.naming.security.credentials from System Default
[935] Skipping empty Property jbo.user.principal from System Default
[936] Skipping empty Property jbo.object.marshaller from System Default
[937] BC4J Property jbo.use.pers.coll='false' -->(SessionImpl) from System Default
[938] BC4J Property jbo.pers.max.rows.per.node='70' -->(SessionImpl) from System Default
[939] BC4J Property jbo.pers.max.active.nodes='30' -->(SessionImpl) from System Default
[940] Skipping empty Property jbo.pcoll.mgr from System Default
[941] BC4J Property jbo.txn_table_name='PS_TXN' -->(SessionImpl) from System Default
[942] BC4J Property jbo.txn_seq_name='PS_TXN_seq' -->(SessionImpl) from System Default
[943] BC4J Property jbo.control_table_name='PCOLL_CONTROL' -->(MetaObjectManager) from System Default
[944] BC4J Property jbo.stringmanager.factory.class='use_default' -->(SessionImpl) from System Default
[945] BC4J Property jbo.fetch.mode='AS.NEEDED' -->(MetaObjectManager) from System Default
[946] BC4J Property jbo.323.compatible='false' -->(MetaObjectManager) from System Default
[947] Skipping empty Property JBODynamicObjectsPackage from System Default
[948] BC4J Property MetaObjectContextFactory='oracle.jbo.mom.xml.DefaultMomContextFactory' -->(MetaObjectManager) from System Default
[949] BC4J Property jbo.load.components.lazily='false' -->(MetaObjectManager) from System Default
[950] BC4J Property MetaObjectContext='oracle.jbo.mom.xml.XMLContextImpl' -->(MetaObjectManager) from System Default
[951] BC4J Property java.naming.factory.initial='oracle.jbo.common.JboInitialContextFactory' -->(SessionImpl) from Client Environment
[952] BC4J Property IsLazyLoadingTrue='true' -->(MetaObjectManager) from /oracle/jbo/server/jboserver.properties resource
[953] BC4J Property ActivateSharedDataHandle='false' -->(MetaObjectManager) from System Default
[954] Skipping empty Property HandleName from System Default
[955] Skipping empty Property Factory-Substitution-List from System Default
[956] BC4J Property jbo.project='OK_BC4J' -->(Configuration) from Client Environment
[957] BC4J Property jbo.max.cursors='50' -->(MetaObjectManager) from System Default
[958] BC4J Property jbo.dofailover='false' -->(Configuration) from Client Environment
[959] BC4J Property jbo.doconnectionpooling='true' -->(Configuration) from Client Environment
[960] BC4J Property jbo.recyclethreshold='20' -->(Configuration) from Client Environment
[961] BC4J Property jbo.ampool.dynamicjdbccredentials='false' -->(Configuration) from Client Environment
[962] BC4J Property jbo.ampool.resetnontransactionalstate='true' -->(SessionImpl) from System Default
[963] BC4J Property jbo.ampool.sessioncookiefactoryclass='oracle.jbo.http.HttpSessionCookieFactory' -->(Configuration) from Client Environment
[964] BC4J Property jbo.ampool.connectionstrategyclass='oracle.jbo.common.ampool.DefaultConnectionStrategy' -->(Configuration) from System Default
[965] BC4J Property jbo.ampool.maxpoolsize='2147483647' -->(Configuration) from System Default
[966] BC4J Property jbo.ampool.initpoolsize='0' -->(Configuration) from System Default
[967] BC4J Property jbo.ampool.monitorsleepinterval='600000' -->(Configuration) from System Default
[968] BC4J Property jbo.ampool.minavailablesize='10' -->(Configuration) from Client Environment
[969] BC4J Property jbo.ampool.maxavailablesize='50' -->(Configuration) from Client Environment
[970] BC4J Property jbo.ampool.maxinactiveage='600000' -->(Configuration) from System Default
[971] BC4J Property jbo.ampool.doampooling='true' -->(Configuration) from System Default
[972] BC4J Property jbo.passivationstore='null' -->(MetaObjectManager) from System Default
[973] BC4J Property jbo.saveforlater='false' -->(SessionImpl) from System Default
[974] BC4J Property jbo.snapshotstore.undo='persistent' -->(SessionImpl) from System Default
[975] BC4J Property jbo.maxpassivationstacksize='10' -->(SessionImpl) from System Default
[976] BC4J Property jbo.txn.handleafterpostexc='false' -->(SessionImpl) from System Default
[977] BC4J Property jbo.maxpoolcookieage='-1' -->(Configuration) from System Default
[978] BC4J Property PoolClassName='oracle.jbo.common.ampool.ApplicationPoolImpl' -->(Configuration) from System Default
[979] BC4J Property jbo.maxpoolsize='2147483647' -->(Configuration) from System Default
[980] BC4J Property jbo.initpoolsize='0' -->(Configuration) from System Default
[981] BC4J Property jbo.poolrequesttimeout='30000' -->(Configuration) from System Default
[982] BC4J Property jbo.poolmonitorsleepinterval='600000' -->(Configuration) from System Default
[983] BC4J Property jbo.poolminavailablesize='5' -->(Configuration) from System Default
[984] BC4J Property jbo.poolmaxavailablesize='25' -->(Configuration) from System Default
[985] BC4J Property jbo.poolmaxinactiveage='600000' -->(Configuration) from System Default
[986] BC4J Property RELEASE_MODE='Stateful' -->(MetaObjectManager) from System Default
[987] BC4J Property jbo.assoc.consistent='true' -->(MetaObjectManager) from System Default
[988] BC4J Property jbo.viewlink.consistent='false' -->(MetaObjectManager) from /oracle/jbo/server/jboserver.properties resource
[989] BC4J Property jbo.passivation.TrackInsert='true' -->(MetaObjectManager) from System Default
[990] Skipping empty Property jbo.ViewCriteriaAdapter from System Default
[991] BC4J Property jbo.SQLBuilder='Oracle' -->(MetaObjectManager) from /oracle/jbo/server/jboserver.properties resource
[992] BC4J Property jbo.ConnectionPoolManager='oracle.jbo.server.ConnectionPoolManagerImpl' -->(MetaObjectManager) from System Default
[993] BC4J Property jbo.TypeMapEntries='Oracle' -->(MetaObjectManager) from /oracle/jbo/server/jboserver.properties resource
[994] Skipping empty Property jbo.sql92.JdbcDriverClass from System Default
[995] BC4J Property jbo.sql92.LockTrailer='FOR UPDATE' -->(MetaObjectManager) from System Default
[996] BC4J Property jbo.jdbc.trace='false' -->(MetaObjectManager) from System Default
[997] BC4J Property jbo.sql92.DbTimeQuery='select sysdate from dual' -->(MetaObjectManager) from System Default
[998] BC4J Property oracle.jbo.defineColumnLength='as_chars' -->(MetaObjectManager) from System Default
[999] Skipping empty Property jbo.tmpdir from System Default
[1000] Skipping empty Property jbo.server.internal_connection from System Default
[1001] Skipping empty Property SessionClass from System Default
[1002] Skipping empty Property TransactionFactory from System Default
[1003] BC4J Property jbo.debugoutput='file' -->(Diagnostic) from System Property
[1004] BC4J Property jbo.debug.prefix='DBG: ' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
[1005] BC4J Property jbo.logging.show.timing='false' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
[1006] BC4J Property jbo.logging.show.function='false' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
[1007] BC4J Property jbo.logging.show.level='false' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
[1008] BC4J Property jbo.logging.show.linecount='true' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
[1009] BC4J Property jbo.logging.trace.threshold='6' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
[1010] BC4J Property jbo.jdbc.driver.verbose='false' -->(Diagnostic) from System Default
[1011] Skipping empty Property oracle.home from System Default
[1012] Skipping empty Property oc4j.name from System Default
[1013] BC4J Property jbo.ejb.txntimeout='1830' -->(SessionImpl) from System Default
[1014] BC4J Property jbo.ejb.txntype='global' -->(SessionImpl) from System Default
[1015] BC4J Property jbo.ejb.txn.disconnect_on_completion='false' -->(SessionImpl) from System Default
[1016] Skipping empty Property oracle.jbo.schema from System Default
[1017] BC4J Property jbo.xml.validation='false' -->(MetaObjectManager) from System Default
[1018] BC4J Property ord.RetrievePath='ordDeliverMedia' -->(MetaObjectManager) from System Default
[1019] BC4J Property ord.HttpMaxMemory='102400' -->(MetaObjectManager) from System Default
[1020] Skipping empty Property ord.HttpTempDir from System Default
[1021] BC4J Property ord.wmp.classid='clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95' -->(MetaObjectManager) from System Default
[1022] BC4J Property ord.qp.classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' -->(MetaObjectManager) from System Default
[1023] BC4J Property ord.rp.classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA' -->(MetaObjectManager) from System Default
[1024] BC4J Property ord.wmp.codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701' -->(MetaObjectManager) from System Default
[1025] BC4J Property ord.qp.codebase='http://www.apple.com/qtactivex/qtplugin.cab' -->(MetaObjectManager) from System Default
[1026] Skipping empty Property ord.rp.codebase from System Default
[1027] BC4J Property ord.wmp.plugins.page='http://www.microsoft.com/isapi/redir.dll?prd=windows&sbp=mediaplayer&ar=Media&sba=Plugin&' -->(MetaObjectManager) from System Default
[1028] BC4J Property ord.qp.plugins.page='http://www.apple.com/quicktime/download/' -->(MetaObjectManager) from System Default
[1029] BC4J Property ord.rp.plugins.page='http://www.real.com/player/' -->(MetaObjectManager) from System Default
[1030] BC4J Property jbo.security.enforce='None' -->(SessionImpl) from System Default
[1031] BC4J Property jbo.security.loginmodule='oracle.security.jazn.tools.Admintool' -->(SessionImpl) from System Default
[1032] BC4J Property jbo.server.useNullDbTransaction='false' -->(SessionImpl) from System Default
[1033] Copying unknown Client property (jbo.applicationmoduleclassname='ehis.ok.da.EhisOkModule') to session
[1034] Copying unknown Client property (ApplicationName='ehis.ok.da.EhisOkModule') to session
[1035] Copying unknown Client property (JDBCDataSource='jdbc/OKREGDS') to session
[1036] Copying unknown Client property (jbo.jdbc.connectstring='jdbc/OKREGDS') to session
[1037] Copying unknown Client property (jbo.jndi.use_default_context='true') to session
[1038] Copying unknown Client property (DBconnection='jdbc/OKREGDS') to session
[1039] WARNING: Unused property: LC='Calling Function' found in /oracle/jbo/common/Diagnostic.properties resource
[1040] }} finished loading BC4J properties
[1041] -----------------------------------------------------------

Similar Messages

  • Passivation problem when jbo.doconnectionpooling=true

    Using jdev 10.1.3.4 with jsf/adf bc. We frequently see the row currency error due to the fact that our ps_txn table 'fills up' very quickly. When the rows in ps_txn are deleted manually or via the bc4j sql script the row currency problem goes away. We've scheduled the bc4j sql script to run once daily, when there are no users on the system. However, this doesn't seem to be enough to keep the number of rows in ps_txn to a minimum.
    As I understand it after reading the documentation and various threads in this forum, that sql script is really designed to clean out rows in ps_txn that are not cleaned up automatically by the bc4j mechanism due to something like an unexpected app server shutdown and things like that.
    According to the documentation - "Under normal circumstances, the ADF state management facility provides automatic cleanup of the passivation snapshot records. When a passivation record is saved to the database on behalf of a session cookie, as described above, this passivation record gets a new, unique snapshot ID. The passivation record with the previous snapshot ID used by that same session cookie is
    deleted as part of the same transaction. In this way, assuming no server failures, there will only ever be a single passivation snapshot record per active end-user session."
    Our app module is configured using jbo.doconnectionpooling=true. For testing purposes, I've created a two page application. The 'first' page simply has a button which navigates to a second page in which a table of data is displayed via a read only view object. I've found that by simply navigating back and forth between these two pages, a new row is written to the ps_txn each time i navigate between the two pages in the same session. I'm positive that i'm the only user on the system during testing, so I know that these rows that are being added to ps_txn cannot be the result of another user using the system at the same time as me. I've found that after just several minutes of bouncing around in the application as many as a hundred rows can be inserted into the ps_txn table. This is with just one user in the application. Obviously, with multiple users in the application at the same time, the ps_txn table is filling up way too fast as it seems that the 'built in' adf mechanism which is supposed to perform automatic cleanup isn't working properly. Therefore, we frequently encounter the row currency exception because of the number of rows in ps_txn.
    I mentioned that our app module is configured with the jbo.doconnectionpooling property set to 'true'. This is because our priority is to keep the number of connections to a minimum. However, for testing purposes, I set that property to false to see the behavior. With that property set to false, bouncing back and forth between the two pages mentioned above doesn't ever result in a row being written to the ps_txn table.
    Does anyone have any ideas as to why the ps_txn table is filling up so fast in the above scenario when jbo.doconnectionpooling=true? The automatic cleanup mechanism of the adf framework does not seem to be functioning properly. Thanks for any help on this.
    Edited by: user8881206 on May 6, 2010 6:41 AM

    I wanted to update this thread with some more findings. I still need help in figuring out why the passivation/activation mechanism is not deleting records from ps_txn in the same user session.
    I followed Didier's advice (Passivation table ps_txn not being cleaned up and tested the activation/passivation in the business component browser. This seemed to work fine, as I could see that a row was written/passivated to ps_txn when I selected Save Transaction State and when I selected Restore Transaction State from the menu that row was deleted from ps_txn.
    I've also overridden the activateState and passivateState methods in the app module to see if they were invoked as I ran my application:
    protected void activateState(Element element) {
    System.out.println("activate state called");
    super.activateState(element);
    protected void passivateState(Document document, Element element) {
    System.out.println("passivate state called");
    super.passivateState(document, element);
    When I run the application, I can see that both these methods are being invoked, but the passivated row(s) are not being deleted from ps_txn for my user session. The passivation continues to write new rows to ps_txn for my session without deleting any of the other rows from the same session. This is resulting in this table filling up way too fast and ultimately causiing the row currency issue. Anyone have any ideas of what's causing multiple rows to be written to ps_txn for the same user session? Thanks for any help.

  • Understanding jbo.doconnectionpooling

    We're using adf with jdev 11g. I have two pages, page A and page B. Page A has an Add button, which when clicked will fire this code in it's backing bean to create/insert a new row, which is to be displayed on page B:
    OperationBinding createInsertOperationBinding = getBindings().getOperationBinding("CreateInsert");
    createInsertOperationBinding.execute();
    //Set the status of the new row to STATUS_NEW.
    DCIteratorBinding iteratorBinding = getBindings().findIteratorBinding("SecMenuManageApplicationIterator");
    PageGroupForManagePageGroupsViewImpl pageGroupVO = (PageGroupForManagePageGroupsViewImpl)iteratorBinding.getViewObject();
    PageGroupForManagePageGroupsViewRowImpl pageGroupCurrentRow = (PageGroupForManagePageGroupsViewRowImpl)pageGroupVO.first();
    pageGroupCurrentRow.setNewRowState(Row.STATUS_NEW);
    This code creates the new row and navigates to Page B, where we see the empty inputs for the new row.
    Page B has a Return button, which when clicked, fires code in it's backing bean to check for any pending changes. Basically, we're trying to enforce that if the
    user has a pending change on a page, they will be notified via a popup dialog and have the option to save or cancel before leaving. The check for pending changes is done by calling appmodule.isTransactionDirty.
    Initially, we had jbo.doconnectionpooling=false and things worked as we wanted. If the user clicked Return on page B without first committing this new record, isTransactionDirty() returned true and the popup dialog gave user the option to save or cancel the changes.
    We now have jbo.doconnectionpooling=true to try to minimize the number of db connections. The effect that this has had is that in the above scenario, when a new record is created/inserted in between going from Page A to Page B and the user clicks Return on Page B without committing, isTransactionDirty() now returns false, which means our popup dialog doesn't appear and give the user the option to commit or cancel these changes.
    With my limited understanding of setting jbo.doconnectionpooling=true, things are working as they should be expected. I suppose that with this setting, when user clicks Return button on page B and the code which calls isTransactionDirty() is now dealing with a 'different' transaction than the one that was used to create/insert the row, since the jdbc connection is essentially released on each request? So it seems that I can't rely on the isTransactionDirty() to determine if there is a new row that hasn't been committed. How else can I determine this with respect to the fact that jbo.doconnectionpooling=true? Thanks.

    Frank, thanks for your help. First of all, thanks for the tip on not using model impl classes in the backing bean. I've since removed that stuff from the backing bean and used the code you suggested to get the current row and set it's state. I found a couple things of interest while messing with this stuff:
    1) At one point, I tried to programmatically create/insert the new row in the app module:
    public void createInsertPageGroupRow(){
    PageGroupForManagePageGroupsViewImpl pageGroupVO = getManagePageGroups();
    PageGroupForManagePageGroupsViewRowImpl newPageGroup = (PageGroupForManagePageGroupsViewRowImpl)pageGroupVO.createRow();
    newPageGroup.setNewRowState(Row.STATUS_NEW);
    pageGroupVO.insertRow(newPageGroup);
    Subsequent calls to both the appmodule's isTransactionDirty() and BindingContext.getCurrent().getDefaultDataControl().isTransactionDirty() returned false.
    2) In another attempt (the one I ended up using), I executed the declarative Create/Insert method from the pageDef to create the new record. This time, I had the following results:
    Calling the appmodule's isTransactionDirty() returned false.
    Calling BindingContext.getCurrent().getDefaultDataControl().isTransactionDirty() returned true.
    Although I don't understand the difference between calling the appmodule's isTransactionDirty() and the one you suggested, I get the results I expect. Any ideas as to why using the declarative Create/Insert would result in a dirty transaction and creating/inserting programmatically would not? Thanks again.

  • Error at setting jbo.doconnectionpooling property.

    jbo.doconnectionpooling properti is false
    We want to set is to true.
    But app module configuration page this property is disabled. not allowed to change.
    We can't understand why ?
    is there any one faced and solved this situation before.
    Thanks.

    we found at pooling and scalibility tab.
    Thanks.

  • JBO-25200: Application module is not connected to a database

    Using JDev 9.0.3.
    I am receiving the following error when running my app through JDevloper's embedded OC4J:
    JBO-25200: Application module is not connected to a database.
    The error is happening when I execute the following line(s) of code:
    // holds the ViewObject RowSet
    RowSet accessTypeRS = PersonalInfoForm.getAccessTypeRS();
    if (accessTypeRS != null) {
    if (accessTypeRS.getEstimatedRowCount() > 0) {
    accessTypeRS.setRangeSize(-1);
    I receive the error when trying to execute the setRangeSize method. However, several prior attempts caused the error at the line above (getEstimatedRowCount)
    I am using connection pooling with a datasource and I'm retrieving an application module through the app module pool.
    jbo.doconnectionpooling is set to true.
    Disconnect ApplicationModule upon release is checked.
    Any ideas on why and how this is happening?
    Thanks!
    -Teri Kemple
    <AppModuleConfig name="PersonalInfoBcModuleLocal">
    <DsName>jdbc/arcavisionCoreDS</DsName>
    <DeployPlatform>LOCAL</DeployPlatform>
    <DsPasswd>adw02_www</DsPasswd>
    <jbo.doconnectionpooling>true</jbo.doconnectionpooling>
    <DsUserName>adw02_www</DsUserName>
    <JDBCDataSource>jdbc/arcavisionCoreDS</JDBCDataSource>
    <jbo.project>PersonalInfoBC0</jbo.project>
    <AppModuleJndiName>com.arca.personalinfo.bc.PersonalInfoBcModule</AppModuleJndiName>
    <ApplicationName>com.arca.personalinfo.bc.PersonalInfoBcModule</ApplicationName>
    </AppModuleConfig>
    <ConnectionDefinition name="jdbc/arcavisionCoreDS">
    <ENTRY name="DsPasswd" value="adw02_www"/>
    <ENTRY name="DsName" value="jdbc/arcavisionCoreDS"/>
    <ENTRY name="DsUserName" value="adw02_www"/>
    </ConnectionDefinition>

    Hi,
    Please post test steps using the BC4J tester or a test script that illustrates the issue against a simple table. Otherwise, it is extremeley difficult to debug/diagnose the issue on this forum.
    I have not seen this issue in any of the automated unit test scripts that exercise the ApplicationModule pooling.
    Thanks,
    JR

  • How to correctly set jbo.ampool.maxavailablesize and minavailablesize ?

    Hi all,
    On performance tuning of our ADF BC application, during load test I notice from application server (10.1.3.3) console that :
    Request Processing Time (seconds) 11.45
    Requests per second 7.91
    From the docs, it is recommended to set both jbo.ampool.maxavailablesize and minavailablesize to be mutiplication of the above values, i.e : 90.
    We have about 12 application modules (AM) in the application, no nested one.
    The question is :
    1) Should I set maxavailablesize and minavailablesize of ALL the 12 application modules to be 90 ?
    Or Should I set the values selectively based on which AMs mostly accessed by the application invoked by the user ?
    2) After I change the maxavailablesize and minavailablesize to be 90, I notice that just after the OC4J start and no user access the application yet, the database already has 20-30 sessions opened, Is this normal ?
    Thank you for your help,
    xtanto

    Can you be more specific about what docs are recommending this? I don't see why you would want the max available size and min available size to be the same thing, but I'd like to review what documentation you are referring to for context.
    max pool size puts an upper limit on the number of AM's that can be created in that pool. If you hit this limit users wait until one of the existing instances is freed up.
    max available size gives a desired maximum that the pool should shrink down to after a period of higher-than-expected load.
    the min available size is the lowest number that the AM pool can shrink down to when the system is less loaded.
    I'd need to see all of your pool parameters, understand if you're using JDBC datasource or URL connection, and understand whether you use jbo.doconnectionpooling= true or false to explain any given set of behavior.

  • JBO-25034 at rollback

    I am deploying my business components to OC4J as EJB (BMT) in JDeveloper 9i (Production). When testing, the transaction handling works fine only if I set the attributes of my entity and view objects to 'allways updateable'. Otherwise, if I set an attribute to 'updateable while new' commit is working but rollback of an insert action is only working as long as I haven't typed in any values. As soon as I type in any values in a new recordset and want to rollback I get following error message:
    oracle.jbo.RowNotFoundException: JBO-25034: Row of handle x is not found in RowSet xxxView
    What can I do to avoid this?
    Thanks,
    Matthias

    Hope this is not too much of it. This is the log just for the insert and rollback action.
    Thanks a lot,
    Matthias
    Oracle9iAS (9.0.2.0.0) Containers for J2EE initialized
    Diagnostics: (BC4J Bootstrap) Routing diagnostics to standard output (use -Djbo.debugoutput=silent to remove)
    [00] Diagnostic Properties: Timing:false Functions:false Linecount:true Threshold:6
    [01] Propertymanager: searching for file and system based properties
    [02] {{ begin Loading BC4J properties
    [03] -----------------------------------------------------------
    [04] CommonMessageBundle (language base) being initialized
    [05] Stringmanager using default locale: 'null'
    [06] BC4J Property jbo.default.language='en' -->(MetaObjectManager) from System Default
    [07] BC4J Property jbo.default.country='EN' -->(MetaObjectManager) from Client Environment
    [08] BC4J Property DeployPlatform='Ejb' -->(SessionImpl) from Client Environment
    [09] Skipping empty Property ConnectionMode from System Default
    [10] BC4J Property HostName='localhost' -->(SessionImpl) from Client Environment
    [11] BC4J Property ConnectionPort='-1' -->(SessionImpl) from Client Environment
    [12] BC4J Property jbo.locking.mode='pessimistic' -->(MetaObjectManager) from System Default
    [13] BC4J Property ApplicationPath='wvz_bc01EJB1' -->(SessionImpl) from Client Environment
    [14] BC4J Property AppModuleJndiName='wvz.server.bc.WvzModule' -->(SessionImpl) from Client Environment
    [15] BC4J Property java.naming.security.principal='admin' -->(SessionImpl) from Client Environment
    [16] Skipping empty Property java.naming.security.credentials from System Default
    [17] BC4J Property jbo.use.pers.coll='true' -->(SessionImpl) from System Default
    [18] BC4J Property jbo.pers.max.rows.per.node='70' -->(SessionImpl) from System Default
    [19] BC4J Property jbo.pers.max.active.nodes='30' -->(SessionImpl) from System Default
    [20] Skipping empty Property jbo.pcoll.mgr from System Default
    [21] BC4J Property jbo.stringmanager.factory.class='use_default' -->(SessionImpl) from System Default
    [22] BC4J Property jbo.fetch.mode='AS.NEEDED' -->(MetaObjectManager) from System Default
    [23] BC4J Property jbo.323.compatible='false' -->(MetaObjectManager) from System Default
    [24] Skipping empty Property JBODynamicObjectsPackage from System Default
    [25] BC4J Property MetaObjectContextFactory='oracle.jbo.mom.xml.DefaultMomContextFactory' -->(MetaObjectManager) from System Default
    [26] BC4J Property MetaObjectContext='oracle.jbo.mom.xml.XMLContextImpl' -->(MetaObjectManager) from System Default
    [27] BC4J Property java.naming.factory.initial='oracle.jbo.common.JboInitialContextFactory' -->(SessionImpl) from Client Environment
    [28] BC4J Property IsLazyLoadingTrue='true' -->(MetaObjectManager) from /oracle/jbo/server/jboserver.properties resource
    [29] BC4J Property ActivateSharedDataHandle='false' -->(MetaObjectManager) from System Default
    [30] Skipping empty Property HandleName from System Default
    [31] Skipping empty Property Factory-Substitution-List from System Default
    [32] Skipping empty Property jbo.project from System Default
    [33] BC4J Property jbo.max.cursors='50' -->(MetaObjectManager) from System Default
    [34] BC4J Property jbo.dofailover='true' -->(MetaObjectManager) from System Default
    [35] BC4J Property jbo.doconnectionpooling='true' -->(MetaObjectManager) from Client Environment
    [36] BC4J Property jbo.recyclethreshold='10' -->(MetaObjectManager) from System Default
    [37] BC4J Property jbo.ampool.dynamicjdbccredentials='true' -->(MetaObjectManager) from System Default
    [38] BC4J Property jbo.ampool.resetnontransactionalstate='true' -->(MetaObjectManager) from System Default
    [39] BC4J Property jbo.ampool.sessioncookiefactoryclass='oracle.jbo.common.ampool.DefaultSessionCookieFactory' -->(MetaObjectManager) from System Default
    [40] BC4J Property jbo.ampool.connectionstrategyclass='oracle.jbo.common.ampool.DefaultConnectionStrategy' -->(MetaObjectManager) from System Default
    [41] BC4J Property jbo.ampool.maxpoolsize='10' -->(MetaObjectManager) from Client Environment
    [42] BC4J Property jbo.ampool.initpoolsize='0' -->(MetaObjectManager) from System Default
    [43] BC4J Property jbo.ampool.monitorsleepinterval='600000' -->(MetaObjectManager) from System Default
    [44] BC4J Property jbo.ampool.minavailablesize='5' -->(MetaObjectManager) from System Default
    [45] BC4J Property jbo.ampool.maxavailablesize='2' -->(MetaObjectManager) from Client Environment
    [46] BC4J Property jbo.ampool.maxinactiveage='600000' -->(MetaObjectManager) from System Default
    [47] BC4J Property jbo.passivationstore='null' -->(MetaObjectManager) from System Default
    [48] BC4J Property RELEASE_MODE='Stateful' -->(MetaObjectManager) from System Default
    [49] BC4J Property jbo.maxpoolcookieage='-1' -->(MetaObjectManager) from System Default
    [50] BC4J Property PoolClassName='oracle.jbo.common.ampool.ApplicationPoolImpl' -->(MetaObjectManager) from System Default
    [51] BC4J Property jbo.maxpoolsize='10' -->(MetaObjectManager) from Client Environment
    [52] BC4J Property jbo.initpoolsize='0' -->(MetaObjectManager) from System Default
    [53] BC4J Property jbo.poolrequesttimeout='30000' -->(MetaObjectManager) from System Default
    [54] BC4J Property jbo.poolmonitorsleepinterval='600000' -->(MetaObjectManager) from System Default
    [55] BC4J Property jbo.poolminavailablesize='0' -->(MetaObjectManager) from Client Environment
    [56] BC4J Property jbo.poolmaxavailablesize='5' -->(MetaObjectManager) from Client Environment
    [57] BC4J Property jbo.poolmaxinactiveage='60000' -->(MetaObjectManager) from Client Environment
    [58] BC4J Property jbo.assoc.consistent='true' -->(MetaObjectManager) from System Default
    [59] BC4J Property jbo.viewlink.consistent='false' -->(MetaObjectManager) from System Default
    [60] BC4J Property jbo.passivation.TrackInsert='true' -->(MetaObjectManager) from System Default
    [61] Skipping empty Property jbo.ViewCriteriaAdapter from System Default
    [62] BC4J Property jbo.SQLBuilder='Oracle' -->(MetaObjectManager) from /oracle/jbo/server/jboserver.properties resource
    [63] BC4J Property jbo.ConnectionPoolManager='oracle.jbo.server.ConnectionPoolManagerImpl' -->(MetaObjectManager) from System Default
    [64] BC4J Property jbo.TypeMapEntries='Oracle' -->(MetaObjectManager) from /oracle/jbo/server/jboserver.properties resource
    [65] BC4J Property jbo.sql92.JdbcDriverClass='sun.jdbc.odbc.JdbcOdbcDriver' -->(MetaObjectManager) from System Default
    [66] BC4J Property jbo.jdbc.trace='false' -->(MetaObjectManager) from System Default
    [67] BC4J Property oracle.jbo.defineColumnLength='as_chars' -->(MetaObjectManager) from System Default
    [68] Skipping empty Property jbo.tmpdir from System Default
    [69] BC4J Property jbo.server.internal_connection='jdbc:oracle:thin:wvz/wvz@nb10:1521:sunrise' -->(MetaObjectManager) from Client Environment
    [70] Skipping empty Property SessionClass from System Default
    [71] Skipping empty Property TransactionFactory from System Default
    [72] BC4J Property jbo.debugoutput='console' -->(Diagnostic) from System Property
    [73] BC4J Property jbo.debug.prefix='DBG: ' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [74] BC4J Property jbo.logging.show.timing='false' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [75] BC4J Property jbo.logging.show.function='false' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [76] BC4J Property jbo.logging.show.level='false' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [77] BC4J Property jbo.logging.show.linecount='true' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [78] BC4J Property jbo.logging.trace.threshold='6' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [79] BC4J Property jbo.jdbc.driver.verbose='false' -->(Diagnostic) from System Default
    [80] BC4J Property jbo.ejb.txntimeout='1830' -->(SessionImpl) from System Default
    [81] BC4J Property jbo.ejb.txntype='global' -->(MetaObjectManager) from System Default
    [82] BC4J Property jbo.ejb.txn.disconnect_on_completion='false' -->(SessionImpl) from System Default
    [83] Skipping empty Property oracle.jbo.schema from System Default
    [84] BC4J Property jbo.xml.validation='false' -->(MetaObjectManager) from System Default
    [85] Skipping empty Property ord.HttpMaxMemory from System Default
    [86] Skipping empty Property ord.HttpTempDir from System Default
    [87] BC4J Property ord.wmp.classid='clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95' -->(MetaObjectManager) from System Default
    [88] BC4J Property ord.qp.classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' -->(MetaObjectManager) from System Default
    [89] BC4J Property ord.rp.classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA' -->(MetaObjectManager) from System Default
    [90] BC4J Property ord.wmp.codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701' -->(MetaObjectManager) from System Default
    [91] BC4J Property ord.qp.codebase='http://www.apple.com/qtactivex/qtplugin.cab' -->(MetaObjectManager) from System Default
    [92] Skipping empty Property ord.rp.codebase from System Default
    [93] BC4J Property ord.wmp.plugins.page='http://www.microsoft.com/isapi/redir.dll?prd=windows&sbp=mediaplayer&ar=Media&sba=Plugin&' -->(MetaObjectManager) from System Default
    [94] BC4J Property ord.qp.plugins.page='http://www.apple.com/quicktime/download/' -->(MetaObjectManager) from System Default
    [95] BC4J Property ord.rp.plugins.page='http://www.real.com/player/' -->(MetaObjectManager) from System Default
    [96] Copying unknown Client property (jbo.server.ejb.beantype='BeanManaged') to session
    [97] Copying unknown Client property (DtMiddleTierDeploymentProfile='wvz_bc01MiddleTier1.deploy') to session
    [98] Copying unknown Client property (DtDeploymentProfile='wvz_bc01EJB1.deploy') to session
    [99] Copying unknown Client property (jbo.server.ejb.vendor='1') to session
    [100] Copying unknown Client property (DtCommonDeploymentProfile='wvz_bc01Common1.deploy') to session
    [101] WARNING: Unused property: LC='Calling Function' found in /oracle/jbo/common/Diagnostic.properties resource
    [102] }} finished loading BC4J properties
    [103] -----------------------------------------------------------
    Diagnostics: (Properties (re)loaded) Routing diagnostics to standard output (use -Djbo.debugoutput=silent to remove)
    [104] Diagnostic Properties: Timing:false Functions:false Linecount:true Threshold:6
    [105] JavaVMVersion: 1.3.1_03-b03
    [106] JavaVMVendor: Sun Microsystems Inc.
    [107] JavaVMName: Java HotSpot(TM) Client VM
    [108] OperatingSystemName: Windows 2000
    [109] OperatingSystemVersion: 5.0
    [110] OperatingSystemUsername: schu
    [111] Jbo323Compatible Flag: false, str: false
    [112] Registered Oracle JDBC driver with BC4J Server
    [113] Exception java.lang.NoClassDefFoundError: oracle/jdeveloper/profiler/ProfilerAPI while loading Ojvm instrumentation: disabled
    [114] BC4J: Instrumentation disabled
    [115] Loading from /wvz/server/bc/bc.xml file
    [116] Loading from indvidual XML files
    [117] Loading the Containees for the Package 'wvz.server.bc.bc'.
    [118] Loading from /wvz/server/bc/WvzModule.xml file
    [119] Loading from /wvz/server/bc/StStatusView.xml file
    [120] ViewObjectImpl's default fetch mode = 0
    [121] Loading from /wvz/server/bc/StStatus.xml file
    [122] Loading Typemap entries from oracle.jbo.common.OracleTypeMapEntries
    [123] CSMessageBundle (language base) being initialized
    [124] OracleSQLBuilder reached getInterface
    [125] Oracle SQL Builder Version 3.2.0.0.0
    [126] Loading from /wvz/server/bc/StFinanzView.xml file
    [127] Loading from /wvz/server/bc/StFinanz.xml file
    [128] Loading from /wvz/server/bc/StTnuWvzView.xml file
    [129] Loading from /wvz/server/bc/StTnuWvz.xml file
    [130] Loading from /wvz/server/bc/StGemarkView.xml file
    [131] Loading from /wvz/server/bc/StGemark.xml file
    [132] Loading from /wvz/server/bc/StGemView.xml file
    [133] Loading from /wvz/server/bc/StGem.xml file
    [134] Loading from /wvz/server/bc/WzFlstView.xml file
    [135] Loading from /wvz/server/bc/WzFlst.xml file
    [136] Loading from /wvz/server/bc/WvzLogin.xml file
    [137] Loading from /wvz/server/bc/WzBestandView.xml file
    [138] Loading from /wvz/server/bc/WzBestand.xml file
    [139] Loading from /wvz/server/bc/WzVorView.xml file
    [140] Loading from /wvz/server/bc/WzVor.xml file
    [141] Loading from /wvz/server/bc/WzLageView.xml file
    [142] Loading from /wvz/server/bc/WzLage.xml file
    [143] Loading from /wvz/server/bc/WzTnuView.xml file
    [144] Loading from /wvz/server/bc/WzTnu.xml file
    [145] Loading from /wvz/server/bc/WzPersonView.xml file
    [146] Loading from /wvz/server/bc/WzPerson.xml file
    [147] Loading from /wvz/server/bc/WzNamenView.xml file
    [148] Loading from /wvz/server/bc/WzNamen.xml file
    [149] Loading from /wvz/server/bc/StAdrView.xml file
    [150] Loading from /wvz/server/bc/StAdr.xml file
    [151] Loading from /wvz/server/bc/WzFlstSearchView.xml file
    [152] Loading from /wvz/server/bc/StLkr.xml file
    [153] Loading from /wvz/server/bc/StWeaView.xml file
    [154] Loading from /wvz/server/bc/StWea.xml file
    [155] Loading from /wvz/server/bc/SearchEigentumView.xml file
    [156] Loading from /wvz/server/bc/StLkrView.xml file
    [157] Loading from /wvz/server/bc/WzFlstAllView.xml file
    [158] Loading from /wvz/server/bc/SearchKlassView.xml file
    [159] Loading from /wvz/server/bc/StOrfb.xml file
    [160] Loading from /wvz/server/bc/StOrfl.xml file
    [161] Loading from /wvz/server/bc/StOrf.xml file
    [162] Loading from /wvz/server/bc/SearchTnuView.xml file
    [163] Loading from /wvz/server/bc/WzTnuFa.xml file
    [164] Loading from /wvz/server/bc/SearchBuchungskView.xml file
    [165] Loading from /wvz/server/bc/StBuch.xml file
    [166] Loading from /wvz/server/bc/StGbb.xml file
    [167] Loading from /wvz/server/bc/SeachFlaecheView.xml file
    [168] Loading from /wvz/server/bc/WzOrfbAlbView.xml file
    [169] Loading from /wvz/server/bc/WzOrfbAlb.xml file
    [170] Loading from /wvz/server/bc/WzOrfFaView.xml file
    [171] Loading from /wvz/server/bc/WzOrfFa.xml file
    [172] Loading from /wvz/server/bc/WzOrflAlbView.xml file
    [173] Loading from /wvz/server/bc/WzOrflAlb.xml file
    [174] Loading from /wvz/server/bc/StOrfView.xml file
    [175] Loading from /wvz/server/bc/StOrfbView.xml file
    [176] Loading from /wvz/server/bc/StOrflView.xml file
    [177] Loading from /wvz/server/bc/WzTnuFaView.xml file
    [178] Loading from /wvz/server/bc/StBuchView.xml file
    [179] Loading from /wvz/server/bc/StGbbView.xml file
    [180] Loading from /wvz/server/bc/StFaView.xml file
    [181] Loading from /wvz/server/bc/StFa.xml file
    [182] Loading from /wvz/server/bc/FkWzBestandWzFlstLink.xml file
    [183] Loading from /wvz/server/bc/FkWzBestandWzFlstAssoc.xml file
    [184] Loading from /wvz/server/bc/FkWzVorWzFlstVorLink.xml file
    [185] Loading from /wvz/server/bc/FkWzVorWzFlstVorAssoc.xml file
    [186] Loading from /wvz/server/bc/FkWzLageWzFlstLink.xml file
    [187] Loading from /wvz/server/bc/FkWzLageWzFlstAssoc.xml file
    [188] Loading from /wvz/server/bc/FkWzTnuWzFlstLink.xml file
    [189] Loading from /wvz/server/bc/FkWzTnuWzFlstAssoc.xml file
    [190] Loading from /wvz/server/bc/FkWzPersonWzBestandLink.xml file
    [191] Loading from /wvz/server/bc/FkWzPersonWzBestandAssoc.xml file
    [192] Loading from /wvz/server/bc/FkWzNamenWzPersonLink.xml file
    [193] Loading from /wvz/server/bc/FkWzNamenWzPersonAssoc.xml file
    [194] Loading from /wvz/server/bc/FkWzPersonStAdrLink2.xml file
    [195] Loading from /wvz/server/bc/FkWzPersonStAdrAssoc2.xml file
    [196] Loading from /wvz/server/bc/FkWzOrfbAlbWzFlstLink.xml file
    [197] Loading from /wvz/server/bc/FkWzOrfbAlbWzFlstAssoc.xml file
    [198] Loading from /wvz/server/bc/FkWzOrfFaWzFlstLink.xml file
    [199] Loading from /wvz/server/bc/FkWzOrfFaWzFlstAssoc.xml file
    [200] Loading from /wvz/server/bc/FkWzOrflAlbWzFlstLink.xml file
    [201] Loading from /wvz/server/bc/FkWzOrflAlbWzFlstAssoc.xml file
    [202] Loading from /wvz/server/bc/FkWzTnuFaWzFlstLink.xml file
    [203] Loading from /wvz/server/bc/FkWzTnuFaWzFlstAssoc.xml file
    [204] Using DatabaseTransactionFactory implementation oracle.jbo.server.DatabaseTransactionFactory
    [205] Created root application module: 'wvz.server.bc.WvzModule'
    [206] Locale is: 'en_EN'
    [207] ViewObjectImpl.mUsePersColl is true
    [208] ViewObjectImpl.mDefaultMaxRowsPerNode is 70
    [209] ViewObjectImpl.mDefaultMaxActiveNodes is 30
    [210] DBTransactionImpl Max Cursors is 50
    [211] Oracle SQLBuilder: Registered driver: oracle.jdbc.driver.OracleDriver
    [212] Transaction timeout set to 1830 secs
    [213] Creating a new pool resource
    [214] Trying connection/2: url='jdbc:oracle:thin:@nb10:1521:sunrise' info='{password=wvz, user=wvz}' ...
    [215] Successfully logged in
    [216] JDBCDriverVersion: 9.0.1.2.0
    [217] DatabaseProductName: Oracle
    [218] DatabaseProductVersion: Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production With the Partitioning option JServer Release 9.0.1.1.1 - Production
    [219] ViewRowSetImpl's jbo.viewlink.consistent = false (0)
    [220] Loading from /wvz/server/bc/FkWzEigentumAendWzFlstLink.xml file
    [221] Loading from /wvz/server/bc/WzEigentumAendView.xml file
    [222] Loading from /wvz/server/bc/WzEigentumAend.xml file
    [223] Loading from /wvz/server/bc/FkWzEigentumAendWzFlstAssoc.xml file
    [224] Loading from /wvz/server/bc/FkWzLageFaWzFlstLink.xml file
    [225] Loading from /wvz/server/bc/WzLageFaView.xml file
    [226] Loading from /wvz/server/bc/WzLageFa.xml file
    [227] Loading from /wvz/server/bc/FkWzLageFaWzFlstAssoc.xml file
    [228] Loading from /wvz/server/bc/FkWzNubeWzFlstLink.xml file
    [229] Loading from /wvz/server/bc/WzNubeView.xml file
    [230] Loading from /wvz/server/bc/WzNube.xml file
    [231] Loading from /wvz/server/bc/FkWzNubeWzFlstAssoc.xml file
    [232] Loading from /wvz/server/bc/FkWzRueckWzFlstLink.xml file
    [233] Loading from /wvz/server/bc/WzRueckView.xml file
    [234] Loading from /wvz/server/bc/WzRueck.xml file
    [235] Loading from /wvz/server/bc/FkWzRueckWzFlstAssoc.xml file
    [236] Loading from /wvz/server/bc/FkWzTextWzFlstLink.xml file
    [237] Loading from /wvz/server/bc/WzTextView.xml file
    [238] Loading from /wvz/server/bc/WzText.xml file
    [239] Loading from /wvz/server/bc/FkWzTextWzFlstAssoc.xml file
    [240] Loading from /wvz/server/bc/FkWzVorWzFlstAktLink.xml file
    [241] Loading from /wvz/server/bc/FkWzVorWzFlstAktAssoc.xml file
    [242] Column count: 45
    [243] ViewObject : Created new QUERY statement
    [244] SELECT WzFlst.FLST, WzFlst.GEMARK, WzFlst.FINANZ, WzFlst.WEA, WzFlst.STATUS, WzFlst.BETR_VERTRAG, WzFlst.FW_ZUS, WzFlst.FLUR, WzFlst.FLURSTUCK, WzFlst.FLST_FLAE_ALB, WzFlst.ALB_DAT, WzFlst.PRZ, WzFlst.ENTST_JHR, WzFlst.FORTF_NR, WzFlst.FORTF_ART, WzFlst.L_FORT, WzFlst.LFORTF_NR, WzFlst.LFORTF_ART, WzFlst.AF, WzFlst.GELOESCHT, WzFlst.GELESEN, WzFlst.HISTORISCH, WvzLogin.FA, WvzLogin.FA_VON, WvzLogin.FA_NAME, StGemark.GEMARK AS GEMARK1, StGemark.GEMARK_NAME, StGemark.GEM, StGem.GEM AS GEM1, StGem.LKR, StGem.GEM_NAME FROM WVZ.WZ_FLST WzFlst, WVZ_LOGIN WvzLogin, WVZ.ST_GEMARK StGemark, WVZ.ST_GEM StGem WHERE WzFlst.GEMARK = StGemark.GEMARK and StGemark.GEM = StGem.GEM and StGemark.LKR = StGem.LKR and (StGemark.FA = WvzLogin.FA and StGemark.FA_VON = WvzLogin.FA_VON) ORDER BY WzFlst.FLST
    [245] [RangeRefreshEvent: WzFlstView start=0 count=1]
    [246] [NavigationEvent: WzFlstView From -1 to 0]
    [247] Loading from /wvz/server/bc/FkWzFlstStWeaAssoc.xml file
    [248] Loading from /wvz/server/bc/FkWzFlstStStatusAssoc.xml file
    [249] Loading from /wvz/server/bc/FkWzFlstStFinanzAssoc.xml file
    [250] Loading from /wvz/server/bc/FkWzFlstStGemarkAssoc.xml file
    [251] Loading from /wvz/server/bc/FkStGemarkStGemAssoc.xml file
    [252] Insert [InsertEvent: WzFlstView rowIndex=0 countB4=1 count=1]
    [253] [NavigationEvent: WzFlstView From -1 to 0]
    [254] [UpdateEvent: WzFlstView rowIndex=0 attrIndices=0]
    [255] EJBTxnHandler: Rolledback txn
    [256] Transaction timeout set to 1830 secs
    [257] WzFlstView notify ROLLBACK ...
    [258] Clearing VO cache for WzFlstView
    [259] Clear QueryCollection in cache...
    [260] WzBestand_FkWzBestandWzFlstAssoc_WzBestandView notify ROLLBACK ...
    [261] Clearing VO cache for WzBestand_FkWzBestandWzFlstAssoc_WzBestandView
    [262] Clear QueryCollection in cache...
    [263] WzEigentumAend_FkWzEigentumAendWzFlstAssoc_WzEigentumAendView notify ROLLBACK ...
    [264] Clearing VO cache for WzEigentumAend_FkWzEigentumAendWzFlstAssoc_WzEigentumAendView
    [265] Clear QueryCollection in cache...
    [266] WzLage_FkWzLageWzFlstAssoc_WzLageView notify ROLLBACK ...
    [267] Clearing VO cache for WzLage_FkWzLageWzFlstAssoc_WzLageView
    [268] Clear QueryCollection in cache...
    [269] WzLageFa_FkWzLageFaWzFlstAssoc_WzLageFaView notify ROLLBACK ...
    [270] Clearing VO cache for WzLageFa_FkWzLageFaWzFlstAssoc_WzLageFaView
    [271] Clear QueryCollection in cache...
    [272] WzNube_FkWzNubeWzFlstAssoc_WzNubeView notify ROLLBACK ...
    [273] Clearing VO cache for WzNube_FkWzNubeWzFlstAssoc_WzNubeView
    [274] Clear QueryCollection in cache...
    [275] WzOrfbAlb_FkWzOrfbAlbWzFlstAssoc_WzOrfbAlbView notify ROLLBACK ...
    [276] Clearing VO cache for WzOrfbAlb_FkWzOrfbAlbWzFlstAssoc_WzOrfbAlbView
    [277] Clear QueryCollection in cache...
    [278] WzOrfFa_FkWzOrfFaWzFlstAssoc_WzOrfFaView notify ROLLBACK ...
    [279] Clearing VO cache for WzOrfFa_FkWzOrfFaWzFlstAssoc_WzOrfFaView
    [280] Clear QueryCollection in cache...
    [281] WzOrflAlb_FkWzOrflAlbWzFlstAssoc_WzOrflAlbView notify ROLLBACK ...
    [282] Clearing VO cache for WzOrflAlb_FkWzOrflAlbWzFlstAssoc_WzOrflAlbView
    [283] Clear QueryCollection in cache...
    [284] WzRueck_FkWzRueckWzFlstAssoc_WzRueckView notify ROLLBACK ...
    [285] Clearing VO cache for WzRueck_FkWzRueckWzFlstAssoc_WzRueckView
    [286] Clear QueryCollection in cache...
    [287] WzText_FkWzTextWzFlstAssoc_WzTextView notify ROLLBACK ...
    [288] Clearing VO cache for WzText_FkWzTextWzFlstAssoc_WzTextView
    [289] Clear QueryCollection in cache...
    [290] WzTnu_FkWzTnuWzFlstAssoc_WzTnuView notify ROLLBACK ...
    [291] Clearing VO cache for WzTnu_FkWzTnuWzFlstAssoc_WzTnuView
    [292] Clear QueryCollection in cache...
    [293] WzTnuFa_FkWzTnuFaWzFlstAssoc_WzTnuFaView notify ROLLBACK ...
    [294] Clearing VO cache for WzTnuFa_FkWzTnuFaWzFlstAssoc_WzTnuFaView
    [295] Clear QueryCollection in cache...
    [296] WzVor_FkWzVorWzFlstAktAssoc_WzVorView notify ROLLBACK ...
    [297] Clearing VO cache for WzVor_FkWzVorWzFlstAktAssoc_WzVorView
    [298] Clear QueryCollection in cache...
    [299] WzVor1_FkWzVorWzFlstVorAssoc_WzVorView notify ROLLBACK ...
    [300] Clearing VO cache for WzVor1_FkWzVorWzFlstVorAssoc_WzVorView
    [301] Clear QueryCollection in cache...
    [302] Clearing EO cache for wvz.server.bc.StGemark
    [303] Clearing VO cache for StGemarkView
    [304] Clear QueryCollection in cache...
    [305] Clearing VO cache for WzFlstView
    [306] Clear QueryCollection in cache...
    [307] Clearing VO cache for WzFlstSearchView
    [308] Clear QueryCollection in cache...
    [309] Clearing EO cache for wvz.server.bc.WzBestand
    [310] Clearing VO cache for WzBestandView3
    [311] Clear QueryCollection in cache...
    [312] Clearing VO cache for SearchBuchungskView
    [313] Clear QueryCollection in cache...
    [314] Clearing VO cache for WzBestand_FkWzBestandWzFlstAssoc_WzBestandView
    [315] Clear QueryCollection in cache...
    [316] Clearing EO cache for wvz.server.bc.WzVor
    [317] Clearing VO cache for WzVorView
    [318] Clear QueryCollection in cache...
    [319] Clearing VO cache for WzVor_FkWzVorWzFlstAktAssoc_WzVorView
    [320] Clear QueryCollection in cache...
    [321] Clearing VO cache for WzVor1_FkWzVorWzFlstVorAssoc_WzVorView
    [322] Clear QueryCollection in cache...
    [323] Clearing EO cache for wvz.server.bc.WzOrfbAlb
    [324] Clearing VO cache for WzOrfbAlbView
    [325] Clear QueryCollection in cache...
    [326] Clearing VO cache for WzOrfbAlb_FkWzOrfbAlbWzFlstAssoc_WzOrfbAlbView
    [327] Clear QueryCollection in cache...
    [328] Clearing EO cache for wvz.server.bc.WzOrfFa
    [329] Clearing VO cache for WzOrfFaView
    [330] Clear QueryCollection in cache...
    [331] Clearing VO cache for WzOrfFa_FkWzOrfFaWzFlstAssoc_WzOrfFaView
    [332] Clear QueryCollection in cache...
    [333] Clearing EO cache for wvz.server.bc.WzLageFa
    [334] Clearing VO cache for WzLageFa_FkWzLageFaWzFlstAssoc_WzLageFaView
    [335] Clear QueryCollection in cache...
    [336] Clearing EO cache for wvz.server.bc.WzTnu
    [337] Clearing VO cache for WzTnuView
    [338] Clear QueryCollection in cache...
    [339] Clearing VO cache for SearchTnuView
    [340] Clear QueryCollection in cache...
    [341] Clearing VO cache for WzTnu_FkWzTnuWzFlstAssoc_WzTnuView
    [342] Clear QueryCollection in cache...
    [343] Clearing EO cache for wvz.server.bc.WzText
    [344] Clearing VO cache for WzText_FkWzTextWzFlstAssoc_WzTextView
    [345] Clear QueryCollection in cache...
    [346] Clearing EO cache for wvz.server.bc.WzTnuFa
    [347] Clearing VO cache for SearchTnuView
    [348] Clear QueryCollection in cache...
    [349] Clearing VO cache for WzTnuFaView
    [350] Clear QueryCollection in cache...
    [351] Clearing VO cache for WzTnuFa_FkWzTnuFaWzFlstAssoc_WzTnuFaView
    [352] Clear QueryCollection in cache...
    [353] Clearing EO cache for wvz.server.bc.WzLage
    [354] Clearing VO cache for WzLageView
    [355] Clear QueryCollection in cache...
    [356] Clearing VO cache for WzLage_FkWzLageWzFlstAssoc_WzLageView
    [357] Clear QueryCollection in cache...
    [358] Clearing EO cache for wvz.server.bc.WzEigentumAend
    [359] Clearing VO cache for WzEigentumAend_FkWzEigentumAendWzFlstAssoc_WzEigentumAendView
    [360] Clear QueryCollection in cache...
    [361] Clearing EO cache for wvz.server.bc.WzRueck
    [362] Clearing VO cache for WzRueck_FkWzRueckWzFlstAssoc_WzRueckView
    [363] Clear QueryCollection in cache...
    [364] Clearing EO cache for wvz.server.bc.WzOrflAlb
    [365] Clearing VO cache for WzOrflAlbView
    [366] Clear QueryCollection in cache...
    [367] Clearing VO cache for WzOrflAlb_FkWzOrflAlbWzFlstAssoc_WzOrflAlbView
    [368] Clear QueryCollection in cache...
    [369] Clearing EO cache for wvz.server.bc.StGem
    [370] Clearing VO cache for StGemView
    [371] Clear QueryCollection in cache...
    [372] Clearing VO cache for WzFlstView
    [373] Clear QueryCollection in cache...
    [374] Clearing VO cache for WzFlstSearchView
    [375] Clear QueryCollection in cache...
    [376] Clearing EO cache for wvz.server.bc.WzFlst
    [377] Clearing VO cache for WzFlstView
    [378] Clear QueryCollection in cache...
    [379] Clearing VO cache for WzFlstSearchView
    [380] Clear QueryCollection in cache...
    [381] Clearing VO cache for WzFlstAllView
    [382] Clear QueryCollection in cache...
    [383] Clearing VO cache for SeachFlaecheView
    [384] Clear QueryCollection in cache...
    [385] Clearing EO cache for wvz.server.bc.WzNube
    [386] Clearing VO cache for WzNube_FkWzNubeWzFlstAssoc_WzNubeView
    [387] Clear QueryCollection in cache...
    [388] Clearing EO cache for wvz.server.bc.WvzLogin
    [389] Clearing VO cache for WzFlstView
    [390] Clear QueryCollection in cache...

  • Problem in Connection pooling after deploying BC4J App Module as EJB

    Hi,
    We have deployed the application modules on standalone OC4J as stateful EJB session beans.
    The problem is that with each user, the number of database connections seem to increase. This is making the application unscalable, which defeats the purpose of using EJB!
    Can someone please suggest how to limit the number of database conections in this scenario?
    Can this be solved by application module pooling? How can we use the PoolMgr to work with the session beans?
    We have tried to invoke disconnect on the application module after calling methods(using appmodule.disconnect(true)) and reconnect (appmodule.reconnect()) on entering the method. This keeps the number of connections low and works the first time the method is invoked. But subsequently, it gives nullpointerexception when the Row is accessed in the JSP.
    The exception we are getting is :
    java.lang.NullPointerException
         at oracle.jbo.client.remote.ViewUsageImpl.getStructDef(ViewUsageImpl.java:241)
         at oracle.jbo.client.remote.ViewUsageImpl.findAttributeDef(ViewUsageImpl.java:275)
         at oracle.jbo.client.remote.RowImpl.getAttributeIndexOf(RowImpl.java:368)
         at oracle.jbo.client.remote.RowImpl.getAttribute(RowImpl.java:144)
         at Supplier.client.ejb.beanmanaged.SupplierAM_IntPaymtVORowBeanManagedClient.getMdid(SupplierAM_IntPaymtVORowBeanManagedClient.java:63)
         at supplier.sccPayCheq._jspService(_sccPayCheq.java:102)
         [SRC:/Supplier/sccPayCheq.jsp:44]
    The Application module configuration (in bc4j.xcfg) is:
    <AppModuleConfig name="SupplierAM9iAS">
    <AppServerConnectionName>StandaloneOC4JConnection</AppServerConnectionName>
    <AppModuleJndiName>Supplier.SupplierAM</AppModuleJndiName>
    <java.naming.security.credentials>admin</java.naming.security.credentials>
    <DeployPlatform>EjbIas</DeployPlatform>
    <java.naming.security.principal>admin</java.naming.security.principal>
    <DtMiddleTierDeploymentProfile>ProjectMiddleTier.deploy</DtMiddleTierDeploymentProfile>
    <ApplicationName>Supplier.SupplierAM</ApplicationName>
    <DtDeploymentProfile>ProjectEJB.deploy</DtDeploymentProfile>
    <DtCommonDeploymentProfile>ProjectCommon.deploy</DtCommonDeploymentProfile>
    <JDBCDataSource>jdbc/ConnectionCoreDS</JDBCDataSource>
    <jbo.server.internal_connection>jdbc/ConnectionCoreDS</jbo.server.internal_connection>
    <jbo.ejb.txntype>local</jbo.ejb.txntype>
    <jbo.doconnectionpooling>true</jbo.doconnectionpooling>
    <ApplicationPath>ProjectEJB</ApplicationPath>
    </AppModuleConfig>
    The Datasource used (in $ORACLE_HOME/j2ee/home/config/data-sources.xml) is:
    <data-source
              class="oracle.jdbc.pool.OracleConnectionCacheImpl"           connection-driver="oracle.jdbc.driver.OracleDriver"
              ejb-location="jdbc/ConnectionDS"
              inactivity-timeout="30"
              location="jdbc/ConnectionCoreDS"
              name="ConnectionDS"
              password="*******"
              pooled-location="jdbc/ConnectionPooledDS"
              url="jdbc:oracle:thin:@<IPADDESS>:<SID>"
              username="USER"
              xa-location="jdbc/xa/ConnectionXADS"
              max-connections="5"
              min-connections="1"/>

    Can this be solved by application module pooling? How
    can we use the PoolMgr to work with the session
    beans?You can use a stateless checkout/checkin appmodule.
    Take a look at the following help topics which explain this in good detail.
    "About Application Module Pooling"
    "About JSP Pages and Application Module Pooling"
    The pool can help reuse the appmodule instance across requests thus reducing the number of concurrent db sessions.
    Dhiraj

  • AppM File Passivation SQL92 Flavor for DB2 and causes Pool connection Leaks

    I am porting an ADF application to WebSphere and DB2 and noticed AM passivation goes from file to database. I have bc4j setup to use file passivation. When this happens I am noticing Connection are not being returned to pool. Has anyone experienced these 2 issues (Connection leaks and AM passivation to database)
    bc4j settings below are in place.
    -Djbo.doconnectionpooling=true
    -Djbo.txn.disconnect_level=1
    ADF Version: 11.1.1.59.23 ::: JDEVADF_11.1.1.4.0_GENERIC_101227.1736.5923
    Server Info: IBM WebSphere Application Server/7.0
    Host Operating System is AIX, version 7.1
    Java version = JRE 1.6.0 IBM J9 2.4 AIX ppc64-64 jvmap6460sr9-20110624_85526 (JIT enabled, AOT enabled)
    J9VM - 20110624_085526
    JIT - r9_20101028_17488ifx17
    GC - 20101027_AA_CMPRSS, Java Compiler = j9jit24, Java VM name = IBM J9 VM
    BC4J is configured to perform file passivation instead of database. The temp files (BC59c10e3cBCD) are being created, but the application occasionally passivates to database.
    ConsoleDiagno C Establish database connection
    3 oracle.jbo.server.DBTransactionImpl establishNewConnection [15306] Before getNativeJdbcConnection='com.ibm.ws.rsadapter.jdbc.WSJccSQLJConnection
    3 oracle.jbo.server.DBTransactionImpl establishNewConnection [15307] After getNativeJdbcConnection='com.ibm.db2.jcc.am.gf
    3 oracle.jbo.pcoll.JDBCPersistManager handleControlTableExists [15308] **createControlTable** tabname=PCOLL_CONTROL already exists
    3 oracle.jbo.pcoll.JDBCPersistManager holdTableName [15309] **holdTableName** tabName=PS_IDMKRAppMod locked in controltab
    3 oracle.jbo.pcoll.PCollManager resolveName [15310] **PCollManager.resolveName** tabName=PS_IDMKRAppMod
    3 oracle.jbo.server.DBTransactionImpl closeTransaction [15311] *** closing jdbc connection now **** (com.ibm.db2.jcc.am.gf@4cb14cb1)

    Yes there are nested AMs in this case. I have a SQL92 flavor with Type Map set to Java, and running against a DB2 database. I have used reference site
    http://www.oracle.com/technetwork/developer-tools/jdev/multidatabaseapp-085183.html
    to properly configure my projects and setting and jbo options. What I am looking for is verification on the correct setting when this combination is used. I have dumped the runtime setting below. Are there any obvious problems below that may cause this behavior?
    [1135] {{ begin Loading BC4J properties
    [1136] -----------------------------------------------------------
    [1137] BC4J Property jbo.default.language='en' -->(MetaObjectManager) from System Default
    [1138] BC4J Property jbo.default.country='US' -->(MetaObjectManager) from System Default
    [1139] Skipping empty Property jbo.default.locale.variant from System Default
    [1140] BC4J Property DeployPlatform='LOCAL' -->(SessionImpl) from Client Environment
    [1141] Skipping empty Property ConnectionMode from System Default
    [1142] Skipping empty Property HostName from System Default
    [1143] Skipping empty Property ConnectionPort from System Default
    [1144] BC4J Property jbo.locking.mode='optimistic' -->(MetaObjectManager) from Client Environment
    [1145] BC4J Property jbo.txn.disconnect_level='1' -->(SessionImpl) from System Property
    [1146] Skipping empty Property ApplicationPath from System Default
    [1147] BC4J Property AppModuleJndiName='oracle.documaker.idocumaker.model.shared.app.IDMKRAppModuleAM' -->(SessionImpl) from Client Environment
    [1148] Skipping empty Property java.naming.security.principal from System Default
    [1149] Skipping empty Property java.naming.security.credentials from System Default
    [1150] Skipping empty Property jbo.user.principal from System Default
    [1151] BC4J Property jbo.simulate.remote='false' -->(SessionImpl) from System Default
    [1152] BC4J Property jbo.security.context='oracle.security.jazn' -->(MetaObjectManager) from System Default
    [1153] Skipping empty Property jbo.object.marshaller from System Default
    [1154] BC4J Property jbo.use.pers.coll='true' -->(SessionImpl) from Client Environment
    [1155] BC4J Property jbo.pers.max.rows.per.node='70' -->(SessionImpl) from System Default
    [1156] BC4J Property jbo.pers.max.active.nodes='30' -->(SessionImpl) from System Default
    [1157] BC4J Property jbo.validation.threshold='10' -->(SessionImpl) from System Default
    [1158] BC4J Property jbo.sparse.array.threshold='20' -->(SessionImpl) from System Default
    [1159] BC4J Property jbo.pcoll.mgr='oracle.jbo.pcoll.pmgr.DB2PersistManager' -->(SessionImpl) from System Property
    [1160] BC4J Property jbo.txn_table_name='PS_TXN' -->(SessionImpl) from System Default
    [1161] BC4J Property jbo.txn_seq_name='PS_TXN_seq' -->(SessionImpl) from System Default
    [1162] BC4J Property jbo.txn_seq_inc='50' -->(SessionImpl) from System Default
    [1163] BC4J Property jbo.control_table_name='PCOLL_CONTROL' -->(MetaObjectManager) from System Default
    [1164] BC4J Property jbo.stringmanager.factory.class='use_default' -->(SessionImpl) from System Default
    [1165] BC4J Property jbo.domain.date.suppress_zero_time='true' -->(MetaObjectManager) from System Default
    [1166] BC4J Property jbo.domain.bind_sql_date='true' -->(MetaObjectManager) from System Default
    [1167] BC4J Property jbo.domain.string.as.bytes.for.raw='false' -->(MetaObjectManager) from System Default
    [1168] BC4J Property jbo.fetch.mode='AS.NEEDED' -->(MetaObjectManager) from System Default
    [1169] BC4J Property jbo.323.compatible='false' -->(MetaObjectManager) from System Default
    [1170] BC4J Property jbo.903.compatible='false' -->(MetaObjectManager) from System Default
    [1171] Skipping empty Property JBODynamicObjectsPackage from System Default
    [1172] BC4J Property MetaObjectContextFactory='oracle.jbo.mom.xml.DefaultMomContextFactory' -->(MetaObjectManager) from System Default
    [1173] BC4J Property jbo.load.components.lazily='false' -->(MetaObjectManager) from System Default
    [1174] BC4J Property MetaObjectContext='oracle.jbo.mom.xml.XMLContextImpl' -->(MetaObjectManager) from System Default
    [1175] BC4J Property java.naming.factory.initial='oracle.jbo.common.JboInitialContextFactory' -->(SessionImpl) from Client Environment
    [1176] BC4J Property IsLazyLoadingTrue='true' -->(MetaObjectManager) from /oracle/jbo/server/jboserver.properties resource
    [1177] BC4J Property oracle.jbo.usemds='true' -->(MetaObjectManager) from System Default
    [1178] BC4J Property oracle.adfm.usemds='true' -->(MetaObjectManager) from System Default
    [1179] BC4J Property ActivateSharedDataHandle='false' -->(MetaObjectManager) from System Default
    [1180] Skipping empty Property HandleName from System Default
    [1181] Skipping empty Property Factory-Substitution-List from System Default
    [1182] BC4J Property jbo.project='oracle.documaker.idocumaker.model.SQL92Model' -->(Configuration) from Client Environment
    [1183] BC4J Property jbo.max.cursors='50' -->(MetaObjectManager) from System Default
    [1184] WARNING: Property jbo.dofailoverset to null
    [1185] Skipping empty Property jbo.dofailover from null
    [1186] WARNING: Property jbo.envinfoproviderset to null
    [1187] Skipping empty Property jbo.envinfoprovider from null
    [1188] Skipping empty Property jbo.rowid_am_conn_name from System Default
    [1189] BC4J Property jbo.rowid_am_datasource_name='jdbc/xxxxxxx' -->(MetaObjectManager) from Client Environment
    [1190] WARNING: Property jbo.ampool.writecookietoclientset to null
    [1191] Skipping empty Property jbo.ampool.writecookietoclient from null
    [1192] BC4J Property jbo.doconnectionpooling='true' -->(Configuration) from System Property
    [1193] WARNING: Property jbo.recyclethresholdset to null
    [1194] Skipping empty Property jbo.recyclethreshold from null
    [1195] WARNING: Property jbo.ampool.dynamicjdbccredentialsset to null
    [1196] Skipping empty Property jbo.ampool.dynamicjdbccredentials from null
    [1197] BC4J Property jbo.ampool.resetnontransactionalstate='true' -->(SessionImpl) from System Default
    [1198] WARNING: Property jbo.ampool.sessioncookiefactoryclassset to null
    [1199] Skipping empty Property jbo.ampool.sessioncookiefactoryclass from null
    [1200] WARNING: Property jbo.ampool.connectionstrategyclassset to null
    [1201] Skipping empty Property jbo.ampool.connectionstrategyclass from null
    [1202] WARNING: Property jbo.ampool.maxpoolsizeset to null
    [1203] Skipping empty Property jbo.ampool.maxpoolsize from null
    [1204] WARNING: Property jbo.ampool.initpoolsizeset to null
    [1205] Skipping empty Property jbo.ampool.initpoolsize from null
    [1206] WARNING: Property jbo.ampool.monitorsleepintervalset to null
    [1207] Skipping empty Property jbo.ampool.monitorsleepinterval from null
    [1208] WARNING: Property jbo.ampool.minavailablesizeset to null
    [1209] Skipping empty Property jbo.ampool.minavailablesize from null
    [1210] WARNING: Property jbo.ampool.maxavailablesizeset to null
    [1211] Skipping empty Property jbo.ampool.maxavailablesize from null
    [1212] WARNING: Property jbo.ampool.maxinactiveageset to null
    [1213] Skipping empty Property jbo.ampool.maxinactiveage from null
    [1214] WARNING: Property jbo.ampool.timetoliveset to null
    [1215] Skipping empty Property jbo.ampool.timetolive from null
    [1216] WARNING: Property jbo.ampool.doampoolingset to null
    [1217] Skipping empty Property jbo.ampool.doampooling from null
    [1218] WARNING: Property jbo.ampool.issupportspassivationset to null
    [1219] Skipping empty Property jbo.ampool.issupportspassivation from null
    [1220] BC4J Property jbo.ampool.isuseexclusive='true' -->(SessionImpl) from System Default
    [1221] BC4J Property jbo.passivationstore='file' -->(MetaObjectManager) from Client Environment
    [1222] BC4J Property jbo.saveforlater='false' -->(SessionImpl) from System Default
    [1223] BC4J Property jbo.snapshotstore.undo='persistent' -->(SessionImpl) from System Default
    [1224] BC4J Property jbo.maxpassivationstacksize='10' -->(SessionImpl) from System Default
    [1225] BC4J Property jbo.txn.handleafterpostexc='false' -->(SessionImpl) from System Default
    [1226] BC4J Property jbo.connectfailover='true' -->(SessionImpl) from System Default
    [1227] BC4J Property jbo.datasource_naming_factory='oracle.jbo.server.DataSourceContextFactory' -->(MetaObjectManager) from System Default
    [1228] WARNING: Property jbo.maxpoolcookieageset to null
    [1229] Skipping empty Property jbo.maxpoolcookieage from null
    [1230] WARNING: Property PoolClassNameset to null
    [1231] Skipping empty Property PoolClassName from null
    [1232] BC4J Property jbo.maxpoolsize='4096' -->(MetaObjectManager) from System Default
    [1233] BC4J Property jbo.initpoolsize='0' -->(MetaObjectManager) from System Default
    [1234] BC4J Property jbo.poolrequesttimeout='30000' -->(MetaObjectManager) from System Default
    [1235] BC4J Property jbo.poolmonitorsleepinterval='600000' -->(MetaObjectManager) from System Default
    [1236] BC4J Property jbo.poolminavailablesize='5' -->(MetaObjectManager) from System Default
    [1237] BC4J Property jbo.poolmaxavailablesize='25' -->(MetaObjectManager) from System Default
    [1238] BC4J Property jbo.poolmaxinactiveage='600000' -->(MetaObjectManager) from System Default
    [1239] BC4J Property jbo.pooltimetolive='-1' -->(MetaObjectManager) from System Default
    [1240] BC4J Property jbo.qcpool.monitorsleepinterval='1800000' -->(SessionImpl) from System Default
    [1241] BC4J Property jbo.qcpool.maxinactiveage='900000' -->(SessionImpl) from System Default
    [1242] BC4J Property RELEASE_MODE='Stateful' -->(MetaObjectManager) from System Default
    [1243] BC4J Property jbo.assoc.consistent='true' -->(MetaObjectManager) from System Default
    [1244] BC4J Property jbo.viewlink.consistent='DEFAULT' -->(MetaObjectManager) from System Default
    [1245] BC4J Property jbo.finder.range.size='DEFAULT' -->(MetaObjectManager) from System Default
    [1246] BC4J Property jbo.passivation.TrackInsert='true' -->(MetaObjectManager) from System Default
    [1247] Skipping empty Property jbo.ViewCriteriaAdapter from System Default
    [1248] BC4J Property jbo.SQLBuilder='SQL92' -->(MetaObjectManager) from Client Environment
    [1249] BC4J Property jbo.ConnectionPoolManager='oracle.jbo.server.ConnectionPoolManagerImpl' -->(MetaObjectManager) from System Default
    [1250] BC4J Property jbo.TypeMapEntries='Java' -->(MetaObjectManager) from Client Environment
    [1251] Skipping empty Property jbo.sql92.JdbcDriverClass from System Default
    [1252] BC4J Property jbo.sql92.LockTrailer='FOR UPDATE' -->(MetaObjectManager) from System Default
    [1253] BC4J Property jbo.jdbc.trace='false' -->(MetaObjectManager) from System Default
    [1254] BC4J Property jbo.abstract.base.check='true' -->(MetaObjectManager) from System Default
    [1255] BC4J Property jbo.assoc.where.early.set='false' -->(MetaObjectManager) from System Default
    [1256] BC4J Property jbo.use.findbykey.for.assoc='true' -->(MetaObjectManager) from System Default
    [1257] BC4J Property jbo.sql92.DbTimeQuery='select sysdate from dual' -->(MetaObjectManager) from System Default
    [1258] BC4J Property oracle.jbo.defineColumnLength='skipDefines' -->(MetaObjectManager) from System Default
    [1259] BC4J Property jbo.jdbc_bytes_conversion='jdbc' -->(MetaObjectManager) from System Default
    [1260] BC4J Property jbo.tmpdir='./' -->(MetaObjectManager) from Client Environment
    [1261] Skipping empty Property jbo.server.internal_connection from System Default
    [1262] BC4J Property SessionClass='oracle.jbo.server.SessionImpl' -->(SessionImpl) from System Default
    [1263] Skipping empty Property TransactionFactory from System Default
    [1264] Skipping empty Property jbo.def.mgr.listener from System Default
    [1265] Skipping empty Property jbo.use.global.sub.map from System Default
    [1266] BC4J Property jbo.debugoutput='console' -->(Diagnostic) from System Property
    [1267] BC4J Property jbo.debug.prefix='DBG: ' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [1268] BC4J Property jbo.logging.show.timing='false' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [1269] BC4J Property jbo.logging.show.function='false' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [1270] BC4J Property jbo.logging.show.level='false' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [1271] BC4J Property jbo.logging.show.linecount='true' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [1272] BC4J Property jbo.logging.trace.threshold='6' -->(Diagnostic) from /oracle/jbo/common/Diagnostic.properties resource
    [1273] BC4J Property jbo.jdbc.driver.verbose='false' -->(Diagnostic) from System Default
    [1274] Skipping empty Property oracle.home from System Default
    [1275] Skipping empty Property oc4j.name from System Default
    [1276] Skipping empty Property jbo.shared.txn from System Default
    [1277] BC4J Property jbo.ejb.txntimeout='1830' -->(SessionImpl) from System Default
    [1278] BC4J Property jbo.ejb.txntype='global' -->(SessionImpl) from System Default
    [1279] BC4J Property jbo.ejb.txn.disconnect_on_completion='false' -->(SessionImpl) from System Default
    [1280] BC4J Property jbo.ejb.useampool='false' -->(SessionImpl) from Client Environment
    [1281] Skipping empty Property oracle.jbo.schema from System Default
    [1282] BC4J Property jbo.xml.validation='false' -->(MetaObjectManager) from System Default
    [1283] BC4J Property ord.RetrievePath='ordDeliverMedia' -->(MetaObjectManager) from System Default
    [1284] BC4J Property ord.HttpMaxMemory='102400' -->(MetaObjectManager) from System Default
    [1285] Skipping empty Property ord.HttpTempDir from System Default
    [1286] BC4J Property ord.wmp.classid='clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95' -->(MetaObjectManager) from System Default
    [1287] BC4J Property ord.qp.classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' -->(MetaObjectManager) from System Default
    [1288] BC4J Property ord.rp.classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA' -->(MetaObjectManager) from System Default
    [1289] BC4J Property ord.wmp.codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701' -->(MetaObjectManager) from System Default
    [1290] BC4J Property ord.qp.codebase='http://www.apple.com/qtactivex/qtplugin.cab' -->(MetaObjectManager) from System Default
    [1291] Skipping empty Property ord.rp.codebase from System Default
    [1292] BC4J Property ord.wmp.plugins.page='http://www.microsoft.com/isapi/redir.dll?prd=windows&sbp=mediaplayer&ar=Media&sba=Plugin&' -->(MetaObjectManager) from System Default
    [1293] BC4J Property ord.qp.plugins.page='http://www.apple.com/quicktime/download/' -->(MetaObjectManager) from System Default
    [1294] BC4J Property ord.rp.plugins.page='http://www.real.com/player/' -->(MetaObjectManager) from System Default
    [1295] BC4J Property jbo.security.enforce='None' -->(SessionImpl) from System Default
    [1296] BC4J Property jbo.security.loginmodule='oracle.security.jazn.oc4j.JAZNUserManager' -->(SessionImpl) from System Default
    [1297] Skipping empty Property jbo.security.config from System Default
    [1298] BC4J Property jbo.server.useNullDbTransaction='false' -->(SessionImpl) from System Default
    [1299] BC4J Property jbo.domain.reopenblobstream='false' -->(MetaObjectManager) from System Default
    [1300] BC4J Property jbo.server.retainAssocAccessor='false' -->(SessionImpl) from System Default
    [1301] BC4J Property jbo.groovy.debug='false' -->(MetaObjectManager) from System Default
    [1302] BC4J Property oracle.adfm.DefaultEventPolicy='NONE' -->(MetaObjectManager) from System Default
    [1303] BC4J Property oracle.adfm.useRootFrameOnly='false' -->(MetaObjectManager) from System Default
    [1304] Copying unknown Client property (java.naming.factory.url.pkgs='com.ibm.ws.naming:com.ibm.ws.runtime:weblogic.corba.j2ee.naming.url:weblogic.corba.client.naming:com.ibm.ws.naming') to session
    [1305] Copying unknown Client property (jbo.applicationmoduleclassname='oracle.documaker.idocumaker.model.shared.app.IDMKRAppModuleAM') to session
    [1306] Copying unknown Client property (name='IDMKRAppModuleAMLocal') to session
    [1307] Copying unknown Client property (ApplicationName='oracle.documaker.idocumaker.model.shared.app.IDMKRAppModuleAM') to session
    [1308] Copying unknown Client property (JDBCDataSource='jdbc/xxxxxxx') to session
    [1309] Copying unknown Client property (java.naming.provider.url='corbaloc:rir:/NameServiceServerRoot') to session
    [1310] Copying unknown Client property (DBconnection='jdbc/xxxxxx') to session
    [1311] }} finished loading BC4J properties

  • BUG?  Application Module State Management

    I have 2 read-only view objects VO1 & VO2 with a View Link that links them by a primary key field. VO1 (master) is on the first .jspx page and VO2 (detail) is on the 2nd .jspx page. VO1 has a SQL query, but is populated programmatically in an App Module Service method that sets the where clause parameters. VO2 is on a separate .jspx page. VO2 has one bind variable in its SQL query that is populated when the user clicks a commandLink on a row within VO1 - this takes the user to the 2nd .jspx page to view VO2 table results.
    The issue is that when the user navigates back to the first .jspx page containing VO1, a duplicate row is added to the end the data table (or as the first record on the second page of results if there are multiple pages.) If I re-query VO1, re-sort the data using the column headings, or passivate the data (see below), the duplicate row goes away. Note I have tried using the same iterator on both pages and this same issue occurs.
    Ok - after 5 days of troubleshooting, here is the potential bug. If Application Pooling is enabled on the Application Module, I experience the issue above. If I don't enale Application Pooling, and Passivate state for the App Module, this issue does not occur (see below):
    Application Module Settings - Error Occurs if Pooling is enabled
    (unchecked) Failover Transaction State Upon Managed Release
    (unchecked) Disconnect Application Module Upon Release
    (checked) Support Dynamic JDBC Credentials
    (checked) Reset Non-Transcational State Upon Unmanaged Release
    (checked) Enable Application Module Pooing
    If I un-check Enable Application Module Pooling the error does NOT occur. Note I've experimented with many combinations, and its only the Application Module Pooling that affects the behavior.
    Note both view objects are set to Passivate state (but not for transient values, though tested passivating those as well and there was no difference.)
    Can someone please advise? This is a showstopper for implementing our application to production. See the threads below for more information. Finally note that I have not yet been able to replicate this in a simple test case, but there is some specific characteristics about my current application causing this behavior (and it appears others have experienced as well.)
    Duplicate rows displayed in list
    Need help  - Duplicate Rows being added to View Object?
    Thanks.
    Here is the code on the AM service method to populate the rows for VO1 (no insert or create rows - only executing the query):
    ViewObject vo1 = findViewObject("VO1");
    vo1.setMaxFetchSize(250); // set max fetch size 250
    vo1.setWhereClauseParam(0, x0);
    vo1.setWhereClauseParam(1, x1);
    vo1.setWhereClauseParam(2, x2);
    vo1.setWhereClauseParam(3, x3);
    vo1.setWhereClauseParam(4, x4);
    vo1.setWhereClauseParam(5, x5);
    vo1.setWhereClauseParam(6, x6);
    vo1.setWhereClauseParam(7, x7);
    vo1.setWhereClauseParam(8, x8);
    vo1.setWhereClauseParam(9, x9);
    vo1.setWhereClauseParam(10, x10);
    vo1.executeQuery();
    Message was edited by:
    javaX

    More information on this issue:
    After further testing, I discovered that the 'Disconnect Application Module Upon Release' also plays a factor with this issue.
    If 'Enable Application Module Pooling' is unchecked the issue does not occur because the view object is passivated.
    If 'Enable Application Module Pooling' is checked (jbo.ampool.doampooling=true), then the issue occurs UNLESS I also set 'Disconnect Application Module Upon Release' (jbo.doconnnectionpooling=true). If I set the latter to true, then I do not experience the duplicate row issue. I would rather not have to enable jbo.doconnectionpooling=true because of the performance impacts as recommended in the dev guide. Any Suggestions?
    -- updated on 10/1/06 ----
    Setting jbo.doconnectionpooling=true only fixes this issue when I use a ViewLink as the mechanism to pass the row Id from VO1 (master on .jspx page #1) to VO2 (detail on page #2.) If I use an actionListener to pass the value from page #1 to page #2, setting jbo.doconnectionpooling=true does not fix the issue.
    <af:commandLink actionListener="#{bindings.setCurrentRowWithKey.execute}"
    action="page2" text="#{row.Name}">
    <af:setActionListener from="#{row.Id}" to="#{backing_bean_page2.rowid}"/>
    </af:commandLink>
    Message was edited by:
    javaX

  • Database connection pooling in ADF causing db procedure calls to use different transaction or session

    We have developed an application using JDev Version 11.1.2.1.0 and the database is oracle 11g EE.
    We have many database procedures or function calls from the model (AMImpl.java, VORowImpl.java) and the commit does not happen in the database and it happens from ADF. The database procedures are called in some valueChangeListnener and these procedures use the same transaction or session database session when called and update some records in some tables that are displayed in pages.
    We started using connection pooling recently in our ADF application,  -Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1. When using connection pooling, we noticed that the database procedure calls use a different trasanction or different database session and the data or records that these procedures update is lost.
    After removing the connection pooling, we noticed that the procedures again started using the same transaction or same database session and was working fine.
    I want to know why this connnection pooling caused this issue and is there any fix for this when using connection pooling?

    Take a look at
    http://docs.oracle.com/cd/E15523_01/web.1111/b31974/bcampool.htm#CIHCHHEA
    What You May Need to Know About Database User State and jbo.doconnectionpooling = true
    As you can see:
    "At the end of the request when the application module is released back to the application module pool, that application module pool releases the JDBC connection it was using back to the database connection pool. It follows that with jbo.doconnectionpooling set to true the application module instance in the pool may have a completely different JDBC connection each time you check it out of the pool"
    So, the best you can do, is to revert jbo.doconnectionpooling to false.

  • One Application Module Instance Per User

    Hi, I am using JDeveloper 11.1.1.2 with ADF BC.
    I have an application with a single root application module. I have my JDBC data source set up to enable identity based connection pooling so that a database connection is created with the current user's credentials.
    Basically, I would like an application module pool such that a single application module instance exists for each user in the system. If a user logs into the system, a new app module should be instantiated for him (tied to his db credentials). If the user makes a new request and his app module has been removed from the pool for inactivity, a new app module should be instantiated even if others already exist in the pool for other users. If the user is already logged into the system and tries to login again in another browser window, I would like to check if an app module already exists in the pool for the user and re-use that one instead of instantiating a new one.
    I don't want to set jbo.doconnectionpooling=true because I want the app module instance to keep its cached data.
    Is this possible? If so, how could I configure the application module to make this work?

    Hi Frank. Thank you for the reply.
    I tried using two browsers. The behavior of each page is very much different when being opened individually. Its like the two pages is sharing the same iterator / data and / or entity object. These two pages were opened to see if one is dependent upon the other. But when I test the same scenario on a different computer, everything works out fine.
    Is there a way for me to verify if the sessions are different? and if they are different, is there a way to verify if the application module created a new instance for the other session?

  • ADF BC: Optimal Application Module Runtime Configuration

    Have implemented an intranet application for 1000 users using the following technologies implemented on Oracle JDeveloper 10.1.3.0.4:
    ADF BC for my Services layer
    JSF for my Controller layer
    JSF and ADF for my View layer
    ADF Model for my Data layer
    The application is entirely designed by .jspx and .jsp pages (for reports), handling 106 application modules, with several entity and view objects and without any step-by-step stateful scenario. At each page, there appears a commit button to commit the end-user transaction, and a rollback button to return to the previous page.
    The application is database-backed from an Oracle Database 10g, deployed on three application servers Oracle 10.1.3.1 on three different hosts on Suse Linux OS, used data-source connection and AM pooling, and load-balanced by one webcacher in front of the 3 servers.
    Under stress test scenario, on a heavy system load in production environment, several ADF State Management errors were recognized that pushed the webacher and application server with the maximum load to automatic restarts due to either demand for JVM increased heap size or errors from the database that the TNS listener complained it could not handle any more connections.
    Thus, we started a safety/reliability tess for all our application module components (disabling "Enable application module pooling"), and a stress test using a third-party stress tool at work, but we're still faced with several questions.
    (a) What is the best strategy for AM configuration, to quit State Management at all since our application doesn't need it, and if so can it be done globally or declaratively and not individually and programmatically?
    (b) Testing on application module runtime configuration, we observed that not to "hang-on" on a connection -default functionality- but to release it at the end of each HTTP request, as each deployment is concentrated on a single data-source connection pool/single user, brought less open JDBC connections on A.S.? Is this the optimal run-time configuration than the default for our case?
    (c) If State Management errors are resolved, and using a software balancer before 3 application servers, regulate the traffice by 1/3 to each, is it possible that a system crash will be avoided next time?
    So, our problems related to ADF tunning and State Management Errors, but we need a good advice on this topic as the overall documentation is case-specific.

    Chapter 29 "Understanding Application Module Pooling" in the ADF Developer's Guide for Forms/4GL Developers on the ADF Learning Center at http://www.oracle.com/technology/products/adf/learnadf.html is the best place to start. There is no "magic" optimal configuration that I (or anyone here, really) can suggest to you. You need to understand the various "knobs and dials" that control the pool sizing and pool cleanup behavior, and then apply application-specific information to this information to derive what the optimal configuration for your particular application will be. The chapter explains how the application module pool and database connection pool interact, and in which situations it is best to change the default setting of the jbo.doconnectionpooling property to true.
    Chapter 28 "Application Module State Management" describes the functionality of that facility of the framework, as well as how to release the application module in stateless, unmanaged mode if you need to.
    By following the tips in the section "28.3.2.4 Setting Release Level in an Custom ADF PageLifecycle" (which builds on information introduced in section "10.5.4.1 Globally Customizing the ADF Page Lifecycle"), you can generically impose a different release level in your application without "touching" every page.
    As a general rule, if you have:
    (*) Lots of distinct application modules
    (*) Each of which is used as a separate data control (rather than being nested inside a containing application module as described in section "8.9.3 Root Application Modules Versus Nested Application Module Usages" of the dev guide)
    (*) Each of which uses the same database connection
    Then as described in section "29.8 How Database and Application Module Pools Cooperate" in the guide, your application can decrease the total overall number of connections used by using the non-default setting of jbo.doconnectionpooling=true.
    Applications using many distinct data controls in the span of a single user's session need to be aware of Bug# 4566186 ("PERF: ADFBINDINGFILTER CHECKS OUT ALL ADF BC DATA CONTROLS USED AT LEAST ONCE"). This issue has been fixed in JDev/ADF 11g, but apparently the fix was too complex to accommodate a 10.1.X backport. I'm trying to document a workaround and publish it on my blog, but I'm not finished with it yet.

  • 5.02 and NanoFlash Question

    CS5 does support NanoFlash files and the audio is in perfect sync with the video. This is using preset HDcam 422. However, previous projects created before the update, do not seem to work in sync. Does this mean we need to start the project over in the 5.02 update version? Has anyone worked around it. Thanks Roman

    Hi,
    You may set jbo.doconnectionpooling=true. This will release the BC4J JDBC connection upon ApplicationModule release to the ApplicationPool. ApplicationModule release should occur at the end of each request. The performance impact should be small if the connections are pooled -- though I don't see how the statement made by IBM would allow conn pooling. Please see my comments below.
    All that said I can find nothing in the servlet 2.3 specification that requires a servlet container to close or rollback JDBC connections upon end of request. In fact, closing JDBC connections just seems wrong and may have a performance impact (i.e. how are connection pools maintained then?). Further, it doesn't seem right to me that the container should be manipulating a connection that it does not own (i.e. one that was not released back to the container).
    I appreciate the difficulties that managing txn state b/w requests can present but this seems like too great of an assumption to me.
    Oh well, I must be missing something.
    Hope this helps,
    JR

  • ApplicationModule Pooling

    Hi,
    I'm designing an web application using bc4j. This application has an stateful nature and I'm concerned about scalability and server memory comsumption. A few questions:
    How does the Application Module pooling works when using nested Application Modules? And when using extended Application Modules?
    How can I release (statelessly) an Stateful Application Module that has been inactive for some period of time (the session does not expires - may be the user is working in another system module)?
    Thanks,
    Daniel

    Thank you John.
    I answered some of your questions and added more questions and comments...
    The web application I mentioned before will have 350-400 stateful Application Modules. I'm concened about server
    memory usage. I'd like to know how and when the pools are created and populated..
    If you are using the BC4J JSP application module tag then one pool is created for every ApplicationModule
    configuration.We are not using the jbo:ApplicationModule tag. We have a servlet that handle the AM retrieval, assuring that we have just one pool per Application Module definition.
    Having one application module definition implies in having a pool on the server or the pool is created by demand?.
    Pool is created on demand.Ok, I'm reliefed...
    Until now, every one of these 350 AMs is a Root AM. This implies allocating 350 pools!.
    If each AM is of a different type (different AM definition) then yes.
    .Yes, they are of different types.
    We've been thinking in use just one stateful RootAM and use RootAM.createApplicationModule to dynamically nest
    the AM needed to accomplish the task, instead of getting it from a pool..
    The decision depends upon your application requirements. If I understand correctly it is currently possible for a session
    to reference 350 different root ApplicationModule(s). Is each root ApplicationModule acquired serially or in parallel?
    .Yes, it's possible for a session to do that, but in practice only a sub-set of the 350 AMs will be used within the same session.
    I'm not sure I understand what you mean by acquiring an AM serially or in parallel.
    By "serially" you mean that in the same session I get AM1 from the pool, use it and then release it to the pool statelessly, before I get AM2 and AM3 and so on?
    By "in parallel" you mean getting the AMs from the pool, using it and then returning them statefully?
    If I undertand you right, I'm using the AMs in parallel, but I'd like to return them to the pool statelessly when I'm finished with the AM.
    If acquired serially then a session will only reference one transaction context at a time. The other 249
    ApplicationModule(s) will remain available in an ApplicationPool waiting to be reused. If they had been released
    without state management (statelessly) then they should not contribute significantly to the application footprint, though
    it may be necessary to enable connection pooling upon ApplicationModule release to maximize reuse of idle JDBC
    connections (jbo.doconnectionpooling=true).
    If acquired in parallel then a session may have up to 350 different transaction contexts with related JDBC
    connections. If this is not intended then dynamic and/or static nesting is definitely recommended.I did not understand: dynamic/static nesting is recommended for what situation?
    Hope this helps.Be sure it helped.
    JR Thanks
    Daniel

Maybe you are looking for

  • Not able to integrate Payment Gateway with WebDynpro for ABAP

    Hi,    I am not able to integrate the Payment Gateway for Billdesk ( third party software) with Webdynpro for ABAP. Summery of the Issue : - (*) Data from PORTAL Application to PAYMENT GATEWAY is going Correctly but (*) Data from PAYMENT GATEWAY to P

  • Problems with jumping ball in Java applet

    The ball is supposed to jump to the same height from which it fell down, someway it always gets higher and higher. My question is why? import java.applet.*; import java.awt.*; public class Bug extends Applet implements Runnable    private int y_pos =

  • Approval for Contracts

    Hi all, I created Contract for which I didn't define approver. Why, after I released it, Contract status is yet "Waiting for approval"? Maybe an contract approval workfolw was defined? If yes, how can I modify it? Thanks, Regards, Maria

  • Chart digital display bug

    Hi, I am using chart with stacked plots and digital display for each of those stacked plots. There seems to be some update bug since if I move the display on the chart weird things start happening. The chart stops to update some plots and also artifa

  • Error using Floor plan manager (FPM)

    Hi, When i try to create a new FPM view or application, i will get an error msg "An internal error occured: String index out of range: -4." each time i click the next button and will be unable to procced. Any idea what is causing this error? there se