ADF-JSF: Application Performance Issue

Hello!
My question or set of questions will be a bit vague...I am simply not sure where to look for problem(s). So here is what I have. Application implemented with ADF-JSF (JDEV ver:10.1.3.2.0). It basically has 5 pages. Each page containes user input form, commandButton and result table. Functionally, each page is a 'search page' that returns results based on what user specified in the form. Components on each page are bound to VO that is based on EO (DB table). Tables have at least 2.5M records up to 16M. Certain indexes exist (for most common searches) to improve the performance. However, there have been performance issues found and largely they would be grouped into the following:
1. User is on page A, performs the search, goes to page B (via link) and performs other search, then goes back to A and similar search takes much longer to return results. Seems to me that this moght be related to memory. Maybe results of the previous search are cashed and it takes new search to retreive results longer as the VO cashe needs to be cleared first. Does that make sense?
2. User is on page A and then goes to B. Leaves browser for 10-20 minutes and tries to go back to A. It takes up to a minute before page reloads with the previously displayed results. I am thinking this has to be related to page lifecycle where AM tries to re-execute bindings ( I do not think it is passivation issue though). What is the best practice to control the lifecycle?
Any pointer on where to look for the solution is very welcome.
Rade

Carl,
To use Tom Kyte's analogy, you are firing a gun into a room full of people hoping to hit the bad guy. You haven't seemed to have gotten any information about where the performance issues lie. It could be in the DB, network, ADF Business Components, JSF layer, other stuff monopolizing resources, etc, etc. I have ADF BC apps developed in 10.1.3.3 that run quite well.
So, I would recommend you spend some time investigating where the performance problems lie. Try turning on logging output, check machine utilization - use your investigative techniques to find the bad guy so you can then work on fixing him.
John

