Application Module Release Mode

Hi sirs;
I'm just starting a new struts based application and adf uix + bc4j;
What i was wondering is;
If we will have a improve of performance, releasing more times the application module in stateless mode; like the following;
All data forms (form related to data) will have an <<exit>> button and all the others links should be disabled. this exit button should command the form's dataforward action to release the application module in stateless mode;
This exit button also will redirect the user to the main menu page;
So, when the user get in an "data form", all struts ,toy stories based actions, will have the complete life cycle and will release the application module in stateful mode.
One event called onExit marks the release mode to stateless to it's life cycle.
what are your opinion about this approach ?
Thanks
Marcos Ortega;

Repost

Similar Messages

  • Application Module Release Mode and Session Cookie

    BC4J 9.0.3.3
    I have a SessionCookie and I want to find out the RELEASE_MODE of the App Mod the cookie refers to. How do I get the RELEASE_MODE of an App Mod?
    TIA,
    Eric

    Repost

  • Programmatically created ViewDefImpl and application module releasing

    Hello!
    What will happen with a programmatically created ViewDefImpl instance after module releasing (for Stateful release mode, I mean if module will do passivation)? How I see it gone away.
    As workaround I'm using a distinct module with Reserved relese mode, but it's no good.
    Don't inspect closely, but I think the error during actiovation caused by this reason:
    java.lang.NullPointerException
    at oracle.jbo.server.Serializer.activateDynamicVO(Serializer.java:425)
    at oracle.jbo.server.ApplicationModuleImpl.activateVOs(ApplicationModuleImpl.java:7145)
    at oracle.jbo.server.ApplicationModuleImpl.doActivateState(ApplicationModuleImpl.java:6962)
    at oracle.jbo.server.ApplicationModuleImpl.doActivateAMState(ApplicationModuleImpl.java:6927)
    at oracle.jbo.server.Serializer.activate(Serializer.java:272)
    at oracle.jbo.server.DBSerializer.activateRootAM(DBSerializer.java:330)
    at oracle.jbo.server.ApplicationModuleImpl.activateState(ApplicationModuleImpl.java:5519)
    at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:171)
    at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:7735)
    Code fragment from module for wich activation failed:
    >>>>>>>>>>>>>>>>>>>>>>>>>>>
    viewDef = new ViewDefImpl(QUERY_RESULTS_VO_DEF_NAME);
    for (...) {
    ViewDefHelper.addUpdateableTransientViewAttr(viewDef,
    attr.getFirstChild().getNodeValue(),
    String.class);
    viewDef.resolveDefObject();
    viewDef.registerDefObject();
    resultsVO = (SimpleXMLViewObjectImpl)createViewObject(QUERY_RESULTS_VO_NAME, viewDef);
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    Thanks in advance.
    Ilya.

    application module1 is for table1, table4 and table5 and Application module 2 is for different tables say table2,table3 now I got 1 requirement where I need to do insertion in table1 after insertion in table2,table3 from applicaiton module2

  • Flash contents not loading in release mode

    hi ,
    I have a cocoa application that loads web page on a webview .When I run this application on release mode , is loading the page without Flash contents and displaying in console as shown below,
    2010-03-04 03:05:01.626 sampleforAlphaScreenWindow&chaneTextbackgroundcolor[930:10b] object 0x1064680 with 0 retain-count passed to CFMakeCollectable.
    2010-03-04 03:05:01.830 sampleforAlphaScreenWindow&chaneTextbackgroundcolor[930:10b] Error loading /Library/Internet Plug-Ins/Flash Player.plugin/Contents/MacOS/Flash Player: dlopen(/Library/Internet Plug-Ins/Flash Player.plugin/Contents/MacOS/Flash Player, 262): no suitable image found. Did find:
    /Library/Internet Plug-Ins/Flash Player.plugin/Contents/MacOS/Flash Player: GC capability mismatch
    but if I ran this same application in Debug mode , its loading the flash contents also on to webview.
    how can I load the flash contents of web page in release mode also.
    Any advices would be appreciated.
    thanks in advance.
    Akbar

    I would say that you declared the wrong type of IBOutlet or some other variable in your program. Posting here might give better results.
    In either case, I'd try to stay away from Flash. It's buggy at best.

  • Problem releasing the application module after upgrade to 11.1.1.2

    We have recently upgraded from JDeveloper 11.1.1.1 to 11.1.1.2.
    In the "tearDown()" method in our Unit Tests, the Application Module is realeased using:
    private ApplicationModule am;
    Configuration.releaseRootApplicationModule(am, true);
    Alter the upgrade, this produces the following error:
    oracle.jbo.JboException: JBO-33025: Failed to release application module MapServiceGlobal. Cookie handle not found.
    Please Help.
    FYI - this is the code that is used to create the application module:
    Hashtable env = new Hashtable(2);
    env.put(JboContext.INITIAL_CONTEXT_FACTORY,JboContext.JBO_CONTEXT_FACTORY);
    env.put(JboContext.DEPLOY_PLATFORM, JboContext.PLATFORM_LOCAL);
    try
    InitialContext ic = new InitialContext(env);
    ApplicationModuleHome home = (ApplicationModuleHome)ic.lookup(rootAM);
    am = home.create();
    catch (NamingException nex)
    /* Handle the error here if you don't find it */
    throw new NamingException("Application Module naming exception " + rootAM + " : " + nex.getMessage());
    /* Connect the AM to a database connection */
    am.getTransaction().connect(jdbcConnectionURL);
    * Set the bundled exception mode so that exceptions are thrown in the
    * same way as when we're running in the web application.
    am.getTransaction().setBundledExceptionMode(true);
    Thanks,
    -Spiro

    Hi,
    I used OCEP 10.3.0.0 and upgraded the wlevs30 domain to PS6(11.1.1.7.0). and it worked without such error.
    My experience is:
    1) in OCEP 10.3.0.0 it needs not to add the security groups in atnstore.txt
    2) you need to add <scratch-directory/> for Jetty in server's config.xml otherwise you will see the visualizer takes a long time to get up on Windows
    Thanks
    Junger

  • Application Module no commits until released

    jdev-903 standalone oc4j-903... When I set configuration to run in 'local' mode, I can do am.getTransaction().commit() anywhere in the main routine or in the 'EJB' and the commits show up in the database. (This application can run for hours loading data.) When I set configuration to run in ias-ejb mode, the commits are not happening whether I do them in the ejb or back in the main. I turn on bc4j tracing and see the commits are doing something, but I don't see data in the database until I 'release' the application module. I have gone in and hacked the code to periodically do a release so that things work like I think they should. But it just doesn't make sense to me! A commit--should commit and data should appear in the database to all users. What is going on?

    Here is some of the bc4j trace...
    [1267] BaseSQLBuilderImpl Executing doSelect ... (true)
    [1268] Reusing prepared LOCK statement
    hdr 2003-03-04 11:52:59.367 714
    hdr 2003-03-04 11:52:59.492 715
    ... 2003-03-04 11:52:59.554 commiting last 102
    [1269] BaseSQLBuilder: setSavepoint 'BO_SP' ignored
    [1270] BaseSQLBuilder Executing DML ... (Update)
    [1271] Executing DML...
    [1272] UPDATE XXQWD_HEADERS SET TIMESTAMP=?,LAST_UPDATE_DATE=? WHERE VALUE_ID=?
    [1273] BaseSQLBuilder Executing DML ... (Update)
    [1274] Executing DML...
    [1275] UPDATE XXQWD_HEADERS SET TIMESTAMP=?,LAST_UPDATE_DATE=? WHERE VALUE_ID=?
    [1276] BaseSQLBuilder Executing DML ... (Insert)
    [1277] Executing DML...
    [1278] INSERT INTO XXQWD_HEADERS(VALUE_ID,TEMPLATE_ID,TIMESTAMP,QW_RECORD_NUMBER) VALUES (?,?,?,?)
    [1279] BaseSQLBuilder Executing DML ... (Insert)
    =========== many, many lines of insert statements
    [1586] Executing DML...
    [1587] INSERT INTO XXQWD_VALUES(VALUE_ID,QW_FIELD,VALUE) VALUES (?,?,?)
    [1588] BaseSQLBuilder: releaseSavepoint 'BO_SP' ignored
    [1589] PgiQSetupView notify COMMIT ...
    [1590] XxqwdTemplatesView notify COMMIT ...
    [1591] XxqwdHeadersView notify COMMIT ...
    [1592] XxqwdValuesView notify COMMIT ...
    [1593] EntityCache close prepared statement
    ... 2003-03-04 11:53:02.023 finish 0
    [1594] Clearing VO cache for XxqwdValuesView
    [1596] Clearing VO cache for XxqwdHeadersView
    [1597] Clear QueryCollection in cache...
    [1598] Clearing VO cache for XxqwdTemplatesView
    [1599] Clear QueryCollection in cache...
    [1600] PgiQSetupView notify COMMIT ...
    [1601] XxqwdTemplatesView notify COMMIT ...
    [1602] XxqwdHeadersView notify COMMIT ...
    [1603] XxqwdValuesView notify COMMIT ...

  • Disconnect Application Module Upon Release app module configuration.

    Hi,
    I read in one article that using that "*Disconnect Application Module Upon Release*" in App module configuration is strongly not recommended (http://andrejusb.blogspot.com/2010/02/optimizing-oracle-adf-application-pool.html).
    Can anyone pls let me know if there are any other problems apart from this (https://forums.oracle.com/forums/thread.jspa?messageID=9873898#9873898) LOV issue.

    Hi Frank,
    Thank you very much for your support.... very much needed.......
    I will give a outline of my app and please do tell me where you need indepth details so we can narrow down to the flaw.
    * JAVA : *1.6*
    * JEVELOPER VERSION: *11*
    * WebLogic : *11*
    * Oracle DB : *11g*
    ----------------------------------------- ORACLE DATABASE DETAILS*
    * VERSION : *11g*
    * MAX CURSORS LIMIT : *300*
    ----------------------------------------- WEBLOGIC DETAILS*
    * DATA SOURCE : XXXDS (Not jdbc url)
    * JNDI : jdbc/XXXDS
    * Connection pool details:
    - initial size : *1*
    - Max Capacity : *50000*
    - Inactive connection time out : *0*
    * Every other settings are defaults
    ----------------------------------------- AM's details*
    * My model contains : *19* App modules ( All root )
    * app module configs: (Giving only those were changed, else are defaults)
    --- Connection type : Data Source - datasource name : jdbc/XXXDS (One given in weblogic)
    --- jbo.ampool.maxinactiveage : *60000*
    --- jbo.ampool.monitorsleepinterval     : *30000*
    --- jbo.ampool.timetolive :*120000*
    --- jbo.locking.mode : optimistic
    ----------------------------------------- Overridden Methods*
    This method is called each and every time an app module since all appl modue extends this
    @Override
    protected void *prepareSession(Session session) {*
    String username = ADFContext.getCurrent().getSecurityContext().getUserName().toUpperCase();
    log.debug("Preparing session for user " + username);
    Statement st = getDBTransaction().createPreparedStatement("rollback", 0);
    try {
    if (st.getConnection() instanceof PoolConnection) {
    PoolConnection poolConnection = (PoolConnection) st.getConnection();
    OracleConnection connection = (OracleConnection) poolConnection.checkConnection();
    if (connection.isProxySession() && username.equals(connection.getProperties().get(PROXY_USER_PROPERTY))) {
    // no proxying required, we already have a connection that is proxied for this user
    super.prepareSession(session);
    return;
    clearStatementCache(poolConnection);
    if (connection.isProxySession()) {
    log.debug("Connection already proxied. Tearing down previous connection.");
    connection.close(OracleConnection.PROXY_SESSION);
    log.debug("Creating proxy connection for user " + username);
    Properties properties = new Properties();
    properties.put(PROXY_USER_PROPERTY, username);
    connection.openProxySession(OracleConnection.PROXYTYPE_USER_NAME, properties);
    clearStatementCache(poolConnection);
    validateUser(username);
    } else {
    throw new JboException("Connection was not a PoolConnection, your AppModule appears to be using JDBC URL configuration instead of a managed data source.\n Try changing the Local and Shared 'Configurations' for this application module: " + this.getDefFullName());
    } catch (SQLException e) {
    log.error("Unable to prepare session correctly, proxying failed.", e);
    } finally {
    try {
    st.close();
    } catch (SQLException e) {
    log.warn("Unable to close statement", e);
    super.prepareSession(session);
    @Override
    protected void beforeDisconnect() *{*
    Statement st = getDBTransaction().createPreparedStatement("rollback", 0);
    try {
    PoolConnection poolConnection = (PoolConnection) st.getConnection();
    clearStatementCache(poolConnection);
    } catch (SQLException e) {
    log.warn("Unable to tear down session correctly, clearing statement caches failed.", e);
    } finally {
    try {
    st.close();
    } catch (SQLException e) {
    log.warn("Unable to close statement", e);
    super.beforeDisconnect();
    ----------------------------------------- Few points about our design
    * A single page can load more than one app modules.
    * All LOV comes under a single app module.
    * We use multiple LOV in the same page.
    thank you for ur help......

  • Using Application Module in Stateless Mode

    Hello,
    We have certain parts in our web application that is not coded using ADF-Faces, but need to use ADF-BC framework to do some data retrieving and manipulation. Our current approach is to instantiate the application module like the following:
    Configuration.createRootApplicationModule(impl, config);
    and after each usage we do:
    Configuration.releaseRootApplicationModule(am, true);
    However, the application module is not really released. We deployed pool statistic servlet from Steve Muench's "not yet documented examples" and realized that the supposed to be released application module is still in 'referenced' state and thus unavailable for usage by other session, or even other request in the same session as we dont know of anyway to tell ADFBC about current session and checkout referenced AM. As a consequence, the application is taking up DB resource so quickly and we have to restart the application every 5 minutes because it takes all available connection slot on our Oracle 10g server.
    Do I instantiate and released the application module correctly? Or am I missed something?

    In the reference you pointed, it is said that if I want the application module to be 'unmanaged' (assuming 'unmanaged' app module is what I need) I should:
    "call the resetState() method on the DCDataControl class (in the oracle.adf.model.binding package)."
    I'm not sure whether I'm getting this right, but I don't think I have a data control on the application module, because I instantiated it using Configuration.createRootApplicationModule().
    How do I set an app module to have 'unmanaged' release level directly (not through a data control)?
    Theres a resetState() in ApplicationModule class but it takes an int as an argument and Im not sure what to pass in.

  • Disconnect Application Module Upon Release and LOV NPE

    Environment
    Jdeveloper 11.1.1.4.0
    Jheadstart Release 11.1.1.4.26
    There seems to be some sort of incompatibility with some LOVs when I enable Disconnect Application Module Upon Release.
    I have an LOV based on an updatable VO with a bind parameter.
    When I first log on the application an try to use the LOV I get a NPE when I select the row from the LOV popup and press OK.
    If I navigate to another page and return the LOV starts working correctly
    The NPE occurs in line
    keyList.add(getIterBinding().getCurrentRow().getKey());
    of LovItemBean
    getIterBinding().getCurrentRow() is null it this case.
    Do you have any hints?
    public void copyReturnValues(Map selectedRowData, Row baseRow, boolean copyToUI, boolean commaSeparated)
    // first clear any dependent items, if they exist
    if (getTableBean() != null)
    List keyList = new ArrayList();
    keyList.add(getIterBinding().getCurrentRow().getKey());
    getTableBean().getTable().setRowKey(keyList);
    Edited by: spooker on May 31, 2013 9:28 AM

    I was using Disconnect Application Module Upon Release to overcome an issue I had with multiple duplicated rows being generated in a table under certain circumstances.
    What I had is a button which reads the rows of a table and creates new rows in another table (other viewobject) which have a foreign key to the rows of the first table.
    If I issue multiple requests on the first table (5rows) by clicking different rows very fast and at the same time I press the button to create new rows to the second table the results are undefined. Instead of getting 5 new rows I get 10 or even 15 or 20. I don't know if this is a bug or if I am doing something wrong but I managed to overcome this by using the Entity RowSet instead of the ViewObject RowSet.
    so now I am not using Disconnect Application Module Upon Release any more.
    Edited by: spooker on Jun 3, 2013 7:38 AM

  • NPE when releasing application module instance

    HI,
    I am hitting a NPE when I am trying to release my application module.
    My code goes like this.
    public void releaseAppModule() {
         try {
              super.releaseRootAppModule(false);
         } catch (Exception e) {
              e.printStackTrace();
    }...and the exception
    java.lang.NullPointerException
    at oracle.jbo.client.Configuration.releaseRootApplicationModule(Configuration.java:1435)Use Case:
    I am getting my data from DB.
    1. On first load, I will hit this NPE
    2. When I do refresh on the browser, I no longer am experiencing this.
    Any reason why?
    How do I troubleshoot such case?
    JDEV 11G PS3

    i think this will helps you.
    JBO-30006 / BEA-000000 in ADF BC when running production

  • Release Application Module

    Guys,
    I couldn't understand the exact difference between
    Configuration.releaseRootApplicationModule(am, true);
    and
    Configuration.releaseRootApplicationModule(am, false);
    1. True -> AM instance will be deleted???
    2. False -> AM intance will not be deleted and when i do am = Configuration.createRootApplicationModule(amDef, config) , i will get the same am instance?
    Can you guys help?

    Straight from the docs:
    releaseRootApplicationModulepublic static void releaseRootApplicationModule(ApplicationModule appModule,
    boolean remove)
    Release the specified application module.
    Parameters:
    appModule - an application module which was created with createRootApplicationModule(String, String, EnvInfoProvider)
    remove - indicates whether the application module should be removed true: remove the application module false: retain the application module for future use
    >
    BUT read this http://radio-weblogs.com/0118231/2009/08/20.html#a959 and ask yourself why using createRootApplicationModule in the first place.
    Timo

  • Garbage in playing a video in release mode of air application

    I have attached a simple air project containing a VideoDisplay Component playing a file from the following location
    http://locationserver.irecord.com/TestData/ProblemVideo.mp4
    If you run this project in Adobe Flex Builder 3(i am using winxp) video display component plays the above mentioned file with out any garbage in the video. But in the release mode garbage is clearly visible in the playback.
    I have played this video in QuickTime, VLC, Media Player Classic and MPlayer. All of these players played the file correctly.
    I don't known what is the problem?
    Any help will be greatly appreciated.

    Seems to be a problem with the profile being used (Baseline level 2.2).
    I reencoded it with a High level 5.1 profile and the artifacts are gone:
    http://muzakdeezign.com/flashcoders/ProblemVideo.mp4
    Of course there's some quality loss now, as I encoded an already encoded video. So try encoding the original source with a higher H264 profile.
    I use MediaCoder for all my .mp4 encoding:
    http://mediacoder.sourceforge.net/

  • Intermittent error in production server JBO-25200: Application module is not connected to a database.

    We've set 60 min as session timeout and AM pool parameters also high  (<AM-Pooling jbo.ampool.maxinactiveage="1200000" jbo.ampool.initpoolsize="25" jbo.ampool.maxpoolsize="1000" jbo.recyclethreshold="50" jbo.ampool.maxavailablesize="50" jbo.ampool.minavailablesize="25"/>) in our application due to requirements.  We are using jdev 11.1.1.7.0
    Intermittently The page is getting refreshed and unsaved data is lost when user leaves a page for 5 or 10 min and on return back to application and performing operations back. There is not much load also on the server. When we analyze the logs the below exception is thrown on the logs.
    Exception Class: oracle.jbo.NotConnectedException
    Message: JBO-25200: Application module is not connected to a database.
    Agent: APP_BSA_BPA[mnatest_soa2]@egw-bpm2-mnat.wfs.com:5508
    API: Exception
    Thread Name: [ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)' <562720362>
    Exception StackTrace
    Method Class Line        File Name
    handleRollback oracle.jbo.server.DefaultTxnHandlerImpl 145         <unknown>
    doRollback oracle.jbo.server.DBTransactionImpl 5174       <unknown>
    rollback oracle.jbo.server.DBTransactionImpl 2544       <unknown>
    resetState oracle.jbo.server.ApplicationModuleImpl 4860       <unknown>
    disconnect oracle.jbo.common.ampool.DefaultConnectionStrategy 343         <unknown>
    doPoolDisconnect oracle.jbo.server.ApplicationPoolMessageHandler 592         <unknown>
    doPoolMessage oracle.jbo.server.ApplicationPoolMessageHandler 430         <unknown>
    doPoolMessage oracle.jbo.server.ApplicationModuleImpl 9316       <unknown>
    sendPoolMessage oracle.jbo.common.ampool.ApplicationPoolImpl 4530       <unknown>
    prepareApplicationModule oracle.jbo.common.ampool.ApplicationPoolImpl 2460       <unknown>
    doCheckout oracle.jbo.common.ampool.ApplicationPoolImpl 2270       <unknown>
    useApplicationModule oracle.jbo.common.ampool.ApplicationPoolImpl 3169       <unknown>
    useApplicationModule oracle.jbo.common.ampool.SessionCookieImpl 592         <unknown>
    useApplicationModule oracle.jbo.http.HttpSessionCookieImpl 234         <unknown>
    useApplicationModule oracle.jbo.common.ampool.SessionCookieImpl 525         <unknown>
    useApplicationModule oracle.jbo.common.ampool.SessionCookieImpl 520         <unknown>
    initializeApplicationModule oracle.adf.model.bc4j.DCJboDataControl 523         <unknown>
    getApplicationModule oracle.adf.model.bc4j.DCJboDataControl 869         <unknown>
    internalGetBeanDataControl oracle.adf.model.bc4j.DCJboDataControl 969         <unknown>
    findOrCreateMethodRowSetIterator oracle.adf.model.bc4j.DCJboDataControl 1236       <unknown>
    initSourceRSI oracle.jbo.uicli.binding.JUMethodIteratorDef$JUMethodIteratorBinding 698         <unknown>
    callInitSourceRSI oracle.adf.model.binding.DCIteratorBinding 1679       <unknown>
    internalGetRowSetIterator oracle.adf.model.binding.DCIteratorBinding 1652       <unknown>
    refresh oracle.adf.model.binding.DCIteratorBinding 4506       <unknown>
    refreshIfNeeded oracle.adf.model.binding.DCExecutableBinding 341         <unknown>
    getRowSetIterator oracle.adf.model.binding.DCIteratorBinding 1612       <unknown>
    getViewObject oracle.jbo.uicli.binding.JUMethodIteratorDef$JUMethodIteratorBinding 473         <unknown>
    _loadCriterionList oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding$AdfConjunctionCriterion 3504 <unknown>
    getCriterionList oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding$AdfConjunctionCriterion 3417 <unknown>
    invoke sun.reflect.GeneratedMethodAccessor4821 - <unknown>
    invoke sun.reflect.DelegatingMethodAccessorImpl       25 <unknown>
    invoke java.lang.reflect.Method 597         <unknown>
    Any idea why this exception thrown ? Is this because of weblogic server connections cleanup or something to do with connections?  As per my understanding , JDBC connection will not be released when AM is active/managed mode.  Oracle Doc says
    " That application module instance holds onto the JDBC connection object that it acquired from the pool until the application module instance is removed from the application module pool."

    jbo.ampool.maxinactiveage is set to 20 min which means that If AM in the pool is inactive for 20 min then clean this AM in the next cycle (still that is not our case).  We also set jbo.recyclethreshold="50" means 50 AMs can exists in the pool with managed-state. We set these because of performance reasons.  As per my understanding, AM instance will be deleted (????) but in any action on the UI will pick up another instance of the AM because datacontrolframe is still valid in the session.  Do we have any best practice like jbo.ampool.maxinactiveage should be equal to session time out?. The error seems AM lost the underlying JDBC connection and somehow application is using that stale AM ?. what will be possible reason?.

  • Stateless Release mode and the Commit issue

    What are the implications of setting all the application modules to Stateless Release mode rather than Stateful?
    I’ve read the documentation about this, but I need hands on expert’s opinions
    Specially for a Web Application that a lot of public users will use?
    We have an issue of the way commit work, if we edit a page and then navigate without saving to another page and then save at this second page, the commit will save all changes that have been done in both pages, even of the two pages are bound to two different VOs and two different Application modules, it is really strange, it seems that I need to know that the user is leaving the page so I can rollback, I do not understand this default behavior of ADF/BC ..
    Any work around? Any opinions?

    Hi,
    the behavior is correct as it commits all pending changes. The release mode tells ADF BC how the application module is released to the pool if no longer needed by the user session. If release mode is stateful then the state of the current AM is passivated so it can be recovered. This has nothing to do with the page to page navigation.
    If you want to undo changes performed on a page when navigation off the page, you call refresh(Row.DB_ROW...) on the current row
    Frank

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

Maybe you are looking for

  • HT2473 How can I get the date and time back on the menu bar?

    Several items disappeared from my menu bar for no  reason known to me.  I miss the date and time and want it back. Please .  I have gone to System Preferences and clicked "date and Time" but it will not allow me to check anything on the page even tho

  • RT and strange problem in sequence

    Hi there, Another day, another question for the FCP masters.... I'm editing a short promo, where I've set up a new project and when I take clips into the timeline, the clip will flash up the frame before where I set an the in point. If I scroll throu

  • X6 : how to get next and previous controls working...

    Hi, May be i am missing how to do the same...but i can't get the the next video by pressing the next icon on the real player...i am viewing the video files from the gallery..Or the next and prev controls won't work..

  • How to mimic Pull Down Menu like APEX WORKSPACE

    Hi, I want to have Pull Down Menu like APEX Workspace pages where Application Developer, SQL Workspace, Team Developement and Administration have menus attached to them. They appear in Pull Down format. I want to mimic the same in my application. I h

  • My computer doesn't recognize any software update, but I need to upgrade to 10.8 ?!?!?! haaalppp

    I have to update iTunes in order to sync my phone, but I can't update iTunes with my current software (mac OS X, version 10.5.8) It says I need version 10.8 something. But when I go to software update and check, it says my software is up to date. OBV