Monitoring thread usage for ExecutorService objects
Is there a way to find out how many active threads there are running in an ExecutorService? I am using a fixed thread pool (Executors.getFixedThreadPool()) and I want to monitor thread count in order to see if the pool size I chose is too small.
The number of "active threads" is an idea which is really only relevant to those ExecutorServices that are ThreadPoolExecutors. (Which does tend to be most of them.)
You could replace Executors.newFixedThreadPool(int) with its implementation, to get a ThreadPoolExecutor, which includes a method getActiveCount().
Similar Messages
-
How can I monitor my monthly data usage for all 3 computers in my house? I have an Airport base station and it seems there should be software to monitor it from that point rather than monitoring the usage for each computer and then adding it up.
The following example was one of dozens that showed up on a simple Google search of.....
monitor Internet data use on a Mac
Watch your Internet usage with NetUse Monitor | Macworld
Most service providers have an application for their users as well. -
Monitoring Bandwidth usage for individual hosted sites on osx server?
Does anyone know of a good way to monitor bandwidth consumption for individual websites hosted on osx server?
Part of this answer depends on server configuration details that you haven't provided.
Are you looking for 'bandwidth' as in total bytes transferred for any given site? or are you looking for a megabits-per-second network throughput calculation?
Are your various sites logging to separate log files? or a single, unified log file?
If you want a total bytes transferred calculation, then that data is stored in the standard log files, so a simple parser that adds up the response sizes would suffice - it will tell you that x number of bytes/megabytes were transferred.
A bandwitch utilization graph (e.g. mbps) is a little trickier, though.
Are your sites running on the same port, using name-based virtual hosting to separate the traffic, or are they running on different ports?
If different ports then you may be able to implement some kind of network monitoring, but if they're all running on the same port (e.g. 80) then that doesn't work - you're down to Apache logging.
The standard Apache logs, though, don't include enough data to calculate a bandwidth graph. It does include timestamps of requests, and the total bytes in the reply, but that's not enough - the timestamp is only accurate to the second, and there's no indication of duration... for example, a 1mb web page served in 1 second equates to 8mbps, but that same file transferred in 30 seconds is only about 273kbps.
Since the transfer time is required to calculate the bandwidth utilization for the site, you'll need to amend your logging to include the transfer size. You'll need to enable mod_logio and add the %O (output bytes) and %T (request time) variables to your log format. Only then can you calculate the bits-per-second throughput of your site. -
Insert Academic Work Usage for Student and Studies object
Hello all, I need your help with something.
For severals module bookings, I have to insert usage in infotype 1725 (Academic Work Usage) for the student, and in infotype 1724 (Academic Work Usage) for studies object, as in the booking process those infotypes were not updated (due to an error in inserting the context data in the HRIQ_STUDENT_BOOKING FM).
I am using the FM HRIQ_AW_INSERT_USAGE with the folowing parameters:
IV_PLVAR=01
IV_STUDENT=STID
IS_ACWORK-AWOTYPE=SM
IS_ACWORK-AWOBJID=SMID
IS_ACWORK-AWBEGDATE=SESSION BEGDA
IS_ACWORK-AWENDDATE=SESSION ENDDA
IS_ACWORK-AWSTATUS=01
IS_ACWORK-BOOKDATE=18.09.2009
IS_ACWORK-ACAD_SESSION=ACAD SESSION
IS_ACWORK-ACAD_YEAR=ACAD YEAR
IS_ACWORK-CPATTEMP=3,00000
IS_ACWORK-CPUNIT=CRH
IT_PROGRAMTYPE=MS
IT_PROGRAM=SCID
IV_AWID=MODREGID for the current booking
IV_MODE=C
But when I run it, nothing is updated!!
Does anyone can tell me if I am missing something?
Or maybe there is a better way to do what I need that you can reccomend...
Many thanks in advance.
DiegoHello Prabhat, thanks for your answer. You are right, the IV_MODE expects the INS parameter. But in spite I ran the FM with INS, I still don't get any result. Do you think I have to run after this FM another one to commit th changes?? Any other idea?
Thanks,
Diego -
How to monitor/examine threads usage in WebLogic Server?
Hi,
I need to monitor andd examine the usage of the threads (execute, non-blocking
execute, etc.) in my WebLogic Server (WLS) instance (5.1 SP10 on Solaris 2.6)
so that I can check that multi-threading is being used by WLS when executing methods
on some objects.
I have looked at the WLS Console but it does not seem to give any useful info
on this. I have used OptimizeIt during the development on NT and know that it
gives some info on threads usage but am not sure if it will do the job on a Solaris
box with 1000's of requests hitting WLS.
Has anybody done something similar and/or recommend any tips/tool?
Many thanks in advance.On solaris, do
kill -3 <weblogic_process_id>
You will get a thread dump to standard error of the WebLogic process. Usually
this is all you need to know.
Mike
"Michel Dinh" <[email protected]> wrote:
>
Hi,
I need to monitor andd examine the usage of the threads (execute, non-blocking
execute, etc.) in my WebLogic Server (WLS) instance (5.1 SP10 on Solaris
2.6)
so that I can check that multi-threading is being used by WLS when executing
methods
on some objects.
I have looked at the WLS Console but it does not seem to give any useful
info
on this. I have used OptimizeIt during the development on NT and know
that it
gives some info on threads usage but am not sure if it will do the job
on a Solaris
box with 1000's of requests hitting WLS.
Has anybody done something similar and/or recommend any tips/tool?
Many thanks in advance. -
Jstack shows a thread waiting for monitor entry but it's already acquired
I have a heavy load website powered by tomcat-6.0.14 and jdk1.6.0_02-b05(amd64) on a 2 dual-core amd Opteron. When tomcat started, and I directed the http request(~200/s) abruptly to tomcat, it looks choked for over one minute, and if I took off the http requests, tomcat can recover in a few minutes.
Then I use jstack during the choke time to find what's the cause, where I found a strange situation. Almost all threads are blocking on getting a log4j lock(I think it's normal,since log4j use a coarse lock), but one thread which already got the lock are also blocked. Below is the stack trace.
"http-172.23.24.29-8011-exec-175" daemon prio=10 tid=0x00002aad37843400 nid=0x542d waiting for monitor entry [0x0000000052e55000..0x0000000052e55da0]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Category.callAppenders(Category.java:201)
- locked <0x00002aaab39d5670> (a org.apache.log4j.spi.RootLogger)
at org.apache.log4j.Category.forcedLog(Category.java:388)
at org.apache.log4j.Category.log(Category.java:853)
at org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:133)
at com.xxx.xxxx.TimingLogFilter.doFilter(TimingLogFilter.java:39)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:887)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:696)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2009)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
And all the other threads waiting for the log4j lock.
"http-172.23.24.29-8011-exec-176" daemon prio=10 tid=0x00002aad37773800 nid=0x542e waiting for monitor entry [0x0000000052f56000..0x0000000052f56b20]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Category.callAppenders(Category.java:201)
- waiting to lock <0x00002aaab39d5670> (a org.apache.log4j.spi.RootLogger)
at org.apache.log4j.Category.forcedLog(Category.java:388)
at org.apache.log4j.Category.log(Category.java:853)
at org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:133)
at com.xxx.xxxxx.TimingLogFilter.doFilter(TimingLogFilter.java:39)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:887)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:696)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2009)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
I'm really wondering why jstack shows the first thread is BLOCKED but no blocker.
And also, it's not a deadlock, since I made jstack log after sever seconds, and found this time another thread has the same problem.
"http-172.23.24.29-8011-exec-170" daemon prio=10 tid=0x00002aad3784d800 nid=0x5428 waiting for monitor entry [0x0000000052950000..0x0000000052950c20]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Category.callAppenders(Category.java:201)
- locked <0x00002aaab39d5670> (a org.apache.log4j.spi.RootLogger)
at org.apache.log4j.Category.forcedLog(Category.java:388)
at org.apache.log4j.Category.log(Category.java:853)
at org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:133)
at com.xxx.xxxx.TimingLogFilter.doFilter(TimingLogFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:887)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:696)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2009)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
What's the cause? Is jstack accurate? Or, the problem is caused by hotspot compling since tomcat is just started? Or it's just because log4j's coarse lock? ( but after the starup, tomcat can handle the same traffic without any problem, and jstack shows no log4j block at all.)
Thanks in advance.
Jimcgnu"http-172.23.24.29-8011-exec-175" daemon prio=10 tid=0x00002aad37843400 nid=0x542d waiting for monitor entry [0x0000000052e55000..0x0000000052e55da0]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Category.callAppenders(Category.java:201)
- locked <0x00002aaab39d5670> (a org.apache.log4j.spi.RootLogger)
It seems like a Dead Lock.
The thread must have entered into a synchronized block/method1() and acquired a lock.
- locked <0x00002aaab39d5670> (a org.apache.log4j.spi.RootLogger)
While having lock the thread might be trying to acquire a lock to another synchronized block/method2()
waiting for monitor entry
java.lang.Thread.State: BLOCKED (on object monitor)
and someother thread might have already acquired a lock to that block/method2().
Can we check for Dead Lock?? -
Thread waiting for monitor - appending to previous post
04:25:51,721 ERROR [ExecuteThread: '55' for queue: 'weblogic.kernel.Default'] com.documentum.web.common.Trace - SessionSynch@bc53ac[lockCount=2,lockOwner=Thread[ExecuteThread: '54' for queue: 'weblogic.kernel.Default',5,Thread Group for Queue: 'weblogic.kernel.Default']]: Timed out waiting in lock()
java.lang.IllegalStateException: SessionSynch@bc53ac[lockCount=2,lockOwner=Thread[ExecuteThread: '54' for queue: 'weblogic.kernel.Default',5,Thread Group for Queue: 'weblogic.kernel.Default']]: Timed out waiting in lock()
at com.documentum.web.common.SessionSync.lock0(SessionSync.java:181)
at com.documentum.web.common.SessionSync.lock(SessionSync.java:68)
at com.documentum.web.form.FormProcessor.lockSession(FormProcessor.java:2026)
at com.documentum.web.form.FormProcessor.invokeMethod(FormProcessor.java:1614)
at com.documentum.web.form.FormProcessor.fireOnExitEvent(FormProcessor.java:1463)
at com.documentum.web.form.FormProcessor.fireOnExitEvent(FormProcessor.java:1459)
at com.documentum.web.form.FormProcessor.fireOnExitEvent(FormProcessor.java:1438)
at com.documentum.web.form.JumpOperation.execute(JumpOperation.java:80)
at com.documentum.web.form.FormProcessor.openForm(FormProcessor.java:219)
at com.documentum.web.form.WebformTag.doStartTag(WebformTag.java:127)
at jsp_servlet._wdk.__historyreleased._jsp__tag0(__historyreleased.java:164)
at jsp_servlet._wdk.__historyreleased._jspService(__historyreleased.java:125)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:525)
at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:454)
at com.documentum.web.form.FormProcessor.dispatchURL(FormProcessor.java:2194)
at com.documentum.web.form.FormProcessor.doFreshInclude(FormProcessor.java:1082)
at com.documentum.web.form.FormProcessor.doFreshInclude(FormProcessor.java:1058)
at com.documentum.web.form.FormProcessor.redirect(FormProcessor.java:1010)
at com.documentum.web.form.FormProcessor.openForm(FormProcessor.java:257)
at com.documentum.web.form.WebformTag.doStartTag(WebformTag.java:127)
at jsp_servlet._webcomponent._library._locator.__locatorcontainer._jsp__tag2(__locatorcontainer.java:704)
at jsp_servlet._webcomponent._library._locator.__locatorcontainer._jsp__tag1(__locatorcontainer.java:671)
at jsp_servlet._webcomponent._library._locator.__locatorcontainer._jspService(__locatorcontainer.java:154)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.documentum.web.servlet.ResponseHeaderControlFilter.doFilter(ResponseHeaderControlFilter.java:317)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.documentum.web.servlet.CompressionFilter.doFilter(CompressionFilter.java:84)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.documentum.web.env.WDKController.processRequest(WDKController.java:95)
at com.documentum.web.env.WDKController.doFilter(WDKController.java:83)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3393)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2140)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2046)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366)
at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)Yes Jay, You are right. I have taken thread dump 10 samples and i could see that Thread State is not moving... I have increased the StuckThread Timeout to 800 from 600
Thread dump 1/10 "ExecuteThread: '32' for queue: 'weblogic.kernel.Default'" daemon prio=3 tid=0x01b28350 nid=0xa9 waiting for monitor entry [0x71e3e000..0x71e3fc70] at com.documentum.wp.app.WpRoleService.getRoleModel(WpRoleService.java:174) - waiting to lock <0x9c986ed0> (a java.lang.Object) at com.documentum.wp.app.WpRoleService.getUserRole(WpRoleService.java:92) at com.documentum.wp.session.LoginUtil.validateUserDomain(LoginUtil.java:58) at com.documentum.wp.session.WpAuthenticationService.login(WpAuthenticationService.java:70) at com.documentum.web.formext.session.Login.authenticate(Login.java:1041) at com.documentum.web.formext.session.Login.onLogin(Login.java:359) at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.documentum.web.form.FormProcessor.invokeMethod(FormProcessor.java:1633) at com.documentum.web.form.FormProcessor.invokeMethod(FormProcessor.java:1487) at com.documentum.web.form.FormProcessor.fireActionEvent(FormProcessor.java:1303) at com.documentum.web.form.RecallOperation.execute(RecallOperation.java:101) at com.documentum.web.form.FormProcessor.processAction(FormProcessor.java:113) at com.documentum.web.form.FormAction.processAction(FormAction.java:107) at com.documentum.web.env.WDKController.doStartRequest(WDKController.java:191) at com.documentum.web.env.WDKController.processRequest(WDKController.java:92) at com.documentum.web.env.WDKController.doFilter(WDKController.java:83) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3393) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(Unknown Source) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2140) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2046) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366) at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117) -
Monitoring memory and thread management for Java 1.4.2_04
Hi,
I have an application which is using Java version 1.4.2_04. The application deployed in Customer site is having some memory issues. There are observing java.exe going 100% in Task Manager. The same application (of higher version)
uses Java 1.5 is not seeing any issues.
Now Customer needs the root cause of the issue and i would like to check the code which is causing the issue. I came to know we can monitor threads and memory using JConsole. Since we are using Java 1.4, i installed Java 1.6 on a remote machine and tried connecting to the problematic machine. But it failed to connect.
i have added the option "-Dcom.sun.management.jmxremote.port=8880" when starting JVM (this i have provided inside ServletExec batch file, ServletExec is my web server).
Any idea how to connect to the problematic machine from remote using JConsole. Or any other tools i can use on Java 1.4 to nail down the problem..
Please provide pointers.
I have another doubt on Java version 1.4, since there were many memory issues, am i hitting any defect in Java 1.4hari.r wrote:
Please provide pointers.You need to tell you sales/marketing/business requirements people that they must come up with an end of life policy for customers on older versions.
Unless your company has a service contract with Sun you right now, can no longer insure that the VM will remain secure nor even really running.
See the following for the java VMs that you are using.
[http://java.sun.com/products/archive/eol.policy.html] -
Hey! Is there an app for monitoring CELLPHONE usage? (Not data, calls, SMS, etc.). I know there's for data, but I wanna know if there's one that keeps track of calls, SMS, etc.
Thanks!Unless O2 has an app available via the iTunes app store that provides for this as AT&T does for the iPhone sold in the U.S., I don't believe so.
The iPhone includes a usage indicator for Call Time and Cellular Network Data usage, which can be reset on a monthly basis based on your billing cycle, but there is no usage indicator for the number of messages sent or received. -
I have a MacBook Air 2010, upgraded to OSX Version 10.8.4. When I click the Macintosh HD and then look under Info, it says I have 120.47GB capacity, Available 60.97GB, Used 59.5GB. However when I look under Activity Monitor, Disk Usage it says Space Utilised 92.18GB, Space free: 28.29GB. Questions:
Why the difference?
Which is more important for computer speed?
How to I reduce "Space Utlised" to closer to "Used"? (I've already moved 25GB of the more bulky, less immediate data to external storage from the computer, including emptying IPhoto Trash and the main Trash. The Space Utilised dropped only from 95GB to 92GB--while the Used space dropped from 85GB to 60GB.)Iheartapple1970
Just to let you I tried the reindexing before the Mendes advice and it had no effect. Of course, I may have done it wrong. It was the HD icon from the desktop which I dragged into the Privacy window of Spotlight (and then did the +, OK, - and close Spotlight). Should I have dragged in something else? Or opened up the HD and dragged in all the contents?
Also, there is a small section in my HD which is for my wife's account which has a separate user name and password, although it has no data in it and I set it up while under my administrator account original, so my MacAir may think I still "own" it; in any case, I did not get any sort of error message saying I did not have ownership of the entire HD. -
Hello,
I was looking at the little JVMTI documentation I could find. Any pointers to good docs? I had to go mostly with the API style reference..
As to my needs, I would like to monitor thread scheduling in real-time. So I could record which thread is running at which point and for how long. Is this possible with JVM TI or some other API? I see there are event functions for thread start and end. I could possibly hook those and add an event listener to each thread to record when it starts execution. I just dont know what event to use to record execution start after the switch, since none really seem good for the job. Naturally, I am interested in minimal overhead. Ideas?
Also as a second note, I am also interested in monitoring resource usage, such as file access, network activity, etc... much like probes in systemtap (http://sourceware.org/systemtap/) and similar tools. Is there some way to do this effectively in Java? I realize it may be more difficult as the VM is not quite the OS kernel here..?
Any pointers and other help would be great.
thanks!Why don't you have a common data object which is
passed to all the threads and the thread monitor
class? In such a approach it will be easy for the
threads to communicate and also if you need to
synchronize them you can use wait / notify.Nah, I wouldn't pool the data unless I needed to. That way deadlock madness lies. If the data is specific to a thread, keep it in the thread's class. -
30EA3- 2.*: Weird performance issues for editing objects
Hi,
I noticed weird performance issues for editing objects: when right-clicking on them in the navigator tree and selecting Edit, you get the old progress dialog "Connected to database XXX". This stays on screen a lot longer than it ever did (last sequence I edited over 30 seconds!).
Cancelling displays a "Error retrieving schemas" dialog, but then opens the Edit dialog correctly. No further side effects noticed, so I think sqldev is adding useless overhead here.
If confirmed, can this be bugged and/or fixed by production?
Thanks,
K.Yes, I mean in context of other hangs reported. This one is a nasty performance issue, but IMO the others are real show stoppers.
Atomic steps are easy; any* Edit (object) action inside the context menu of the navigator or the Edit button of the object viewer.
I took a lot of dumps (every second or so) and came to these findings:
Full thread dump Java HotSpot(TM) Client VM (14.2-b01 mixed mode):
"ProgressBarThread" prio=6 tid=0x049de000 nid=0x1674 runnable [0x056ff000]
java.lang.Thread.State: RUNNABLE
at oracle.jdbc.driver.T2CStatement.t2cDefineFetch(Native Method)
at oracle.jdbc.driver.T2CPreparedStatement.doDefineFetch(T2CPreparedStatement.java:818)
at oracle.jdbc.driver.T2CPreparedStatement.executeForRows(T2CPreparedStatement.java:746)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1100)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3381)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3425)
- locked <0x1828f7f0> (a oracle.jdbc.driver.T2CConnection)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1202)
at oracle.javatools.db.execute.QueryWrapper.executeQueryImpl(QueryWrapper.java:280)
at oracle.javatools.db.execute.QueryWrapper.access$000(QueryWrapper.java:76)
at oracle.javatools.db.execute.QueryWrapper$QueryExecutionRunnable.runImpl(QueryWrapper.java:390)
- locked <0x1828f7f0> (a oracle.jdbc.driver.T2CConnection)
at oracle.javatools.db.execute.StatementWrapper$ExecutionRunnable.run(StatementWrapper.java:692)
- locked <0x10c504c0> (a oracle.javatools.db.execute.QueryWrapper$QueryExecutionRunnable)
at oracle.ideimpl.db.ProgressBarExecutionWrapper.runAndLog(ProgressBarExecutionWrapper.java:136)
at oracle.ideimpl.db.ProgressBarExecutionWrapper.access$000(ProgressBarExecutionWrapper.java:38)
at oracle.ideimpl.db.ProgressBarExecutionWrapper$R.run(ProgressBarExecutionWrapper.java:180)
at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:655)
at java.lang.Thread.run(Thread.java:619)
"pool-2-thread-2" prio=6 tid=0x06795400 nid=0xa58 waiting on condition [0x073ef000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x131fded0> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
"pool-4-thread-1" prio=6 tid=0x06654400 nid=0xa08 waiting on condition [0x05dff000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x18334e28> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
"WeakDataReference polling" prio=2 tid=0x064de800 nid=0xc58 in Object.wait() [0x0eb3f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x18335088> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at oracle.ide.util.WeakDataReference$Cleaner.run(WeakDataReference.java:88)
at java.lang.Thread.run(Thread.java:619)
"Background Parser" prio=6 tid=0x04decc00 nid=0x1248 waiting on condition [0x0ea3f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at oracle.dbtools.raptor.plsql.BackgroundParser$1.construct(BackgroundParser.java:112)
at oracle.dbtools.raptor.utils.NamedSwingWorker$2.run(NamedSwingWorker.java:115)
at java.lang.Thread.run(Thread.java:619)
"IconOverlayTracker Timer" prio=6 tid=0x063e5400 nid=0x16fc in Object.wait() [0x076ef000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.util.TimerThread.mainLoop(Timer.java:483)
- locked <0x180c2840> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)
"WaitCursor-Timer" prio=6 tid=0x04e39c00 nid=0x910 in Object.wait() [0x074ef000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.util.TimerThread.mainLoop(Timer.java:483)
- locked <0x1792d840> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)
"Native Directory Watcher" prio=2 tid=0x04e38400 nid=0x12b8 runnable [0x062ef000]
java.lang.Thread.State: RUNNABLE
at oracle.ide.natives.NativeHandler.enterWatcherThread(Native Method)
at oracle.ide.natives.NativeHandler$2.run(NativeHandler.java:252)
at java.lang.Thread.run(Thread.java:619)
"Background Parser" prio=6 tid=0x04d86c00 nid=0x12ac waiting on condition [0x061af000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at oracle.dbtools.raptor.plsql.BackgroundParser$1.construct(BackgroundParser.java:112)
at oracle.dbtools.raptor.utils.NamedSwingWorker$2.run(NamedSwingWorker.java:115)
at java.lang.Thread.run(Thread.java:619)
"Background Parser" prio=6 tid=0x04d82800 nid=0x1240 waiting on condition [0x05eff000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at oracle.dbtools.raptor.plsql.BackgroundParser$1.construct(BackgroundParser.java:112)
at oracle.dbtools.raptor.utils.NamedSwingWorker$2.run(NamedSwingWorker.java:115)
at java.lang.Thread.run(Thread.java:619)
"TextBufferScavenger" prio=6 tid=0x04d81400 nid=0x10ec in Object.wait() [0x05cff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1729c0a8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x1729c0a8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at oracle.ide.model.TextNode$FacadeBufferReference$PollingThread.run(TextNode.java:1949)
"BaseTreeExplorer.NodeOpeningExecutor" prio=6 tid=0x04ba0400 nid=0x11bc waiting on condition [0x05aff000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x131a1910> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
"pool-2-thread-1" prio=6 tid=0x04c1c400 nid=0x11b8 waiting on condition [0x059ff000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x131fded0> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
"Scheduler" daemon prio=6 tid=0x04b9a800 nid=0x11b0 in Object.wait() [0x058ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at oracle.dbtools.raptor.backgroundTask.TaskLinkedList.takeNextTask(TaskLinkedList.java:47)
- locked <0x131a1ba0> (a oracle.dbtools.raptor.backgroundTask.TaskLinkedList)
at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$SchedulerThread.run(RaptorTaskManager.java:422)
"TimerQueue" daemon prio=6 tid=0x0445b000 nid=0x10fc in Object.wait() [0x057ff000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at javax.swing.TimerQueue.run(TimerQueue.java:236)
- locked <0x12f7c028> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:619)
"ChangeSetService" prio=2 tid=0x049d0800 nid=0x1060 in Object.wait() [0x053ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x12e140c8> (a oracle.jdevimpl.vcs.changeset.ChangeSetService)
at java.lang.Object.wait(Object.java:485)
at oracle.jdevimpl.vcs.changeset.ChangeSetService.awaitEvents(ChangeSetService.java:178)
- locked <0x12e140c8> (a oracle.jdevimpl.vcs.changeset.ChangeSetService)
at oracle.jdevimpl.vcs.changeset.ChangeSetService.eventLoop(ChangeSetService.java:199)
at oracle.jdevimpl.vcs.changeset.ChangeSetService.access$200(ChangeSetService.java:56)
at oracle.jdevimpl.vcs.changeset.ChangeSetService$2.run(ChangeSetService.java:138)
at java.lang.Thread.run(Thread.java:619)
"TimedCache-Timer" daemon prio=6 tid=0x03af9c00 nid=0x414 in Object.wait() [0x03fdf000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.util.TimerThread.mainLoop(Timer.java:509)
- locked <0x12869c58> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)
"JarIndex Timer" daemon prio=6 tid=0x03945400 nid=0x171c in Object.wait() [0x042df000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.util.TimerThread.mainLoop(Timer.java:509)
- locked <0x127d85a8> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)
"AWT-EventQueue-0" prio=6 tid=0x030f4800 nid=0x1684 in Object.wait() [0x041de000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.awt.EventQueue.getNextEvent(EventQueue.java:479)
- locked <0x127d8658> (a java.awt.EventQueue)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:236)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1045)
at java.awt.Dialog$3.run(Dialog.java:1097)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1095)
at java.awt.Component.show(Component.java:1563)
at java.awt.Component.setVisible(Component.java:1515)
at java.awt.Window.setVisible(Window.java:841)
at java.awt.Dialog.setVisible(Dialog.java:985)
at oracle.bali.ewt.dialog.JEWTDialog.runDialog(JEWTDialog.java:395)
at oracle.bali.ewt.dialog.JEWTDialog.runDialog(JEWTDialog.java:356)
at oracle.ide.dialogs.ProgressBar.start(ProgressBar.java:352)
at oracle.ide.dialogs.ProgressBar.start(ProgressBar.java:229)
at oracle.ideimpl.db.ProgressBarExecutionWrapper.execute(ProgressBarExecutionWrapper.java:108)
at oracle.javatools.db.execute.StatementWrapper$ExecutionProxy.doExecute(StatementWrapper.java:647)
at oracle.javatools.db.execute.StatementWrapper$ExecutionProxy.access$200(StatementWrapper.java:585)
at oracle.javatools.db.execute.StatementWrapper.doExecute(StatementWrapper.java:307)
at oracle.javatools.db.execute.QueryWrapper.executeQuery(QueryWrapper.java:215)
at oracle.javatools.db.dictionary.DictionaryDatabase.listObjectsImpl(DictionaryDatabase.java:323)
at oracle.javatools.db.ora.BaseOracleDatabase.listObjectsImpl(BaseOracleDatabase.java:524)
at oracle.javatools.db.AbstractDBObjectProvider.listSchemas(AbstractDBObjectProvider.java:859)
at oracle.ide.db.dialogs.BaseDBEditorFactory.createNamespace(BaseDBEditorFactory.java:503)
at oracle.ide.db.dialogs.BaseDBEditorFactory.editDBObject(BaseDBEditorFactory.java:357)
at oracle.ide.db.dialogs.AbstractDBEditorFactory.editDBObject(AbstractDBEditorFactory.java:332)
at oracle.ide.db.dialogs.BaseDBEditorFactory.editDBObject(BaseDBEditorFactory.java:54)
at oracle.ide.db.dialogs.AbstractDBEditorFactory.editDBObject(AbstractDBEditorFactory.java:314)
at oracle.dbtools.raptor.utils.DataBaseNodeUtil.editNodeWizard(DataBaseNodeUtil.java:45)
at oracle.dbtools.raptor.oviewer.xmleditor.XMLBasedEditor.handleEvent(XMLBasedEditor.java:152)
at oracle.ide.controller.IdeAction.performAction(IdeAction.java:531)
at oracle.ide.controller.IdeAction.actionPerformedImpl(IdeAction.java:886)
at oracle.ide.controller.IdeAction.actionPerformed(IdeAction.java:503)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
"AWT-Shutdown" prio=4 tid=0x030e6400 nid=0x1680 in Object.wait() [0x040df000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0x127d8718> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:619)
"AWT-Windows" daemon prio=6 tid=0x03abb400 nid=0x1610 runnable [0x03edf000]
java.lang.Thread.State: RUNNABLE
at sun.awt.windows.WToolkit.eventLoop(Native Method)
at sun.awt.windows.WToolkit.run(WToolkit.java:291)
at java.lang.Thread.run(Thread.java:619)
"Java2D Disposer" daemon prio=10 tid=0x03a97400 nid=0x15f8 in Object.wait() [0x03cdf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x127d8810> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.java2d.Disposer.run(Disposer.java:125)
at java.lang.Thread.run(Thread.java:619)
"Low Memory Detector" daemon prio=6 tid=0x030d1c00 nid=0x15dc runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=10 tid=0x030cb800 nid=0x15d8 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" daemon prio=10 tid=0x030ca000 nid=0x15d4 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x030c8c00 nid=0x15d0 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=8 tid=0x030b9c00 nid=0x15c8 in Object.wait() [0x0343f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x12770298> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x030b5000 nid=0x15c4 in Object.wait() [0x0333f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x12770320> (a java.lang.ref.Reference$Lock)
"main" prio=6 tid=0x00967800 nid=0x1504 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"VM Thread" prio=10 tid=0x030b1000 nid=0x15c0 runnable
"VM Periodic Task Thread" prio=10 tid=0x030d3c00 nid=0x15e0 waiting on condition
JNI global references: 2645
Heap
def new generation total 12544K, used 6205K [0x10010000, 0x10da0000, 0x12770000)
eden space 11200K, 53% used [0x10010000, 0x105e2ff0, 0x10b00000)
from space 1344K, 18% used [0x10c50000, 0x10c8c7b8, 0x10da0000)
to space 1344K, 0% used [0x10b00000, 0x10b00000, 0x10c50000)
tenured generation total 165468K, used 99280K [0x12770000, 0x1c907000, 0x30010000)
the space 165468K, 59% used [0x12770000, 0x18864308, 0x18864400, 0x1c907000)
compacting perm gen total 50432K, used 50210K [0x30010000, 0x33150000, 0x38010000)
the space 50432K, 99% used [0x30010000, 0x33118aa8, 0x33118c00, 0x33150000)
No shared spaces configured.- In the beginning of the waiting time, the "locked <0x10c504c0>" in the "ProgressBarThread" changed (at least once) to "locked <0x10c51da0>".
- Then halfway the waiting time, the "pool-2-thread-1" disappeared, then "pool-2-thread-2" shortly after.
- Then the "TimedCache-Timer" changed to
"TimedCache-Timer" daemon prio=6 tid=0x03af9c00 nid=0x414 in Object.wait() [0x03fdf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.util.TimerThread.mainLoop(Timer.java:483)
- locked <0x12869c58> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)- Then near the end, the "locked <0x10c51da0>" in the "ProgressBarThread" changed to "locked <0x10b01da0>", then to "locked <0x10c51da0>".
Hope that helps,
K. -
Initialize QTMovie in a child thread by passing Movie object.
I'm working on an Qt (Qt framework) application in which I'm making use of a .mm file to call MAC specific functions.
I need to initialize QTMovie in a child thread by passing Movie object.
[QTMovie movieWithQuickTimeMovie:movie disposeWhenDone:TRUE error:nil]
It appears like I have to initialize QTMovie in main thread. I came across performSelectorOnMainThread which might be of some help. Could anyone please show me the right usage of the same?
I need to call a method using performSelectorOnMainThread by passing the Movie object to it and which returns the initialized QTMovie object.
Thanks in advance.Ah, you seem to be on to something, there. The main thread gives
sun.misc.Launcher$AppClassLoader@111f71
while the child thread gives null. The same occurs whether the experiment is in
the same JVM instance or not.
So presumably this means I need to get the context loader from the main thread
and set it in the child thread manually!?
- Angus.
Patrick Linskey wrote:
Angus Monro <[email protected]> writes:
Okay.... I'm not really sure what you're asking for. What I've done is
printed the ClassLoader object as given by
com.solarmetric.util.app.Prefs.class.getClassLoader(), along with its
parent recursively up the tree of loaders. This gave:
sun.misc.Launcher$AppClassLoader@111f71
sun.misc.Launcher$ExtClassLoader@256a7c
This result was exactly the same irrespective of whether I did it from the
main thread or the child thread. But the exception still happens only the
child thread.Sorry, I should have been more clear. Can you print out the current
thread's context's classloader?
System.out.println (Thread.currentThread ().getContextClassLoader ());
Also, what happens if you run the test in the main thread and then in
the child thread, all in the same JVM?
-Patrick
- Angus.
Patrick Linskey [email protected]
SolarMetric Inc. http://www.solarmetric.com -
I recently added my brother's phone to my plan, he had Verizon already and we transferred his number to my plan from another person's plan. He's been on my plan since Aug. 2nd, and he's the 4th phone line on my plan now. He isn't being responsible by telling me what his most frequently called numbers are so I may add them to my 10 F&F. I tried to view his top numbers dialed in the usage section, and his number doesn't show up. It only shows me usage for the original 3 lines. I am able to view his calls and details under the billing section, but I have no way of knowing which numbers are most at risk for going over, it won't tell me which of his numbers have VZW or not. He's completely on my plan now, so why wouldn't it show me his heavy hitters? His usage is higher than the other three lines put together, so I need to be able to monitor his usage frquently to ensure no overages. And by the way, I do NOT want him authorized on my account, so hopefully the answer will not be having him call in and access my account to update something... Thanks in advance!
I was getting ready to reply...and saw the issue has resolved itself.
For others who may be reading, and logging in later doesn't work....you can sort the columns when you are viewing the bill online by clicking on the column header. Sort by number, sort by length of call, etc - not ideal but if the Verizon report features are not working, it will give you the information you seek.
if you are good with Excel, you can download the data to a spreadsheet and do your calculations and manipulations there as well. -
Is there an APP to monitor call usage and number of texts sent
Is there an APP to monitor call usage (in minutes) and number of texts sent etc so I can ensure I am keeping within my contract? I am getting my 3GS on Thursday so do not know if the phone has this facility already inbuilt or whether there is an app I can buy to do this for me?
Thank you for any help and info to answer my question.Unless O2 has an app available via the iTunes app store that provides for this as AT&T does for the iPhone sold in the U.S., I don't believe so.
The iPhone includes a usage indicator for Call Time and Cellular Network Data usage, which can be reset on a monthly basis based on your billing cycle, but there is no usage indicator for the number of messages sent or received.
Maybe you are looking for
-
My wife and I have an iPhone 3GS and and new iPad 2 each and we also have separate iTunes accounts. We have only one computer and whilst I have no problem syncing the computer and my iPhone and iPad, I now need to sync my wife's phone and iPad but f
-
Mapping problem with xs:dateTime
Hi there, I am trying to set up a demo project for training purposes illustrating the implementation of composite services using third party and ECC services. For the third party portion of it, I am using the Fedex web services. After importing the r
-
ABAP Structures....
Hi Experts, I want to generate some report in ABAP from SAP but when i see the tech. Speci. of any field some time i found TABLE but sometime there we found Data Structure after looking in SE11/ SE16. Kindly guide me that how would i know that what t
-
Hi, SAP FICO EXPERTS, We have configured the report KE30, and we want a new field to added as SALES GROUPS in it. We created 3 sales groups, and raised sales order using a particular sales grp, and invoiced it. now we want to view the value in KE30 r
-
Constantly getting Little Service, NO SERVICE or NO SIM.
Anyone else getting this? I am even when my buddy is right next to me with a full service iphone If so, how did you fix it. Do i ned to go to an Apple Store or sent my iphone in?