I'm running WebLogic 6.0, JDK 1.3.1.05 and Oracle 8.1.7 on an HP L3000-5x running 11i. I have a particular process that performs inserts and updates to the database via the java based application. The java application communicates to Oracle with a native Java driver (Oracle Thin) rather than SQL*NET. During our import process, I implement a concept called multi-streaming. Multi-streaming is the process of running several child instances of java that each communicate to the parent Java instance (WebLogic) which is responsible for communicating to Oracle via a JDBC connection. When we run this process (multi-streamed import), the average load time jumps from .15 to 3.15. Typically I spawn 3-6 child Java processes that each take up 15 - 25mb of RAM. The main java process has been allocated 512mb of RAM, but usually utilizes half of that at a given time. Additionally, when these processes run, the CPU% jumps from 20% to nearly 300%. Memory utilization is not even a factor. When I run these as single streamed processes, the average load jumps from .15 to about .65 (still very high). The CPU% stays anywhere between 70% and 85%. I've run some java utilities to profile the application. Nothing is out of the ordinary. I'm seeing no issues/dropping of methods, etc... Basically, what I'm seeing is an incredible amount of idle time, when the app should be processing data. My DBA is seeing similar characteristics on his end (he's running StatsPack)...not much data is be processes, just a lot of idle time. It really looks like an I/O issue. CPU utilization out of 100% is steady around 96 to 98% spread across (4) processors. We should ideally see low to moderate CPU utilization. Memory utilization is low. 1. First question: what will the following parameters buy me in terms of I/O? create_fast_links and fs_asynch
we had a similar problem using Oracle 18.104.22.168 with jdk 1.3. We found that there was an Oracle patch for this. If this is the same problem, we also noticed that when the processor was "taking a break" if we did any sort of SQL query using SQL*Plus, it would kick start the process again. How long are your idle periods? Jamie [ June 13, 2002: Message edited by: Jamie Robertson ]
Originally posted by Steve Feldman: We are using the Oracle Thin Driver packaged with WebLogic. It's very unusual because typically when we have a Java application, we see large memory allocation issues, not CPU issues. Regards, Steve
Try downloading the latest updated classes12.zip. There have been some bugs in the earlier versions of classes12.zip. Depending on how old the one that was packaged with weblogic. The only thing that worked for us was the patch from Oracle. One big difference between your case and mine is that we did not use a middle tier, it was strictly program to database where as you have weblogic as a go between. Jamie p.s. we spent weeks trying to tweek our java programs/drivers when it was actually the database causing problems.
Thanks for the response....question though? The issue that you experienced was tied to unusually high CPU utilization on a data transaction level between Java and Oracle correct? You too were using the Thin driver? So what do you think is the root cause of my bottleneck...JDBC bridge from WLS to Oracle? I'm quite familiar with the classes12.zip. If this was an issue with classes12, would I see the main Java process skyrocket in CPU performance and my import to go ridiculously slow?
I'm thinking about a new battle cry. Maybe "Not in the face! Not in the face!" Any thoughts tiny ad?