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:
user647892There 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 AMFirst 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,
LaurieHi 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 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 -
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�
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 JapanHave 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
-
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