New year is just 2 days away. It's time for us to plan new things, and carry all the learning from past to face new challenges of tomorrow. I wish you and your family a happy, joyous and prosperous new year 2012 !
Oracle ADF is a powerful application framework for building next generation enterprise applications. This blog discusses some interesting use case scenarios and solutions using ADF and the underlying Java EE technologies.
The views expressed on this blog are my own and do not necessarily reflect the views of my employer.
Thursday, December 29, 2011
Sunday, December 18, 2011
Some Tips on Application Module Usage
Copying some points related to application module configuration on top of what you see in the following chapter - 44 Tuning Application Module Pools and Connection Pools
1. When a web client access a page a new AM instances will be created till the pool size crosses recycleThreshold.
2.Call to Configuration.createRootApplicationModule(qualifiedAMDefName, configName); will use instance from the pool if poolsize > recycleThreshold and unreferenced (free) AM instances are available. Later when client calls Configuration.releaseRootApplicationModule(applicationModule, true); will remove the instance- doesn't matter how the instance is acquired .
3.Though the call Configuration.releaseRootApplicationModule(applicationModule, false/* remove flag */) , there is now way for a framework to identify the previously used AM instances if the client again calls Configuration.createRootApplicationModule(qualifiedAMDefName, configName) to create a new instance within the same request. However , with releaseRootApplicationModule(..., false) you do get the benefit of potentially reusing that AM (after it was reset) vs. creating a new AM. Configuration.releaseRootApplicationModule(..., true), removes the AM from the pool. Configuration.releaseRootApplicationModule(..., false) resets the AM and keeps it in the pool for future use.
4. Framework uses LRU algorithm for selecting an AM instance from the pool for recycling/passivating its state when new client request for AM.
Monday, December 5, 2011
Calling Application Module Methods from EJB and MDB
Sometime back I blogged about using JMS with ADF BC http://jobinesh.blogspot.com/2011/04/using-jms-with-adf-business-components.html . I'm revisiting this topic with another example illustrating the usage of application module methods from EJB and MDB. The sample uses XA Data source which will help you to force both AM and EJB to share same db transaction. Note that, I'm calling ApplicationModule::postChangesToDB() to post changes to database when AM method is used inside EJB method, leaving the 'commit' call to the underlying container.
Download
You can download the sample workspace from here.Refer the previous post for setting up the MDB used in the sample + Configure XA Datasource with JNDI name jdbc/HRDS
Download
You can download the sample workspace from here.Refer the previous post for setting up the MDB used in the sample + Configure XA Datasource with JNDI name jdbc/HRDS
[Runs with Oracle JDeveloper 11g R2 PS1 + HR Schema]
Subscribe to:
Posts (Atom)