Similar Messages

  • Socket based application - Performance Issues - Suggestions Needed

    Hi All,
    We have an application which basically has been developed using core java. Here is a high level information about the application:
    a) It opens a serversocket which allows clients to connect to it.
    b) For every new client connection, a separate thread is created and this thread deals with requests from clients, processing the data and replying back to clients.
    c) Each socket is polled continuously and sockettimeout is 2 seconds. If there is a timeout, we handle the situation and socket is again read. So basically sockets is read every 2 seconds. If number of timeouts reaches a configurable value, we close the connection and thread is dropped as well.
    d) In production, three instances of this application are running with the help of a cisco load balancer. It is there for last 5 years.
    However there has always been some minor performance isssues and we have sorted them out using different types of garbage collectors, by introducing hardware load balancers, upgrading the code for new Java versions. It is currently running on 1.4.2.
    However there has always been some performance issues and today while googling over internet I came across following on the bea website which says that core java sockets are not as efficients as native API. BEA has implemented its own APIs for weblogic. My queries are:
    a) Are there any better Java Socket/network API (for solairs, I know Java is plateform independenet but there could be lib which also using native libs) which are much more efficient than Core Java.
    b) We are getting the InputStream/OutputStream and creating objects of DataInputStream/DataOutputStream to read the data 'Byte-By-Byte'. Each byte can have different information thats why it is required. Are there any better way of getting info than what we are currently doing.
    c) As I mentioned, we are continously polling the socket for read operation with a timeout value of 2 seconds. What is the better among the following from performance point of view: (1) Frequent read operation with a lesser timeout value or (2) Less Frequent read operations with larger timeout value. (3) Any better idea??
    Please suggest few things or pointers which I could do to improve the performance of the applcations. Many thanks.
    Thanks,Akhil
    From BEA website:-
    "Although the pure-Java implementation of socket reader threads is a reliable and portable method of peer-to-peer communication, it does not provide the best performance for heavy-duty socket usage in a WebLogic Server cluster. With pure-Java socket readers, threads must actively poll all opened sockets to determine if they contain data to read. In other words, socket reader threads are always "busy" polling sockets, even if the sockets have no data to read. This unnecessary overhead can reduce performance."

    My recommendations:
    - Always use a BufferedInputStream and BufferedOutputStream around the socket streams
    - Increase the socket send and receive buffers to at least 32k if you are on a Windows platform where the default is a ridiculous 8k, which hasn't been enough for about 15 years.
    - Your 2-second timeout is far too short. Increase it to at least 10 seconds.
    - Your strategy of counting up to N short timeouts of S seconds each is completely pointless. Change it to one single timeout of N*S seconds. There is nothing to be gained by the complication you have introduced to this.

  • URGENT: How to debug non-reproducable problem(s) in ADF JSF application?

    This is one of the most anoying things in programing.... We have JSF application developed by JDev 10.1.3 and deployed on AS. It works fine but almost once or twice per day users complain that, say on a certain page (could be any page) they click on a button or a link and nothing happens. Sometimes it looks like the browser is trying to open a page but never does and sometimes the link or a button is dead. I looked into log file under opmn/logs and could not find anything?
    This is very urgent, so please, please if you have any hint on how to approach this problem, let me know. At this time I cannot file the Service Request with Oracle since they would ask me to create sample code and reproduce the problem which is just not possible.
    please help.

    Hi,
    if you are on JDeveloper 10.1.3.0 then chances are that these are concurrency issues. If a user starts a long running query then others may be blocked by this. This is fixed in JSF RI that is contained in JDeveloper 10.1.3.1
    Its just a guess. To prove my assumption, make sure you run the app with a single seat and see if the issue reproduces or exclude queries from the tests.
    Frank

  • Excluding Members from EPMA application - performance issues?

    We are building a new application using dimensions from our Shared Library and I had a question about excluding some members.
    For one dimension, I was able to use the "Add to App View" functionality, which was able to bring in only the one tree of members I wanted, without having to exclude anything, which seems to be the best way of doing this.
    For another dimension, I need to pick and choose members from within the hierarchy, so I will need to add almost all parents, and then go through and exclude some members. Will this cause any performance issues having excluded members? Will the excluded members get deployed to planning or do they just sit in EPMA?
    Any help would be appreciated.

    Hi,
    Excluded members are not deployed to Planning, therefore would not impact performance negatively.
    Cheers,
    Alp

  • Flex iPhone Application Performance issue

    Hi,
    I have developed mobile application for iPhone, iPad, and Android using flash builder 4.5.1. iPhone application performance is very slow compared to iPad version and Android even though the code set is same for all the versions.
    Can anybody help how to improve the performance on iPhone?

    Moving thread to mobile development and notifying our iOS team to take a look.  If you find a specific issue you consider broken, please post again in the bugs forum and we'll investigate further.
    Chris

  • ADF Mobile - Phone Performance Issues

    Hello,
    I've been using ADF Mobile for a while now. All's going well - I'm able to access web-based data services etc and everything seems to work. I do have a couple of couple of questions regarding performance on the phone though and I was wondering if anyone could offer some help/advice etc.
    I've followed all the steps here: https://blogs.oracle.com/mobile/entry/configuration_tips_for_better_performance
    ...but with no visibile improvements. My issues are:
    <1> Once the app is deployed, starting it for the first time takes around 2 minutes. All subsequent start-ups of the app after this take a couple of seconds, even after a shutdown of the phone. I'm not sure how to determine what exactly is happening during this phase, and why this takes so long just the first time? The duration for this also seems to have increased as I've added pages to my app, and as it only has 4 at the moment I'm concerned that adding much more to it will make the problem worse.
    <2> I use "listItems" on most pages in a "panelGroupLayout", and the scrolling performance is very poor. All other apps I have on my phone scroll very smoothly. With my ADF app, you drag your finger to scroll up or down and there's a noticeable delay before all the rows move in one go with no visible scrolling actually taking place. This happens even when all the rows to be displayed are loaded on to the page and there's no more calling of the web service necessary. I've deployed the sample "DeviceDemo" to my phone and the "Properties" page has the same problem. The scrolling is very poor.
    I've done a fair bit of Googling on this without much success, Any help or suggested reading on any of this would be very much appreciated.
    Cheers, Rich.
    Edited by: user10788009 on 15-Feb-2013 05:44 - Spelling

    Currently there is no 'solution' for this problem.
    A quote from Joe
    Joe Huang wrote:
    Hi
    First you would need to deploy the application in "Release Mode". This requires you to create a Java Keystore and a certificate using the Java keytool, and then you would use it to compile the app. If you have done that, then can you please help explain what these pages are doing, and observed performance?
    Unfortunately Galaxy Tab 2 is a bit old - if you have done everything to optimize the app, this could be due to older Android OS. Android OS (especially version 2.x) does not support HTML5/JS well, and performance is much worse than HTML5/JS running on Android 4.x devices. This is more than just HW differences - this is primarily due to the web engine used by the webview.
    This is also somewhat a general issue with Android - Chrome is a much faster browser on Android, but unfortunately the webview (which ADF Mobile leverages) is not yet based on Chrome. If and when they switch to Chrome, the JavaScript/HTML5 support would start to rival that of the iOS.
    Thanks,
    Joe Huang

  • ADF 11g application performance

    Hi,
    We are developing using ADF 11.1.1.3.0.
    The application basically contains pages having master-Detail tables.
    On few pages we are displaying 20 tables, these pages performance is very bad. They take 5 mins to load the complete page with all empty tables. A simple search operation on these pages takes around 7 mins.
    We have done View object tuning for all the VOs getting used on these pages, but still they are slow.
    Please advice us on how to improve the performance...
    Thanks,
    Manasa.

    Hello Shay,
    We are using task flows to bind different pages. When we click on show detail item, containing the task flow as a region, it takes 5 mins to display the jsff. Intially we just show empty tables and search criteria present in the jsff. Only the jsff having more master-detail tables are slow.
    In database, the queries are not taking much time to execute, they all are tuned.
    We are not using any middle tier, the application is just based on ADF BC components. The following are the settings we followed in tuning VOs:
    Each table in the page shows a maximum of 7 records at a time.
    Vo tuning:
    All Rows: in Batches of 11
    Query Optimizer: FIRST_ROWS(10)
    Range Size: 11
    RangeSize in Page Def="10"
    Thanks,
    Manasa.

  • Which business layer for ADF/JSF applications?

    We are considering developing j2ee applications using ADF Framework ad JDeveloper. We have choosen to use ADF framework using ADF Faces as a view layer, JSF Controler.
    Can someone give me a suggestion about which tecnology to use to build service layer?
    Since we are java developers, is it better to use Toplink POJOs or is there some advantages using ADF BC.
    Is there any tutorial or note thet can help us making this choice?
    Thank you very much
    Michele

    The ADF Developer's Guide for Forms/4GL Developers and the corresponding end-to-end tutorial for the SRDemo sample using ADF Business Components should be on OTN by the end of this week. If you are interested in a pre-release, please email me at [email protected]
    Thanks.
    The ADF Developer's Guide for advanced J2EE Developers and the end-to-end tutorial using EJB/Toplink are already on OTN. Using these side by side, hopefully it will help you get an idea of which one feels like a better fit for your team's background, experience, and preferences for ways of working.

  • Application Performance Issue

    Hi !
    We have developed a web application which was moved to staging around an year ago. Now the application is facing connection failures and session time outs. We inferred that it is 'coz of the increase in the size of database resluting in larger outputs causing the timeouts..There are hundreds of users accessing the application at a given time....and lakhs of recs in each table...around 60 tables in total
    We are using weblogic server 5.1 and java,jsp,ODBC for the application development. We suggested that the connection pools size be increased and the time out value be increased as well....
    But , we r also trying to check the frontend to see if it can be optimized in a better way....
    My question is ..do u think that the usage of preparedstatement in place of statement object in jsp's and java files is going to make any difference....
    Also, can u also suggest any other methods to follow to optimize the performance....
    any suggestions are welcome..Thanks in advance

    Prepared statements make a difference if you execute the same query over and over again. It means it doesn't have to parse the sql string each time, but can just plug in different parameters.
    In your case though, I don't think it would make much of a difference. The time is being spent in running the query, not parsing it.
    I would look at your database queries - maybe add an index to the table to speed things up?
    What database are you using specifically? How are you connecting via ODBC? Using the JDBC-ODBC bridge? Maybe look at a pure JDBC driver?
    The general rule is that 90% of the time is spent in 10% of the code. Its finding the 10% you need to optimize that is the problem. Run a profiler to see what is taking the time.
    Good luck,
    evnafets

  • Jdeveloper 11g team development model when develpoing ADF JSF application.

    We have a application include five nearly 10 screens developed using J dev 11g.
    Our application conteins model and view projects.
    We want some of our developer develop some of the screen of project and other programmer develop the other screens. Just one developer responsible from Model projects.
    We shared responsibility between programmers such as.
    Programmer1 --> input.jspx
    Programmer2 --> edit.jspx
    We gave programmer projects files. They develop the new screens.
    But When we want to combine the screen, some of the shared files suchas (databinding.cpx) couses problems.
    How can we manage this kinds of situations. We don't want to create a new projects for each screen.
    We are using cvs. But shared files couses problems in CVS also.
    is there any metodology you recommend ?
    Thanks.

    Hi,
    Many of our users work in this same way - one application, one model project and one view/controller project. As you are using CVS I would suggest the following:
    1. Have each developer check out the whole application, not just the project
    This is because
    a. there are dependencies between the model and VC project
    b. many of the files also have dependencies (Java/XML metadata, binding, pagedef....)
    2. Make use of Pending Changes
    a. use outgoing changes to ensure that you check in all changed files
    b. be careful that all your outgoing changes are properly checked in - as CVS does not do atomic commits you can experience the situation where some file dependencies are not check in (for example if a network failure). SVN does do atomic commits, by the way
    c. use incoming changes to see changes that have been checked in by other developers - this allows you to do a Compare of files such as DataBindings.cpx to see what changes have been made and, if necessary, to discuss with the other developer prior to doing an update
    3. Use JDevelopers Merge Conflict resolution functionality to merge any conflicts in files
    4. If you are using Task Flows consider having one developer who is responsible for adding/editing them
    a. The information that is shown on the design view is taken from the source XML file - so these will need to be merged if multiple users check in
    b. There is a diagram file associated with each task flow (eg adf-config.adfc_diagram) - this holds the x.y postional information of each shape on the diagram. If a diagram is edited by multiple users it can be complicated to decide which positional info should take precedence
    Can you give me an example of the problems you are experiencing with the data binding file?
    regards
    Susan
    www.susanduncan.blogspot.com

  • Oracle ADF JSF APPLICATION

    Pls, can any one help me how to implement inputfile component that is how use it to upload file to application server.

    <af:inputFile label="Upload:" value="#{managedBean.file}"/>   -- Managed bean is Bean you need to create . The file value binding is with a varible name file in managedbean
      <af:commandButton text="Begin" action="#{managedBean.doUpload}"/>     Similarly doUpload is method inside the managed Bean.
    see this link .. and follow
    ADF Webcenter Blog: File Uploading in ADF

  • ADF JSF fragment refresh issue

    I have a .jspx page consisting of two .jsff fragments. Each .jsff fragment contains a table. When I modify a row in table1 some changes also need
    to be reflected in table2 in the other .jsff fragment. Using partialTrigger won't work here since it seems that I cannot include a reference to a .jsff fragment
    from another .jsff fragment, so I tried to solve this via ADF calls in the backing bean of one of the .jsff fragments. I have traversed the ADF tree and identified the
    component in the other .jsff fragment that I want to refresh but a call to AdfUtil.addPartialTarget(...) or to AdfFacesContext.getCurrentContext().addPartialTarget(...)
    does not trigger a refresh. I am wondering what I am missing? I would appreciate any help with this.
    Thank you,
    Bogdan

    Inter-region communication is normally done with Contextual Events. A quick google search gave me this: http://www.oracle.com/technetwork/issue-archive/2011/11-may/o31adf-352561.html
    It's been a few years since I did it, but I have had success using contextual events with regions. I think that you might have to have the container that contains the two regions act as a proxy for the event, but it's kinda foggy.

  • 1 core VS multi core in a web application: performance issue

    Hi,
    I'm having trouble with a web application in a multi cpu server (w2ksp4, iis+wl9.2)
    I have prepared a set of JMeter stress tests, and the application is only capable to finish 5 transactions in a multi cpu (2 cpus with 2 cores each) but if I bind the JVM of the weblogic process to only 1 core, then the application can handle more than 60 transactions without errors.
    I'm in production side; developers tell me "hardware problem" but it seems more likely a poorly designed application (as per my previous experience with them)
    The syntoms are lot of null pointers exceptions and threads stuck when in multi core scenario.
    Althought I have not put lot of details, any of you have ever seen something similar?
    If anybody needs further information please feel free to ask
    Thanks,
    Antonio

    What operating system are you using?
    make sure you are trying a certificated configuration JDK and OS.
    Oracle Fusion Middleware Supported System Configurations
    If using unix/Linux OS based you migh be hitting low entropy issue, you can add
    -Djava.security.egd=file:/dev/./urandom to JAVA_OPTIONS and retest the issue
    Best Regards
    Luz

  • Very Confused, Application Performance Issue

    Essentially every program takes much longer to start-up than it used to, Chrome for example used to start in less than one bounce but now it takes at least 4, even if I close it and re-open it straight away, I've tried using Onyx to clear the application cache and Disk Utility reports nothing wrong with the HDD, I'm at wits end as to what could be wrong, please help me!
    iMAC 21.5"

    I have ran disk utility, onyx, changed the startup disk and even reset the PRAM just to ensure, the issue is still occuring. Not just in Chrome but in every application I can think of. I copied around 80gb of data from a USB HDD to another USB HDD then ejected them both, that's when it started to happen

  • Web Application Performance Issue (WLS 12)

    Hello guys,
    I am new to weblogic and i recently downloaded weblogic server 12.1.3.0 and i created a domain and successfully deployed my web application.
    My web app is Java Based (Mainly Servlets , DWR Requests ..), the problem is that it takes for ever to start and it is very slow .
    I deployed it on Tomcat 7 previously and had no problem it was very quick.
    I tried changing the JVM Arguments (xms , xmx and XX:MaxPermSize) but no luck with that .
    Kindly can anyone help me with this issue .
    Thanks in Advance.

    What operating system are you using?
    make sure you are trying a certificated configuration JDK and OS.
    Oracle Fusion Middleware Supported System Configurations
    If using unix/Linux OS based you migh be hitting low entropy issue, you can add
    -Djava.security.egd=file:/dev/./urandom to JAVA_OPTIONS and retest the issue
    Best Regards
    Luz

Maybe you are looking for

  • IPhone / Genius Bar Query

    I am going to get my sisters broken iPhone fixed to surprise her for Christmas. I have a Genius Bar appointment for Thursday. I'm just wondering, if the phone has to be replaced will they want me to set the replacement phone up with her details when

  • Settlement profile does not exist

    Hi Gurus I am getting an error while creating a Sales order "Settlement profile does not exist" . Error description is "The system has found a settlement rule that is assigned to settlement profile ZSOR. However, this settlement profile does not exis

  • Chords / Transpositions no Longer working

    Really frustrated with this today. I save all my logic Pro 9 projects to an external hard drive. Booted up a few projects today, and all the chords / transpositions in the global track settings are no longer changing the chords. I'm working on a few

  • Unable to see the buttons in the providers

    hi I have created new Providers in Portal .The places where edit, help etc buttons should be seen I am getting null written at that place. Please provide some help thanks in advance dhawanmayur

  • Changing a chart title dynamically

    Hi all. I'm on apex 3.1.0. I have a list_item with some values and a chart that depends on the value of this list item. I have no set at the moment title of this chart. What I want is to set title depending on value of my list item. So if value of li