Speed: SQLJ, JDBC, Pro-C, Java

Hi!
Do you know of any benchmarking studies on comparing the performance of Java (SQLJ/JDBC) and C++ in Oracle? In the documentation, it said that we could do ahead compilation and make Java into C for optimized performance. I have a natural skeptical on marketing specification and wonder if you know of any third-party studies. I am thinking of building a computationally and data intensive application using Java because of its comparatively easier maintainability and flexibility.
Any thoughts would be welcomed.
Thanks.
Aaron

And what is your experience level with the two languages?
If you are experienced, not just familar, with both, then you will be able to squeeze more performance out of C++ than java. But it is unlikely to be significant (ie it might be 10% faster.) On the other hand if you are very experience with one language and not experienced at all with the other then it is very possible that the two applications, as written by you, will have very different performance statistics.
And of course, given that you are using Pro-C which means Oracle, your experience with PL/SQL and the trade offs between using that and offloading could produce orders of magnitude performance differences regardless of which language you use.

Similar Messages

  • SQLJ/JDBC code compiles but doesn't run

    I keep getting a fatal error in the JAVA.EXE module when I try to run an code with SQLJ/JDBC. I've got my class and classpath set up like a oracle support tech told me to do but the code still bombs.
    I noticed java.exe bombs at the same address no matter what SQLJ/JDBC code I compile.
    Could it be conflicting with something on
    a NT 4.0 box.
    Anyone with ideas please respond.

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by MSCHWERY ():
    I keep getting a fatal error in the JAVA.EXE module when I try to run an code with SQLJ/JDBC. I've got my class and classpath set up like a oracle support tech told me to do but the code still bombs.
    I noticed java.exe bombs at the same address no matter what SQLJ/JDBC code I compile.
    Could it be conflicting with something on
    a NT 4.0 box.
    Anyone with ideas please respond.<HR></BLOCKQUOTE>
    Can you run a non Oracle Java application. Which version of JDK are you using.. do you have multiple versions of JDK .. if so make sure there is no conflict.. You may try re-installing the JDK if your non Oracle Java application also errors out..

  • Getting error while Creating a JDBC connection from Java Class

    Hi,
    I am getting the exception pasted below:
    Exception in thread "main" java.lang.AbstractMethodError
    at JvMakeVTable(java.lang.Class) (/usr/lib/libgcj.so.5.0.0)
    at JvPrepareClass(java.lang.Class) (/usr/lib/libgcj.so.5.0.0)
    at JvWaitForState(java.lang.Class, int) (/usr/lib/libgcj.so.5.0.0)
    at java.lang.VMClassLoader.linkClass0(java.lang.Class) (/usr/lib/libgcj.so.5.0.0)
    at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/usr/lib/libgcj.so.5.0.0)
    at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.5.0.0)
    at oracle.jdbc.driver.OracleStatement.executeQuery(java.lang.String) (Unknown Source)
    at oracle.jdbc.dbaccess.DBAccess.setNlsParamsClient(oracle.jdbc.driver.OracleConnection) (Unknown Source)
    at oracle.jdbc.ttc7.TTC7Protocol.initNls(oracle.jdbc.driver.OracleConnection) (Unknown Source)
    at oracle.jdbc.driver.OracleConnection.OracleConnection(oracle.jdbc.dbaccess.DBAccess, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Properties) (Unknown Source)
    at oracle.jdbc.driver.OracleDriver.getConnectionInstance(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Properties) (Unknown Source)
    at oracle.jdbc.driver.OracleDriver.connect(java.lang.String, java.util.Properties) (Unknown Source)
    at java.sql.DriverManager.getConnection(java.lang.String, java.util.Properties) (/usr/lib/libgcj.so.5.0.0)
    at java.sql.DriverManager.getConnection(java.lang.String, java.lang.String, java.lang.String) (/usr/lib/libgcj.so.5.0.0)
    The code raising this error is :
    try
                   Class.forName("oracle.jdbc.driver.OracleDriver");
              catch (Exception Exp)
                   System.out.println("Error while getting the class : "+Exp);
    try
                   String url = "jdbc:oracle:thin:@hostname:port:SID";
                   String user = "apps";
                   String password = "password";
                   con = DriverManager.getConnection(url,user,password);
    catch (Exception ex)
                   System.err.println("SQLException: " + ex.getMessage());
    Any help in this is appreciated.
    Regards
    Jujaar

    Why do you have the Class.forName() in a separate try-catch block than the DriverManager.getConnection()?
    Try placing everything in the same try-catch block to see if that resolves your problem.
    You may also want to try using an OracleDataSource.
    OracleDataSource ods = new OracleDataSource();
    String url = "jdbc:oracle:thin:@//hostname:port/SID",
    ods.setURL(url);
    ods.setUser("apps");
    ods.setPassword("password");
    Connection conn = ods.getConnection();
    Refer to http://st-doc.us.oracle.com/11/111/java.111/b31224/getsta.htm#i1008334 for details on how to connect to the database using a Data Source.

  • JDBC Sender Adapter : java.sql.SQLException: Cursor state not valid.

    Hello all,
    We have configured JDBC Sender Adapter which fetches around 10K records with poll interval 1hr  from DB2 System .
    It was working fine,suddenly it started throwing an exception in Adapter Monitoring :
    Error during conversion of query result to XML: java.sql.SQLException: Cursor state not valid.
    It is not fetching any records.
    Without changing any configurations when we tried to fetch to around 1000 records it's working fine.
    For 10K records same exception persists
    What could be the reason ?How to resolve this issue?
    regards
    GangaPrasad

    Hello Christophe ,
    Trace in VA :::
    Date : 05/09/2008
    Time : 11:45:57:750
    Message : Unexpected error converting database resultset to XML, reason: java.sql.SQLException: Cursor state not valid.
         at java.lang.Throwable.<init>(Throwable.java:194)
         at java.lang.Exception.<init>(Exception.java:41)
         at java.sql.SQLException.<init>(SQLException.java:40)
         at com.ibm.as400.access.JDError.throwSQLException(JDError.java:389)
         at com.ibm.as400.access.JDError.throwSQLException(JDError.java:366)
         at com.ibm.as400.access.AS400JDBCResultSet.getValue(AS400JDBCResultSet.java:3580)
         at com.ibm.as400.access.AS400JDBCResultSet.getString(AS400JDBCResultSet.java:3223)
         at sun.reflect.GeneratedMethodAccessor459222074.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:309)
         at com.sap.aii.adapter.jdbc.sql.jdbctrace.TraceInvocationHandler.invoke(TraceInvocationHandler.java:45)
         at com.sap.aii.adapter.jdbc.sql.jdbctrace.$Proxy254.getString(Unknown Source)
         at com.sap.aii.adapter.jdbc.JDBC2XI.convert2XML(JDBC2XI.java:954)
         at com.sap.aii.adapter.jdbc.JDBC2XI.invoke(JDBC2XI.java:492)
         at com.sap.aii.af.service.scheduler.JobBroker$Worker.run(JobBroker.java:475)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:99)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:119)
    Severity : Error
    Category : /Applications/ExchangeInfrastructure/AdapterFramework/Services/ADAPTER/ADMIN/JDBC
    Location : com.sap.aii.adapter.jdbc.JDBC2XI.convert2XML(ResultSet, ResultSetMetaData)
    Application :
    Thread : XI JDBC2XI[JDBC_SND_DB2_VehicleReceiving/DB2PRD00/]_170
    Datasource : 12428950:/usr/sap/PXI/DVEBMGS01/j2ee/cluster/server0/log/applications/com.sap.xi/xi.log
    Message ID : 00145E742794005E0014980B000000BE00044CC763766C4F
    Source Name : /Applications/ExchangeInfrastructure/AdapterFramework/Services/ADAPTER/ADMIN/JDBC
    Argument Objs : java.sql.SQLException: Cursor state not valid.
         at java.lang.Throwable.<init>(Throwable.java:194)
         at java.lang.Exception.<init>(Exception.java:41)
         at java.sql.SQLException.<init>(SQLException.java:40)
         at com.ibm.as400.access.JDError.throwSQLException(JDError.java:389)
         at com.ibm.as400.access.JDError.throwSQLException(JDError.java:366)
         at com.ibm.as400.access.AS400JDBCResultSet.getValue(AS400JDBCResultSet.java:3580)
         at com.ibm.as400.access.AS400JDBCResultSet.getString(AS400JDBCResultSet.java:3223)
         at sun.reflect.GeneratedMethodAccessor459222074.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:309)
         at com.sap.aii.adapter.jdbc.sql.jdbctrace.TraceInvocationHandler.invoke(TraceInvocationHandler.java:45)
         at com.sap.aii.adapter.jdbc.sql.jdbctrace.$Proxy254.getString(Unknown Source)
         at com.sap.aii.adapter.jdbc.JDBC2XI.convert2XML(JDBC2XI.java:954)
         at com.sap.aii.adapter.jdbc.JDBC2XI.invoke(JDBC2XI.java:492)
         at com.sap.aii.af.service.scheduler.JobBroker$Worker.run(JobBroker.java:475)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:99)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:119)
    Arguments : java.sql.SQLException: Cursor state not valid.
         at java.lang.Throwable.<init>(Throwable.java:194)
         at java.lang.Exception.<init>(Exception.java:41)
         at java.sql.SQLException.<init>(SQLException.java:40)
         at com.ibm.as400.access.JDError.throwSQLException(JDError.java:389)
         at com.ibm.as400.access.JDError.throwSQLException(JDError.java:366)
         at com.ibm.as400.access.AS400JDBCResultSet.getValue(AS400JDBCResultSet.java:3580)
         at com.ibm.as400.access.AS400JDBCResultSet.getString(AS400JDBCResultSet.java:3223)
         at sun.reflect.GeneratedMethodAccessor459222074.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:309)
         at com.sap.aii.adapter.jdbc.sql.jdbctrace.TraceInvocationHandler.invoke(TraceInvocationHandler.java:45)
         at com.sap.aii.adapter.jdbc.sql.jdbctrace.$Proxy254.getString(Unknown Source)
         at com.sap.aii.adapter.jdbc.JDBC2XI.convert2XML(JDBC2XI.java:954)
         at com.sap.aii.adapter.jdbc.JDBC2XI.invoke(JDBC2XI.java:492)
         at com.sap.aii.af.service.scheduler.JobBroker$Worker.run(JobBroker.java:475)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:99)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:119)
    Dsr Component :
    Dsr Transaction : d1f629d01d9b11dd984200145e742794
    Dsr User :
    Indent : 0
    Level : 0
    Message Code :
    Message Type : 1
    Relatives : com.sap.aii.adapter.jdbc.JDBC2XI
    Resource Bundlename :
    Session : 0
    Source : /Applications/ExchangeInfrastructure/AdapterFramework/Services/ADAPTER/ADMIN/JDBC
    ThreadObject : XI JDBC2XI[JDBC_SND_DB2_VehicleReceiving/DB2PRD00/]_170
    Transaction : SAP J2EE Engine JTA Transaction : [0ffffffbdffffffa6ffffff960086]
    User : J2EE_GUEST
    Regards
    Ganga Prasad

  • Oracle 9.2.0.1.0 JDBC driver for Java 1.5 & Java 1.6

    Hi,
    Is there any JDBC driver that I can download for running Java application of version 1.5 or 1.6 on Oracle 9.2.0.1.0 ?
    As I see in the official link of Oracle: http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
    The JDBC drivers for this database are only for Java 1.4 and older.
    Can any one please help?
    Thanks
    Edited by: user11088169 on 05:21 09/06/2009

    The subject is about Oracle 9.2.0.1 JDBC drivers. "Oracle 9.2.0.1.0 JDBC driver for Java 1.5 & Java 1.6"
    Oracle database 9.2.0 drivers may only be used with JDK 1.4 or earlier.
    But, Oracle database 9.2.0 may be used with Oracle database 11 drivers with JDK 5.0, 6.0.

  • BUG: error rebuilding SQLJ files along other java files with generic

    I have done a rebuild on a package containing some SQLJ files, and (consistently) got the following error:
    C:\TeleMessage\trunk\src\telemessage\db\impl\dbAdmin.sqlj
        Error(44,18): Java Parsing. Encountered: <
        Expected: <IDENTIFIER> ...; "[" ...; The error at the cursor in the given file is not possible, since there was no '<' there, and besides - if I non-aggresively changed the file, e.g. narrowed imports, changed whitespace or added comments - the error remained in the same location.
    I went and done a search using regex in the package, for a line starting with 17 chars followed by a '<'.
    I found it in one of the normal JAVA files (not-SQLJ), at line 44 (surprise!) - in a Java 5 generics declaration, e.g. Map<String,Integer>. the 18th character was indeed the '<'.
    I'm guessing that the SQLJ translator (accidentally?) parses non-SQLJ files.
    If this cannot be fixed, it is really bad - it is one thing that JDeveloper cannot support Java 5 language features because of its dependancy in the SQLJ translator (which is not known to be upgraded until version 11g if at all), but the inability to compile SQLJ files in a project containing other non-SQLJ java files with Java 5 features is hard.
    I could only workaround this by rebuilding SQLJ files one at a time!
    I also have another type of error, when rebuilding the same project in a higher-level pacakge (root or "Application Sources"):
    C:\TeleMessage\trunk\src\dbtools\CallbackNumberFiller.sqlj
        Error(24,8): Missing semicolon.
        Error(24,8): Unbalanced curly braces.Again, the specified file could not be the one to blame - the location of the error is in the middle of the public modified keyword in a method declaration; nothing is neither missing nor unbalanced.
    This appears to be different, as it pops in the log near the end of the build process, when the JSPs are being built, specfically during the time the message log fills with "writing <...>" lines (after "translating <...>" and "compiling <...>".
    I can consistently reproduce both cases - please advise how I can help you find out what causes this.
    Regards,
    Yaniv Kunda

    First of all, this bug not JDeveloper's problem, but the SQLJ team's.
    You can read more posts about this:
    Re: BUG: Cannot translate SQLJ files with Java5 generics code
    Re: How to use SQLJ with Java 1.4 and 1.5?
    Re: SQLJ discontinued??
    And if we're at it, this is strange - I can't seem to find the oracle doc you quoted...
    SQLJ 11g? The latest release is a part of JPublisher 10.2 available from
    http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
    I also didn't find anything on google on 11g, nor about the part number you specified.
    Didn't find any Java 1.5 supporting SQLJ translators from other vendors as well.
    Do you have any link to this statement?
    But if we examine this bug again, the problem involves JDeveloper passing Java 5 featured JAVA files to the SQLJ translator.
    Isn't there a way to instruct the translator to use CLASS files compiled by a normal Java 5 compiler, instead of trying to compile the files itself?
    Regards,
    Yaniv Kunda

  • Can i use SQLJ in a normal java project?

    I created a normal Java Project and used SQLJ in it.But when i exported the jar file,there was a error:
    JAR creation failed. See details for additional information.
      class file(s) on classpath not found or not  accessible /DBTableApp/com/ezkj/demo/sqlj/Ctx.java
    Can i use SQLJ in a normal java project?
    If i can,what can i do?

    hi
    good
    go through this link
    http://www.service-architecture.com/application-servers/articles/when_to_use_sqlj_with_java_application_servers.html
    http://www.service-architecture.com/application-servers/articles/sqlj_data_conversion.html
    Payroll Cluster table "top Important" Urgent
    http://www.javaolympus.com/J2SE/Database/SQLJ/SQLJ.jsp
    thanks
    mrutyun

  • What's the speed of mackbook pro HD link? is it ATA100? is Fireface 400

    What's the speed of mackbook pro Hard drive link? is it ATA100? is Fireface 400/800 faster than the link of the macbook pro hard drive?
    I'm a recording artist. I'll use my macbook pro to record sounds, because my macbook pro 's disk is too small, I deceide to buy a fireface 800 hard drive like Lacie. Is it ok to record sounds in logic directly into the fireface 800 hard drive? or it's still better to record sounds into macbook pro's Hd.
    which one is faster anyway?
    Thanks!

    It makes little difference whether the drive is SATA 1.5 or 3.0 because the MBP controller only supports SATA 1.5. SATA 3.0 drives will work but simply not at the faster speed.
    The FW800 interface is capable of up to 100 MB/s interface transfer rates. The hard drives however are not able to achieve that speed in typical real world throughput. The most expensive high speed SATA drives (3.5", 7200 or faster RPM) may come close to saturating the FW800 bus. But smaller notebook drives (2.5") will not. So if you plan to use a notebook sized external drive just get one that will suit your storage needs. If maximizing throughput is important then get a 7200 RPM SATA notebook drive and put it in a FW800 enclosure. Be sure to get an enclosure that uses the Oxford chipset.
    You can find suitable enclosures at:
    MacSales.com
    CoolDrives.com
    WiebeTech.com
    CalDrives.com
    FirewireDirect.com
    Good sources for drives are MacSales.com, Buy.com, and NewEgg.com.

  • Speed up my pro

    I have brough my pro for nearly one year, but current my pro's speed is really slow, especially when I boot my pro.
    Who can give me some suggestion to speed up my pro?

    If you have more than ten or so files or folders on your Desktop, move them, temporarily at least, somewhere else in your home folder.
    If iCloud is enabled, disable it.
    Disconnect all wired peripherals except keyboard, mouse, and monitor, if applicable. Launch the usual set of applications you use when you notice the problem.
    Step 1
    Launch the Activity Monitor application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ If you’re running Mac OS X 10.7 or later, open LaunchPad. Click Utilities, then Activity Monitor in the page that opens.
    Select the CPU tab.
    Select All Processes from the menu in the toolbar, if not already selected.
    Click the heading of the % CPU column in the process table to sort the entries by CPU usage. You may have to click it twice to get the highest value at the top. What is it, and what is the process? Also post the values for % User, % System, and % Idle at the bottom of the window.
    Select the System Memory tab. What values are shown in the bottom part of the window for Page outs and Swap used?
    Step 2
    Launch the Console application in the same way as above, and select “system.log” from the file list. Post the 50 or so most recent messages in the log — the text, please, not a screenshot.
    Important: Some personal information, such as your name, may appear in the log. Edit it out before posting.
    Step 3
    Same as step 2, but select "kernel.log" from the file list.

  • JVM Fails when using SQLJ/JDBC

    My program is often terminating with the following error.
    # An EXCEPTION_ACCESS_VIOLATION exception has been detected in native code outside the VM.
    # Program counter=0x604483d3
    From the error I suspect it is either the SQLJ runtime or the JDBC driver causing the problem.
    I mostly get this error after 3 - 4 hrs of execution of my program.
    Has anybody experienced this problem? Any input is appreciated.
    Vig
    null

    Hi there
    it seems to be an outside-JVM exception, it could be caused by native code,
    Try to use a thin driver of Java which is 100% java, and tell us what does it do!
    salam

  • Execute SQLJ/JDBC within InfoBus Data Form???

    Is there a way to execute SQLJ or JDBC from within the InfoBus data forms without opening a new connection?
    Is there a way to execute SQLJ or JDBC via the Business Components using the connection already established in the InfoBus frame?
    Please post any samples if this can be done.
    Thanks
    Andrew

    Andrew,
    The best way to do what you are asking is to create a custom method at the application module or view object level, export that to your client, then call the method from the form.
    Here is an example from a JSP Web Application. The basic idea is the same though.
    1. Double-click the appmoduleImpl.java file for your application module to open it in the code editor (expand the Application Module node to find this source file, if there is not one there, edit your app module, click on the Java tab, and check the Generate Java Files checkbox, click Finish and rebuild your project).
    2. Enter the code that you want to execute (I've included an example below that calls a stored PL/SQL procedure to calculate a value).
    3. Compile the file to make sure your code is OK.
    4. Edit the Application Module and click on the Client Methods tab. You should see your new method in the Available list.
    5. Shuttle the method to the Selected list.
    6. Click Finish and rebuild your project.
    7. From your Infobus client code, call the method you just wrote. You may need to include the package that contains the business components code.
    Note that when you export client methods from your BC4J project, you may need to include the stubs for these methods in your client project, depending on how you deploy your BC4J project. For example, if you deploy your BC4J app module as an EJB, the deployment process will generate the client stubs for these exported methods into a separate project (or you can specify to have them generated into your client project on the Remotable tab of the app module wizard). See the online docs for deployment for more information.
    Example exported client method:
    public int getTotalHits(String mon, String year) {
    CallableStatement stmt = null;
    int total;
    String totalhits = "{? = call walkthru.total_hits(?,?)}";
    stmt = getDBTransaction().createCallableStatement(totalhits, 1);
    try
    // Bind the Statement Parameters and Execute this Statement
    stmt.registerOutParameter(1,Types.INTEGER);
    stmt.setString(2,mon);
    stmt.setString(3,year);
    stmt.execute();
    total = stmt.getInt(1);
    catch (Exception ex)
    throw new oracle.jbo.JboException(ex);
    finally
    try
    stmt.close();
    catch (Exception nex)
    return total;
    null

  • Win 2000 and sqlj/jdbc

    I have installed oracle 9i (verison 1) on a win 2k system. When trying out the brief test demos in the sqlj folder I get the error "exception in thread "main" java.lang.noclassfounderror: TestInstallJDBC.
    TesInstallJDBC is the test demo which comes in the ora90/sqlj/demo folder.
    Yes I have java 1.2.2 installed, yes all the classpath and path values are set properly. Also the dir in which the script resides is in the classpath. Yes when I type in "sqlj" at the command prompt I get the proper output.
    The JDBC driver is 9.0.1.1.0 and the sqlj version is 9.0.1.0.0.
    I read in the oracle literature that sqlj had only been tested on win NT. IS THIS A WIN 2K Problem???????
    HELP!

    Quote
    then copy all bios files to the ramdrive from either a floppy or a cd.
    maybe i was not clear enough.
    copy the bios file and flash utility to a cd or floppy before you use w98 boot disk.
    i flashed my bios yesterday with the method i described and it worked perfectly.
    need more and better memory...seems i keep forgetting all the little things

  • Broken SQLJ/JDBC sample code!

    found a serious documentation bug:
    The sample SQLJ-file JDBCInterop.sqlj in
    <JDeveloperHome>/doc/jdeveloper.htm#jdk117/index.html
    which is claimed to show the very interesting
    "Dynamic SQL and JDBC-SQLJ Interoperability"
    is far from compilable!
    Even after adding some import statements, there remains the
    problem that in the generated .java file the iterator (class
    Employees) constructor WILL NOT ACCEPT a standard ResultSet as
    parameter but only the Oracle extende result set.
    class Employees
    extends sqlj.runtime.ref.ResultSetIterImpl
    implements sqlj.runtime.NamedIterator
    public Employees(sqlj.runtime.profile.RTResultSet resultSet)
    throws java.sql.SQLException
    Can anyone rewrite that example to work as described??
    TIA
    Peter
    null

    Hi
    I guess the problem is due to some network problem.
    Did you try running any simple program that connects to the database you have mentioned using JDBC.
    Try to print the stacktrace and look where the error is.
    Stephen

  • Java3d speed collapse caused by other java apps running at the same time

    Hi
    I am programming a flightsimulator for some months.
    The current state is online available (all free, no copyrights)
    at http://www.snowraver.org/efcn/efcnsim/index.htm
    especially the sample (source) which shows the
    behaviour which is the reason for my post is here
    http://www.snowraver.org/efcn/efcnsim/page2.htm
    My Problem:
    When I start the sim while two other java programs
    ( one is a server running localhost, one is a client )
    are running, the speed of the flightsim is very slow,
    one frame update takes 3 to 5 seconds.
    ( 3 java.exe's in task list plus 1 which is the IDE )
    When I start the flightsim ALONE, I have 30 to 40 frames per second.
    ( 2 java.exe's in the task list = the flightsim and the IDE -> no prob here )
    That means, the flightsim is about 100 times slower, when
    started while the other two apps are running.
    BUT the other two applications do almost ***NOTHING***, the
    CPU load is 1 or 2 percent.
    Of course they have threads running, but all are waiting
    for a signal - no thread really consumes CPU power.
    Interestingly, when I FIRST start the flightsim and AFTER THIS
    start the two other applications, the flightsim
    holds 30 frames per seconds without problems, even
    though the other applications consume some CPU power
    until they have completely started up.
    Configurations:
    JSDK 1.4.2_1 , 0_2..
    Java3D 1.3.1 OPENGL (The DirectX version crashes with D3D device lost)
    Win2000,XP CPU 800MHz upto 3 GHz
    In my point of view, the java3d thread scheduler makes
    some funny decisions when it starts up, which lead
    to the order dependent behaviour described above.
    My question is, if anyone has some ideas, how I could
    get away from this speed collapse.
    The problem is caused in native code I guess.
    I also could imagine, that it has to do something with
    the order in which one creates, attaches and starts
    the Canvas3D. (? could produce race conditions)
    The flightsim runs in full retained mode. Of course
    the CPU work in the behaviours is rather big, because
    the ROAM triangulation update (..) is done there
    and the triangles are recalculated and passed
    ( all BY_REFERENCE ).
    Or could it have to do something with the memory
    consumption ( when all runs, almost all of
    the 512MB RAM is taken by the three java.exe's ) ?
    Any hints or ideas ?

    :) No, Sun does handle it [lol]
    I just have tested it on my computer at work
    ( 3GHz HP compaq, 1GB Ram and a Intel 82865G Graphics
    Card with 64MB memory, Windows XP )
    and it has worked without problems any way I tried.
    ( Except for xclusive fullscreen mode, but I guess, the administrators
    have deactivated it somehow, so we don't play games at work :)
    I couldn't test it under Linux so far, but I think, this will be less
    problematic than Windows [usually].
    However my current assumption is:
    I totally have forgot the [limited] videocard memory.
    I suppose, Java3D tries to put all triangle data and all
    textures to the videocards memory, so most data processing
    then can be passed to it's graphiccard CPU using
    OpenGL commands.
    Now the flightsim produces a varying amount of (by_reference) triangle data ( a few thousands )
    and has some texture maps for the terrain, the sea and other things,
    plus indexed triangle data for the planes and ships.
    The notebook system, which slows down has an ATI Mobile Radeon card
    with only 32MB RAM onboard, whereas the others have 64MB Ram.
    An additional pointer to that theory is that I can trigger the slowdown by resizing
    the flightsim window, while it is running.
    On the notebook, it holds 30fps, until the window exceeds a size of 962*862 pixels.
    At this size the speed collapses and goes down to 1 frame update every 4 seconds.
    If I make the window a few pixels smaller, the speed of 30fps immediately
    is there again.
    Therefore I guess, some data passed to the graphic cards memory depends
    linearly from the canvas3d's window dimension, and at some limit,
    the graphiccard's memory is too small and Java3D changes it's strategy
    and performs most calculations on the computer's mainmemory,
    which of course is a lot slower.
    I'm not very sure about that, I'm just speculating.
    Next thing I will try is to disable directdraw for the other two applications,
    possibly swing also uses graphicscard memory, when directdraw is enabled.
    The solution seems to be clear anyway: The flightsim must examine the system
    and set some parameters depending on the machine's capabilities.
    Onboard videagraphic ram is one of them. If it's too slow, I start to decrease
    the window size and expect to see a sudden increase of speed, as soon as
    the rendering can be done by the graphicscard CPU. If this never happens,
    I assume no OpenGL accelerator is present on that system. This can be seen as a method
    for finding out the amount of videocard memory on a system by trial and error ..?:)
    Thanks for your tips, Alain.
    I especially have to check out the data sharing class in 1.5.

  • How to get comparable Oracle JDBC performance using Java 1.4 vs 1.1.7?

    Our application makes extensive use of JDBC to access an Oracle database. We wrote it a number of years ago using java 1.1.7 and we have been unable to move to new versions of java because of the performance degradation.
    I traced the problem to JDBC calls. I can reproduce the problem using a simple program that simply connects to the database, executes a simple query and then reads the data. The same program running under java 1.4 is about 60% slower than under java 1.1.7. The query is about 80% slower and getting the data is about 150% slower!
    The program is attached below. Note, I run the steps twice as the first time the times are much larger which I attribute to java doing some initializations. So the second set of values I think are more representative of the actual performance in our application where there are numerous accesses to the database. Specifically, I focus on step 4 which is the execute query command and step 5 which is the data retrieval step. The table being read has 4 columns with 170 tuples in it.
    Here are the timings I get when I run this on a Sparc Ultra 5 running
    SunOs 5.8 using an Oracle database running 8.1.7:
                     java 1.1.7  java 1.4
            overall:    2.1s         3.5s
            step 1:     30           200
            step 2:    886          2009
            step 3:      2             2
            step 4:      9            17
            step 5:    122           187
            step 6:      1             1
            step 1:      0             0
            step 2:    203           161
            step 3:      0             1
            step 4:      8            15   <-   87% slower
            step 5:     48           117   <-  143% slower
            step 6:      1             2I find the same poor performance from java versions 1.2 and 1.3.
    I tried using DataDirect's type 4 JDBC driver which gives a little better performance but overall it is still much slower than using java 1.1.7.
    Why do the newer versions of java have such poor performance when using JDBC?
    What can be done so that we can have performance similar to java 1.1.7
    using java 1.4?
    ========================================================================
    import java.util.*;
    import java.io.*;
    import java.sql.*;
    public class test12 {
        public static void main(String args[]) {
            try {
                    long time1 = System.currentTimeMillis();
    /* step 1 */  DriverManager.registerDriver(
                        new oracle.jdbc.driver.OracleDriver());
                    long time2 = System.currentTimeMillis();
    /* step 2 */  Connection conn = DriverManager.getConnection (
                  "jdbc:oracle:thin:@dbserver1:1521:db1","user1","passwd1");
                    long time3 = System.currentTimeMillis();
    /* step 3 */  Statement stmt = conn.createStatement();
                    long time4 = System.currentTimeMillis();
    /* step 4 */  ResultSet rs = stmt.executeQuery("select * from table1");
                    long time5 = System.currentTimeMillis();
    /* step 5 */  while( rs.next() ) {
                      int message_num = rs.getInt(1);
                      String message = rs.getString(2);
                    long time6 = System.currentTimeMillis();
    /* step 6 */  rs.close(); stmt.close();
                    long time7 = System.currentTimeMillis();
                System.out.println("step 1: " + (time2 - time1) );
                System.out.println("step 2: " + (time3 - time2) );
                System.out.println("step 3: " + (time4 - time3) );
                System.out.println("step 4: " + (time5 - time4) );
                System.out.println("step 5: " + (time6 - time5) );
                System.out.println("step 6: " + (time7 - time6) );
                System.out.flush();
            } catch ( Exception e ) {
                System.out.println( "got exception: " + e.getMessage() );
            ... repeat the same 6 steps again...
    }

    If I run my sample program with the -server option, it
    takes a lot longer (6.8s vs 3.5s).Which has to be expected, as the -server option optimizes for long running programs - so it shoudl go with my second suggestion, more below...
    I am not certain what you mean by "just let the jvm
    running". Our users issue a command (in Unix) which
    invokes one of our java programs to access or update
    data in a database. I think what you are suggesting
    would require that I rewrite our application to have a
    java program always running on the users workstation
    and to also rewrite our
    commands (over a hundred) to some how pass data and
    receive data with this new server java program. That
    does not seem a very reasonable just to move to a new
    version of java. Or are you suggesting something
    else?No I was just suggestion what you descript. But if this is not an option, then maybe you should merge your java-programs to C or another native language. Or you could try the IBM-JDK with the -faststart (or similar) option. If thew Unix you mention is AIX, then there would be the option of a resetable-vm. But I cannot say if this VM would solve your problem. Java is definitly not good for applications which only issue some unqiue commands because the hotspot-compiler can not be efficiently used there. You can only try to get 1.1.7 performance by experimenting with vm-parameters (execute java -X).

Maybe you are looking for

  • In F-53 system listing out wrong open item

    Hi Guru's, while making outgoing payment in F-53 system listing out 'A001' & 'B001' company code open item rather than 'A001' company code open item. In the selection screen we are giving only company code 'A001'. This vendor has been extended for bo

  • Stopping TestStand Sequence With PreUUT Loop Disabled

    Hi All, I have edited my sequence so I do not use the default UUT Information dialog to enter serial number information etc. I handle all of that on my own to get a specific file name and perform other tasks within my sequence. I have the PreUUT call

  • Single artist is appearing twice in My Music

    One artist, one album, saved in one folder on my PC. Yet she appears twice in My Music. In one of the appearances there is one track, in the other are the rest. They both appear in My Music with the same artist name and same album name. How do I merg

  • Issue in system condition

    Hi Gurues, Can anybody please tell me what is system condition ? how to use this field. and here my requirement is that iw31, i want to mandatory field "system condition" is there any possibility to do this ? and Why system condition is used ? i have

  • Color Pattern?

    In Diagnostic mode, I can see under LCD an option to change the color pattern, but I can't seem to. How do I do this?