Nested Application Module State

As I understand it Application Modules (AM) that are nested inherit the parent 'Transaction'. My question is do they inherit the Stateful/Stateless behaviour from the parent ?

yes it inherits' the complete definition.
including release_mode, which is the parameter i assume, that you mean.
hth clemens

Similar Messages

  • Nested Application Module - commit behavior

    Guys,
    I have ADF BC in the following hierarchial manner.
    AM1
    -VO1
    -VO2
    -AM2 (nested AM)
    Assume that there are pending transactions on both AM1 and AM2.
    what is the behaviour for the follwing?
    Q1 . Issuing commit on AM1, will it commit AM2 also?
    Q2 . Issuing commit on AM2, will it alone commit?
    Edited by: Dev on Apr 19, 2011 12:00 PM

    ADF distinguish between root application module and nested application modules. A root app module has no parent whereas an nested app module has a parent. A root app module holds the transaction (and only the root app module). Nested app module share the transaction of the root app module (they are nested in).
    So Q1: yes and Q2: no.
    Read 9.4.2 here http://download.oracle.com/docs/cd/E17904_01/web.1111/b31974/bcservices.htm#sm0229 fro more info.
    Timo

  • Jclient Binding to nested application module

    we use a test case of
    Applications
    ParrentAM & NestedAM
    Forms
    ParrentForm & NestedForm
    We added a reference to the NestedAM datacontrol in the ParrentDatabindings.cpx
    When the ParrentForm attempts to set the bindingcontext in the NestedForm we recieve a null pointer exception.
    Can anyone provide some insite or an example for binding to a nested application module?
    thanks.

    Robert,
    what do you mean with "Nested Form", is it a JClient panel that is contained in another JClient panel ?
    Which JDeveloper release are you working with? Can you provide me a step by step instruction on how to reproduce your testcase in JClient (assume that I have a Business Component Model that has a MasterApp and a nested NestedApp module, both based on the Scott schema).
    thanks for your help
    Frank
    JDeveloper Product Management

  • Transaction Management for Nested Application Module

    Hi
    I'm using Jdev 11.1.2.0
    I am having nested Application Module. In that I want to separate view object data need to commit without commit the root application module view object.
    Is it possible. Kindly reply me.

    No, the root application module controls the transaction of all need application modules. A commit will commit all changes together. You have to use different root application modules for this.
    Timo

  • Instantiate a nested application module programmatically

    Hi, is it possible to instantiate a nested application module programmatically using Configuration class or other any other class?
    The API of Configuration refers only to root application module.
    The nested service has strong cohesion and is loose coupled with root application module and I want to use it in a stand alone client.
    Any comment will be helpful,
    Thanks
    Ilias

    Hi,
    +"The nested service has strong cohesion and is loose coupled with root application module and I want to use it in a stand alone client. "+
    If this is the case, why don't you call it as a root Application Module ? If there is no dependency to the root AM, then it doesn't matter if you call it as a nested AM or root AM
    Frank

  • Nested Application Module Performance

    What are the implications of nesting application modules? I am nesting them in such a way that they are defined at design-time and used by calling findApplicationModule(String) on the root ApplicationModule. Could there be any significant overhead accessing one nested app mod in this way as opposed to going to the desired app mod directly? Or is there anything else to watch out for with this type of design? I haven't had any trouble so far but my project is not too large yet.

    For example, I have three ApplicationModule objects.
    RootModule, Module1, and Module2. By nesting Module1
    and Module2 under RootModule, I can use either once I
    have an instance of RootModule by calling
    findApplicationModule(String name). This is useful
    when I want to do things inside both Module1 and
    Module2 and still use the same connection and
    transaction context.
    If I only want something out of Module1 during a
    request, would it be advantageous to ONLY create
    Module1 directly and bypass my RootModule?
    Meaning this:mod1Am =
    Configuration.createRootApplicationModule("Module1","M
    dule1Config");
    mod1Am.myCustomOperation();As opposed to
    this:rootAm =
    Configuration.createRootApplicationModule("RootModule"
    "RootConfig");
    mod1Am = rootAm.findApplicationModule("Module1");
    mod1Am.myCustomOperation();
    Nick:
    There are advantages to creating Module1 directly. It would be that you don't create unnecessary objects (in your case, you would avoid unnecessary creation of Module2").
    However, I would make the following side comment: from your message, it sounds like you would create an AM for every request and remove it at the end. Did you consider using AppModule pool? AM pool would be better than create-remove because AM pool can keep around a number of root AM instances and manage resources for you. This way, you don't have to create any AM for each request. AM pool is also able to support stateful operations with excellent scalability.
    Thanks.
    Sung

  • Nested application module use own connection

    Hi everyone,
    I'm trying to figure out how to let a nested application module use it's own connection instead of it's parent.
    Any suggestions?
    We're using Jdeveloper 10.1.3.3.0.
    Regards

    Hi,
    The issue is not about the data, but about the database connection. The idea is to have a general BC library (with iits Application Modules and View Objects), using its own database schema, and have that one imported in other applications, with other database schemas.
    We have to use these imported BC's in the application AM, because that's the way JHeadstart works. This will result in a table not found exception, because the imported VO's are in another schema.
    We were hoping that we could nest an imported Application Module and that it uses its own connection to its own database schema, but unfortuantely that does not seem possible since nested application modules inherit the connection of the parent (root) application module.
    Or is there perhaps a way to achieve this; i.e. have a nested application module using its own database connection and not inherit this from its parent?
    Ciao
    Aino

  • Nesting Application Modules from different Projects(solved).

    I am wondering if there is a possibility of nesting application modules that are part of different projects?
    thanks, Florin
    Message was edited by:
    florinmarcus

    I've fond myself the answer to this question.
    It is explained in the documentation:
    Fusion Developer’s Guide for Oracle Application Development 11g
    Chapter 35.7 Working with Libraries of Reusable Business Components

  • Best Practice - Bounded Task Flows, Regions and Nested Application Modules

    Using JDev 11.1.1.3; understand that it's generally considered good practice to just have 1 root application module servicing model content / services for each page. In our application, we've used a number of bounded task flows and page fragments deployed as af:region's into pages as either a) views targeted in page-flow navigation, b) tab panel content inside a regular jspx, or c) af:popup / af:dialog content. As it stands, we've not engaged nesting of the application modules for this embedded region content, so these regions are no doubt instantiating new AM's if/when invoked. Should the AM's servicing these embedded regions be deployed nested within the root AM's, and then if so, does this change the way that the jsff / fragment content is actually developed (currently as per any other jspx using the DataControl pallete). Or are the best-practice directives talking about a page as being the design-time / declarative composition of content rather than the run-time aggregation of page + fragments ... in which case the fact that our embedded fragments are not using nested AM's is unlikely to concern.
    Thanks,

    Probably a better question for the ADF EMG: http://groups.google.com/group/adf-methodology?hl=en
    CM.

  • 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

  • How can i understand nested application module?

    Is there inherit relation between root application module and child application module?
    jiayu
    thanks

    Hi,
    no, they are not inheriting from each other but share the same transactional context. Nested AM are also loaded lazily, which means you minimize the footprint of your app.
    Check
    http://radio.weblogs.com/0118231/
    for good information on ADF BC
    Frank

  • Nested Application Module

    I have this problem, and I wish I can find a solution.
    I have two application module, am1 and am2, am2 is nested in am1, and I'm using <jbo:ApplicationModule> tag to open a connection for the application module.
    I have this case, I want to access page that insert into a table but this insertion should not be committed until another operation is committed, and these two operation occurred on two different views in the 2 application module, so I want to know how can I get the application module am2 using <jbo:ApplicationModule> tag, and making it using the transaction context of application module am1.

    Omar,
    there is a getRootApplicationModule()method on the ApplicationModuleImpl class, did you try this ?
    Frank

  • Nested application modules

    Hi,
    Is it (somehow) possible to nest an application module from another adf bc project?
    Using JDev 10.1.3.3 and JHeadstart 10.1.3.2.51.
    Ciao
    Aino

    Thanx for your quick reply.
    Is it possible to include the AM from the other project on design time and have it appear in the AM editor (as it would be with nested AM's from the same project)?
    Ciao
    Aino

  • Nested Application Module and child AM remove

    Hi,
    I have 2 pages. Page A and Page B.
    1. Page A has root am as RootAM and child am as PageAAM1(oracle.apps.xxxx.component1.server.PageAAM).
    2. page B has root am as RootAM and child am as PageBAM1(oracle.apps.xxxx.component2.server.PageBAM).
    Both the pages have the same AM hierarchy. And child regions have both the AM Defination and instance specified.
    Now the question:
    I first come to page A. Do some transactions on this page. Now here i have a button to navigate to Page B. Click on button. Navigate to Page B. Here on Page B do some other tranactions. I have a return button on Page B. When i click on Return button, I release the PageBAM1 usiing the method am.remove(). ANd then formard immediately to PageA.
    At this point of time, I am getting an error soemthing like this:
    oracle.apps.fnd.framework.OAException: oracle.jbo.NoObjException: JBO-25003: Object RootAM.PageBAM1 of type ApplicationModule not found
    Does any one has any idea. What might be the cause and solutiion.
    Thanks,
    Anand

    am.remove() removes the object from the rootApplicationModule, so when you navigate to the page again
    the OAF will try to use the childAM and you will get this error
    because you have already removed it in your previous call.
    It is recommend to use am.remove() only for the Application modules create through programs.
    Your really obsessed with releasing memory occupied by child AM. And you don't have any logical reasons for that.
    Remove the AM only if you want to rollback or commit the transaction.
    otherwise don't remove the child AM at all.
    --Prasanna                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Calling custom methods from Nested Application Modules

    We are having a problem with passing parameters to our nested App Modules.
    We have a custom method in our nested app module and when we drag that method from our data control palette in our page everything seems to work just fine. We are binding our NamedData values to #{requestScope.<field>} where the fields are inputText controls. When we run it will execute the function but the parameters are null.
    It seems to me that the Nested App Module can not evaluate the EL expression, or in other words when it gets evaluated it returns a null.
    Can anyone help with this?
    Thanks,
    Peter

    If you use an EL expression of some hard-coded value instead of #{requestScope.XXX} does that value correctly get passed to the function?
    In other words, are you 100% sure that EL expression is not evaluating to null ?
    If you drop an AM method as a parameter form on a page, you'll see that by default it's NamedData elements use EL expressions that reference attribute bindings that are bound to local page-def variables, rather than to #{requestScope.something}

Maybe you are looking for