YourKit Java Profiler 6.0.16
Hi here is my problem, I am using the YourKit Java Profiler.
everytime time I am closing a JInternalFrame what I noticed in this YourKit Profiler is that Allocated Memory is not decreasing when I dispose() the JInternalFrame. What do I need to do so when I dispose() this JInternalFrame the Allocated Memory is free up.
Allocated Memory is only increasing.
Please I need big help on this one.
Wilfer
We have been running 1.6 update 12 without any problems. We have only encountered problems when we recently updated to update 16.
For security purposes we are unable to use 1.5 because of some security flaw.
Similar Messages
-
Help Urgent: Java Profiler
Hi Frds,
I am preparing a java profiler tool..i've seen a sample java profiler code..observed code with servlets and jsp..i'm new to J2EE..can you please tell me how to initiate it..i've observed few things to prepare own java profiler..
Hook
Java Agent
ASM plugin
plz..Can any one explain more about it..so that i can start writing code on it..
thx in advance
Rajesh.It is the project file(.jpx) and it has more than 1000 files in it..and it is completely applet application.. and it is not even showing what operation is unsupported..when i change to JDK1.4 ,it is working fine..the moment i shfted to jdk5.0 and try to rebuild it is giving "java.lang.UnsupportedOperationException" and it is not giving any other info.now..any one plz..help..
-
Hi;
I search a java profiler tool free like OPtimiZeit or Jprobe for testing my j2ee application ?
Regards;There are free profilers, but I would suggest using an evaluation license of OptimizeIT and/or Jprofiler or JProbe.
They will do a better jobs, possible so good, you will solve the problem before the license expires :) -
Greetings all ---
I am trying to use the java profiler that comes with the jvm (jdk1.3). Searching the forums, I found the suggestion to run with -Xprof switch. I did that here are my results. Can someone please explain:
I ran my program with this command
java -Xprof findLinkThread
Flat profile of 26.56 secs (2586 total ticks): Keep-Alive-Timer:localhost
Thread-local ticks:
100.0% 2586 Blocked (of total)
Flat profile of 83.34 secs (8077 total ticks): Thread-1
Thread-local ticks:
100.0% 8077 Blocked (of total)
Global summary of 84.84 seconds :
100.0% 8262 Received ticks
0.4% 35 Received GC ticks
0.2% 13 Compilation
0.0% 2 Other VM operations
0.8% 66 Class loader
0.0% 2 Unknown code
what does this mean ? is it good or bad ?
can I get the prepackaged profiler to tell me anything useful in terms of what is slowing things down etc /
stevAll that those results say to me is that garbage collection and class loading doesn't represent much of a hit for your application. I think you were after something a little more like...$ java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-C)
Java HotSpot(TM) Client VM (build 1.3.0-C, mixed mode)
$java -Xrunhprof:help
Hprof usage: -Xrunhprof[:help]|[<option>=<value>, ...]
Option Name and Value Description Default
heap=dump|sites|all heap profiling all
cpu=samples|times|old CPU usage off
monitor=y|n monitor contention n
format=a|b ascii or binary output a
file=<file> write data to file java.hprof(.txt for ascii)
net=<host>:<port> send data over a socket write to file
depth=<size> stack trace depth 4
cutoff=<value> output cutoff point 0.0001
lineno=y|n line number in traces? y
thread=y|n thread in traces? n
doe=y|n dump on exit? y
Example: java -Xrunhprof:cpu=samples,file=log.txt,depth=3 FooClass
$java -Xrunhprof:cpu=times,file=prof.txt,depth=10 Shuffle
$cat prof.txt
CPU TIME (ms) BEGIN (total = 180) Mon Nov 19 11:10:57 2001
rank self accum count trace method
1 11.11% 11.11% 5 14 java.util.jar.Attributes.read
2 5.56% 16.67% 3 9 java.io.PrintStream.write
3 5.56% 22.22% 1 10 java.util.Properties.load
4 5.56% 27.78% 30 17 java.io.PrintStream.write
5 5.56% 33.33% 1 3 java.security.Security.loadProviders
6 5.56% 38.89% 5 11 java.io.ByteArrayInputStream.<init>
7 5.56% 44.44% 831 8 java.util.jar.Attributes$Name.isAlpha
8 5.56% 50.00% 1 2 java.lang.ClassLoader$NativeLibrary.load
9 5.56% 55.56% 5 7 sun.misc.URLClassPath$JarLoader.getClassPath
10 5.56% 61.11% 105 5 java.io.BufferedReader.readLine
11 5.56% 66.67% 1 6 java.io.Win32FileSystem.getBooleanAttributes
12 5.56% 72.22% 44 12 java.lang.StringBuffer.expandCapacity
13 5.56% 77.78% 185 16 java.lang.StringBuffer.append
14 5.56% 83.33% 1 13 java.lang.ClassLoader.checkCerts
15 5.56% 88.89% 1 18 java.io.FilePermission.<init>
16 5.56% 94.44% 30 4 java.io.PrintStream.newLine
17 5.56% 100.00% 210 15 java.io.Win32FileSystem.isSlashFor example, in the above profile, StringBuffer.expandCapacity takes 5% of the running time, so I might want to create my StringBuffers with higher initial capacity.
BTW- this was running on Windows NT, the runhprof options may be different (or omitted) on other platforms.
Hope this helps,
-Troy -
Java profiler for WLS6 on Solaris.
Hi,
Is there any profiler that supports the Sun JDK 1.3.0 on Solaris, as
OptimizeIt doesn't even start and JProbe hangs when trying to profile
the server.
Thanks,
Deyan
[dejan_bektchiev.vcf]To make it work a little better (but 100 times slower ;-) turn off hotspot
and jit!!!
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com
+1.617.623.5782
WebLogic Consulting Available
"Deyan D. Bektchiev" <[email protected]> wrote in message
news:[email protected]..
Yes,
It is more stable than the others -- doesn't crash sometimes for 10minutes
but it's not enough for me to collect performance data but I am still
trying so eventually I might be able to gather some.
I keep getting
# HotSpot Virtual Machine Error, Unexpected Signal 11
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
# Error ID: 4F533F534F4C415249530E435050079A 01
# Problematic Thread: prio=5 tid=0x2a3328 nid=0x8 runnable
but since without the profiler settings I do not get the problem I am
unable to say what happens and the behaviour is not consistent --sometimes
the JVM crashes at WLS startup sometimes later.
Thanks,
Deyan
Cameron Purdy wrote:
Have you tried the JDK's profiler?
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com
+1.617.623.5782
WebLogic Consulting Available
"Deyan D. Bektchiev" <[email protected]> wrote in message
news:[email protected]..
Hi,
Is there any profiler that supports the Sun JDK 1.3.0 on Solaris, as
OptimizeIt doesn't even start and JProbe hangs when trying to profile
the server.
Thanks,
Deyan -
Hi All,
I was wondering if anybody knew how profiling works in Java apps. How is the time computed. Is it based on clock cycles per execution or real time consumed during the excution.
Also should a profiler output be affected by other apps running .
ThanksThere are a lot of profilers for Java, and most of them in fact allow you to choose the way in which time is computed (exact or statistical). Other apps would of course interfere, and although a good tool would
try to factor out some of the interference, it's NOT recommended to run other apps when you do profiling. You never know in what way (e.g. by effectively increasing your app's disk latency, etc.) they may affect your performance. -
Java profiler for AMD64 on Eclipse
Does anyone know of a profiler that would work with Eclipse for profiling a 64 bit application on an AMD64 Opteron system?
Thanks,
HarshaTo make it work a little better (but 100 times slower ;-) turn off hotspot
and jit!!!
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com
+1.617.623.5782
WebLogic Consulting Available
"Deyan D. Bektchiev" <[email protected]> wrote in message
news:[email protected]..
Yes,
It is more stable than the others -- doesn't crash sometimes for 10minutes
but it's not enough for me to collect performance data but I am still
trying so eventually I might be able to gather some.
I keep getting
# HotSpot Virtual Machine Error, Unexpected Signal 11
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
# Error ID: 4F533F534F4C415249530E435050079A 01
# Problematic Thread: prio=5 tid=0x2a3328 nid=0x8 runnable
but since without the profiler settings I do not get the problem I am
unable to say what happens and the behaviour is not consistent --sometimes
the JVM crashes at WLS startup sometimes later.
Thanks,
Deyan
Cameron Purdy wrote:
Have you tried the JDK's profiler?
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com
+1.617.623.5782
WebLogic Consulting Available
"Deyan D. Bektchiev" <[email protected]> wrote in message
news:[email protected]..
Hi,
Is there any profiler that supports the Sun JDK 1.3.0 on Solaris, as
OptimizeIt doesn't even start and JProbe hangs when trying to profile
the server.
Thanks,
Deyan -
Can't install the Java Profiler
I download the netbeans profiler but for some reason it is not installing properly. It seems to install fine but I do not have profile in the toolbar like I should. I've tried uninstalling and reinstalling several times. Can somebody help me? Thanks
i forgot to mention my system is XP home with service pack 3(i think) & my comp is a dell deminsion 2400.
-
Java Profiler for RMI Applications
I am looking for a profiler to monitor the bottlenecks and the memory usage when running my RMI application.
What would you recommend to use and a comprehensive toolCouple of thoughts on scaling:
1. Change the mx setting to 1200m -- this is the most you can scale a single instance on 32-bit
2. Use a 64-bit platform you can set memory settings really high (AIX/Solaris)
3. Multiple servers with planning on it using a load balancer
Regards,
John A. Booth
http://www.metavero.com -
How to solve : java.lang.OutOfMemoryError: Java heap space
Dear all,
Am using Jdeveloper 11.1.1.3 with weblogic10...
I keep getting out of memory error while working on the application , here is the exact error message that i copied from the server log :
####<28/11/2010 GMT 09:17:58 ص> <Critical> <Health> <javaserver> <AdminServer> <weblogic.GCMonitor> <<anonymous>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000012> <1290935878582> <BEA-310003> <Free memory in the server is 4,541,416 bytes. There is danger of OutOfMemoryError>
####<28/11/2010 GMT 09:24:51 ص> <Error> <Kernel> <javaserver> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000029> <1290936291218> <BEA-000802> <ExecuteRequest failed
java.lang.OutOfMemoryError: Java heap space.
java.lang.OutOfMemoryError: Java heap space
>
####<28/11/2010 GMT 09:25:04 ص> <Notice> <Diagnostics> <javaserver> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002c> <1290936304406> <BEA-320068> <Watch 'UncheckedException' with severity 'Notice' on server 'AdminServer' has triggered at 28/11/2010 GMT 09:24:56 ص. Notification details:
WatchRuleType: Log
WatchRule: (SEVERITY = 'Error') AND ((MSGID = 'BEA-101020') OR (MSGID = 'BEA-101017') OR (MSGID = 'BEA-000802'))
WatchData: DATE = 28/11/2010 GMT 09:24:51 ص SERVER = AdminServer MESSAGE = ExecuteRequest failed
java.lang.OutOfMemoryError: Java heap space.
java.lang.OutOfMemoryError: Java heap space
SUBSYSTEM = Kernel USERID = <WLS Kernel> SEVERITY = Error THREAD = [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' MSGID = BEA-000802 MACHINE = javaserver TXID = CONTEXTID = 3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000029 TIMESTAMP = 1290936291218
WatchAlarmType: AutomaticReset
WatchAlarmResetPeriod: 30000
>
####<28/11/2010 GMT 09:25:36 ص> <Warning> <oracle.dfw.framework> <javaserver> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002c> <1290936336549> <DFW-40121> <failure creating incident from WLDF notification
java.lang.OutOfMemoryError: Java heap space
>
####<28/11/2010 GMT 09:26:32 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936392224> <BEA-000388> <JVM called WLS shutdown hook. The server will force shutdown now>
####<28/11/2010 GMT 09:26:35 ص> <Alert> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936395303> <BEA-000396> <Server shutdown has been requested by <WLS Kernel>>
####<28/11/2010 GMT 09:26:35 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936395303> <BEA-000365> <Server state changed to FORCE_SUSPENDING>
####<28/11/2010 GMT 09:26:53 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936413632> <BEA-000365> <Server state changed to ADMIN>
####<28/11/2010 GMT 09:26:56 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936416757> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>
####<28/11/2010 GMT 09:26:59 ص> <Notice> <Server> <javaserver> <AdminServer> <DynamicListenThread[Default[1]]> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000035> <1290936419289> <BEA-002607> <Channel "Default[1]" listening on 127.0.0.1:7001 was shutdown.>
####<28/11/2010 GMT 09:27:07 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-41> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936427508> <BEA-000378> <Server failed to shutdown within the configured timeout of 30 seconds. The server process will exit now.>
i searched the net and it seems that i should increase the java heap size , how can i do that... I have a server with 4G Ram ..
Regards,
Lama
Edited by: Delta on Nov 28, 2010 1:36 AMMy frien google tells me that you use
>
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
This can have two reasons:
* Your Java application has a memory leak. There are tools like YourKit Java Profiler that help you to identify such leaks.
* Your Java application really needs a lot of memory (more than 128 MB by default!). In this case the Java heap size can be increased using the following runtime parameters:
java -Xms<initial heap size> -Xmx<maximum heap size>
>
Timo -
Performance Analysis: java classes run fast, but http response is delayed
Hello,
I´m analysing a performance issue on our application and I have the following symptons:
- A profile analysis with YourKit Java Profiler 7.5 told us that our java classes are running "fast" ( mostly less than 10s ).
- The access_log of the Oracle HTTP Server (httpd.conf LogFormat %T parameter) show us that the time taken to process the entire request is 130s
- The users told us that the application runs fast for a while, but after some minutes, the entire application runs slowly. After some minutes again, the entire application runs fast again.
- There are no overload of CPU, MEM, IO, Networking. All have been checked and are ok.
- At the same time the application A runs slowly, the application B on the same server ( but another instance ) runs normally.
- There is no database botleneck. All the application queries have been profiled and optimized for best run.
- A huge number of application threads exists on the java virtual machine. The peak was 187 threads ( mostly sleeping. Just one or two were running ). The threads average in the vm is 150.
- Our application has few EJB ( 4 ), few ejb-calls. All the EJB calls are cached with EhCache. The cache timeout is 2hours. When time-out occurs, the cache is invalidated, cleared and reloaded.
- We have only 10 users.
My hypothesis are:
1. Application server thread blocking. Some threads take until 13 minutes to finish, even when the java processing took only 23 seconds.
2. Some problem with the size of the AJP packages between HTTPServer and Application server.
I´m really desperate for help. Any help will be widely appreciated.
Oracle Application Server 9.0.3.3 running on
Sun Solaris 5.9
Sun Java Development Kit 1.4.1_05-b01
Is there any way to configure the max number of threads in the application server? Where?
Thanks in advance,
MuriloYou can tweak the application server threads as described here:
http://download.oracle.com/docs/cd/B31017_01/web.1013/b28950/threadpool.htm#BHBDGJBI
Oh just noticed you are on 9.0.3.3 -- that is a very, very, very* old release. I don't think we had a tunable thread-pool back then. The oldest doc I can find is for 10.1.2, which I think is where we first introduced the thread-pool manager:
http://download.oracle.com/docs/cd/B15904_01/web.1012/b14011/advanced.htm#i1014357
Is there any garbage collection occurring that could account for the slow-down in ART? I guess not if APP-B continues to run well over the same period.
-steve- -
Coherence objects not released when undeploying application?
Hi
Part of our continuous integration build is deploying our application to a Weblogic server and running some selenium test cases against it. We have usually about 15 builds running each day.
Our problem is that we seem to be experiencing a memory leak in that process; each new build takes more and more memory until weblogic starts throwing out-of-memory errors (as a workaround we'r restarting weblogic every night).
After spending some time using a profiler (we'r using YourKit Java Profiler) it appears that the calls to Coherence libraries cause references to our objects not being properly released and GC is not able to get rid of them properly. If the calls to the Coherence libraries are removed teh GC correctly releases all our application objects.
To confirm this I have created this simle test scenario:
1. Created an empty web application (war) that has only one class in it:
package com.test;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.tangosol.net.CacheFactory;
public class TestServletContextListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
CacheFactory.shutdown();
public void contextInitialized(ServletContextEvent arg0) {}
2. Modified the web.xml to register the ContextListener:
<listener>
<listener-class>com.test.TestServletContextListener</listener-class>
</listener>
3. Created empty EAR that has only two libraries in it: coherence.jar & tangosol.jar (version 3.3.1)
5. included the test web application in the EAR (no other classes, projects or libraries are included; no other configuration settings are adjusted from defaults)
6. While using the profiler I was performing deployemnt and undeployment of teh EAR against the Weblogic server. With each new deployment a new set of com.tangosol* classes is created. Those classes are not released even when GC is forced from the profiler.
I'm not able to attach a screenshot from the profiler to this post, but with each redeployment I can see the following objects created (ordered with number of objects created in a descending order):
com.tangosol.util.Base$ComonMonitor: 1024 new objects
com.tangosol.run.xml.XmlToken: 16 new Objects
com.tangosol.util.ListMap: 11 new Objects
com.tangosol.util.RecyclingLingedList$Node: 5 new Objects
etc.
Am I doing something wrong or is there really a problem with the object references not properly released in Coherence?
thank you
s.Hello Robert
I have double checked that the two coherence libs don’t exist anywhere on the server class path. I have also tried calling shutdown from preStop instead of postStop but it made no difference.
(Please note that I'm not really looking for the right place to shutdown Coherence; instead I'm trying to demonstrate that calls to Coherence libraries causes object references not to be released properly. I have chosen to use the shutdown method only because it's nicely visible when it's being invoked and also it is something that our application is calling during shutdowns).
To make sure that I'm not overlooking something with the Weblogic setup I have tried it with Tomcat:
1. Downloaded and installed Tomcat 6.0.14
2. Create new WAR project and put coherence.jar & tangosol.jar in WEB-INF/lib
3. Created one class:
package com.test;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.tangosol.net.CacheFactory;
public class TestServletContextListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
CacheFactory.shutdown();
public void contextInitialized(ServletContextEvent arg0) {}
4. modified web.xml:
<listener>
<listener-class>com.test.TestServletContextListener</listener-class>
</listener>
5. deployed the WAR to the tomcat server with profiler connected to it
After that I have used Tomcat Web Application Manager (http://localhost:8088/manager/html/list) to Stop & Start the application repeatedly.
The behavior is the same as on weblogic. Each stop of the application creates another set of tangosol objects that do not get released by GC.
Am I correct when I say that there is some problem with the Coherence libraries causing memory leaks by not allowing GC to release old objects?
Thank you
s. -
Running out of memory despite having set je.maxMemory to a moderate value
I have set je.maxMemory to 20MB (je.maxMemory=20000000) and allowed a max heap size of 512MB (-Xms256M -Xmx512M).
After two hours of running my web service, I'm running out of memory. After having profiled my service (using Yourkit Java Profiler 1.10.6), I can see the following:
Name Objects ShallowSize RetainedSize
byte[] 16711 124124880 124124880
com.sleepycat.je.tree.BIN 181 24616 116254200
com.sleepycat.je.tree.Node[] 187 98736 115743184
com.sleepycat.je.tree.LN 7092 226944 115253600
java.util.concurrent.ConcurrentHashMap$HashEntry 554 17728 78328944
java.util.concurrent.ConcurrentHashMap$HashEntry[] 1053 34728 77489632
java.util.concurrent.ConcurrentHashMap 117 5616 71812072
java.util.concurrent.ConcurrentHashMap$Segment[] 118 10304 71807912
java.util.concurrent.ConcurrentHashMap$Segment 1052 42080 71798808
com.sleepycat.je.tree.IN 6 672 45592352
java.lang.String 135888 4348416 14152664The memory profiler claims further, that com.sleepycat.je.tree.BIN is responsible for 71% of all heap memory.
In any case, com.sleepycat.je.tree.BIN claims ~ 116MB of heap memory, which is by any goodwill, exceeded the limit of 20MB.
How can this be?
How is JE ensuring that the limit is not exceeded? Is there a timer (thread) running which once a while checks the memory used and then cleans up ; or is memory usage checked creating a com.sleepycat.je.tree.BIN object?
My environment:
BDB JE 4.0.92 - used as cache loader within Jboss Cache (3.2.7.GA), running on a JBOSS Application Server, Java 1.6 (IBM) on Linux. Further details are listed in the system properties below (except some deleted security items).
System properties:
(java.lang.String, int, java.lang.StringBuffer, int)=contains
DestroyJavaVM helper thread=(java.lang.String, java.security.KeyStore$Entry, java.security.KeyStore$ProtectionParameter)
base.collection.name=CD2JAVA
bind.address=10.12.25.130
catalina.base=/work/ocrgws_test/server0
catalina.ext.dirs=/work/ocrgws_test/server0/lib
catalina.home=/work/ocrgws_test/server0
catalina.useNaming=false
com.arjuna.ats.arjuna.objectstore.objectStoreDir=/work/ocrgws_test/server0/data/tx-object-store
com.arjuna.ats.jta.lastResourceOptimisationInterface=org.jboss.tm.LastResource
com.arjuna.ats.tsmx.agentimpl=com.arjuna.ats.internal.jbossatx.agent.LocalJBossAgentImpl
com.arjuna.common.util.logger=log4j_releveler
com.arjuna.common.util.logging.DebugLevel=0x00000000
com.arjuna.common.util.logging.FacilityLevel=0xffffffff
com.arjuna.common.util.logging.VisibilityLevel=0xffffffff
com.ibm.cpu.endian=little
com.ibm.jcl.checkClassPath=
com.ibm.oti.configuration=scar
com.ibm.oti.jcl.build=20100326_1904
com.ibm.oti.shared.enabled=false
com.ibm.oti.vm.bootstrap.library.path=/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs:/opt/ibm/java-x86_64-60/jre/lib/amd64
com.ibm.oti.vm.library.version=24
com.ibm.util.extralibs.properties=
com.ibm.vm.bitmode=64
common.loader=${catalina.home}/lib,${catalina.home}/lib/*.jar
epo.jboss.deploymentscanner.extradirs=/work/ocrgws_test/app/
external.cert.ldap.* = ***************
file.encoding=UTF-8
file.separator=/
flipflop.activation.time=16:30
hibernate.bytecode.provider=javassist
ibm.signalhandling.rs=false
ibm.signalhandling.sigchain=true
ibm.signalhandling.sigint=true
ibm.system.encoding=UTF-8
jacorb.config.log.verbosity=0
java.assistive=ON
java.awt.fonts=
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
java.awt.printerjob=sun.print.PSPrinterJob
java.class.path=/work/ocrgws_test/config:/usr/local/jboss-eap-4.3-cp07/bin/run.jar:/opt/ibm/java-x86_64-60/lib/tools.jar
java.class.version=50.0
java.compiler=j9jit24
java.endorsed.dirs=/usr/local/jboss-eap-4.3-cp07/lib/endorsed
java.ext.dirs=/opt/ibm/java-x86_64-60/jre/lib/ext
java.fullversion=JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr8-20100401_55940 (JIT enabled, AOT enabled)
J9VM - 20100401_055940
JIT - r9_20100401_15339
GC - 20100308_AA_CMPRSS
java.home=/opt/ibm/java-x86_64-60/jre
java.io.tmpdir=/tmp
java.jcl.version=20100408_01
java.library.path=/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs:/opt/ibm/java-x86_64-60/jre/lib/amd64:/usr/lib64/mpi/gcc/openmpi/lib64:/usr/lib
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.net.preferIPv4Stack=true
java.protocol.handler.pkgs=org.jboss.net.protocol
java.rmi.server.codebase=http://10.12.25.130:8083/
java.rmi.server.hostname=10.12.25.130
java.rmi.server.randomIDs=true
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=pxa6460sr8-20100409_01 (SR8)
java.security.krb5.conf=/usr/local/jboss/etc/krb5.conf
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.6
java.util.prefs.PreferencesFactory=java.util.prefs.FileSystemPreferencesFactory
java.vendor.url=http://www.ibm.com/
java.vendor=IBM Corporation
java.version=1.6.0
java.vm.info=JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr8-20100401_55940 (JIT enabled, AOT enabled)
J9VM - 20100401_055940
JIT - r9_20100401_15339
GC - 20100308_AA_CMPRSS
java.vm.name=IBM J9 VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=IBM Corporation
java.vm.version=2.4
javax.management.builder.initial=org.jboss.mx.server.MBeanServerBuilderImpl
javax.net.ssl.trustStore=/usr/local/jboss/etc/ldap.truststore
javax.net.ssl.trustStorePassword=password
jboss.bind.address=10.12.25.130
jboss.home.dir=/usr/local/jboss-eap-4.3-cp07
jboss.home.url=file:/usr/local/jboss-eap-4.3-cp07/
jboss.identity=30df88bc0a52e350x6e2ff59cx136c17794d5x-8000757
jboss.lib.url=file:/usr/local/jboss-eap-4.3-cp07/lib/
jboss.messaging.controlchanneludpaddress=239.1.200.4
jboss.messaging.datachanneludpaddress=239.1.200.4
jboss.partition.name=ocrgws_test_Partition
jboss.partition.udpGroup=239.1.200.4
jboss.remoting.domain=JBOSS
jboss.remoting.instanceid=30df88bc0a52e350x6e2ff59cx136c17794d5x-8000757
jboss.remoting.jmxid=luu002t.internal.epo.org_1334685694459
jboss.remoting.version=22
jboss.security.disable.secdomain.option=true
jboss.server.config.url=file:/work/ocrgws_test/server0/conf/
jboss.server.data.dir=/work/ocrgws_test/server0/data
jboss.server.home.dir=/work/ocrgws_test/server0
jboss.server.home.url=file:/work/ocrgws_test/server0/
jboss.server.lib.url=file:/work/ocrgws_test/server0/lib/
jboss.server.log.dir=/work/ocrgws_test/server0/log
jboss.server.name=luu002t_ocrgws_test_server0
jboss.server.temp.dir=/work/ocrgws_test/server0/tmp
jboss.tomcat.udpGroup=239.1.200.4
jbossmx.loader.repository.class=org.jboss.mx.loading.UnifiedLoaderRepository3
je.maxMemory=20000000
jgroups.bind_addr=10.12.25.130
jmx.console.bindcredential=3bpwdmpc
jmx.console.binddn=cn=jbossauth-ro,ou=accounts,ou=auth,dc=epo,dc=org
jmx.console.rolesctxdn=ou=roles-test,ou=jboss,ou=applications,ou=internal,dc=epo,dc=org
jndi.datasource.name=java:MainframeDS
jnp.disableDiscovery=true
jxe.current.romimage.version=15
jxe.lowest.romimage.version=15
line.separator=
mainframelogin.password=720652a1e842fc7f
mainframelogin.username=test_t
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
org.apache.tomcat.util.http.ServerCookie.VERSION_SWITCH=true
org.epo.jboss.application.home=/work/ocrgws_test
org.hyperic.sigar.path=/work/ocrgws_test/server0/./deploy/hyperic-hq.war/native-lib
org.jboss.ORBSingletonDelegate=org.jacorb.orb.ORBSingleton
org.omg.CORBA.ORBClass=org.jacorb.orb.ORB
org.omg.CORBA.ORBSingletonClass=org.jboss.system.ORBSingleton
org.w3c.dom.DOMImplementationSourceList=org.apache.xerces.dom.DOMXSImplementationSourceImpl
os.arch=amd64
os.name=Linux
os.version=2.6.32.46-0.3-xen
package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
path.separator=:
poll.interval.milliseconds=300000
program.name=run.sh
server.loader=
shared.loader=
spnego.config=/usr/local/jboss/etc/spnego.properties
sun.arch.data.model=64
sun.boot.class.path=/usr/local/jboss-eap-4.3-cp07/lib/endorsed/xercesImpl.jar:/usr/local/jboss-eap-4.3-cp07/lib/endorsed/xalan.jar:/usr/local/jboss-eap-4.3-cp07/lib/endorsed/serializer.jar:/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs/jclSC160/vm.jar:/opt/ibm/java-x86_64-60/jre/lib/annotation.jar:/opt/ibm/java-x86_64-60/jre/lib/beans.jar:/opt/ibm/java-x86_64-60/jre/lib/java.util.jar:/opt/ibm/java-x86_64-60/jre/lib/jndi.jar:/opt/ibm/java-x86_64-60/jre/lib/logging.jar:/opt/ibm/java-x86_64-60/jre/lib/security.jar:/opt/ibm/java-x86_64-60/jre/lib/sql.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmorb.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmorbapi.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmcfw.jar:/opt/ibm/java-x86_64-60/jre/lib/rt.jar:/opt/ibm/java-x86_64-60/jre/lib/charsets.jar:/opt/ibm/java-x86_64-60/jre/lib/resources.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmpkcs.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmcertpathfw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjgssfw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjssefw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmsaslfw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjcefw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjgssprovider.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjsseprovider2.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmcertpathprovider.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmxmlcrypto.jar:/opt/ibm/java-x86_64-60/jre/lib/management-agent.jar:/opt/ibm/java-x86_64-60/jre/lib/xml.jar:/opt/ibm/java-x86_64-60/jre/lib/jlm.jar:/opt/ibm/java-x86_64-60/jre/lib/javascript.jar:/tmp/yjp201202191932.jar
sun.boot.library.path=/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs:/opt/ibm/java-x86_64-60/jre/lib/amd64
sun.io.unicode.encoding=UnicodeLittle
sun.java.command=org.jboss.Main -b 10.12.25.130 -Djboss.server.home.dir=/work/ocrgws_test/server0 -Djboss.server.home.url=file:/work/ocrgws_test/server0 -Djboss.server.name=luu002t_ocrgws_test_server0 -Djboss.partition.name=ocrgws_test_Partition -Depo.jboss.deploymentscanner.extradirs=/work/ocrgws_test/app/ -Dorg.epo.jboss.application.home=/work/ocrgws_test
sun.java.launcher.pid=17781
sun.java.launcher=SUN_STANDARD
sun.java2d.fontpath=
sun.jnu.encoding=UTF-8
sun.rmi.dgc.client.gcInterval=3685000
sun.rmi.dgc.server.gcInterval=3685000
system=java.io.ObjectStreamField
tomcat.util.buf.StringCache.byte.enabled=true
user.country=US
user.dir=/work/ocrgws_test
user.home=*****************
user.language=en
user.name=***********
user.timezone=Europe/Berlin
user.variant=The memory profiler claims further, that com.sleepycat.je.tree.BIN is responsible for 71% of all heap memory. In any case, com.sleepycat.je.tree.BIN claims ~ 116MB of heap memory, which is by any goodwill, exceeded the limit of 20MB. >
I'm not sure whether the profiler is reporting live objects only (referenced) or all objects (including those not yet reclaimed). If the latter, it isn't telling you how much memory is actually referenced by the JE cache.
Please look at the JE stats to see what the cache usage is, from JE's point of view.
If you believe there is a bug in JE cache management, you'll need to write a small standalone test to demonstrate it and submit it to us, since we don't know of any such bug. Also note that we'll have difficulty supporting JE 4.0 (without a support contract anyway). Please use JE 5.0, or at least 4.1.
Eviction occurs as objects are allocated, as well as in background threads. Eviction in background threads and concurrent eviction were greatly improved in JE 4.1.
--mark -
GC accounts for 80% of processing time
Hi,
i'm having a rather serious problem with the garbage collector on one of my Java projects. Basically, what i'm doing is just read an XML file using StAX, and then process its content -- nothing scary here. However, I found the process was being really slow, so I profiled it using the YourKit Java Profiler within Eclipse, and it told me that for a short 12 second run, the GC was responsible for 10 seconds!
Without being an expert, I've done other small projects in Java, and this is the first time I see this. As it is also the first time I'm using StAX, I can't but wonder whether there might be a connection?
I've noticed exactly the same symptoms on several architectures (Mac/WinXP/Linux SuSE, Eclipse/CLI -- I did profiling only on the Mac). Calling java with the -Xmx1024m switch does improve things, as the process then needs only 10.3 instead of 12.5 seconds. However this is still unacceptable, as the programm is eventually meant to be running for several hours straight -- working, not collecting garbage.
I've created a GC log: I don't really know what to make of it, but it basically looks like this:
0.146: [GC 512K->194K(1984K), 0.0024579 secs]
0.180: [GC 704K->268K(1984K), 0.0012318 secs]
0.204: [GC 776K->255K(1984K), 0.0006406 secs]
0.228: [GC 767K->257K(1984K), 0.0003966 secs]
0.234: [GC 355K->270K(1984K), 0.0004048 secs]
0.235: [Full GC 270K->270K(1984K), 0.0063139 secs]
0.281: [GC 2773K->2671K(4036K), 0.0012717 secs]
0.282: [Full GC 2671K->2671K(4036K), 0.0070599 secs]
0.293: [GC 4719K->4719K(7084K), 0.0001165 secs]
These are the first 8 lines. The next 1800+ lines look pretty much like these last 4 ones, with 2 messages being shot every .1 second or so. Apparently the numbers keep rising, and the last messages are
10.197: [Full GC 5262K->3214K(7084K), 0.0103843 secs]
10.209: [GC 5267K->5262K(7084K), 0.0001103 secs]
10.210: [Full GC 5262K->3214K(7084K), 0.0109799 secs]
10.253: [GC 5767K->5302K(7084K), 0.0010396 secs]
So can anyone tell me what's happening here? Do I have a memory leak or something?? Is it possible to find out what the GC is cleaning every .1 second?
I'm really at a loss here, so thx a lot for your help! :-)
cheers
DavidActually, you could try following:
- Open WF Monitor, connect to DB via sqlplus or other tool to prepare to run process.
- Start mapping execution, verify your session is waiting queue message
- Wait process to complete, verify it by WF Monitor
- Check wait state of session if it still in queue message, it waits completion report from runtime platform.
Our current configuration is: OWB 9.2.0.4 + DB 9.2.0.7.
We have faced similar issues with OWF (dont know your environment, but in ours OWF work under heavy load with concurrent executions of different types of processes) session could wait indefinitely long for process to complete while process had finished long time ago.
Unfortunately, this is not the only implication of the issue. Once you could notice that your processes simply hang in active state. Activities within process are notified, but not started.
We took two steps independently and now our situation with OWB/OWF is much better:
- First. In the runtime schema of OWB there are a lot of foreign keys without indexes on child side we created indexes, rebuild them, alter move all tables etc. This came from the recent investigation in this forum about performance of OWB while purging the logs. I suppose the issues that raised in that discussion have their implications on environment with concurrent process executions also.
- Second. I applied 9.2.0.7 Patch Set (plus one one-off-patch) on DB this make OWF behavior to improve dramatically. No notified-but-not-started activities, or indefinite-waiting-for-process-completion sessions noted since New Year. Previously we have to fight these issues every day and even worse.
Serhit. -
QuantumToolkit taking up 100% of CPU when no CSS is loaded
All
Our application has a simple TableView that takes an incoming server object and displays it for the user. When it receives a similar object the model will attempt to find the previous object and update one or two cells with new status values. Nothing taxing one would think. I have turned off the CSS so we are using the default. We also have Platform.runLater in our model so when we are about to update the GUI that takes place.
The application functions correctly, but when ramping up the inserts to say 1 every second we see a slow down in the application. The application does function but response it slow when clicking on drop down menus etc. I have attached a profiler stack trace. And we saw that the QuantumToolkit seems to be doing all of the work. Any ideas on how we can trace if further.
Our object is very simple in that we have some properties that are used to show updates to the row when changed. Most of the fields that need to be updated are set using SimpleDoubleProperty or StringProperty etc.
Apologies for the formatting, this was exported from the profiler.
Call tree (all threads together)
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
| Name | Time (ms) | Own Time (ms) |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
| +---<All threads> | 77,931 100 % | |
| | | | |
| +---com.sun.javafx.tk.quantum.QuantumToolkit$8.run() | 71,251 91 % | 182 |
| | | | | |
| | +---javafx.scene.Scene$ScenePulseListener.pulse() | 71,009 91 % | 0 |
| | | | | | |
| | | +---javafx.scene.Scene.access$3000(Scene) | 66,294 85 % | 0 |
| | | | | | | |
| | | | +---javafx.scene.Scene.doLayoutPass() | 66,294 85 % | 0 |
| | | | | | | |
| | | | +---javafx.scene.Scene.layoutDirtyRoots() | 66,294 85 % | 0 |
| | | | | | | |
| | | | +---javafx.scene.Parent.layout() | 66,294 85 % | 0 |
| | | | | | | |
| | | | +---javafx.scene.Parent.layout() | 65,188 84 % | 0 |
| | | | | | | | |
| | | | | +---javafx.scene.Parent.layout() | 65,144 84 % | 0 |
| | | | | | | | | |
| | | | | | +---javafx.scene.Parent.layout() | 65,144 84 % | 0 |
| | | | | | | | | |
| | | | | | +---javafx.scene.Parent.layout() | 59,823 77 % | 0 |
| | | | | | | | | | |
| | | | | | | +---com.sun.javafx.scene.control.skin.VirtualFlow.layoutChildren() | 52,938 68 % | 20 |
| | | | | | | | | | | |
| | | | | | | | +---javafx.scene.control.Control.impl_processCSS(boolean) | 44,568 57 % | 0 |
| | | | | | | | | | | | |
| | | | | | | | | +---javafx.scene.Parent.impl_processCSS(boolean) | 44,568 57 % | 0 |
| | | | | | | | | | | | |
| | | | | | | | | +---javafx.scene.Parent.impl_processCSS(boolean) | 30,346 39 % | 0 |
| | | | | | | | | | | | | |
| | | | | | | | | | +---javafx.scene.control.Control.impl_processCSS(boolean) | 30,182 39 % | 0 |
| | | | | | | | | | | | | | |
| | | | | | | | | | | +---javafx.scene.Parent.impl_processCSS(boolean) | 30,182 39 % | 0 |
| | | | | | | | | | | | | | |
| | | | | | | | | | | +---javafx.scene.Node.impl_processCSS(boolean) | 26,135 34 % | 0 |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | +---com.sun.javafx.css.StyleHelper.transitionToState(Node) | 25,492 33 % | 762 |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | +---javafx.scene.control.Control$12.set(String) | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---com.sun.javafx.css.StyleableStringProperty.set(String) | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---javafx.beans.property.StringPropertyBase.set(String) | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---javafx.beans.property.StringPropertyBase.markInvalid() | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---javafx.scene.control.Control$12.invalidated() | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---javafx.scene.control.Control.access$500(Control) | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---javafx.scene.control.Control.loadSkinClass() | 24,092 31 % | 102 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---java.lang.reflect.Constructor.newInstance(Object[]) | 20,791 27 % | 4,752 |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | +---javafx.scene.Node.addEventHandler(EventType, EventHandler) | 2,848 4 % | 0 |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | +---javafx.scene.layout.StackPane.<init>() | 1,982 3 % | 0 |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
Generated by YourKit Java Profiler 10.0.6 Feb 27, 2012 11:41:24 AMHEre is an attempt at a test class. If you run it click start data add, then start updater it simulates the traffic coming from our server. When you start clicking on the qty buttons you see a delay as the amounts increase. If you click stop , then the GUi is okay
package test;
import java.util.Date;
import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableColumn.SortType;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.util.Callback;
public class TestApplication extends Application {
private TableView<OrderDataTableNewRow> exchangesTable = new TableView<OrderDataTableNewRow>();
static ObservableList<OrderDataTableNewRow> data = FXCollections.observableArrayList();
@Override
public void start(final Stage stage) throws Exception {
final VBox rootPane = new VBox();
rootPane.setSpacing(10);
rootPane.setPrefSize(800, 600);
TableColumn<OrderDataTableNewRow, String> clOrderIdCol = new TableColumn<OrderDataTableNewRow, String>("ClOrderId");
clOrderIdCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.CLORDERID_PROPERTY));
clOrderIdCol.setSortable(true);
clOrderIdCol.setPrefWidth(130);
TableColumn<OrderDataTableNewRow, String> exchangeCol = new TableColumn<OrderDataTableNewRow, String>("Exchange");
exchangeCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.EXCHANGE_PROPERTY));
exchangeCol.setSortable(true);
exchangeCol.setPrefWidth(65);
TableColumn<OrderDataTableNewRow, String> securityCodeCol = new TableColumn<OrderDataTableNewRow, String>("Security");
securityCodeCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.SECURITY_CODE_PROPERTY));
securityCodeCol.setSortable(true);
securityCodeCol.setPrefWidth(70);
TableColumn<OrderDataTableNewRow, OrderType> orderTypeCol = new TableColumn<OrderDataTableNewRow, OrderType>("Type");
orderTypeCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,OrderType>(OrderDataTableNewRow.ORDERTYPE_PROPERTY));
orderTypeCol.setSortable(true);
orderTypeCol.setPrefWidth(70);
TableColumn<OrderDataTableNewRow, SideEnum> sideCol = new TableColumn<OrderDataTableNewRow, SideEnum>("Side");
sideCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow, SideEnum>(OrderDataTableNewRow.SIDE_PROPERTY));
sideCol.setSortable(true);
sideCol.setPrefWidth(65);
TableColumn<OrderDataTableNewRow, Double> priceCol = new TableColumn<OrderDataTableNewRow, Double>("Price");
priceCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Double>(OrderDataTableNewRow.PRICE_PROPERTY));
priceCol.setSortable(true);
priceCol.setPrefWidth(81);
TableColumn<OrderDataTableNewRow, Integer> qtyCol = new TableColumn<OrderDataTableNewRow, Integer>("Qty");
qtyCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Integer>(OrderDataTableNewRow.QTY_PROPERTY));
qtyCol.setSortable(true);
qtyCol.setPrefWidth(75);
TableColumn<OrderDataTableNewRow, Double> lastPxCol = new TableColumn<OrderDataTableNewRow, Double>("LastPx");
lastPxCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Double>(OrderDataTableNewRow.LAST_PX_PROPERTY));
lastPxCol.setSortable(true);
lastPxCol.setPrefWidth(81);
TableColumn<OrderDataTableNewRow, Integer> lastQtyCol = new TableColumn<OrderDataTableNewRow, Integer>("LastQty");
lastQtyCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Integer>(OrderDataTableNewRow.LAST_QTY_PROPERTY));
lastQtyCol.setSortable(true);
lastQtyCol.setPrefWidth(81);
TableColumn<OrderDataTableNewRow, Double> avgPxCol = new TableColumn<OrderDataTableNewRow, Double>("AvgPx");
avgPxCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Double>(OrderDataTableNewRow.AVG_PX_PROPERTY));
avgPxCol.setSortable(true);
avgPxCol.setPrefWidth(100);
TableColumn<OrderDataTableNewRow, Integer> cumQtyCol = new TableColumn<OrderDataTableNewRow, Integer>("CumQty");
cumQtyCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Integer>(OrderDataTableNewRow.CUM_QTY_PROPERTY));
cumQtyCol.setSortable(true);
cumQtyCol.setPrefWidth(100);
TableColumn<OrderDataTableNewRow, Integer> leavesQtyCol = new TableColumn<OrderDataTableNewRow, Integer>("Leaves");
leavesQtyCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Integer>(OrderDataTableNewRow.LEAVES_QTY_PROPERTY));
leavesQtyCol.setSortable(true);
leavesQtyCol.setPrefWidth(100);
TableColumn<OrderDataTableNewRow, String> accountCol = new TableColumn<OrderDataTableNewRow, String>("Account");
accountCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.ACCOUNT_PROPERTY));
accountCol.setSortable(true);
accountCol.setPrefWidth(100);
TableColumn<OrderDataTableNewRow, String> brokerCol = new TableColumn<OrderDataTableNewRow, String>("Broker");
brokerCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.BROKER_PROPERTY));
brokerCol.setSortable(true);
brokerCol.setPrefWidth(100);
TableColumn<OrderDataTableNewRow, String> traderCol = new TableColumn<OrderDataTableNewRow, String>("Trader");
traderCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.TRADER_PROPERTY));
traderCol.setSortable(true);
traderCol.setPrefWidth(100);
TableColumn<OrderDataTableNewRow, OrderStatus> orderStatusCol = new TableColumn<OrderDataTableNewRow, OrderStatus>("OrderStatus");
orderStatusCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow, OrderStatus>(OrderDataTableNewRow.ORDER_STATUS_PROPERTY));
orderStatusCol.setSortable(true);
orderStatusCol.setPrefWidth(81);
TableColumn<OrderDataTableNewRow, ExecutionType> executionTypeCol = new TableColumn<OrderDataTableNewRow, ExecutionType>("ExecType");
executionTypeCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow, ExecutionType>(OrderDataTableNewRow.EXECUTION_TYPE_PROPERTY));
executionTypeCol.setSortable(true);
executionTypeCol.setPrefWidth(81);
TableColumn<OrderDataTableNewRow, Date> expiryCol = new TableColumn<OrderDataTableNewRow, Date>("Expiry");
expiryCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow, Date>(OrderDataTableNewRow.EXPIRY_PROPERTY));
expiryCol.setSortable(true);
expiryCol.setPrefWidth(85);
TableColumn<OrderDataTableNewRow, String> currencyCol = new TableColumn<OrderDataTableNewRow, String>("Currency");
currencyCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.CURRENCY_PROPERTY));
currencyCol.setSortable(true);
currencyCol.setPrefWidth(81);
TableColumn<OrderDataTableNewRow, String> messageCol = new TableColumn<OrderDataTableNewRow, String>("Text");
messageCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.TEXT_PROPERTY));
messageCol.setPrefWidth(140);
TableColumn<OrderDataTableNewRow, String> giveUpCol = new TableColumn<OrderDataTableNewRow, String>("GiveUp");
giveUpCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.GIVEUP_PROPERTY));
giveUpCol.setSortable(true);
giveUpCol.setPrefWidth(100);
TableColumn<OrderDataTableNewRow, String> giveInCol = new TableColumn<OrderDataTableNewRow, String>("GiveIn");
giveInCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.GIVEIN_PROPERTY));
giveInCol.setPrefWidth(100);
TableColumn<OrderDataTableNewRow, Date> createdCol = new TableColumn<OrderDataTableNewRow, Date>("Updated");
createdCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow, Date>(OrderDataTableNewRow.UPDATED_PROPERTY));
createdCol.setSortable(true);
createdCol.setMinWidth(190);
createdCol.setSortType(SortType.DESCENDING);
// Setup all the renders
Callback<TableColumn<OrderDataTableNewRow,String>, TableCell<OrderDataTableNewRow,String>> defaultStringRenderFactory =
new Callback<TableColumn<OrderDataTableNewRow,String>, TableCell<OrderDataTableNewRow,String>>() {
public TableCell<OrderDataTableNewRow,String> call(TableColumn<OrderDataTableNewRow,String> p) {
return new StringFormatCell<OrderDataTableNewRow>(Pos.CENTER);
Callback<TableColumn<OrderDataTableNewRow, SideEnum>, TableCell<OrderDataTableNewRow, SideEnum>> defaultSideCellFactory =
new Callback<TableColumn<OrderDataTableNewRow, SideEnum>, TableCell<OrderDataTableNewRow, SideEnum>>() {
public TableCell<OrderDataTableNewRow, SideEnum> call(TableColumn<OrderDataTableNewRow, SideEnum> p) {
return new SideFormatCell<OrderDataTableNewRow>();
Callback<TableColumn<OrderDataTableNewRow, OrderStatus>, TableCell<OrderDataTableNewRow, OrderStatus>> orderStatusCellFactory =
new Callback<TableColumn<OrderDataTableNewRow, OrderStatus>, TableCell<OrderDataTableNewRow, OrderStatus>>() {
public TableCell<OrderDataTableNewRow, OrderStatus> call(TableColumn<OrderDataTableNewRow, OrderStatus> p) {
return new OrderStatusFormatCell<OrderDataTableNewRow>();
Callback<TableColumn<OrderDataTableNewRow, OrderType>, TableCell<OrderDataTableNewRow, OrderType>> orderTypeCellFactory =
new Callback<TableColumn<OrderDataTableNewRow, OrderType>, TableCell<OrderDataTableNewRow, OrderType>>() {
public TableCell<OrderDataTableNewRow, OrderType> call(TableColumn<OrderDataTableNewRow, OrderType> p) {
return new OrderTypeFormatCell<OrderDataTableNewRow>(null);
clOrderIdCol.setCellFactory(defaultStringRenderFactory);
exchangeCol.setCellFactory(defaultStringRenderFactory);
securityCodeCol.setCellFactory(defaultStringRenderFactory);
orderTypeCol.setCellFactory(orderTypeCellFactory);
sideCol.setCellFactory(defaultSideCellFactory);
orderStatusCol.setCellFactory(orderStatusCellFactory);
accountCol.setCellFactory(defaultStringRenderFactory);
brokerCol.setCellFactory(defaultStringRenderFactory);
traderCol.setCellFactory(defaultStringRenderFactory);
currencyCol.setCellFactory(defaultStringRenderFactory);
messageCol.setCellFactory(defaultStringRenderFactory);
this.exchangesTable.setItems(data);
this.exchangesTable.setTableMenuButtonVisible(true);
ObservableList<TableColumn<OrderDataTableNewRow, ?>> columns = this.exchangesTable.getColumns();
columns.addAll(clOrderIdCol, exchangeCol, securityCodeCol, orderTypeCol, sideCol, priceCol, qtyCol, orderStatusCol, lastQtyCol, lastPxCol, avgPxCol, cumQtyCol, leavesQtyCol, executionTypeCol, accountCol, brokerCol, traderCol, expiryCol, currencyCol, giveUpCol, giveInCol, messageCol, createdCol);
//Layout
final HBox hbox = new HBox();
Button updaterButton = new Button("START_UPDATER");
Button inserterButton = new Button("START_DATA_ADD");
Button stopButton = new Button("STOP");
final TextField qtyField = new TextField();
Button tenButton = new Button("10");
Button twentyButton = new Button("20");
Button fiveButton = new Button("5");
Button threeButton = new Button("3");
hbox.setSpacing(3);
hbox.getChildren().addAll(updaterButton, inserterButton, stopButton, qtyField, tenButton, twentyButton, fiveButton, threeButton);
tenButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
qtyField.clear();
qtyField.setText("10");
twentyButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
qtyField.clear();
qtyField.setText("20");
fiveButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
qtyField.clear();
qtyField.setText("5");
threeButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
qtyField.clear();
qtyField.setText("3");
final AtomicInteger counter = new AtomicInteger();
final Thread runner = new Thread() {
// runnable for that thread
public void run() {
while(true) {
try {
// imitating work
Thread.sleep(new Random().nextInt(100));
} catch (InterruptedException ex) {
ex.printStackTrace();
// update ProgressIndicator on FX thread
Platform.runLater(new Runnable() {
public void run() {
int andIncrement = counter.getAndIncrement();
long orderId = andIncrement;
String clOrderId = andIncrement+"CL";
String exchange = "XEUR";
String code = "ES";
int nextEnumRand = new Random().nextInt(SideEnum.values().length);
SideEnum side = SideEnum.values()[nextEnumRand];
int nextTypeEnumRand = new Random().nextInt(OrderType.values().length);
OrderType orderType = OrderType.values()[nextTypeEnumRand];
int nextSecEnumRand = new Random().nextInt(SecurityType.values().length);
SecurityType securityType = SecurityType.values()[nextSecEnumRand];
String currency = "USD";
Date expiry = new Date();
double price = 92.22;
int qty =10;
String account = "ACCOUNT";
String broker = "BROKER";
String trader = "TRaDER";
OrderDataTableNewRow tableRow = new OrderDataTableNewRow(orderId, clOrderId, exchange, code, side, orderType, securityType, currency, expiry, price, qty, account, broker, trader);
System.out.println("Adding row "+tableRow);
data.add(tableRow);
final Thread updater = new Thread() {
// runnable for that thread
public void run() {
while(true) {
try {
// imitating work
Thread.sleep(new Random().nextInt(100));
} catch (InterruptedException ex) {
ex.printStackTrace();
// update ProgressIndicator on FX thread
Platform.runLater(new Runnable() {
public void run() {
int andIncrement = counter.get();
int nextInt = new Random().nextInt(andIncrement);
OrderDataTableNewRow tableRow = data.get(nextInt);
System.out.println("Updating row "+tableRow);
int nextEnumRand = new Random().nextInt(OrderStatus.values().length);
OrderStatus randDomStatus = OrderStatus.values()[nextEnumRand];
tableRow.setOrderStatus(randDomStatus);
tableRow.setUpdated(new Date());
updaterButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
updater.start();
inserterButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
runner.start();
stopButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
runner.stop();
updater.stop();
String defaultCssStyleResource = this.getClass().getResource("style_blue.css").getFile();
this.exchangesTable.prefWidthProperty().bind(rootPane.widthProperty());
this.exchangesTable.prefHeightProperty().bind(rootPane.heightProperty());
rootPane.getChildren().addAll(hbox, exchangesTable);
Scene scene = new Scene(rootPane, 400, 400, Color.WHITE);
scene.getStylesheets().add(defaultCssStyleResource);
stage.setResizable(true);
stage.setScene(scene);
stage.show();
enum SideEnum {
BUY,
SELL
enum SecurityType {
STOCK,
BOND,
FUTURE
enum OrderType {
LIMIT,
MARKET,
STOP
enum OrderStatus {
EXECUTED,
PENDING,
FILLED,
CANCELLED,
WORKING,
PENDINGNEW
enum ExecutionType {
EXECUTED,
FILLED,
CANCELLED,
public static void main(String[] args) {
Application.launch(TestApplication.class, args);
public class OrderDataTableNewRow {
public static final String CLORDERID_PROPERTY = "clOrderId";
public static final String EXCHANGE_PROPERTY = "exchange";
public static final String SECURITY_CODE_PROPERTY = "code";
public static final String SIDE_PROPERTY = "side";
public static final String PRICE_PROPERTY = "price";
public static final String ORDERTYPE_PROPERTY = "orderType";
public static final String QTY_PROPERTY = "qty";
public static final String LAST_PX_PROPERTY = "lastPx";
public static final String LAST_QTY_PROPERTY = "lastQty";
public static final String AVG_PX_PROPERTY = "avgPx";
public static final String CUM_QTY_PROPERTY = "cumQty";
public static final String LEAVES_QTY_PROPERTY = "leavesQty";
public static final String ACCOUNT_PROPERTY = "account";
public static final String BROKER_PROPERTY = "broker";
public static final String TRADER_PROPERTY = "trader";
public static final String ORDER_STATUS_PROPERTY = "orderStatus";
public static final String EXECUTION_TYPE_PROPERTY = "executionType";
public static final String EXPIRY_PROPERTY = "expiry";
public static final String CURRENCY_PROPERTY = "currency";
public static final String TEXT_PROPERTY = "text";
public static final String GIVEUP_PROPERTY = "giveUp";
public static final String GIVEIN_PROPERTY = "giveIn";
public static final String UPDATED_PROPERTY = "updated";
private final long orderId;
private final String clOrderId;
private final String exchange;
private final String code;
private final SideEnum side;
private final OrderType orderType;
private final SecurityType securityType;
private final String account;
private final String broker;
private final String trader;
private final Date expiry;
private final String currency;
private final double price;
private final int qty;
private final SimpleObjectProperty<OrderStatus> orderStatus = new SimpleObjectProperty<OrderStatus>();
private final SimpleObjectProperty<ExecutionType> executionType = new SimpleObjectProperty<ExecutionType>();
private final SimpleDoubleProperty lastPx = new SimpleDoubleProperty();
private final SimpleIntegerProperty lastQty = new SimpleIntegerProperty();
private final SimpleIntegerProperty cumQty = new SimpleIntegerProperty();
private final SimpleIntegerProperty leavesQty = new SimpleIntegerProperty();
private final SimpleDoubleProperty avgPx = new SimpleDoubleProperty();
private final SimpleStringProperty externalOrderId = new SimpleStringProperty();
private final SimpleStringProperty text = new SimpleStringProperty();
private final SimpleStringProperty giveUp = new SimpleStringProperty();
private final SimpleStringProperty giveIn = new SimpleStringProperty();
private final SimpleObjectProperty<Date> updated = new SimpleObjectProperty<Date>();
* Creates a new instance of {@link OrderDataTableNewRow}.
public OrderDataTableNewRow(long orderId, String clOrderId, String exchange, String code, SideEnum side, OrderType orderType, SecurityType securityType, String currency,
Date expiry, double price, int qty, String account, String broker, String trader) {
this.orderId = orderId;
this.clOrderId = clOrderId;
this.exchange = exchange;
this.code = code;
this.side = side;
this.orderType = orderType;
this.currency = currency;
this.expiry = expiry;
this.securityType = securityType;
this.account = account;
this.broker = broker;
this.trader = trader;
this.price = price;
this.qty = qty;
public void setUpdated(Date date) {
this.updated.set(date);
public void setOrderStatus(OrderStatus randDomStatus) {
this.orderStatus.set(randDomStatus);
* @return the orderId
public final long getOrderId() {
return this.orderId;
* @return the clOrderId
public final String getClOrderId() {
return this.clOrderId;
* @return the exchange
public final String getExchange() {
return this.exchange;
* @return the code
public final String getCode() {
return this.code;
* @return the side
public final SideEnum getSide() {
return this.side;
* @return the orderType
public final OrderType getOrderType() {
return this.orderType;
* @return the securityType
public final SecurityType getSecurityType() {
return this.securityType;
* @return the account
public final String getAccount() {
return this.account;
* @return the broker
public final String getBroker() {
return this.broker;
* @return the trader
public final String getTrader() {
return this.trader;
* @return the expiry
public final Date getExpiry() {
return this.expiry;
* @return the currency
public final String getCurrency() {
return this.currency;
* @return the price
public final double getPrice() {
return this.price;
* @return the qty
public final int getQty() {
return this.qty;
* @return the orderStatus
public final SimpleObjectProperty<OrderStatus> getOrderStatus() {
return this.orderStatus;
* @return the executionType
public final SimpleObjectProperty<ExecutionType> getExecutionType() {
return this.executionType;
* @return the lastPx
public final SimpleDoubleProperty getLastPx() {
return this.lastPx;
* @return the lastQty
public final SimpleIntegerProperty getLastQty() {
return this.lastQty;
* @return the cumQty
public final SimpleIntegerProperty getCumQty() {
return this.cumQty;
* @return the leavesQty
public final SimpleIntegerProperty getLeavesQty() {
return this.leavesQty;
* @return the avgPx
public final SimpleDoubleProperty getAvgPx() {
return this.avgPx;
* @return the externalOrderId
public final SimpleStringProperty getExternalOrderId() {
return this.externalOrderId;
* @return the text
public final SimpleStringProperty getText() {
return this.text;
* @return the giveUp
public final SimpleStringProperty getGiveUp() {
return this.giveUp;
* @return the giveIn
public final SimpleStringProperty getGiveIn() {
return this.giveIn;
* @return the updated
public final SimpleObjectProperty<Date> getUpdated() {
return this.updated;
* @return the created
public final SimpleObjectProperty<Date> updatedProperty() {
return this.updated;
* @return the lastPrice
public final SimpleDoubleProperty lastPxProperty() {
return this.lastPx;
* @return the lastQty
public final SimpleIntegerProperty lastQtyProperty() {
return this.lastQty;
* @return the cumQty
public final SimpleIntegerProperty cumQtyProperty() {
return this.cumQty;
* @return the averagePrice
public final SimpleDoubleProperty avgPxProperty() {
return this.avgPx;
* @return the executionStatus
public final SimpleObjectProperty<ExecutionType> executionTypeProperty() {
return this.executionType;
* @return the leavesQty
public SimpleIntegerProperty leavesQtyProperty() {
return this.leavesQty;
* @return the text
public final SimpleStringProperty textProperty() {
return this.text;
* @return the orderId
public final SimpleStringProperty externalOrderIdProperty() {
return this.externalOrderId;
* @return the orderStatus
public final SimpleObjectProperty<OrderStatus> orderStatusProperty() {
return this.orderStatus;
* @return the giveUp
public final SimpleStringProperty giveUpProperty() {
return this.giveUp;
* @return the giveIn
public final SimpleStringProperty giveInProperty() {
return this.giveIn;
public class StringFormatCell<T> extends TableCell<T, String> {
private final Pos alignment;
private final String cssFormat;
* Creates a new instance of {@link IntegerFormatCell}.
public StringFormatCell(Pos alignment) {
this(null, alignment);
* Creates a new instance of {@link IntegerFormatCell}.
public StringFormatCell(String cssFormat, Pos alignment) {
this.cssFormat = cssFormat;
this.alignment = alignment;
setId(this.cssFormat);
* {@inheritDoc}
* @see javafx.scene.control.Cell#updateItem(java.lang.Object, boolean)
@Override
protected void updateItem(String item, boolean empty) {
if(item == null) {
return;
// calling super here is very important - don't skip this!
super.updateItem(item, empty);
setText(item);
setAlignment(alignment);
public class SideFormatCell<T> extends TableCell<T, SideEnum> {
* Creates a new instance of {@link SideFormatCell}.
public SideFormatCell() {
setAlignment(Pos.CENTER);
* {@inheritDoc}
* @see javafx.scene.control.Cell#updateItem(java.lang.Object, boolean)
@Override
protected void updateItem(SideEnum item, boolean empty) {
if(item == null) {
return;
// calling super here is very important - don't skip this!
super.updateItem(item, empty);
String name = item.name();
setText(name);
switch (item) {
case BUY:
setId("bidPriceCell");
break;
case SELL:
setId("askPriceCell");
break;
public class OrderStatusFormatCell<T> extends TableCell<T, OrderStatus> {
* Creates a new instance of {@link OrderStatusFormatCell}.
public OrderStatusFormatCell() {
setAlignment(Pos.CENTER);
* {@inheritDoc}
* @see javafx.scene.control.Cell#updateItem(java.lang.Object, boolean)
@Override
protected void updateItem(OrderStatus item, boolean empty) {
if(item == null) {
return;
// calling super here is very important - don't skip this!
super.updateItem(item, empty);
switch (item) {
case PENDING:
setId("statusWorkingColumn");
setText("Working");
break;
case PENDINGNEW:
setId("statusPendingColumn");
setText("Pending New");
break;
case CANCELLED:
setId("statusPendingCancelColumn");
setText("Pending Cancel");
break;
case EXECUTED:
setId("statusPartFilledColumn");
setText("Part Filled");
break;
public class OrderTypeFormatCell<T> extends TableCell<T, OrderType> {
* Creates a new instance of {@link OrderTypeFormatCell}.
public OrderTypeFormatCell(String cssStyleName) {
setId(cssStyleName);
setAlignment(Pos.CENTER);
* {@inheritDoc}
* @see javafx.scene.control.Cell#updateItem(java.lang.Object, boolean)
@Override
protected void updateItem(OrderType item, boolean empty) {
if(item == null) {
return;
// calling super here is very important - don't skip this!
super.updateItem(item, empty);
String itemAsString = item.name();
setText(itemAsString);
switch (item) {
case LIMIT:
setId("orderTypeLimit");
setText("Limit");
break;
case MARKET:
setId("orderTypeMarket");
setText("Market");
break;
case STOP:
setId("orderTypeStop");
setText("Stop");
break;
}
Maybe you are looking for
-
Publish PL SQL Function as Webservice
JDeveleoper: 10.1.3.5 Oracle SOA Suite: 10.1.3.5 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production I need a suggestion in publishing a Pl SQL Function or Procedure as a webservice: I want to return a SQL Resultset. What
-
How to Get last page number in report 10g
I want to get last page number in report but Current page number found from srw.get_page_num(n) but i want to get last page number for conditional formating like this srw.get_page_num(current_page)=last_page pls help me how can get last page number;
-
How to play avi files on Mac?
And where can I download the necessary softwares / programs, if needed? Thanks!
-
I can't open any 60p .mov files in quicktime or FCP5. Sometimes in QT the audio plays but not the video. Footage was shot on a JVC GY HM150 which is supposed to record in native fcp format. Any ideas how I can open these files successfully?
-
MSI KT3 Ultra2-R + AMD Sempron 2200+ 1.5 GHz Socket A 333MHz
AMD Sempron 2200+ 1.5 GHz Socket A 333MHz in MSI KT3 ULTRA2-R Hovedkort for Socket A KT333 ??? or in MSI KT4AV-L Hovedkort Socket A Retail KT400A ???