Too many threads?

Is there a such thing as using too many threads? I'm in the planning stages and it would be nice to have each object running on its own thread, but is this a horrible thing? Is there a general rule of thumb on the number of running threads?

Personally, I think if you have more than 20 or so
threads in a process, the task swiching time will
start to exceed the useful work done. Its better to
use one of the standard patterns for pooling threads.There is no one 'right' or 'maximum' number of threads.
The number of threads after which things get overly inefficient varies greatly depending on the characteristics of the application. If 20 threads fully consume the CPU, then adding more threads will only make things worse. If 20 threads can only use 10% of the CPU resources because of external delays (network access, database, etc.) then it may be true that using 200 threads is best, assuming of course that the throughput capacity of the network, database or external system can accomidate the increased load.
What you'd like to avoid is preemption - a runnable thread interrupts a currently running thread that still has need of the CPU - this wastes time. If the running threads tend to block before the end of their time slice, then there really isn't going to be any added cost to context switches, nothing else would be using the CPU anyway.
If the computer the application is running on has a number of CPU's, then it can probably accomidate more threads than a single CPU system. Of course there are limits to the effectiveness of this and a single process with many threads may not (often does not) run as efectively as several copies of the application with fewer threads each due to various inter thread contention issues.
Chuck

Similar Messages

  • Slow execution, flickering graphics, and too many threads, oh my!

    i wrote a little game called Aim, Fire! just to screw around.
    its immense complexity involves shooting little targets that fly across the screen.
    you can see it at http://www.brianmaissy.com/applets/aimfire
    i made a class representing a target that paints itself and is its own thread.
    its kinda nifty in a OOP sort of way: all i have to do is instantiate a target; and it takes care of the rest, notifying the driver program of anything important (like it getting shot)
    the problem, however, is the speed changes significantly depending on how many targets are active, and the graphics are very flickery.
    i think the problem may be that having multiple threads is slow.
    i also tried buffering my graphics but it didnt work very well.
    however that may just be because i did it wrong.
    in fact i probably did a lot of things wrong - please notify me of anything you see that i did badly
    so tell me what you think about the design of the program, and any suggestions you have to restructure it. would i do better just to stick everything in one thread, or even all in one class?
    thanks very much!
    here is the code: (also found at http://www.brianmaissy.com/applets/aimfire/aimFire/AimFire.java and http://www.brianmaissy.com/applets/aimfire/aimFire/Target.java)
    package aimFire;
    import java.applet.Applet;
    import java.awt.Color;
    import java.awt.Event;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Point;
    import java.util.ArrayList;
    import java.util.Random;
    public class AimFire extends Applet{
         public static final int SPEED_CONSTANT = 500;
         public static final int MIN_X = 0;
         public static final int MIN_Y = 21;
         public static final int MAX_X = 399;
         public static final int MAX_Y = 399;
         Image ammoImage;
         private Random rand;
         private static final int CLIP = 10;
         private static final int TOTAL_TARGETS = 20;
         private int toBeAdded;
         private ArrayList<Target> targets;
         private int targetsKilled;
         private int ammo;
         private int score;
         private boolean gameActive;
         public void init(){
              setSize(400, 400);
              setBackground(Color.black);
            setCursor(getToolkit().createCustomCursor(getImage(this.getClass().getResource("crosshair.gif")), new Point(16, 16), "crosshair"));
            ammoImage = getImage(this.getClass().getResource("ammo.gif"));
            rand = new Random();
            ammo = CLIP;
            score = 0;
            gameActive = true;
            targetsKilled = 0;
            toBeAdded = TOTAL_TARGETS;
            targets = new ArrayList<Target>();
            sendRandom();
            sendRandom();
         public boolean mouseDown(Event e, int x, int y){
              if(gameActive && ammo > 0){
                   ammo--;
                   for(int count = 0; count < targets.size(); count++){
                        score += targets.get(count).hit(x, y);
                   repaint();
              return true;
         public boolean keyDown(Event e, int key){
              if((char)key == ' ' && gameActive){
                   ammo = CLIP;
                   repaint();
              return true;
         private void sendRandom(){
            toBeAdded--;
              Target t = new Target(this, getGraphics(), rand);
              targets.add(t);
            new Thread(t).start();
            repaint();
         public void notifyOfDeath(Target t){
              targetsKilled++;
              targets.remove(t);
              if(toBeAdded > 0){
                   sendRandom();
              if(targets.size()==0){
                   gameActive = false;
              repaint();
         public void paint(Graphics g){
              g.setColor(Color.gray);
            g.drawLine(0, 20, 399, 20);
              for(int count = 0; count < ammo; count++){
                   g.drawImage(ammoImage, count*10 + 3, 3, this);
              if(ammo == 0){
                   g.drawString("press space to reload", 3, 13);
            g.drawString("Targets: " + targetsKilled + "/" + TOTAL_TARGETS, 230, 13);
            g.drawString("Score: " + score, 340, 13);
              if(!gameActive){
                   g.setColor(Color.gray);
                   g.drawString("Game Over", 170, 200);
                   g.drawString("Score: " + score, 170, 230);
    package aimFire;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.util.Random;
    public class Target implements Runnable{
         private AimFire a;
         private Graphics g;
         private int radius;
         private int xLocation;
         private int yLocation;
         private int xDirection;
         private int yDirection;
         private int xSpeed;
         private int ySpeed;
         public Target(AimFire driver, Graphics graphics, Random rand){
              this(driver, graphics, 3*(rand.nextInt(9)+ 2), rand.nextInt(1 + AimFire.MAX_X - 60) + 30 + AimFire.MIN_X, rand.nextInt(1 + AimFire.MAX_Y - 60 - AimFire.MIN_Y) + 30 + AimFire.MIN_Y, rand.nextInt(3)-1, rand.nextInt(3)-1, rand.nextInt(5)+1, rand.nextInt(5)+1);
              if(xDirection == 0 && yDirection == 0){
                   if(rand.nextInt(2)==0){
                        if(rand.nextInt(2)==0){
                             xDirection = 1;
                        }else{
                             xDirection = -1;
                   }else{
                        if(rand.nextInt(2)==0){
                             yDirection = 1;
                        }else{
                             yDirection = -1;
         public Target(AimFire driver, Graphics graphics, int r, int x, int y, int xDir, int yDir, int xSp, int ySp){
              a = driver;
              g = graphics;
              radius = r;
              xLocation = x;
              yLocation = y;
              xDirection = xDir;
              yDirection = yDir;
              xSpeed = xSp;
              ySpeed = ySp;
         public void run() {
              if(g!=null){
                   paint();
                   int count = 1;
                   while(xLocation >= AimFire.MIN_X && xLocation <= AimFire.MAX_X && yLocation >= AimFire.MIN_Y && yLocation <= AimFire.MAX_Y){
                        unpaint();
                        if(count % (AimFire.SPEED_CONSTANT/xSpeed) == 0){
                             xLocation += xDirection;
                        if(count % (AimFire.SPEED_CONSTANT/ySpeed) == 0){
                             yLocation += yDirection;
                        paint();
                        count++;
                   unpaint();
                   a.notifyOfDeath(this);
         public int hit(int x, int y){
              if(Math.abs(x - xLocation) < radius/3 && Math.abs(y - yLocation) < radius/3){
                   xLocation = -99;
                   return 3;
              }else if(Math.abs(x - xLocation) < 2*radius/3 && Math.abs(y - yLocation) < 2*radius/3){
                   xLocation = -99;
                   return 2;
              }else if(Math.abs(x - xLocation) < radius && Math.abs(y - yLocation) < radius){
                   xLocation = -99;
                   return 1;
              }else{
                   return 0;
         private void paint(){
              g.setColor(Color.red);
              g.fillOval(xLocation-radius, yLocation-radius, 2*radius, 2*radius);
              g.setColor(Color.white);
              g.fillOval(xLocation-2*radius/3, yLocation-2*radius/3, 4*radius/3, 4*radius/3);
              g.setColor(Color.red);
              g.fillOval(xLocation-radius/3, yLocation-radius/3, 2*radius/3, 2*radius/3);
         private void unpaint(){
              g.setColor(Color.black);
              g.fillOval(xLocation-radius, yLocation-radius, 2*radius, 2*radius);
    }

    i wrote a little game called Aim, Fire! just to screw around.
    its immense complexity involves shooting little targets that fly across the screen.
    you can see it at http://www.brianmaissy.com/applets/aimfire
    i made a class representing a target that paints itself and is its own thread.
    its kinda nifty in a OOP sort of way: all i have to do is instantiate a target; and it takes care of the rest, notifying the driver program of anything important (like it getting shot)
    the problem, however, is the speed changes significantly depending on how many targets are active, and the graphics are very flickery.
    i think the problem may be that having multiple threads is slow.
    i also tried buffering my graphics but it didnt work very well.
    however that may just be because i did it wrong.
    in fact i probably did a lot of things wrong - please notify me of anything you see that i did badly
    so tell me what you think about the design of the program, and any suggestions you have to restructure it. would i do better just to stick everything in one thread, or even all in one class?
    thanks very much!
    here is the code: (also found at http://www.brianmaissy.com/applets/aimfire/aimFire/AimFire.java and http://www.brianmaissy.com/applets/aimfire/aimFire/Target.java)
    package aimFire;
    import java.applet.Applet;
    import java.awt.Color;
    import java.awt.Event;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Point;
    import java.util.ArrayList;
    import java.util.Random;
    public class AimFire extends Applet{
         public static final int SPEED_CONSTANT = 500;
         public static final int MIN_X = 0;
         public static final int MIN_Y = 21;
         public static final int MAX_X = 399;
         public static final int MAX_Y = 399;
         Image ammoImage;
         private Random rand;
         private static final int CLIP = 10;
         private static final int TOTAL_TARGETS = 20;
         private int toBeAdded;
         private ArrayList<Target> targets;
         private int targetsKilled;
         private int ammo;
         private int score;
         private boolean gameActive;
         public void init(){
              setSize(400, 400);
              setBackground(Color.black);
            setCursor(getToolkit().createCustomCursor(getImage(this.getClass().getResource("crosshair.gif")), new Point(16, 16), "crosshair"));
            ammoImage = getImage(this.getClass().getResource("ammo.gif"));
            rand = new Random();
            ammo = CLIP;
            score = 0;
            gameActive = true;
            targetsKilled = 0;
            toBeAdded = TOTAL_TARGETS;
            targets = new ArrayList<Target>();
            sendRandom();
            sendRandom();
         public boolean mouseDown(Event e, int x, int y){
              if(gameActive && ammo > 0){
                   ammo--;
                   for(int count = 0; count < targets.size(); count++){
                        score += targets.get(count).hit(x, y);
                   repaint();
              return true;
         public boolean keyDown(Event e, int key){
              if((char)key == ' ' && gameActive){
                   ammo = CLIP;
                   repaint();
              return true;
         private void sendRandom(){
            toBeAdded--;
              Target t = new Target(this, getGraphics(), rand);
              targets.add(t);
            new Thread(t).start();
            repaint();
         public void notifyOfDeath(Target t){
              targetsKilled++;
              targets.remove(t);
              if(toBeAdded > 0){
                   sendRandom();
              if(targets.size()==0){
                   gameActive = false;
              repaint();
         public void paint(Graphics g){
              g.setColor(Color.gray);
            g.drawLine(0, 20, 399, 20);
              for(int count = 0; count < ammo; count++){
                   g.drawImage(ammoImage, count*10 + 3, 3, this);
              if(ammo == 0){
                   g.drawString("press space to reload", 3, 13);
            g.drawString("Targets: " + targetsKilled + "/" + TOTAL_TARGETS, 230, 13);
            g.drawString("Score: " + score, 340, 13);
              if(!gameActive){
                   g.setColor(Color.gray);
                   g.drawString("Game Over", 170, 200);
                   g.drawString("Score: " + score, 170, 230);
    package aimFire;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.util.Random;
    public class Target implements Runnable{
         private AimFire a;
         private Graphics g;
         private int radius;
         private int xLocation;
         private int yLocation;
         private int xDirection;
         private int yDirection;
         private int xSpeed;
         private int ySpeed;
         public Target(AimFire driver, Graphics graphics, Random rand){
              this(driver, graphics, 3*(rand.nextInt(9)+ 2), rand.nextInt(1 + AimFire.MAX_X - 60) + 30 + AimFire.MIN_X, rand.nextInt(1 + AimFire.MAX_Y - 60 - AimFire.MIN_Y) + 30 + AimFire.MIN_Y, rand.nextInt(3)-1, rand.nextInt(3)-1, rand.nextInt(5)+1, rand.nextInt(5)+1);
              if(xDirection == 0 && yDirection == 0){
                   if(rand.nextInt(2)==0){
                        if(rand.nextInt(2)==0){
                             xDirection = 1;
                        }else{
                             xDirection = -1;
                   }else{
                        if(rand.nextInt(2)==0){
                             yDirection = 1;
                        }else{
                             yDirection = -1;
         public Target(AimFire driver, Graphics graphics, int r, int x, int y, int xDir, int yDir, int xSp, int ySp){
              a = driver;
              g = graphics;
              radius = r;
              xLocation = x;
              yLocation = y;
              xDirection = xDir;
              yDirection = yDir;
              xSpeed = xSp;
              ySpeed = ySp;
         public void run() {
              if(g!=null){
                   paint();
                   int count = 1;
                   while(xLocation >= AimFire.MIN_X && xLocation <= AimFire.MAX_X && yLocation >= AimFire.MIN_Y && yLocation <= AimFire.MAX_Y){
                        unpaint();
                        if(count % (AimFire.SPEED_CONSTANT/xSpeed) == 0){
                             xLocation += xDirection;
                        if(count % (AimFire.SPEED_CONSTANT/ySpeed) == 0){
                             yLocation += yDirection;
                        paint();
                        count++;
                   unpaint();
                   a.notifyOfDeath(this);
         public int hit(int x, int y){
              if(Math.abs(x - xLocation) < radius/3 && Math.abs(y - yLocation) < radius/3){
                   xLocation = -99;
                   return 3;
              }else if(Math.abs(x - xLocation) < 2*radius/3 && Math.abs(y - yLocation) < 2*radius/3){
                   xLocation = -99;
                   return 2;
              }else if(Math.abs(x - xLocation) < radius && Math.abs(y - yLocation) < radius){
                   xLocation = -99;
                   return 1;
              }else{
                   return 0;
         private void paint(){
              g.setColor(Color.red);
              g.fillOval(xLocation-radius, yLocation-radius, 2*radius, 2*radius);
              g.setColor(Color.white);
              g.fillOval(xLocation-2*radius/3, yLocation-2*radius/3, 4*radius/3, 4*radius/3);
              g.setColor(Color.red);
              g.fillOval(xLocation-radius/3, yLocation-radius/3, 2*radius/3, 2*radius/3);
         private void unpaint(){
              g.setColor(Color.black);
              g.fillOval(xLocation-radius, yLocation-radius, 2*radius, 2*radius);
    }

  • Re: Too many threads?

    It would depend on the type of application and the target platform but I would certainly agree that 20 would be plenty for the vast majority of circumstances.
    Writing a Thread pool conforming to the following interface (for example) is quite straightforward:
    public interface ThreadPool
      public void run(Runnable runnable);
    }Using a Thread pool has the added bonus that you can try using a new Thread for each Runnable or having a limited-size pool without having to change any code except the implementation of your ThreadPool.

    Now why's Jive gone and generated a new Thread for my reply as well as creating a reply too, eh? Grr.

  • DB need too many locks in single threaded application

    Hello,
    I`m new to BDB, and search for help of gurus.
    I try to create database importing data from csv files. Import procedure is already written and works fine, but sometimes it starts to need too many locks.
    Import process read csv file line by line. Check if key is already in the database, if yes it updates data, otherwise create new record. Import procedure is using DBEnv and transaction.
    Please, look at 2 cases of data to import.
    Case 1: Data in csv files are like:
    key1, some_data_1
    key1, some_data_2
    key2, some_data_3
    key2, some_data_4
    keyN, some_data_2N-1
    keyN, some_data_2N
    (key became a key and data became the value in the database)
    Case 2: Remove each second line in the csv file, so it became:
    key1, some_data_1
    key2, some_data_3
    keyN, some_data_2N-1
    In this case for successful import of the file more locks are needed then in case 1.
    This seems very odd to me. Could somebody explain why lock system behave so? Looking forward to hearing any response.
    Thanks.
    p.s.: maybe my explanation is not very clear, but i don't know which other details are really important. I could provide more details if it could help.
    Message was edited by:
    user647892

    There is nothing wrong.
    Oracle by default locks records. In case 1, you insert a record (1 row level lock) and update that same record. Why is a mystery, but the update doesn't require a lock (by you) as you already did lock the record.
    In case 2, you have distinct keys for each line, so each line results in a row level lock as expected.
    There are as much record locks as you request it to make.
    You could consider locking the table explicitly once, prior to the transaction, by a lock table statement.
    However, your approach is fundamentally flawed an non-scalable, as it processes each line individually instead of loading the data in a staging table and transferring it to the production table using
    insert into production table
    select * from staging table
    where key not in (select key from product table)
    Sybrand Bakker
    Senior Oracle DBA

  • Too many 7.5 Threads - Is there a fix?

    I have read through the many threads regarding the new itunes 7.5 problem, it won't open on my computer. Has anyone found the right fix yet?

    Updates are sketchy business to begin with. Rarely do I do them. And here we are all experiencing why.
    First, I updated iPod software and everything seemed fine (was still using iTunes 7.3) until I tried to listen to my pod. All the space was accounted for, but the songs, playlists, etc. all gone!
    I read some other message board that suggested to simply download the newest iTunes 7.5. Problem is, I could never get it to load properly. I'd always get the same message that iTunes was, "missing files...Please re-load iTunes". Back to the forums & boards.
    Finally, somewhere on one of these forums someone suggested this great fix which worked like a charm for me. First try and install 7.5.
    Next remove Quicktime (usually the culprit) completely from your computer.
    Then,Go to http://www.apple.com/support/downloads/quicktime72forwindows.html
    & download the Quicktime 7.2
    Voila! Finished. Hope this helps

  • Unable to create report. Query produced too many results

    Hi All,
    Does someone knows how to avoid the message "Unable to create report. Query produced too many results" in Grid Report Type in PerformancePoint 2010. When the mdx query returns large amount of data, this message appears. Is there a way to get all
    the large amount in the grid anyway?
    I have set the data Source query time-out under Central Administration - Manager Service applications - PerformancePoint Service Application - PerformancePoint Service Application Settings at 3600 seconds.
    Here Event Viewer log error at the server:
    1. An exception occurred while running a report.  The following details may help you to diagnose the problem:
    Error Message: Unable to create report. Query produced too many results.
            <br>
            <br>
            Contact the administrator for more details.
    Dashboard Name:
    Dashboard Item name:
    Report Location: {3592a959-7c50-0d1d-9185-361d2bd5428b}
    Request Duration: 6,220.93 ms
    User: INTRANET\spsdshadmin
    Parameters:
    Exception Message: Unable to create report. Query produced too many results.
    Inner Exception Message:
    Stack Trace:    at Microsoft.PerformancePoint.Scorecards.Server.PmServer.ExecuteAnalyticReportWithParameters(RepositoryLocation analyticReportViewLocation, BIDataContainer biDataContainer)
       at Microsoft.PerformancePoint.Analytics.ServerRendering.OLAPBase.OlapViewBaseControl.ExtractReportViewData()
       at Microsoft.PerformancePoint.Analytics.ServerRendering.OLAPBase.OlapViewBaseControl.CreateRenderedView(StringBuilder sd)
       at Microsoft.PerformancePoint.Scorecards.ServerRendering.NavigableControl.RenderControl(HtmlTextWriter writer)
    PerformancePoint Services error code 20604.
    2. Unable to create report. Query produced too many results.
    Microsoft.PerformancePoint.Scorecards.BpmException: Unable to create report. Query produced too many results.
       at Microsoft.PerformancePoint.Scorecards.Server.Analytics.AnalyticQueryManager.ExecuteReport(AnalyticReportState reportState, DataSource dataSource)
       at Microsoft.PerformancePoint.Scorecards.Server.PmServer.ExecuteAnalyticReportBase(RepositoryLocation analyticReportViewLocation, BIDataContainer biDataContainer, String formattingDimensionName)
       at Microsoft.PerformancePoint.Scorecards.Server.PmServer.ExecuteAnalyticReportWithParameters(RepositoryLocation analyticReportViewLocation, BIDataContainer biDataContainer)
    PerformancePoint Services error code 20605.
    Thanks in advance for your help.

    Hello,
    I would like you to try the following to adjust your readerquotas.
    Change the values of the parameters listed below to a larger value. We recommend that you double the value and then run the query to check whether the issue is resolved. To do this, follow these steps:
    On the SharePoint 2010 server, open the Web.config file. The file is located in the following folder:
    \Program Files\Microsoft Office Servers\14.0\Web Services\PpsMonitoringServer\
    Locate and change the the below values from 8192 to 16384.
    Open the Client.config file. The file is located in the following folder:
    \Program Files\Microsoft Office Servers\14.0\WebClients\PpsMonitoringServer\
    Locate and change the below values from 8192 to 16384.
    After you have made the changes, restart Internet Information Services (IIS) on the SharePoint 2010 server.
    <readerQuotas
    maxStringContentLength="2147483647"
    maxNameTableCharCount="2147483647"
    maxBytesPerRead="2147483647"
    maxArrayLength="2147483647"
                  maxDepth="2147483647"
    />
    Thanks
    Heidi Tr - MSFT
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

  • Too many columns to be shown in the Enterprise Manager 11g?

    Hello,
    we are having some problems with the Enterprise Manager 11g. When we want to VIEW DATA of a specific table, we get this exception. We think that our table has too many columns to be displayed. If we delete some of the columns, the data is shown in the enterprise manager. But this cannot be a solution for us. Can you help us with this point?
    2009-08-03 10:07:04,210 [EMUI_10_07_04_/console/database/schema/displayContents] ERROR svlt.PageHandler handleRequest.639 - java.lang.ArrayIndexOutOfBoundsException: -128
    java.lang.ArrayIndexOutOfBoundsException: -128
         at oracle.sysman.emo.adm.DBObjectsMCWInfo.getSqlTimestampIndexes(DBObjectsMCWInfo.java:194)
         at oracle.sysman.emo.adm.schema.TableViewDataBrowsingDataSource.executeQuery(TableViewDataBrowsingDataSource.java:167)
         at oracle.sysman.emo.adm.DatabaseObjectsDataSource.populate(DatabaseObjectsDataSource.java:201)
         at oracle.sysman.emo.adm.DatabaseObjectsDataSource.populate(DatabaseObjectsDataSource.java:151)
         at oracle.sysman.emo.adm.schema.DisplayContentsObject.populate(DisplayContentsObject.java:369)
         at oracle.sysman.db.adm.schm.DisplayContentsController.onDisplayAllRows(DisplayContentsController.java:303)
         at oracle.sysman.db.adm.schm.DisplayContentsController.onDisplayContents(DisplayContentsController.java:290)
         at oracle.sysman.db.adm.schm.DisplayContentsController.onEvent(DisplayContentsController.java:136)
         at oracle.sysman.db.adm.DBController.handleEvent(DBController.java:3431)
         at oracle.sysman.emSDK.svlt.PageHandler.handleRequest(PageHandler.java:577)
         at oracle.sysman.db.adm.RootController.handleRequest(RootController.java:205)
         at oracle.sysman.db.adm.DBControllerResolver.handleRequest(DBControllerResolver.java:121)
         at oracle.sysman.emSDK.svlt.EMServlet.myDoGet(EMServlet.java:781)
         at oracle.sysman.emSDK.svlt.EMServlet.doGet(EMServlet.java:337)
         at oracle.sysman.eml.app.Console.doGet(Console.java:318)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:109)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at oracle.sysman.db.adm.inst.HandleRepDownFilter.doFilter(HandleRepDownFilter.java:153)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
         at oracle.sysman.eml.app.BrowserVersionFilter.doFilter(BrowserVersionFilter.java:122)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
         at oracle.sysman.emSDK.svlt.EMRedirectFilter.doFilter(EMRedirectFilter.java:102)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)
         at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:336)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:627)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
         at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)When we select the table via SQL, everything works fine.

    Hi,
    I'm Galit from the QE team of VIN.
    All the things that you've described are correct.
    It is actually an edge case where the only VM, that the manual App can be managed from its Map view, was removed from the App.
    The Manual App management is as designed, and may be changed in the future.
    There are 2 ways to overcome this situation:
    1.You can, as you stated, create another Manual App with similar name and remain with the "Zombie App".
    2. To run a specific command that will remove the Zombie App from the DB.
    Please note that option no. 2 involves using an API that we do not publish.
    If you would like to use option no. 2 contact me in private and we will see about supplying the relevant commands to run in order to delete the "zombie" application.
    Thanks,
    Galit Gutman

  • Router connection problems - DISH satellite receivers or too many devices?

    (Sorry about that - I thought I had broken the message up.)
    I'm having significant issues with my Linksys router timing out, and need help. I'll try to be as detailed as I can.
    I have the following:
    - Linksys WRT54G v3 wireless router I purchased off eBay 3-4 years ago. Using 128-bit WEP secirity. Even though the model says WRT54G, my Linksys setup page says I have a WRT54GL. Don't know if that's pertinent but thought I'd include the info)
    - HP desktop running Vista Home Premium
    - Gateway Solo laptop (circa 3Q 2002) running WinXP SP3, and also have WPC54G - Wireless-G Notebook Adapter
    - Gateway M275 Notebook running Windows XP Tablet Edition w/SP3, internal wireless card
    - Linksys WRE54G Wireless Range Expander, v3
    My broadband internet connects to my cable modem, which then runs via ethernet to my router. I have my desktop connected to my router via (wired) ethernet cable (port 1), and the two laptops connect wirelessly. All three computers on my network run just fine and have had no connection issues until I had two (2) DISH satellite receivers installed this past Friday.
    Prior to installation, I knew I would need the two receivers hooked up to my network via ethernet cable. Since one receiver was in the same room as my router, it was easy to run an ethernet cable from my router to the receiver (port 2). I had a challenge with the upstairs receiver, because I didn't have a direct connection, and wasn't sure how to wire it. So, I used my range expander by plugging in the expander into a nearby outlet, then connecting the receiver to the expander via ethernet cable.
    I had some issues getting a good signal, and did some troubleshooting but made it work. Now I had five devices connected to my router: two with a wired ethernet cable and three wirelessly.
    I started having connection timeouts within about 3-4 hours of satellite [receiver] installation. All of the sudden I couldn't connect to the internet on ANY device; both laptops couldn't connect wirelessly, my desktop couldn't connect, and the receivers were telling me my connection was bad. I checked modem but there were no issues. Still, I unplugged the power cable from the modem for a minute, then reconnected - still no internet. I called my cable company to have them troubleshoot the modem, but they pinged it several times & got positive results - still no internet, so I ruled the modem out.
    I tried using the Windows connection troubleshooter to repair the problem, and got a DNS error message (which I don't know how to fix). I decided to unplug my router for 10-15 seconds, then plug back in - that got my internet connection going again. That lasted a couple hours & then failed. I unplugged the router again (is that a soft reset or a power cycle?), then reconnected & was able to connect to the internet. This happened a few more times over the weekend, and finally I decided the expander might be the issue (both DISH and Linksys tech support was not very helpful).
    I found a way to wire my second receiver via ethernet cable (port 3), so now I had three wired devices, and two wireless devices. I thought this would fix the problem; it didn't, but at least I learned how to wire CAT5 cable. So I got that going for me... which is nice.
    I plugged the ethernet cable directly from my modem to my desktop to test the timeout, but had no issues - the modem just wasn't the problem.
    I was getting some IP address conflicts on my Norton Inernet Security, so I uninstalled that from my desktop, disconnected the power from the modem, disconnected the power from the router, shut down all devices, reset the IP addresses on the receivers, deleted the wireless connection from the laptops, shut down the desktop, and just left the whole mess alone for half a day. Then I reinstalled the Norton Internet Security, connected my wired devices, plugged the modem in, plugged the router in, reset my security, connected wirelessly with my laptops.
    Within an hour my connection timed out.
    Trying to chat with tech support wasn't feasible, as my connection kept going out. A guy at work said I shoudl ping my IP address, and let it repeat until my connection goes out. So I unplugged the router and plugged it back in to get an internet connection, the opened a cmd prompt and typed
    ping 192.168.1.1 -t
    I left it alone for a few hours, and when I came back, my internet connection was down, but I was still getting active pings - no problems there.
    At this point I thought I had done everything except replacing my router (which I'm still tempted to do), but I called my broadband provider to see if there was anything they could do. One of the techs said I had too many devices connected to the internet, but I thought these routers were supposed to handle dozens of devices?
    I finally called Linksys Tech Support and had a conversation for 90 minutes. We went through all the steps of unplugging the the modem, router & all connected devices, resetting the router, etc, etc. The only thing different he did was had me change my security from WPA to 64-bit WEP, and added passwords for DNA1 and DNS 2 (same password for each).
    That was at 1:30am last night, and when I woke up to check my connection this morning, it was still connected. I have to check it again when I get home, but I'm wondering if I should just be prepared to get another router (and if so, any recommendations), or if there's something I'm still not doing that could resolve my issue - if I still have connection losses.
    Also, I'm concerned about the security thing. If changing from WEP 128 or WPA to WEP 64 fixed my problem, I'm not sure I feel completely protected from intrusion - isn't that pretty much the least amount of security I can have (without forgoing it altogether)??
    Finally, I've read a few threads suggesting possibly changing to static IP from DHCP; however, my satellite receiver installation documentation specifically advises against this for the receivers.
    Anyway, I would very much appreciate some help.
    Message Edited by CKdoubleU on 10-01-2008 08:43 AM

    First please break that long text into separate paragraphs. No one wants to read one long runon sentences
    With Knowledge… Impossible means nothing.
    Credentials
    Computer experience: 11 years
    Cisco networks experience: 8 years
    Network administrator: 6 years
    N.E.T. networks experience: 6 years
    Linksys networks experience: 6 years
    Recent additions: A+ | Networks+ | Linux+ | Security+

  • Too many connections - even after closing ResultSets and PreparedStatements

    I'm getting a "Too many connections" error with MySQL when I run my Java program.
    2007-08-06 15:07:26,650 main/CLIRuntime [FATAL]: Too many connections
    com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Too many connections
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:921)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
            at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269)
            at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)
            at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)I researched on this and found out that I wasn't closing the ResultSet and the PreparedStatement.
    The JDBC connection is closed by a central program that handles connections (custom connection pooling).
    I added the code to close all ResultSets and PreparedStatements, and re-started MySQL as per the instructions here
    but still get "Too many connections" error.
    A few other things come to mind, as to what I may be doing wrong, so I have a few questions:
    1) A few PreparedStatements are created in one method, and they are used in a 2nd method and closed in the 2nd method
    does this cause "Too many connections" error?
    2) I have 2 different ResultSets, in nested while loops where the outer loop iterates over the first ResultSet and
    the inner loop iterates over the second ResultSet.
    I have a try-finally block that wraps the inner while loop, and I'm closing the second ResultSet and PreparedStement
    in the inner while loop.
    I also have a try-finally block that wraps the outer while loop, and I'm closing the first ResulSet and PreparedStatement
    in the outer while loop as soon as the inner while loop completes.
    So, in the above case the outer while loop's ResultSet and PreparedStatements remain open until the inner while loop completes.
    Does the above cause "Too many connections" error?
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The following is relevant sections of my code ( it is partially pseudo-code ) that shows the above 2 cases:
    init( Connection jdbcConnection ){
       String firstSQLStatement = "....";
       PreparedStatement ps1 = jdbcConnection.prepareStatement( firstSQLStatement );
       String secondSQLStatement = "....";
       PreparedStatement ps2 = jdbcConnection.prepareStatement( secondSQLStatement );
       String thirdSQLStatement = "....";
       PreparedStatement ps3 = null;
       ResultSet rsA = null;
       try{
            ps3 = jdbcConnection.prepareStatement( thirdSQLStatement );
            rsA = ps3.executeQuery();
            if( rsA.next() ){
                   rsA.getString( 1 );
       }finally{
            if( rsA != null )
                   rsA.close();
            if( ps3 != null )
              ps3.close();
       //Notice, how ps1 and ps2 are created here but not used immediately, but only ps3 is
       //used immediately.
       //ps1 and ps2 are used in another method.
    run( Connection jdbcConnection ){
         ResultSet rs1 = ps1.executeQuery();
            try{
               while(rs1.next()){
                    String s = rs1.getString();
                    ps2.setString(1, s);
              ResultSet rs2 = ps2.executeQuery();
                    try{
                   while(rs2.next()){
                        String s2 = rs2.getString();
                    }finally{
                   if( rs2 != null )
                     rs2.close();
                   if( ps2 != null )
                     ps2.close();
         }catch( Exception e ){
              e.printStackTrace();
         }finally{
            if( rs1 != null )
                  rs1.close();
               if( ps1 != null )
                  ps1.close();
    //Notice in the above case rs1 and ps1 are closed only after the inner
    //while loop completes.
    }I appreciate any help.

    Thanks for your reply.
    I will look at the central connection pooling mechanism ( which was written by someone else) , but that is being used by many other Java programs others have written.
    They are not getting this error.
    An addendum to my previous note, I followed the instructions here.
    http://dev.mysql.com/doc/refman/5.0/en/too-many-connections.html
    There's probably something else in my code that is not closing the connection.
    But I just wanted to rule out the fact that opening a PreparedStatement in one method and closing it in another is not a problem.
    Or, if nested ResultSet loops don't cause the problem.
    I've read in a few threads taht "Too many connections" can occur for unclosed RS and PS , and not just JDBC connections.

  • Too many open socket connections causing ColdFusion to crash?

    I’m currently working on an e-commerce site which sends and receives information to/from the client’s order management system via XML over a TCP/IP socket.  It uses a very old java-based custom tag called CFX_JSOCKET (which appears to have been written in 2002) to open the socket, send the data, and get the response.  The code that calls the custom tag and sends/receives data from the OMS pre-dates my working on the site, but its always worked, so I haven’t paid it much attention.
    Back in the summer of 2009 we started experiencing issues with ColdFusion (v.7 on Window 2003 at the time) locking up on a more and more frequent basis, until it ultimately became a daily issue.  After extensive research we narrowed the issue down to the communication between the web server and our client’s order management server.  It seemed the issue with ColdFusion hanging was either related to there being too many connections open, or to these connections hanging and resulting in dead threads.  This an educated guess based on a blog post I’d seen online, not actual monitoring of either CF or the TCP/IP connections.  As soon as we dialed back the timeout on the CFX_JSOCKET tag from 20 seconds to 10, the issue disappeared, so we left it at that and moved on.
    Fast forward to this January. The site is hosted at a new location, on a 64-bit Windows 2008 box running ColdFusion 9.  Over the years traffic on the site has continued to grow.  The nature of the clients business means that August and January are their business times of the year (back to school for college kids) and in January ColdFusion once again started locking up on an almost-daily basis.  
    One significant difference is that the address cleansing software that previously ran on the box and was used to verify shipping addresses is not available for 64-bit, so when we moved to the new server last summer, that task was moved to the client’s order management software and handled via XML like all other interaction with that system. However, while most XML calls to that server (order input, inventory check, etc) take under a second to complete, the address cleansing call regularly takes over 5 seconds to return data, and frequently times out. 
    Once we eliminated the address cleansing call from the checkout process, ColdFusion once again stopped locking up regularly.  So it appears that once again it’s the communication between the web server and the order management server that’s causing problems. We currently have that address cleansing call disabled on the web site in order to keep ColdFusion from crashing, but that’s not a long term solution.
    We don’t have, nor can I find online, the source code for the CFX_JSOCKET custom tag, so I decided I’d write some CF code utilizing the java methods to open the socket, send the data, get the response, and close the connection.  My test code is working fine (under no load).  However, in trying to troubleshoot an issue I had with it, I started monitoring the TCP/IP connections using TCPView.  And I noticed that all the connections to the order management server, whether opened via the custom tag or my new code, remain open in either a TIME_WAIT or FIN_WAIT2 status for well over 2 minutes, even though I know for a fact that my new code is definitely closing the connection from the web server side. 
    They do all close eventually, but I’m wondering 1. Why they’re remaining open that long; 2. Is that normal; and 3. If all these connections remaining open could be what’s causing ColdFusion to choke. 
    Does this sound plausible?  If so, does anyone have any suggestions/recommendations about how to fix it?  My research seems to indicate this might be a matter of the order management system not closing the connection on its end, but I’m in way over my head, and before I go to client and tell them it’s their OMS causing the issue, I need to feel a little more confident that I’m on the right track. 
    Any help or advice would be very greatly appreciated.  And thanks for taking the time to read through my long-winded explanation of the problem.
    Set-up details:
    ColdFusion Version: 9,0,0,251028  Standard 
    Operating System: Windows Server 2008 
    Java Version: 1.6.0_14 
    Java VM Name: Java HotSpot(TM) 64-Bit Server VM 
    Java VM Version: 14.0-b16 
    Thanks,
    Laurie

    Hi Laurie,
    Not aware of custom tag called CFX_JSOCKET. I guess the process you described very well is consuming a resource then you are getting a problem. Trick is what parameter to adjust. Perhaps you are running out of one the threads in CFadmin > Server Settings > Request Tuning.
    I expect if you enable CF Metrics logging where you can log the threads and other resources then you can find out which parameter needs adjusting. Let me know if you want some details on enabling CF Metrics. Perhaps others will have much better idea than me and help without the overhead of logging.
    The other interesting thing is you are using CF9.0.0. Do you have some reasons for not being on updater1 CF9.0.1?
    HTH, Carl.
    PS I posted before however seems to have gone, just hope does not come back and then I have posted twice.

  • I have an iPhone 4S I have done the recent update 6.1 and now my App Store is not working when I go into the feature tab I get an error " too many HTTP redirects" how do I fix this ? The other tabs are working and it is working on my iPad also

    I am having a problem getting into the App Store on my iPhone since the recent update, I have a 4s and it appears the feature tab is not working. When I try to go into the feature tab in the App Store I get a message "too many HTTP redirects" ?... Does anyone now hoe to fix this issue, the other tabs are working okay and everything is working on my iPad ?

    Look at iOS Troubleshooting Wi-Fi networks and connections  http://support.apple.com/kb/TS1398
    iPad: Issues connecting to Wi-Fi networks  http://support.apple.com/kb/ts3304
    iOS: Recommended settings for Wi-Fi routers and access points  http://support.apple.com/kb/HT4199
    Additional things to try.
    Try this first. Turn Off your iPad. Then turn Off (disconnect power cord for 30 seconds or longer) the wireless router & then back On. Now boot your iPad. Hopefully it will see the WiFi.
    Go to Settings>Wi-Fi and turn Off. Then while at Settings>Wi-Fi, turn back On and chose a Network.
    Change the channel on your wireless router (Auto is best). Instructions at http://macintoshhowto.com/advanced/how-to-get-a-good-range-on-your-wireless-netw ork.html
    Another thing to try - Go into your router security settings and change from WEP to WPA with AES.
    How to Quickly Fix iPad 3 Wi-Fi Reception Problems
    http://osxdaily.com/2012/03/21/fix-new-ipad-3-wi-fi-reception-problems/
    If none of the above suggestions work, look at this link.
    iPad Wi-Fi Problems: Comprehensive List of Fixes
    http://appletoolbox.com/2010/04/ipad-wi-fi-problems-comprehensive-list-of-fixes/
    Fix iPad Wifi Connection and Signal Issues  http://www.youtube.com/watch?v=uwWtIG5jUxE
    Fix Slow WiFi Issue https://discussions.apple.com/thread/2398063?start=60&tstart=0
    Unable to Connect After iOS Update - saw this solution on another post.
    https://discussions.apple.com/thread/4010130
    Note - When troubleshooting wifi connection problems, don't hold your iPad by hand. There have been a few reports that holding the iPad by hand, seems to attenuate the wifi signal.
    ~~~~~~~~~~~~~~~
    If any of the above solutions work, please post back what solved your problem. It will help others with the same problem.
     Cheers, Tom

  • Too Many Attempts?

    I've just moved onto a new wireless router/network at home, and I can no longer connect to iChat wirelessly. All other internet applications work, but when I open iChat, it logs on, immediately logs off, and does it again and again until I get an error message saying that I've attempted to log in too many times in too short a period, so try again later (and all of my buddies are gray-ed out). Is there a fix for this? Or it is something wrong with my wireless router/network?
    Thanks in advance!!!

    Or move on to this FAQ http://discussions.apple.com/thread.jspa?threadID=1462798
    7:48 PM Saturday; May 24, 2008

  • "Safari cannot open the page – 'too many redirects'"

    Problem
    iPad issue impacting our secure website clients. Error message reads “Safari cannot open the page – ‘too many redirects’”
    History:
    Recently, some of our secure website clients using Mac/Safari 4.0.5 faced issues, all related to one common problem that went away with Safari 5.0 & Mac OS updates. On all the three occasions, we observed that the error occurred when the HTTPS redirects contained the port number in the URL. During our discussions with Applecare personnel (case number was 350144) we understood that there have been problems with Safari 4.0.5 "not being able to handle port numbers in the URL properly". The issue went away with the launch of Safari 5 and Mac OS updates which followed the browser release.
    Understandably, the resolution to the issue was fairly opaque and if I were to hazard a guess on what the problem could have been it should probably be something to do with Safari not being able to read cookies after these redirects.
    Questions
    1) Have any of you encountered such a problem on Mac/Safari 4.0.5 and are now facing on iPad?
    2) Any workarounds / solutions / learning that you have come across and can share
    Thanks!!

    Hi and welcome...
    On a Mac. HTTPS redirects can be the result of proxies. Open System Preferences / Network. Click: Advanced tab then click: Proxies
    If any of the boxes on the left under: *Select a protocol to configure* are selected, deselect, click OK.
    Here's just one example of the HTTPS / Proxy issue: http://discussions.apple.com/thread.jspa?messageID=12255869&#12255869
    For Safari - iPad. Tap Settings / Wi Fi / Select your network by tapping the blue arrow. Configure network settings there.
    Carolyn
    Message was edited by: Carolyn Samit

  • [database design]  the "too many" number of users of one instance!!

    Good morning everyone!!
    I have a question about the number of users of one db
    instance, "possible problems" caused by too many users,
    and "pros and cons" of this case.
    Now, the company I work for is considering centralizing
    150 db servers of 150 sites. 150 chained-stores have
    their own db instance.
    Here is the structure of db instance after the
    centralization.
    1. Centralized instance has each user per site(150
    sites), for example, site001, site002, …site00n, …
    site150
    2. Each user has its own 250 tables, thus the db
    instance become to have 150 users and 150*250 tables.
    3. Each user has almost the same table schema, not
    exactly. There are a little bit of differences among
    the business rules of each sites.
    4. the version of centralized db instance is "oracle9i".
    Theoretically, it seems like there is no problem, but I
    have not experienced the db instance like this, which
    has "too many" users of 150 users.
    In terms of every aspect such as "performance/tuning",
    "system management", or "something else", I would like
    to hear what could be "the pros and cons" of this
    structure.
    Assuming that there are possible critical problems caused
    by too many users, what could be the alternative choice?
    I will be waiting to hear your experience. Every response
    will be appreciated, even if it is not about what I asked.
    Thanks for your interest in advance.
    Have a nice day.
    Ho from Japan

    Have a look to following AskTom threads:
    http://asktom.oracle.com/pls/ask/f?p=4950:8:4685256847630125933::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:31263903816550
    http://asktom.oracle.com/pls/ask/f?p=4950:8:4685256847630125933::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:63447102315094

  • Scalability Issues - Too Many Active Sessions?

    Hello,
    I'm having an issue with an application I built for one of the campuses at the college I work at. The application is a queuing system where there are stations for students to check in, admin stations where staff can see these students and "call" them, and displays outside each employees office that shows the student that was called. There are about 20 of these last type of display panels. I have the following code in my page footer to poll the DB for the most recent called student for a specific room:
    <script type="text/javascript">
    <!--
    var refresh_region = function( workstation_in, div_in ) {
        $.get(
            'wwv_flow.show',
            {"p_request"      : 'APPLICATION_PROCESS=F_NEXT_STUDENT',
             "p_flow_id"      : $v('pFlowId'),      //app id
             "p_flow_step_id" : $v('pFlowStepId'),  //page id
             "p_instance"     : $v('pInstance'),    //session id
             "x01"            : workstation_in
            function(data) {
                $(div_in).html(data);
        setTimeout(function() { refresh_region( workstation_in, div_in ) }, 5000);
    refresh_region( '&P7_WORKSTATION_IN.', '#next_student_div' );
    //-->
    </script>The OnDemand process, F_NEXT_STUDENT runs the following query and returns the result:
    select a.FIRST_NAME || ' ' || a.LAST_NAME
    into   full_name
    from   ONESTOP_QUEUE a
    where  a.WORKSTATION_ID_CALLED = in_workstation_id
    and    a.STATUS = 'CALLED'
    and    a.QUEUE_ID = (
       select min( c.QUEUE_ID )
       from   ONESTOP_QUEUE c
       where  c.WORKSTATION_ID_CALLED = in_workstation_id
    and    c.STATUS = 'CALLED');However, when all of these display panels are turned on (and I use code like this in other pages for similar purposes) the application becomes sluggish and eventually unresponsive. At first we had the application running off a box with Oracle XE. We eventually migrated to a full blown 11g install with APEX Listener and GlassFish. My DBA says everything looks ok on the DB side so I've been trying to dig in other areas to see where the bottleneck may be. After inspecting the Active Sessions report in APEX, I saw that there's a ton of connections being generated (> 30,000). This doesn't seem like a good thing to me and I'm trying to figure out what I'm doing wrong.
    At first I was using $.post() instead of $.()get. I was also using setInterval() instead of a setTimeout() loop. However, none of these changes seemed to really help the situation much. I'm at a loss for how else to improve the performance of this application. Any suggestions on what I can try?
    Most of the app's functionality is on apex.oracle.com
    WORKSPACE: SCCC_TEST
    USER/PASS: TEST/test
    Direct URL to the page (I pass in the worksation ID): http://apex.oracle.com/pls/apex/f?p=65890:7:0::::P7_WORKSTATION_IN:ADMISSIONS_1
    Thanks in advance for any help.

    Hi Patrick,
    UPDATE as of 3PM Eastern:
    This afternoon all users lost the ability to connect to the application. My DBA is still reviewing logs but it seems that the error isn't on the DB side. The application came back up after he restarted the Apex listener. We found a bunch of the following error in the Glassfish server.log file:
    [#|2013-02-25T14:34:39.021-0500|WARNING|oracle-glassfish3.1.2|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=11;_ThreadName=Thread-2;|GRIZZLY0023: Interrupting idle Thread: http-thread-pool-80(73).|#]The max threads is currently set to 100.
    After we came back up I went to page 4350:45 and cleared out all sessions. After a couple minutes I rechecked the number of sessions on this page:
    Total Sessions: 27,674
    Distinct Users over all sessions = 2
    Sessions older than 15 minute(s) = 4Seems like way too many sessions to have after just a couple minutes.
    End UPDATE
    Again, thank you for taking the time to reply. Everything seems to be working fine for the past couple days, but I figured I'd provide some current data, especially since I'm still curious about all these "sessions".
    Are we talking about page 4350:45 which shows the following information
    Total Sessions: 9
    Distinct Users over all sessions = 4
    Sessions older than 1 day(s) = 0
    Where does it show 17,400 sessions for you? It almost appears that your daily APEX jobs are not running which do normally purge old APEX sessions automatically. See http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35129/dbms_jobs001.htm
    Yes, this was the page I was referring to. I just checked it now and it showed me the following:
    Total Sessions: 10,236
    Distinct Users over all sessions = 2
    Sessions older than 1 day(s) = 0And it does appear that the APEX jobs are running since there are no sessions older than 1 day... unless I'm interpreting this information incorrectly.
    Also, I was able to get some more data regarding page loading using the Debug info:
    14763     7751818952614     nobody     101     7     show     46     4 seconds ago     0.0000
    14760     7751818952614     nobody     101     7     show     46     9 seconds ago     0.5300
    14757     7751818952614     nobody     101     7     show     46     14 seconds ago     0.0150
    14754     7751818952614     nobody     101     7     show     46     19 seconds ago     0.0160
    14751     7751818952614     nobody     101     7     show     46     24 seconds ago     0.0160
    14748     7751818952614     nobody     101     7     show     46     29 seconds ago     0.0160
    14745     7751818952614     nobody     101     7     show     46     34 seconds ago     0.0160
    14742     7751818952614     nobody     101     7     show     46     39 seconds ago     0.0160
    14739     7751818952614     nobody     101     7     show     46     44 seconds ago     0.0160
    14736     7751818952614     nobody     101     7     show     46     49 seconds ago     0.0160
    14733     7751818952614     nobody     101     7     show     46     54 seconds ago     0.0160
    14730     7751818952614     nobody     101     7     show     46     59 seconds ago     0.0000
    14727     7751818952614     nobody     101     7     show     46     64 seconds ago     0.0160
    14724     7751818952614     nobody     101     7     show     46     69 seconds ago     0.0160
    14721     7751818952614     nobody     101     7     show     46     74 seconds ago     0.0160
    14718     7751818952614     nobody     101     7     show     46     79 seconds ago     0.0160
    14715     7751818952614     nobody     101     7     show     46     84 seconds ago     0.0150
    14712     7751818952614     nobody     101     7     show     46     89 seconds ago     0.5300
    14709     7751818952614     nobody     101     7     show     46     94 seconds ago     0.0000
    14706     7751818952614     nobody     101     7     show     46     99 seconds ago     0.0150
    14703     7751818952614     nobody     101     7     show     46     104 seconds ago     0.0150
    14700     7751818952614     nobody     101     7     show     46     109 seconds ago     0.0150
    14697     7751818952614     nobody     101     7     show     46     114 seconds ago     0.0150
    14694     7751818952614     nobody     101     7     show     46     119 seconds ago     0.0160
    14691     7751818952614     nobody     101     7     show     46     2 minutes ago     0.5310
    14688     7751818952614     nobody     101     7     show     46     2 minutes ago     0.5300
    14685     7751818952614     nobody     101     7     show     46     2 minutes ago     0.5150
    14682     7751818952614     nobody     101     7     show     46     2 minutes ago     0.5300
    14679     7751818952614     nobody     101     7     show     46     2 minutes ago     0.5300
    14676     7751818952614     nobody     101     7     show     46     2 minutes ago     0.5300
    14673     7751818952614     nobody     101     7     show     46     3 minutes ago     0.0000
    14670     7751818952614     nobody     101     7     show     46     3 minutes ago     0.5930
    14667     7751818952614     nobody     101     7     show     46     3 minutes ago     0.5300
    14664     7751818952614     nobody     101     7     show     46     3 minutes ago     0.5460So I'm seeing a page load time of ~0.016 or ~0.53. When I click on the details for one of the longer page view, I get the following:
    0.00000     0.00000     S H O W: application="101" page="7" workspace="" request="APPLICATION_PROCESS=F_NEXT_STUDENT" session="7751818952614"     4
    0.00000     0.04700     Reset NLS settings     4
    0.04700     0.03100     alter session set NLS_LANGUAGE="AMERICAN"     4
    0.07800     0.03100     alter session set NLS_TERRITORY="AMERICA"     4
    0.10900     0.01600     alter session set NLS_CALENDAR="GREGORIAN"     4
    0.12500     0.03100     alter session set NLS_SORT="BINARY"     4
    0.15600     0.00000     alter session set NLS_COMP="BINARY"     4
    0.15600     0.00000     ...NLS: Set Decimal separator="."     4
    0.15600     0.00000     ...NLS: Set NLS Group separator=","     4
    0.15600     0.00000     ...NLS: Set g_nls_date_format="DD-MON-RR"     4
    0.15600     0.00000     ...NLS: Set g_nls_timestamp_format="DD-MON-RR HH.MI.SSXFF AM"     4
    0.15600     0.03100     ...NLS: Set g_nls_timestamp_tz_format="DD-MON-RR HH.MI.SSXFF AM TZR"     4
    0.18700     0.00000     NLS of database and client differs, characterset conversion needed     4
    0.18700     0.01600     ...Setting session time_zone to -05:00     4
    0.20300     0.03100     Reset NLS settings     4
    0.23400     0.03100     alter session set NLS_LANGUAGE="AMERICAN"     4
    0.26500     0.01600     alter session set NLS_TERRITORY="AMERICA"     4
    0.28100     0.03100     alter session set NLS_CALENDAR="GREGORIAN"     4
    0.31200     0.03100     alter session set NLS_SORT="BINARY"     4
    0.34300     0.00000     alter session set NLS_COMP="BINARY"     4
    0.34300     0.00000     ...NLS: Set Decimal separator="."     4
    0.34300     0.00000     ...NLS: Set NLS Group separator=","     4
    0.34300     0.00000     ...NLS: Set g_nls_date_format="DD-MON-RR"     4
    0.34300     0.00000     ...NLS: Set g_nls_timestamp_format="DD-MON-RR HH.MI.SSXFF AM"     4
    0.34300     0.01600     ...NLS: Set g_nls_timestamp_tz_format="DD-MON-RR HH.MI.SSXFF AM TZR"     4
    0.35900     0.03100     ...Setting session time_zone to -05:00     4
    0.39000     0.03100     Setting NLS_DATE_FORMAT to application date format: DD-MON-YYYY HH:MIPM     4
    0.42100     0.01600     Setting NLS_TIMESTAMP_FORMAT to application timestamp format: DD-MON-YYYY HH:MIPM     4
    0.43700     0.03100     Setting NLS_TIMESTAMP_TZ_FORMAT to application timestamp time zone format: DD-MON-YYYY HH:MIPM     4
    0.46800     0.00000     ...NLS: Set g_nls_date_format="DD-MON-YYYY HH:MIPM"     4
    0.46800     0.00000     ...NLS: Set g_nls_timestamp_format="DD-MON-YYYY HH:MIPM"     4
    0.46800     0.00000     ...NLS: Set g_nls_timestamp_tz_format="DD-MON-YYYY HH:MIPM"     4
    0.46800     0.00000     NLS: wwv_flow.g_flow_language_derived_from=0: wwv_flow.g_browser_language=en     4
    0.46800     0.00000     Application 101, Authentication: PLUGIN, Page Template: 61331314513900454147     4
    0.46800     0.00000     Authentication check: No Authentication (NATIVE_DAD)     4
    0.46800     0.00000     ...fetch session state from database     4
    0.46800     0.01600     fetch items (exact)     4
    0.48400     0.00000     ... sentry+verification success     4
    0.48400     0.00000     ...Session ID 7751818952614 can be used     4
    0.48400     0.01500     ...Application session: 7751818952614, user=nobody     4
    0.49900     0.03100     ...Setting session time_zone to -05:00     4
    0.53000     0.00000     Session: Fetch session header information     4
    0.53000     0.00000     Run APPLICATION_PROCESS= request     4
    0.53000     0.00000     ...Execute Statement: begin sys.htp.p( F_NEXT_STUDENT( in_workstation_id => apex_application.g_x01 ) ); end;     4
    0.53000     0.00000     Stop APEX Engine detected     4
    0.53000     -     Final commit     4Again, not sure if I'm reading this correctly but it seems that the steps that are taking the most time seem to be related to NLS settings... and I have translating turned off. This is consistent with all of the longer page views. As a side note, my DBA did turn archive log mode back on this weekend.
    Again, everything seems to be running smoothly at the moment so the above data is more to help satisfy my curiosity about the inner workings of Apex.
    Regards,
    Tadeusz
    Edited by: tdsacilowski on Feb 25, 2013 3:04 PM

Maybe you are looking for

  • Macbook Pro freezes when I connect to my TV using mini display to VGA

    Everytime I connect my MBP (2012) to my TV it freezes after a few seconds. I have used this set up for a good few months with no problems but it's just happened all of a sudden. Restarting in any order with TV on and off has not fixed the problem. Al

  • Video of of iPod Touch

    Hi There, Sorry if this is going to be a dumb question: I have just got my new iPod touch and have transferred some videos to it. (MP4s) These are videos I have made, so own the copywright on them. I have now plgged my ipod into another mac, and want

  • Is there a way to fix an iphone that has a maximum capacity of 600 mb?

         what happened was that my iphone 4, "8 gigibytes" was running slow so i wanted a fresh start. put it in itunes, restored it and when i tried using it. a message kept popping up saying that my storage was almost filled. then when i went to see wh

  • Unable to see/use the play bar in Captivate

    Hello, I'm happy to join you on this forum, as I have tried to find (and did :)) answers for some of the problems I have experienced when learning how to use the Adobe tools. The latest issue I've encountered was when trying to view a Captivate prese

  • How can I delete the apps I don't want to update, from the App Store Notification list?

    The number of apps, waiting to be updated is growing, and growing!  I want that number to go away.  I am not going to update the ones I don't want. How can I clear the list, so I only see the number of ones I have not looked at - the new notification