This discussion is archived
7 Replies Latest reply: Sep 19, 2013 5:22 AM by Jan Vervecken RSS

task-flow transaction options and unavailable connections

Jan Vervecken Journeyer
Currently Being Moderated

hi

 

Please consider the example application created using JDeveloper 11.1.2.3.0

at http://www.consideringred.com/files/oracle/2013/UnavailableConnApp-v0.01.zip

 

It has a bounded task-flow with a page-fragment on which data is shown from two View Objects instances, each from a different Application Module.

It also has its Default run-configuration configured with "-Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1".

(see also documentation section "44.3.2 What You May Need to Know About Database User State and jbo.doconnectionpooling = true"

at http://docs.oracle.com/cd/E35521_01/web.111230/e16182/bcampool.htm#ADFFD1355 )

 

The following scenario (sc1) can be tried:

Run the tryTwoAppMod view activity in adfc-config.xml which will show in an af:region the bounded task-flow two-app-mod-btf with data from two View Object instances in two Application Modules.

Use the IntegratedWebLogicServer console (via http://localhost:7101/console ) to navigate via Deployments to the application UnavailableConnApp and to its connHR JDBC module.

Check the Monitoring tab to see the column values (selected via the "Customize this table" link):

Connections Total Count = 2, Current Capacity = 2, Number Available = 2, Number Unavailable = 0

 

After stopping/undeploying the application the following scenario (sc2) can be tried:

On the Behaviour tab of the two-app-mod-btf task-flow change the Transaction option to "Use Existing Transaction if Possible".

Run the tryTwoAppMod view activity in adfc-config.xml and check the connHR JDBC module Monitoring tab to see the column values:

Connections Total Count = 1, Current Capacity = 1, Number Available = 0, Number Unavailable = 1

 

questions:

- (q1) Why is "Number Unavailable = 1" for scenario (sc2) and not "Number Unavailable = 0" as in scenario (sc1), given the "-Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1" configuration?

- (q2) What should be configured to get the connHR JDBC module Monitoring tab to show the column values:

Connections Total Count = 1, Current Capacity = 1, Number Available = 1, Number Unavailable = 0

 

Trying similar scenario's using JDeveloper 12c (12.1.2.0.0) shows similar behaviour.

 

regards

Jan Vervecken

  • 1. Re: task-flow transaction options and unavailable connections
    Chris Muir Employee ACE
    Currently Being Moderated

    Jan, can I ask for a clarification please?

     

    You say:

    It also has its Default run-configuration configured with "-Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1".

     

    ...but the default value for jbo.doconnectionpooling is false (and it is so in your sample application for both AMs as well).

     

    Assuming you actually meant false, we might need to turn your question on it's head.  I would have expected with jbo.doconnectionpooling=false to have meant with the <No Controller Transaction> option you should have instead seen this:

     

    Total Count = 2, Current Capacity = 2, Number Available = *0*, Number Unavailable = *2*


    ....as the created JDBC connections should be held by the referenced AMs and therefore should be unavailable.  So to me this seems in error, not the Use Existing Transaction if Possible option.

     

    I need to run this through the FMW Control performance diagnostics to see what it reports and if this correlates with the WLS console.  (Maybe even DMS Spy would help here?) I'm a few days away from doing this due to internal work, if you have time I suggest you investigate further and report back if you can please.


    CM.

  • 2. Re: task-flow transaction options and unavailable connections
    Jan Vervecken Journeyer
    Currently Being Moderated

    Thanks for your reply Chris.

    ChrisMuir wrote:

    ...but the default value for jbo.doconnectionpooling is false ...

    Looks like it could be confusing, but I am talking about the run-configuration named "Default" (by default) which I have configured with Java Options "-Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1" (so JVM system properties).

    ChrisMuir wrote:

    ... (and it is so in your sample application for both AMs as well). ...

    In the sample application (UnavailableConnApp-v0.01.zip) the configured JVM system properties "-Djbo.doconnectionpooling=true -Djbo.txn.disconnect_level=1" are a (less confusing) alternative for a per Application Module configuration.

    ChrisMuir wrote:

    ... Assuming you actually meant false, ...

    So, that is a wrong assumption.

    ChrisMuir wrote:

    ... I would have expected with jbo.doconnectionpooling=false to have meant with the <No Controller Transaction> option you should have instead seen this:

     

    Total Count = 2, Current Capacity = 2, Number Available = *0*, Number Unavailable = *2* ...

    Yes, for that configuration, that is indeed the behaviour I see.

     

    So, please reconsider the scenario's (sc1) and (sc2) and the questions (q1) and (q2) taking the above clarification in to account.

     

    thanks

    Jan

  • 3. Re: task-flow transaction options and unavailable connections
    Chris Muir Employee ACE
    Currently Being Moderated

    Right, sorry for the misinterpretation.

     

    CM.

  • 4. Re: task-flow transaction options and unavailable connections
    Jan Vervecken Journeyer
    Currently Being Moderated

    Thanks for you reply Chris.

    ChrisMuir wrote:

    Right, sorry for the misinterpretation.

    No problem, glad the clarification helped.

     

    Note that I also created Oracle service request 3-7731361361 for questions (q1) and (q2).

    Looking forward to your/their feedback.

     

    regards

    Jan

  • 5. Re: task-flow transaction options and unavailable connections
    Chris Muir Employee ACE
    Currently Being Moderated

    I can the SR coming through internally from the analyst, and will reply there so I'm not replying on multiple channels.

     

    CM.

  • 6. Re: task-flow transaction options and unavailable connections
    Jan Vervecken Journeyer
    Currently Being Moderated

    fyi

     

     

    - about (q1)

    -- In the context of SR 3-7731361361 bug 17378310, "TASK-FLOW TRANSACTION OPTIONS AND UNAVAILABLE CONNECTIONS", has been filed for this.

    (Seemingly related (as "connection leak") bug 17405152, "POOLLIMITSQLEXCEPTION AFTER A FEW BROWSER-SESSIONS FROM SUBSEQUENT REQUESTS", was filed in the context of SR 3-7754676151 .)

     

     

    - about (q2)

    -- As a workaround for bug 17378310 we go the suggestion to configure "-Doracle.adfm.useSharedTransactionForFrame=false",

    which does not seem to be documented, but was explained as

    "In JDev 11.1.2.3.0, framework uses the BC4J shared transaction feature for taskflow transactions. On 11.1.1.7.0 and earlier the framework used to use a shared root AM instead. By setting this property it will be ensured that the transaction taskflow support will start behaving in the way it behaves in 11g Release 1."

    This seems to improve the behaviour of scenario (sc2).

     

     

    regards

    Jan Vervecken

  • 7. Re: task-flow transaction options and unavailable connections
    Jan Vervecken Journeyer
    Currently Being Moderated

    fyi

     

     

    Because of the "AM hierarchy" changes, this is related to forum thread "what to expect from getApplicationModule() method"

    at https://forums.oracle.com/thread/2579831

     

     

    regards

    Jan

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points