10g forms applet very slow

I've just converted a couple of 6i client server forms to 10g.
I'm using the Developer suite 10gR2, with its own built-in oc4j server.
It all works fine, after some fiddling to get icons loaded etc.
But the form is 10 times slower than in client-server. This is a total show-stopper for us. A form that took 2-3 seconds to load before can now take nearly a minute to come up.
Even our very simple login form is slow, many seconds instead of a fraction of a second.
I've tested on the workstation thats running the OC4J, This is a Dual-Xeon 2.4Ghz with 2G of memory, so its NOT the hardware. Its running XP-Pro.
Then I tested on a workstation, using a dummy html page to launch Jinitiator and get the form up. JInitiator installed itself perfectly, but erformance is exactly the same even though its a P-III-800 with only 256M of memory.
The strange thing that we notice is that the performance monitor on the oc4j server machine shows it as almost idle (3% cpu, almost no network traffic and idle disk).
But on the workstation the cpu is at 80-90% all the time, even when the form is just sat there waiting for user input!
So we think we have some sort of applet mismatch or configuration problem. Is there a newer (or older?) applet version thats quicker, or doesn't nail the cpu this way?
My next step is to download just the forms-and-reports services for linux and put that up on a second identical box that has Redhat-ES.
Has anyone else seen this sort of applet behaviour? if so any suggestions would be a great help because we're stumped at the moment.

Good feedback folks, but I still don't see any explanations of whats happening, or why it should be slow.
I'll agree that putting the icons in a single file, one jar archive per form, is definitely more efficient. Putting all your icons in one file strikes me as silly since then you have to download all the icons, even if you never bring up forms that use some of them.
BUT gentlemen, it does not explain why we had the problem I described. I see no reason to suspect that the jar file would fix my problem, (of course I'll try anyway).
The point here is that the form was slow to start, OK, maybe that was because it was individually fetching 15 or 20 icon files.
BUT WHY SHOULD IT THEN BE SLOW AFTER THAT!
Sorry to shout but no-one seems to be hearing what I'm saying here:
1) the applet has the CPU locked-up at over 90% all the time
2) the cpu is at 90% when the form is idle waiting for input.
3) the form has completed painting the user interface just fine, I can see everying,
including all the icons, it all works right, its just slow.
4) its not surprising that its slow since the applet has the cpu pegged
5) we get the same pattern of behaviour on a form that has exactly one icon,
for a download of one file, a total of 232 bytes.
Now there is no way you can claim that a jar archive is significantly faster
than a single gif file download, they are both cached and the sizes are both so small that any difference is insignificant.
It looks to me like a bug in the applet, or some sort of configuration or set-up error on my part. But I can't find any documentation on how to control that. The applet itself appears to be very much a black-box with no visibility into whats going on inside it. No trace file, no log file, no debug options.
I mean debugging the applet itself here, not the form that the applet is presenting to the user.
I'm going to work on bringing it up on Linux today, for now I'll just run without icons while I get the forms/reports integration running. Then I'll come back to the icon issue next week. Maybe if I switch to jpegs the problem'll go away. SO I'll post a follow-up sometime next week.

Similar Messages

  • Oracle Forms Performance very slow on the internet

    Hi ,
    We have developed a form application with forms Developer 10g and deployed it on a ORACLE 10g AS. If the user runs our application over intranet there is no any network problem or not any performance decrease occurs. However if we deploy our application over WAN or internet, the startup time of the forms become Very Slow.
    What we can use to make it faster , is there any other tools we have to learn like APEX or JDeveloper , what is the best solution , should we forget the Developer for ever and starting with other tools with fast performance on the internet , if so , what we have to learn , please help us , its common problem .
    any help please ,

    Interesting thread....
    You asked whether "Forms" is the right product for the job. Well, the answer to that question will depend entirely on exactly what functionality you need and your skill-set. One advantage of using Forms over other Oracle products is that, in my opinion, Forms allows you to create simple or complex applications very quickly, with limited development experience. The downside to using Forms however, is that it does use a fairly thick client making startup slower than other applications. Generally, Forms is not very well suited for Internet deployments although it can and has been done. If your goal is to use a product which is easy to work with and is appropriate for Internet deployment, you may want to consider Apex. The downside to Apex is that unlike Forms, Apex generates what I like to call static html pages. Meaning once a page is displayed for the end-user, the data on it remains the same until the user forces interaction with the server again, but in this case the entire page would be refreshed in order to realize the changes. In the case of Forms, any content displayed to the end-user can be change without completely refreshing their view. I like to refer to Forms as a living application because unlike Apex, it can easily respond to most user inputs and/or server side changes almost in real-time. If you want this "live" experience, Forms might be the way to go, although at the cost of some startup performance. Alternatively, Oracle ADF can also give you a similar live-like experience. However, ADF will require a broader skill-set (pl/sql, java, html, etc), whereas with Forms you could get away with only knowing pl/sql although java knowledge would be helpful.
    The views expressed in this thread are my own and do not necessarily reflect the views of Oracle.

  • Opening ADOBE forms is very slow.

    Lately, once I enter my username and password, opening ADOBE forms is very slow.

    Hi,
    try on the icon of SAP on desktop go to properties and on the compatibility check disable desktop composition.
    hope it helps
    Petr

  • Opening of form is very slow

    Hello,
    I've installed SAP 2005A on a Vista computer.
    My problem is the opening of the forms is very slow.
    Does anyone knows the reason of that.
    Thanks.

    Hi,
    try on the icon of SAP on desktop go to properties and on the compatibility check disable desktop composition.
    hope it helps
    Petr

  • Applet very slow and shows no activity, but its running

    I have a new applet for the users, but I am reluctant to implement until I get some others opinions. It is very slow (30 - 40 seconds)
    Before it outputs a screen with about 20 lines, it reads 90 different html files. It looks at the forth rec of each to extract a name. It also gets the file size to determine if the record needs to be on the screen.
    Anyway, it does 4 reads on 90 files. = 360 reads. Oops, it also reads and loads a 80 record file at the beginning. So total is 440 reads.
    It takes 30 - 40 seconds. Which is not horrible, but it is not good. What really bothers me is that the applet screen shows no activity. At the bottom is shows "done" and "100%". Task Manager shows no activity. But if you just let it sit there, it will finally fill the screen. Pretty amazing to me. I would much rather see a "progress bar" moving on the bottom like other screens. Actually, a progress bar would solve it, because the users are not in a big hurry anyway.
    I am using "openStream" and "readLine" for the files.
    Any opinions?
    import javax.swing.*;
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    import java.io.*;
    import java.util.*;
    public class urlaa extends JApplet
    //zz  implements Runnable, ActionListener
          implements ActionListener
    // zz added
        private JLabel item;
        private JList itemList;
      int par;
      int errorflag = 0 ;
      int orgsize = 14900 ;
      String par1;
      String s;
      String e1;
      String e2;
      String e3;
      String w1;
      String w2;
      String w3;
      String w4;
      int i = 0;
      int len ;
      int size ;
      String stringsize ;
      URLConnection conn ;
      int i2 = 0 ;
      int k = 0;
      int current = 0;
      String s1 ;
      String s6 ;
      String s7 ;
      String s8 ;
      String printline ;
      String pageLink;
      String arr[]  = new String[150] ;
      String arr2[] = new String[150] ;
      String arr3[] = new String[150] ;
      int arr4[] = new int[150] ;
      String inputLine;
      Thread runner;
      public void init()
             String parameter = getParameter("par1");
             if (parameter != null)
                 par = Integer.parseInt(parameter);
             else
                 par = 99;
    // zz         Button goButton = new Button("Go");
    // zz         goButton.addActionListener(this);
    // zz         add(goButton);
    // zz   added
            this.item = new JLabel();
            this.addButton();
            Container container = this.getContentPane();
            this.itemList = this.getList();
            container.add(this.getPanel());
            URL u;
            InputStream wis = null;
            DataInputStream dis;
            int rcnt = 0;
            int rcn2 = 0;
           //    1)  read filelist.txt file
           //         and load into a table.
           //    2)  close the filelist.txt file
           //    3)  Use the tabled file names to
           //         read and see if the bio
           //         has been done
           //  1) Read filelist.txt and load table
            try
            u = new URL("http://www.classof1961.mysite.com/filelist.txt");
            catch (MalformedURLException e)
              errorflag = 1 ;  // set error flag to stop while loops
              e1 = ("FILELIST.TXT MalformedURLException: " + e.getMessage()) ;
            try
                u = new URL("http://www.classof1961.mysite.com/filelist.txt");
                wis = u.openStream();
            catch (IOException ioe)
              errorflag = 1 ;  // set error flag to stop while loops
              e1 = ("FILELIST.TXT IOException : " + ioe.getMessage()) ;
    //      does not work     size = wis.getContentLength() ;
                // Convert the inputStream to a buffered DatainputStream.
                dis = new DataInputStream(new BufferedInputStream(wis));
                // Read 1st record to set up while loop
                   try
                     s1 = dis.readLine() ;  // get 1st rcd
                   catch (IOException ioe)
                     errorflag = 1 ;  // set error flag to stop while loops
                     e3 = ("FILELIST.TXT IOException : " + ioe.getMessage()) ;
                   while (s1 !=  null)
                   {  // load file names loop
                   if (errorflag == 0)
                   {  // if errors
                    arr[i] = s1 ;
                    i++ ;
                    try
                    s1 = dis.readLine() ;
                    catch (IOException ioe)
                      errorflag = 1 ;  // set error flag to stop while loops
                      s1 = null ; // force end of loop
                      e3 = ("load table read failed" + ioe) ;
                    rcnt++ ;
                    if (rcnt > 100)  // test code
                    {                // test code
                      errorflag = 1;
                      s1 = null ;
                      e3 = "Load table is looping!!" ;
                   }  // end of error check loop
                   }  // end of table load loop
               int lasttableentry = i ;  //
                   // CLOSE the filelist.txt file
                   try
                    wis.close();
                   catch (IOException ioe)
                    errorflag = 1 ;  // set error flag to stop while loops
                    e3 = ("close of filelist.txt file failed" + ioe) ;
    //   End of filelist read and load and close
    //      ptr to whats new names in table arr
            i = 0 ;
    //      While more names in table,
    //        Connect and Open file
    //        Read file until 4th rcd (rel 3rd rcd)
    //          if rcd has date, then move it to table
    //          else
    //          bump to next file name
              w1 = arr[i] ;
              w2 = w1.substring(1, 4) ;   // ONLY USED FOR CHK FOR XXXX
    //    ______________  start of major loop  _____________
            boolean morenames = true ;
            while (morenames)
            {  // Name table loop
            if (errorflag == 0)
            {  //if no errors
              try
                u = new URL(w1);
                try
                  URLConnection conn ;
                  conn = u.openConnection();
                  size = conn.getContentLength();
                catch (IOException e)
                  errorflag = 4 ;
                  morenames = false ;
                  e1 = ("file size logic failed " + w1) ;
              catch (MalformedURLException e)
                    errorflag = 1 ;  // set error flag to stop while loops
                    morenames = false ;
                    e1 = ("next whats new url error : " + w1) ;
    // compile error                break ;
              try
                  u   = new URL(w1) ;
                  wis = u.openStream();
              catch (IOException e)
                errorflag = 1 ;  // set error flag to stop while loops
                morenames = false ;
                e2 = ("next whats new open error :  " + w1) ;
    //   compile error            break ;
    //            Convert the inputStream to a buffered DatainputStream.
                  dis = new DataInputStream(new BufferedInputStream(wis));
                if (errorflag == 0)
                {  //if no errors
                       try
    //  does not work                       String s2 = dis.readLine(3) ;
                         s1 = dis.readLine() ;
                         s1 = dis.readLine() ;
                         s1 = dis.readLine() ;
                         s1 = dis.readLine() ;
                       catch (IOException e)
                         errorflag = 1 ;  // set error flag to stop while loops
                         morenames = false ;
                         e2 = "whats new file MalformedURLException: " ;
                       // file is larger than original non-bio file size
                       if (size > orgsize)  //  if file size > original file size
                       String s2a = s1.substring(0, 5);
                       String s3 = "                       " ;
    //                 Only look at title records to get the name
                       if (s2a.equals("<titl"))
                          int k2 = 7 ;
                          int l = k2 + 1 ;
                            while (!s1.substring(k2, l).equals("<"))
                              k2++ ;
                              l++ ;
                          s3 = s1.substring(7, k2) ;
                       else
                          s3 = "               " ;
    //                 s3 now has blanks or the name
                       arr2[k] = w1 ;    // move name into arr2 (link to bio)
                       arr3[k] = s3 ;    // move name into arr3 (bio name)
                       arr4[k] = size ;  // move in file size
                       k++ ;
                       } // end of if length > 36
                } // end of chk for error flag zero (no errors)
                  //  now we have to close this whats new file
                   // CLOSE the current whats new file
                   try
                    wis.close();
                   catch (IOException ioe)
                    errorflag = 1 ;  // set error flag to stop while loops
                    morenames = false ;
                    e3 = ("close of the current whats new file failed" + ioe) ;
                  //  end of the close
              rcn2++ ;
              if (rcn2 > 100)  // test code
              {                // test code
                 errorflag = 2;
                 morenames = false ;
                 e3 = "Searching files is looping!!" ;
              i++ ;           // bump to next whats up name
              w1 = arr[i] ;   // load it into work string
              if (i > lasttableentry)
                morenames = false ;
              } // end of error checking loop
             else
                  morenames = false ;
            } // end major name table loop
                   // CLOSE the last whats new file
                   try
                    wis.close();
                   catch (IOException ioe)
                    errorflag = 1 ;  // set error flag to stop while loops
                    e3 = ("close of last whats new file failed" + ioe) ;
    // end of init
    //     _________________ other methods  ______________________
    // zz added
        private JList getList() {
            // Create a List
            JList tempList = new JList(arr3);
            tempList.setVisibleRowCount(3);
            // Enable single selection
            tempList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            return tempList;
        private JButton addButton() {
            JButton button = new JButton("Select Item below and click here to go to the bio");
            button.addActionListener(this);
            return button;
        private JPanel getPanel() {
            // set layout to GridLayout 3 rows and 1 columns, no separations
            JPanel panel = new JPanel(new GridLayout(3,1,0,0));
            JScrollPane spane1 = new JScrollPane(this.itemList);
            panel.add(this.addButton());
            panel.add(spane1);
            panel.add(this.item);
    //       panel.add(new JLabel("Example List"));
            return panel;
    //   _______________  actionPerformed method  ____________________
         public void actionPerformed(ActionEvent evt)
           s8 = "actionPerformed";
    // zz added
            String command = evt.getActionCommand();
            // Get the selected value from the list and update the JLabel
            item.setText((String)itemList.getSelectedValue());
    //  try to redirect to selected url
      try
             int idx  = itemList.getSelectedIndex() ;
             String urlvalue = this.arr2[idx] ;
             URL u = new URL(urlvalue);
             this.getAppletContext().showDocument(u, "_self");
         catch(Exception e)
    }

    jagossage wrote:
    But if you just let it sit there, it will finally fill the screen. Pretty amazing to me. The onus is on you, the developer, to decide how to distract your users as they wait for your code to finish. Why should you expect something to do it for you?
    I would much rather see a "progress bar" moving on the bottom like other screens.Ah, I think I see where you're confused. The progress bar and applet loading subtitles, etc are Java's way of presenting the progress of loading the applet. Once it's fully loaded, though (which it is when your code starts running), it hands off control to you. It's in your hands at that point.

  • Oracle 10gr2 Master/detail form running very slow when you navigate to the detail record.

    Hi All, I have a master detail  form, running in webserver, when I navigate to the detail block, the form start buffering and buttering for about 2 min. There is a trigger when-new-record instance that is firing when you navigate to  a new record : The select part of this stament is taken a long time to execute. I modified this in toad and what used to take 25 seconds to run is taken less than a second now, but the slowness still persists in the form.
    for rec in (select wrrh_col
                      wpbh_col_lvd,
                       wpbh_col_doc_no
          from wh_col,
               wkpl_col,
               wh_col
         where wrrh_col_no = :block.wreh_wrrh_col_no
           and wrrh_col_no = wreh_wrrh_col_no
             and wrrh_col_no = wpbh_col_no
           and wrrh_col_proj    = wpbh_col_proj
           and wrrh_proj_no     = wpbh_proj_no) loop
       if fun_name(rec.wpbh_col_lvd) = 'Y' then                      
        do something,
       end if;
      end loop;
    The select staement that used to run for 23 seconds is running in less than one second, but the form is still running very slow when I navigate to the detail record.
    Please advise.
    Thanks.

    Thanks Andrea for your prompt response, the problem is the select statement and like I stated, I tuned the select statement in toad and what normally takes 23 secs is taking less than 1 sec to run. If I comment out the call to the function, it is still slow. The select stament will returned null and it will still be slow. When I comment out the for loop, it run very fast. I dont know what else to do than tuned the select statement.

  • Code of conduct application form opening very slow

    Dear Friends,
    we have enable code of conduct application by implementing zform so when i click on code of conduct service in portal it is opening very slowly .
    My client is complaining that is is opening very slow how can i make the form to appear quickly .
    What can be the reason for the form to open very slow it is takign almost 3 min . How can i reduce this time.
    Kindly suggest .
    Best Regards

    Hi Siddharth,
    This is the problem with everuser and after some time it is showing the error as 500 internal server error with exception:java.net.Sockettimesout.Exception:Timedout
    We have even taken the trace from OS level the following is the details of default trace file:
    #1.#0021282821A600B8000000000000588F0004B80B81935B7A#1328259464911#com.adobe.document.PDFManipulation#com.adobe/AdobeDocumentServices#com.adobe.document.PDFManipulation#J2EE_GUEST#0##n/a##2342b5f04e4511e1946a0021282821a6#Thread[PDFManipulation.exe Error Reader,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Error##Plain###Service PDFManipulation: Native process (PID=24370) /usr/sap/TTD/DVEBMGS00/j2ee/os_libs/adssap/PDFManipulation/bin/PDFManipulation.exe terminated abnormally with error code 2#
    Can you please let me know what could be the problem.
    In the last week atleast we are able to open the form eventhough it is opened slowly not it is showing the error instead of form.
    Regards.

  • The contribution form load very slow in Site Studio

    We have created a site on ucm with Site Studio 10.1.4.5.0 and the contribution form load is very slow and. When we puch Ctrl + Shift + F5 the page delay 20 seconds on loading.
    Any idea?
    Thanks a lot.

    catch all answers #2,3,4
    2. repair disk permissions / verify disk
    3. run diskwarrior to verify directory structures on all disks
    4. reinstall QT7 - people have noted very odd behavior from 7.0
    x

  • Forms fetching very slow

    Dear all,
    Our development team trying to execute a Query from a 6i forms, but its takes much time to execute, the same SQL script runs takes very few seconds from execute from SQL prompt. why the forms getting this much time to execute,,
    from where i have to tune and solve this issue, Where i have to check first ,, from database side or from forms side ..??
    They using Forms 6i with 9i database..
    Regards
    Hamid

    Hi;
    For your issue i suggest close your thread here as changing thread status to answered and move it to Forum Home » Application Development in PL/SQL » Forms which you can get more quick response
    Also see:
    Master Note: SQL Query Performance Overview [ID 199083.1]
    Regard
    Helios

  • My queries in Forms a very slow - why

    Hi all,
    I've created a data-block in Forms based on a view. The view based on a join between 2 tables and returns round about 1 Million entries.
    When i press my button:
    go_block('v_talrep_re_positionen');
    execute_query
    ... and a WHERE-Statement.... to reduce the amount of records...
    then i want Oracle to execute the query and to show the result.
    When I execute this query with SQLPlus or TOAD then I get a result within 5 Minutes. When I execute this query with my forms-application then I must wait 20 Minutes and more.
    Which possibilities do I have to optimize Forms for executing queries fast and faster...
    Do you have any idea?
    bye
    Florian

    Hi Florian,
    try to use hints in the view;
    e.g. select /*+ RULE */ name
    from emp
    Sometimes it helps.
    Regards,
    Monica

  • Problems loading applets - Very Slow

    Ok... I have designed my applet in two parts implying that my applet consists of two .jar files, one for each part.
    I Launch it by the following html-code:
    <applet
    codebase="games/"
    code="testapplet.TestApplet"
    archive="../games/testapplet.jar, ../gameengines/gameapplet.jar"
    width="640"
    height="480">
    </applet>
    This works GREAT on my local machine but as soon as I try to launch it om my webpage, it suddenly takes Ages to load! I don't get why. The jar-files are totally 51k so the size cannot by an issue...
    Does the number of files packed in the .jar-files matter to how fast my applet loads? I thought I got around that problem by using .jar-files but ... ?
    Thanx for you input!
    /M

    Hmmmm... Well, Would using HTTP 1.1 make my loading process any faster? I'm talking about 20 seconds load time for an applet consisting of 70 classes all packed in to two .jar-files at totally 51k.
    No extra graphics, No GUI, No nothing - Except a Game API that has the potential to perform quite well, once it is up and running!
    Are there any design issues that I perhaps have to take into consideration when I design Applets?
    /M

  • Oracle 10g - query is very slow in jdbc but not in other tools

    I'm using PreparedStatement to execute a query with some parameters.
    in sql developer, it just spends 12 seconds but in jdbc, it's around 140 seconds.
    I disabled "_optim_peek_user_binds" parameter already but it didn't help.
    alter session set "_optim_peek_user_binds"=false;

    Please mark this thread ANSWERED and repost it in the JDBC forum.
    https://forums.oracle.com/forums/category.jspa?categoryID=288
    When you post provide your 4 digit Oracle version, Java version and JDBC jar name and version as well as the code you are using.

  • 10g Form - first execute query - very slow

    I have the following issue:
    Enter an application
    open a form in enter query mode
    first time execute query is very slow (several minutes)
    every other time it's quick (couple seconds or less)
    I can leave the form, use other forms within the app, come back and query is still quick. It's only the first time after initially launching the app.
    Any ideas what might be causing this?

    We have the same application running in 6i client/server DB-9i in production. We are testing the upgraded application that is 10g forms on OAS DB-10g. We don't have the issue in the current production client/server app.

  • Forms executable files execute very slow

    I am using AS10g form services. But the form applet which executes at the client is very slow as compared to the previous version of forms like 6i
    Data Entry is time comsuming, coz the applet taked time to open an LOV and in other operations.
    Is there any way to speed up this process?

    Forms 10g run as a Java applet in the browser. Java takes more resources on a PC than Forms 6i (client/server). Check your PC if you need more memory.
    Also, check the Jinitiator cache settings.

  • Applet with JDBC runs very slow

    I have recently created an applet which I am using to interface with a MS SQL Server 2000 database using JDBC. The server is running W2K Server, and a Tomcat web server.
    There are some performance problems with this application. The volume of data being demanded by the database is very low, yet it runs very slow. More specifically, however, the application runs at a very fast pace for several seconds, then "stalls" for 10 -15 seconds.
    The stalling of the application does not take place at the same place in the code all the time; rather it seems to be completely independent of what I am doing. Sometimes a particular operation takes 20 seconds to complete, but the next day the same thing only takes 20msec.
    Any ideas?
    Thanks

    sounds like network usage issues
    hard to tell with no code and no idea how you're configured

Maybe you are looking for