Coding Swing Applications with Large JDBC ResultSets

Hi,
Does anyone know where I can find information regarding efficient ways to code Swing UI's with large JDBC result sets. I have been using JTextArea but my application seems to constantly run out of memory when I encounter a large result set. Also, any information regarding threading and if running database queries should be done entirely off the event thread vs SwingUtilities.invokeLater() would be of tremendous help.
Thanks,
John Meah

If doing operations in the awt thread starts to impair the performance of your app, then create a new class that implements Runnable, and do this:
Thread t = new Thread (new yourRunnable());
t.start();
t should have lower priority than the AWT thread.
As far as large result sets, it is a fairly universal problem. My recommendation is that you arbitrarily impose a limit on how many of the records returned are displayed, like maybe 25 records. This should fix your problem

Similar Messages

  • Swing application with JavaHelp crashes outside Netbeans IDE.

    Hi guys I have developed a small swing application in Netbeans IDE. I used the following code inside the IDE for JH.
    public void createHelp()
           try {
                   URL hsURL = new URL("jar:file:eDictionaryHelp.jar!/eDictionaryHelp/eDictionary.hs");
                   hs = new HelpSet(null, hsURL);
           catch (Exception ee)
            // Say what the exception really is
            System.out.println( "HelpSet " + ee.getMessage());
            System.out.println("HelpSet "+ helpHS +" not found");
            JOptionPane.showMessageDialog(new JFrame(), ee.getMessage(), "Error", ERROR_MESSAGE);
            hb = hs.createHelpBroker();
       }When I run the program inside the IDE and and click on the corresponding MenuItem.. JavaHelp comes up as it should! No problems with that.
    But when I build the project and tried to run it from the .jar file in the PROJECT_HOME/dist/ the swing got displayed till this function was called. and then it simply crashed.
    Investigating further and commenting out one line at a time and compiling I found out that whenever the hs = new HelpSet(null, hsURL); is encountered, the app crashes (it doesnt throw any error).
    But as I said this is not the case when i run and compile inside the IDE. I only get this problem when running the app from outside the IDE.
    I have tried all kinds of combinations of the URL .. for eg ( I am aware of Bug 4149782)
    ClassLoader cl = this.getClass().getClassLoader();
    try {
                   URL hsURL = HelpSet.findHelpSet(cl, helpHS);
    .What can be the problem guys? Any suggestions?
    Thanks!

    Anyone has an answer on this?
    I am facing the same problem.. I am using NetBeans 5.5
    arijit_datta, do u have a solution for this problem already?
    Thanks,
    SK

  • Problem with GenericCatalogDAO  JDBC Resultset using parameters not working

    Hello
    I have a problem with Petstore GenericCatalogDAO. java. The problem is the behaviour of the resultset object when retrieving data from the database.Below are two synareos one that
    works (when) hard coded and one that does not work when parameter values passed into the the result set.
    1. The code the WORKS.
    statement = connection.prepareStatement("select a.productid , name, descn from product a, product_details b
    where a.productid = b.productid and locale= 'en_US' and a.catid = 'FISH' order by name"
    ,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    resultSet = statement.executeQuery();
    resultSet.absolute(1);
    String s = resultSet.getString(1);
    The code that gives me a 'exhausted resultset' error which I think means no results
    String[] parameterValues = new String[] { locale.toString(), categoryID };(For example parameters are 'en_US' and 'FISH')
    statement = connection.prepareStatement("select a.productid , name, descn from product a, product_details b
    where a.productid = b.productid and locale=? and a.catid =? order by name"
    ,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    for (int i = 0; i < parameterValues.length; i++) {
    statement.setString(i + 1, parameterValues[i]);
    resultSet = statement.executeQuery();
    resultSet.absolute(1);
    String s = resultSet.getString(1);
    There is obviously a problem using these named parametevalues with these preparedstatement resultset, Does anybody know anything about this and a fix for it????
    Cheers. Roger

    Which version of PetStore are you using?
    -Larry

  • Portal time out with large jdbc query in JSP bean

    Hi,
    My JSP portlet always times out while waiting to complete two large JDBC queries. The error shown in my jserv.log file is:
    [28/03/2002 12:41:51:221 GMT+08:00] page/Fetching timed out for an Unknown Reason. Killing fetcher name=content-fetcher2 label=174 url=http://mephistopheles.au.oracle.com/servlet/agcharts time=120633
    [28/03/2002 12:43:10:595 GMT+08:00] page/UncaughtException in thread name=content-fetcher2, starting a new fetcher after exception
    java.lang.ThreadDeath
    Is there some particular settings I can modify to prevent the content fetcher from timing out? Cheers

    Thanks. The charts portlet now can be delayed up to the required ~10mins before returning data from the large query. This works in conjunction with changes in the directives/parameters for Jserv and httpd(Note:180548.1)
    Shankar,
    Normally, you can increase the time out in the portlet tag of the provider.xml file. The timeout is in seconds, you should also increase the provider timeout. This is done in the provider registration screen.
    <timeout>60</timeout>
    <timeoutMessage>My Portlet Timed Out</timeoutMessage>
    Please note that if you set the timeout too high and your portlet is really not coming up, you page will wait the 60, 90, 120, etc seconds for the portlet to timeout, so be careful will portlet and provider timeouts.
    Sue

  • Unable to launch Java Swing application with JSE 5.0

    Hi,
    we have a swing appln that gets downloaded via java webstart - which was working fine with 1.4.x until 5.0 came. I know that JSE 5.0 includes java webstart too - but when I start my application, I get Marshal error & filenotfound Exception. What we are doing in the application is to download some XML files that are to be used by the program. But the program is unable to find the files.
    If I manually install 1.4.x & Web Start separately, everything works fine.....
    Is there any change needed in the JNLP file?
    TIA

    Hi there,
    Here's the issue:
    I have modified our web page that helps the user download the swing appln - as per the guidelines given in the web site:
    http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/launch.html
    Let's say that I already have JRE 1.4x & JWS installed on my m/c. When I visit our web page that downloads / starts the client application, I get an error:
    Java Web Start : Invalid Argument Error.
    General
    An error occurred while launching/running the application.
    Category: Invalid Argument error
    Could not load file/URL specified: http://myserver:8080/testdev/app/testb.jnlp
    Exception
    CouldNotLoadArgumentException[ Could not load file/URL specified: http://myserver:8080/testdev/app/testb.jnlp]
         at com.sun.javaws.Main.main(Unknown Source)
    Wrapped Exception
    java.io.IOException: Service Unavailable : http://myserver:8080/testdev/app/testb.jnlp
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source)
    at com.sun.javaws.Main.main(Unknown Source)
    If I uninstall JRE 1.4+ & etal - JRE 5.0 gets downloaded and everything works smooth. But I need to take care of backward compatibility... Hence this post....
    BTW, the JNLP file looks like:
    <?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+"
         codebase="$$codebase"
         href="testb.jnlp">
    <information>
    <title>Test Application</title>
    <vendor>TP</vendor>
    <homepage href="help.htm"/>
    <description>TEST Application using Java Web Start </description>
    <description kind="short">TEST Application.</description>
    <icon href="logocropped.jpg"/>
    <icon kind="splash" href="logocropped.jpg"/>
    <offline-allowed/>
    </information>
    <resources>
    <j2se version="1.4+"/>
    <jar href="bars.jar" part="lpc" />
    <jar href="castor-0.9.4.3.jar" part="lpc" download="eager" />
    <jar href="xercesImpl.jar" download="eager"/>
    <jar href="xmlParserAPIs.jar" download="eager"/>
    <jar href="bsh-1.2b6.jar" download="eager"/>
    <jar href="gnujaxp.jar" download="eager"/>
    <jar href="itext-0.99.jar" download="eager"/>
    <jar href="jcommon-0.8.2.jar" download="eager"/>
    <jar href="junit.jar" download="eager"/>
    <jar href="pixie-0.8.0.jar" download="eager"/>
    <jar href="BarsUtil.jar" download="eager"/>
    </resources>
    <application-desc main-class="bars.Bars"/>
    <security>
    <all-permissions/>
    </security>
    </jnlp>
    Is there a version incompatibility issue that I need to take care of ?
    TIA for any help/direction......

  • Swing application with network event handling

    Hello, hope this is the right place for this post. I'm the design phase of a client application in java which talks to a remote server written in C via sockets. I have a design problem: I want my Swing app to have a GUI with buttons and all for normal activities, which activities report to the server, and I want the client to react to server calls anytime without interrupting normal GUi activities. Plus, all must work together, so I would prefer having a single thread for the app. (Think of an IRC client: the user uses the GUI for activities and sendim messages, and meanwhile the client listens for messages from the server and display them as they arrive). My question is: is this possible?
    I have something like (in pseudo-java):
    classMyApp extends JFrame {
      public MyApp() {
        // Manages and create the GUI
        NetHandler h = new NetHandler(this);
        h.connect();
        while(true) {
          h.pollNetEvents();
    class NetHandler {
      private BufferedReader iStream;
      private PrintWriter oStream;
      private MyApp app;
      public NetHandler(MyApp a) {
        app = a;
        Socket socket = createSocket(ip, port);
        iStream = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        oStream = new PrintWriter(socket.getOutputStream());
        handshakeWithServer(); // Login & Password
      public pollNetEvents() {
        try {
          String s;
          for (;;) {
            s = iStream.readLine();
            if (s.equals("") == false)
              break;
            else
              app.parseCommand(s);
        catch (IOException e) {
          app.sendMessage("Error in pollNetEvent: " + e);
    }Roughly, something like this. With this solution the GUI works, but I cannot get the message the server sends.
    I hope my message is clear enough. Can anybody help me with the design of my app? Thanks a lot.
    Fabio.

    You might consider posting this in the Swing forum. You might get a more complete response there, but here are my first thoughts.
    -- I think you will end up wanting to use multiple threads, but only one thread will update the UI. For more about threading in Swing, see this tutorial: http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html
    and maybe also here: http://www.sourcebeat.com/TitleAction.do?id=10 (look at the sample chapter on Threads)
    -- For the polling code ...
    Of course, if you use the classes provided for client/server communication described below, you don't need to write your own polling code. You may still wish worry about threading so that your UI remains responsive and does not encounter major issues: http://java.sun.com/developer/JDCTechTips/2005/tt0419.html#1
    -- Updates to the UI from thread(s) that are not on the Event Dispatch Thread (the one that controls the UI) must be posted using the SwingUtilities methods, such as invokeLater
    Message was edited by:
    pthorson

  • Create a swing application with reflection

    Hi folks, I'm seeing the possibility to create a application like eclipse wich loads the classes in a folder and builds the application , but I have a doubt, how organize the components in application , how I will add a component in a menu, how I will build the hierarchy , separating menus,panel and buttons , anyone have idea ?
    Thanks .

    1) Use JEditorPane
    2) Need to Highlight syntax
    3) Need to show lines
    check out these links
    coweb.cc.gatech.edu/mediaComp-plan/uploads/95/JESGutter.1.java
    http://javaalmanac.com/egs/javax.swing.text/style_HiliteWords2.html
    Now to popup
    setLayout for the JEditorPane to null
    You will have one JComboBox /or popup with all the properties and methods
    of the class.
    now add that JComboBox to JEditorPane
    You can get the position of the dot by using
    Point point = editorPane.getCaret().getMagicCaretPosition();
    popupMenu.show( jEditorPane,
    (int)point.getX(),
    (int)point.getY());
    Here you can show JComboBox too. (Absolute positioning).
    Now as you need to use JEditorPane implement DocumentListener on it.
    Using caret listener you can get the current word.
    You can use getClass() for that. Add all the methods and properties in JComboBox or Popup.
    As for other properties such as saving keywords, search, 'files opened' etc.
    you can use xml.

  • HELP!!! Cannot deploy J2EE application with Oracle JDBC driver...

    Hi,
    I am writing a J2EE application which (in theory, at least)
    connects to an Oracle 9i database.
    I have written a simple Java test app utilising only the
    java.sql package classes (e.g. Connection, ResultSet) to directly
    connect to the database. As long as the classes12.zip is in the
    CLASSPATH it works fine.
    Now I have written an Enterprise application (SessionBean,
    Remote and Home interface and Client) which I am attempting to
    deploy via deploytool.
    If I include just the client jar and EJB jar in the application
    it deploys okay but when I run the application (using runclient)
    it produces the following error:
    java.lang.NoClassDefFoundError: oracle/jdbc/OracleDriver
    (It is nested within other error output but that is the core
    issue).
    However if I try to include the JAR libraries into the app
    (classes12.jar and nls_charset.jar from $ORACLE_HOME/jdbc/lib),
    then I get the following output from deploytool when I hit the
    "deploy" (or "redeploy") button:
    Deployment error: invalid entry compressed size
    (expected 14411 but got 14580 bytes)
    Can someone please tell me what is going on???
    How can I deploy the J2EE application including the Oracle
    JDBC Driver???
    My only other option at the moment is to place all the function-
    -ality in the client and not use the J2EE framework.
    Any help is greatly appreciated.
    Regards,
    Ben New
    Leftclick Software Development
    [email protected]

    OK Ben,
    I admit I'm a bit confused. Let me see if I understand where you're
    coming from.
    You have written a J2EE application that includes a session bean,
    correct? If so, your session bean needs to be deployed to an EJB
    container. What container are you using? The Oracle 9i database
    has an embedded EJB container which (theoretically) you can use.
    However, as far as I know, Oracle recommends you use OC4J as the
    EJB container. So again I ask, what EJB container are you using?
    If, as you say, you are new to EJB, then I think you should
    immediately start working wiht OC4J as your EJB container.
    Did you look at the tutorial link I gave in my previous post? It
    explains -- step by step -- how to create, deploy and run a J2EE
    application using OC4J as the EJB container. It also has links to
    introductory material for people without little knowledge of J2EE
    and EJB.
    I have 9iAS Enterprise Edition and 8.1.7.1.0 database server (and
    OC4J) installed on my SUN machine. I cannot find any of the
    utilities you mention -- "j2eeadmin","runclient" or "deploytool".
    What Oracle software have you installed? What are the versions?
    What platform are you using?
    A J2EE application (according to the specification from SUN)
    consists of modules. A module can either be a client module or an
    EJB module. A client module can either be a java application client
    or a web-based client (servlet or JSP). A J2EE application usually
    contains one client module and one EJB module. A J2EE application
    needs to be deployed to a J2EE container.
    Hopefully the J2EE picture is becoming clearer. I think you need
    to read some introductory material regarding J2EE if you intend
    to become proficient at it.
    I feel that you are under the impression that a J2EE application
    is a glorified JDBC application. It isn't (as far as I'm aware).
    Good Luck,
    Avi.

  • TP4: can not run application with ODBC-JDBC bridge

    Hi,
    I tried to connect to a oracle 10gR1 Database via ODBC-JDBC bridge.
    Test connection in dialog "Edit Database Connection" is sucessfull.
    When trying to run the application following error occures:
    ===========================================
    08/05/09 11:48:57 SCHWERWIEGEND: AbstractInfo.getAnnotation oracle.webservices.annotations.async.AsyncWebService cannot be found in the given classpath.
    08/05/09 11:48:57 SCHWERWIEGEND: AbstractInfo.getAnnotation oracle.webservices.annotations.async.AsyncWebService cannot be found in the given classpath.
    09.05.2008 11:48:58 oracle.j2ee.util.AnnotatedLogger logWithThrowable
    SCHWERWIEGEND: J2EE JCA-07001
    oracle.oc4j.sql.DataSourceException: Unable to create: sun.jdbc.odbc.JdbcOdbcDriver
         at oracle.oc4j.sql.config.DataSourceConfigUtils.createDataSource(DataSourceConfigUtils.java:403)
         at oracle.oc4j.sql.DataSourceUtils.createDataSource(DataSourceUtils.java:288)
         at com.evermind.server.DataSources.createNativeDataSource(DataSources.java:153)
         at com.evermind.server.DataSources.initDataSources(DataSources.java:1117)
         at com.evermind.server.ApplicationStateRunning.initDataSourceConnector(ApplicationStateRunning.java:1782)
         at com.evermind.server.ApplicationStateRunning.initConnector(ApplicationStateRunning.java:1436)
         at com.evermind.server.ApplicationStateRunning.initConnectors(ApplicationStateRunning.java:422)
         at com.evermind.server.ApplicationStateRunning.initializeApplication(ApplicationStateRunning.java:247)
         at com.evermind.server.Application.setConfig(Application.java:538)
         at com.evermind.server.Application.setConfig(Application.java:433)
         at com.evermind.server.ApplicationServer.addApplication(ApplicationServer.java:2125)
         at com.evermind.server.ApplicationServer.initializeDeployedApplications(ApplicationServer.java:1865)
         at com.evermind.server.ApplicationServer.setConfig(ApplicationServer.java:1235)
         at oracle.oc4j.server.ServerFactory$Worker.start(ApplicationServerFactory.java:249)
         at oracle.oc4j.server.ServerFactory$Worker.run(ApplicationServerFactory.java:259)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.ClassCastException: sun.jdbc.odbc.JdbcOdbcDriver
         at oracle.oc4j.sql.config.DataSourceConfigUtils.createDataSource(DataSourceConfigUtils.java:401)
         ... 15 more
    08/05/09 11:48:58 WARNUNG: Application.setConfig Application: current-workspace-app is in failed state as initialization failed.
    java.lang.InstantiationException: oracle.oc4j.sql.DataSourceException: Unable to create: sun.jdbc.odbc.JdbcOdbcDriver
         at com.evermind.server.ApplicationStateRunning.initConnector(ApplicationStateRunning.java:1465)
         at com.evermind.server.ApplicationStateRunning.initConnectors(ApplicationStateRunning.java:422)
         at com.evermind.server.ApplicationStateRunning.initializeApplication(ApplicationStateRunning.java:247)
         at com.evermind.server.Application.setConfig(Application.java:538)
         at com.evermind.server.Application.setConfig(Application.java:433)
         at com.evermind.server.ApplicationServer.addApplication(ApplicationServer.java:2125)
         at com.evermind.server.ApplicationServer.initializeDeployedApplications(ApplicationServer.java:1865)
         at com.evermind.server.ApplicationServer.setConfig(ApplicationServer.java:1235)
         at oracle.oc4j.server.ServerFactory$Worker.start(ApplicationServerFactory.java:249)
         at oracle.oc4j.server.ServerFactory$Worker.run(ApplicationServerFactory.java:259)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: oracle.oc4j.sql.DataSourceException: Unable to create: sun.jdbc.odbc.JdbcOdbcDriver
         at oracle.oc4j.sql.config.DataSourceConfigUtils.createDataSource(DataSourceConfigUtils.java:403)
         at oracle.oc4j.sql.DataSourceUtils.createDataSource(DataSourceUtils.java:288)
         at com.evermind.server.DataSources.createNativeDataSource(DataSources.java:153)
         at com.evermind.server.DataSources.initDataSources(DataSources.java:1117)
         at com.evermind.server.ApplicationStateRunning.initDataSourceConnector(ApplicationStateRunning.java:1782)
         at com.evermind.server.ApplicationStateRunning.initConnector(ApplicationStateRunning.java:1436)
         ... 10 more
    Caused by: java.lang.ClassCastException: sun.jdbc.odbc.JdbcOdbcDriver
         at oracle.oc4j.sql.config.DataSourceConfigUtils.createDataSource(DataSourceConfigUtils.java:401)
         ... 15 more
    09.05.2008 11:48:58 com.evermind.server.ServerMessages severe
    SCHWERWIEGEND: Exception beim Initialisieren der bereitgestellten Anwendung: current-workspace-app. Application: current-workspace-app is in failed state as initialization failed
    java.lang.InstantiationException: Application: current-workspace-app is in failed state as initialization failed
         at com.evermind.server.Application.setConfig(Application.java:636)
         at com.evermind.server.Application.setConfig(Application.java:433)
         at com.evermind.server.ApplicationServer.addApplication(ApplicationServer.java:2125)
         at com.evermind.server.ApplicationServer.initializeDeployedApplications(ApplicationServer.java:1865)
         at com.evermind.server.ApplicationServer.setConfig(ApplicationServer.java:1235)
         at oracle.oc4j.server.ServerFactory$Worker.start(ApplicationServerFactory.java:249)
         at oracle.oc4j.server.ServerFactory$Worker.run(ApplicationServerFactory.java:259)
         at java.lang.Thread.run(Thread.java:595)
    Caused by: java.lang.InstantiationException: oracle.oc4j.sql.DataSourceException: Unable to create: sun.jdbc.odbc.JdbcOdbcDriver
         at com.evermind.server.ApplicationStateRunning.initConnector(ApplicationStateRunning.java:1465)
         at com.evermind.server.ApplicationStateRunning.initConnectors(ApplicationStateRunning.java:422)
         at com.evermind.server.ApplicationStateRunning.initializeApplication(ApplicationStateRunning.java:247)
         at com.evermind.server.Application.setConfig(Application.java:538)
         ... 7 more
    Caused by: oracle.oc4j.sql.DataSourceException: Unable to create: sun.jdbc.odbc.JdbcOdbcDriver
         at oracle.oc4j.sql.config.DataSourceConfigUtils.createDataSource(DataSourceConfigUtils.java:403)
         at oracle.oc4j.sql.DataSourceUtils.createDataSource(DataSourceUtils.java:288)
         at com.evermind.server.DataSources.createNativeDataSource(DataSources.java:153)
         at com.evermind.server.DataSources.initDataSources(DataSources.java:1117)
         at com.evermind.server.ApplicationStateRunning.initDataSourceConnector(ApplicationStateRunning.java:1782)
         at com.evermind.server.ApplicationStateRunning.initConnector(ApplicationStateRunning.java:1436)
         ... 10 more
    Caused by: java.lang.ClassCastException: sun.jdbc.odbc.JdbcOdbcDriver
         at oracle.oc4j.sql.config.DataSourceConfigUtils.createDataSource(DataSourceConfigUtils.java:401)
         ... 15 more
    09.05.2008 11:48:58 oracle.j2ee.util.AnnotatedLogger logWithThrowable
    WARNUNG: J2EE JNDI-00002
    09.05.2008 11:48:58 oracle.j2ee.util.AnnotatedLogger log
    WARNUNG: Kein javax.jms.ConnectionFactory in null gefunden
    09.05.2008 11:49:01 com.evermind.server.http.HttpMessages internalErrorWhileTryingToInstantiate
    SCHWERWIEGEND: Interner Fehler ausgelöst beim Versuch, die Web-Anwendung zu instanziieren: GoodsReceipt-ViewController-webapp definiert in Website Default Web Site. Application: current-workspace-app does not exist. Error creating Web application: GoodsReceipt-ViewController-webapp
    Ready message received from Oc4jNotifier.
    Embedded OC4J Server startup time: 12375 ms.
    =========================================
    OC4J is up and running, but browser gives error message (404 Not found)
    With JDBC connection this application works fine.
    Here my jdev specific environment variables:
    SET JOH=c:\software\Oracle_JDEV11gP4
    SET JDEV_USER_DIR=c:\jdeveloper\home
    SET JAVA_HOME=c:\software\Oracle_JDEV11gP4\jdk\bin
    Can anybody help me?
    br
    Peter

    Peter --
    Can you please describe your use case? The JDBC-ODBC bridge driver is not all that reliable. Sun considers it "transitional" and it is not supported by them.
    http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/bridge.html
    We still include the driver in JDev primarily to allow connections to MS datasources like Excel and Access that don't have free/open-source pure JDBC drivers. Why would you use the JDBC-ODBC bridge to connect to an Oracle database?
    -- Brian

  • How can I create JScrollPane in my swing application with scroll bars movin

    Hi,
    How can we create scrollpanes moving with scrollbars.I tried many times with custom layout.but it does not work if i set custom layout.I hope that I will get my problem solved.
    Thanks and Regards,
    Rameh RK

    This means it is not possible to create a pure unicode file without the byte order mark?
    You wouldn't happen to know how a file with byte order mark should read on a Linux system?
    Or if this possible or not?
    Regards
    Christian

  • BSP application with large no. of concurrent end users

    We have implemented a custom version of BSP HAP_DOCUMENT for performance appraisals.The BSP is implemented as an iview using Enterprise Portal 6.0.15.0.0. On R/3 side we are on 6.20 support pack 50.
    We do not have Web Dispatcher or any other load balancing tool,everyone is therefore getting routed through one WAS and getting clogged.
    Has anyone implemented Web Dispatcher?
    Does anyone have recommendations or experience to share for load balancing?
    Thanks
    Mani

    Hi,
    You can use any HTTP load balanicng software, the only important thing is that the load balancer may not touch the Host header field.
    You can find more information on this topic in SAP note:
    #616900 -> Topic: using proxies.
    Regards,
    Dezso

  • JRockit for applications with very large heaps

    I am using JRockit for an application that acts an in memory database storing a large amount of memory in RAM (50GB). Out of the box we got about a 25% performance increase as compared to the hotspot JVM (great work guys). Once the server starts up almost all of the objects will be stored in the old generation and a smaller number will be stored in the nursery. The operation that we are trying to optimize on needs to visit basically every object in RAM and we want to optimize for throughput (total time to run this operation not worrying about GC pauses). Currently we are using hugePages, -XXaggressive and -XX:+UseCallProfiling. We are giving the application 50GB of ram for both the max and min. I tried adjusting the TLA size to be larger which seemed to degrade performance. I also tried a few other GC schemes including singlepar which also had negative effects (currently using the default which optimizes for throughput).
    I used the JRMC to profile the operation and here were the results that I thought were interesting:
    liveset 30%
    heap fragmentation 2.5%
    GC Pause time average 600ms
    GC Pause time max 2.5 sec
    It had to do 4 young generation collects which were very fast and then 2 old generation collects which were each about 2.5s (the entire operation takes 45s)
    For the long old generation collects about 50% of the time was spent in mark and 50% in sweep. When you get down to the sub-level 2 1.3 seconds were spent in objects and 1.1 seconds in external compaction
    Heap usage: Although 50GB is committed it is fluctuating between 32GB and 20GB of heap usage. To give you an idea of what is stored in the heap about 50% of the heap is char[] and another 20% are int[] and long[].
    My question is are there any other flags that I could try that might help improve performance or is there anything I should be looking at closer in JRMC to help tune this application. Are there any specific tips for applications with large heaps? We can also assume that memory could be doubled or even tripled if that would improve performance but we noticed that larger heaps did not always improve performance.
    Thanks in advance for any help you can provide.

    Any suggestions for using JRockit with very large heaps?

  • Memory Leak in a multi threaded Swing application  (ImageIcon)

    When I profile my swing application with netbeans 5.5 , I notice that after each periodically tidy up my image container (add,remove IconImage objects to a hashmap or arraylist), there gather by and by surviving objects. This leads to run out of memory after a while. Is there any other way to avoid this effect?
    Any ideas about "The JVM is notorious for caching images."
    please help..
    what I have made briefly:
    1.) Read the binary stream from the db :
    rs=stmt.executeQuery(query);
    if(rs.next()){
        int len=rs.getInt(2);
        byte [] b=new byte[len];
        InputStream in = rs.getBinaryStream(3);
        try {
                in.read(b);
                in.close();
                img=Toolkit.getDefaultToolkit().createImage(b);
         } catch (IOException e) {
                e.printStackTrace();
    stmt.close();
    rs.close();2.) hold the icon as field :
    this.icon =  new ImageIcon(img);3.) After a while I remove the object from my collection and on the
    overridden method finalize() I also call the flush() method.
    if(this.icon != null){
                this.icon.getImage().flush();
                this.icon = null;
    }The surviving objects still increase?! On the page of SUN they
    submitted a bug. But this is set on closed/fixed.
    (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4014323)
    What am I doing wrong? I also use the byte[] constructor on creating the icon and
    my java version is 1.5.0_10.

    If in your JFrame u have placed your image, before invoke the dispose()
    method put explicitly the image pointer to null and deregister all listener
    you have added to any componentI implemented your suggest and after starting a long time test, in one hour there gathered aprox. 500 surviving generations. I attach a snapshot and the java file ( http://www.box.net/public/eqznamrazd ). The used heap size swings between 3MB and 5MB. I guess this wont kill so quickly the application but anyway there is something wrong!
    Even properly closed streams, database connections etc.. Really despairing. Could one take a look to the java source?
    some snippets bellow:
    private class MyImageIcon extends ImageIcon {
            public MyImageIcon(Image img){
                super(img);
            public void removeImage(Image anImage){
                tracker.removeImage(anImage);
    private class DetailDialog extends javax.swing.JFrame {
            private String personnr;
            private MyImageIcon icon;
            public DetailDialog(String personnr,MyImageIcon icon){
                this.personnr = personnr;
                this.icon = icon;
            public void dispose() {
                if(icon != null){
                    icon.removeImage(icon.getImage());
                    icon.getImage().flush();
                    icon = null;
                super.dispose();
    private class Person extends Object {
            private MyImageIcon icon;
            private String number;
            private DetailDialog detailDialog;
            protected void destroy() {
                if(icon!=null){
                    icon.removeImage(icon.getImage());
                    icon.getImage().flush();
                    icon = null;
                if(detailDialog!=null){
                    detailDialog.dispose();
    private Image LoadImageFromDB(String personnr){
            Image img = null;
            String filename = personnr + ".jpg";
            Connection con = getMysqlConnection();
            Statement stmt;
            ResultSet rs;
            try {
                stmt = con.createStatement();
                String query = "select * from personImage where image='"+filename+"'";
                rs=stmt.executeQuery(query);
                if(rs.next()){
                    int len=rs.getInt(2);
                    byte [] b=new byte[len];
                    InputStream in = rs.getBinaryStream(3);
                    try {
                        in.read(b);
                        in.close();
                        img =
                                java.awt.Toolkit.getDefaultToolkit().createImage(b);
                    } catch (IOException e) {
                        e.printStackTrace();
                rs.close();
                rs = null;
                stmt.close();
                stmt = null;
                con.close();
                con = null;
            } catch (SQLException e) {
                e.printStackTrace();
            return img;
    public void random(){
            java.sql.ResultSet rs = null;
            java.sql.Statement stmt=null;
            java.sql.Connection con = getSybaseConnection();
            try {
                try {
                    stmt = con.createStatement();
                    rs = stmt.executeQuery(randomquery);
                    while(rs.next()){
                        Person person = new Person();
                        person.number = rs.getString("PersonNr");
                        Image img = LoadImageFromDB(person.number);
                        if(img !=null){
                            MyImageIcon ico = new MyImageIcon(img);
                            person.icon = ico;
                        person.detailDialog = new
                                DetailDialog(person.number,person.icon);
                        personList.add(person);
                        System.out.println("Container size: " +
                                personList.size());
                        counter++;
                    if(counter%20 == 0){
                        for(Person p : personList){
                            p.destroy();
                        personList.clear();
                        System.gc();//no need, but I force for this example
                        System.out.println("Container cleared, size: " +
                                personList.size());
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }finally{
                    if(rs != null){
                        rs.close();
                    }if(stmt != null){
                        stmt.close();
                    }if(con != null){
                        con.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
        }

  • PosgreSQL LAN-Based Swing Application

    is it possible to create a lan-based swing application with database connectivity?
    how?
    thanxx

    flor.jerico.m wrote:
    is it possible to create a lan-based swing application with database connectivity?
    how?
    thanxxYou mean swing application(s) on various hosts pointing to same database ?
    http://jdbc.postgresql.org/doc.html
    check out jdbc url
    jdbc:postgresql://host/database
    jdbc:postgresql://host:port/database

  • BackGround picture for a Swing application??

    hi,
    once I got a nice idea while watching some webpages. we can give a background picture for a webpage in <body> tag?
    I want to do same thing for any Swing application. Currently I am working on that issue. Any suggestions are welcome!!
    santhosh

    Hi everybody!
    Finally I got it. now Using this We can enable background for any swing application.
    the complete code is shown here. If you have any problems regarding this code, please mail to [email protected]
    /******************************[TexturedImageIcon.java]***********************/
    import java.net.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.awt.image.*;
    import javax.swing.*;
    /* this is used to generate a tiled image from a given image file.*/
    public class TexturedImageIcon extends ImageIcon
         private Dimension size = new Dimension(10, 10);
         BufferedImage bimg1,bimg;
         Graphics2D g2;
         ComponentListener cl = new ComponentAdapter(){
              public void componentResized(ComponentEvent ce){
                   Component c = (Component)ce.getSource();
                   size = c.getSize();
                   createImage();
         public void setImage(String filename){
              super.setImage(new ImageIcon(filename).getImage());
              bimg1=null;
              createImage();
         public TexturedImageIcon(Component comp, Image img){
              super(img);
              addListener(comp);
         public TexturedImageIcon(Component comp, String filename){
              super(filename);
              addListener(comp);
         public TexturedImageIcon(Component comp, URL url){
              super(url);
              addListener(comp);
         private void addListener(Component comp){
              comp.addComponentListener(cl);
         private void createImage(){
              bimg = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
              g2 = bimg.createGraphics();
              Rectangle2D rect = new Rectangle2D.Float(0,0,size.width-1, size.height-1);
              Rectangle2D tr = new Rectangle2D.Double(0,0,super.getIconWidth(), super.getIconHeight());
              if(bimg1==null){
                   bimg1 = new BufferedImage(super.getIconWidth(), super.getIconHeight(), BufferedImage.TYPE_INT_RGB);
                   Graphics2D g = bimg1.createGraphics();
                   g.drawImage(super.getImage(), null, null);
              TexturePaint tp = new TexturePaint(bimg1, tr);
              g2.setPaint(tp);
              g2.fill(rect);
         public int getIconWidth(){ return size.width; }
         public int getIconHeight(){ return size.height; }
         public Image getImage(){
              System.out.println("asked");
              return bimg;
         public void paintIcon(Component c, Graphics g, int x, int y){
              Graphics2D g2d =(Graphics2D)g;
              g2d.drawImage(bimg, null, null);
         public static void main(String[] args){
              JFrame f = new JFrame();
              f.setSize(300,300);
              JLabel label = new JLabel();
              label.setBackground(Color.white);
              label.setBorder(BorderFactory.createRaisedBevelBorder());
              label.setIcon(new TexturedImageIcon(label, "world2.gif"));
              f.getContentPane().setLayout(new BorderLayout());
              f.getContentPane().add(label, BorderLayout.CENTER);
              f.show();
    /*********************************[JFCUtils.java]************************/
    /*The main logic to enable background picture lies in this class*/
    public class JFCUtils{
         public static ContainerListener cl = new ContainerAdapter(){
              public void componentAdded(ContainerEvent ce){
                   JComponent child = (JComponent)ce.getChild();
                   child.setOpaque(false);
                   child.addContainerListener(this);
                   addlisteners(child);
         public static TexturedImageIcon enableBackGround(JFrame f, String filename){
              ((JPanel)f.getContentPane()).setOpaque(false);
              JLayeredPane lp = f.getLayeredPane();
              JLabel label = new JLabel();
              TexturedImageIcon icon = new TexturedImageIcon(label, filename);
              label.setIcon(icon);
              JPanel panel = new JPanel(new BorderLayout());
              panel.add(label, BorderLayout.CENTER);
              lp.add(panel, new Integer(Integer.MIN_VALUE));
              Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
              panel.setBounds(0, 0, screen.width,screen.height);
              addlisteners((JComponent)f.getContentPane());
              return icon;
         private static void addlisteners(Component c){
              c.toString();
              if(c instanceof JComponent) ((JComponent)c).setOpaque(false);
              if(c instanceof Container){
                   Container ct = (Container)c;
                   ct.addContainerListener(cl);          
              for(int i=0; i<ct.getComponentCount(); i++){ //recursivly make all subcomponents transparent
                   Component child = (Component)ct.getComponent(i);
                   addlisteners(child);
         public static void main(String[] args){
              JFrame f = new JFrame();
              enableBackGround(f, "bg.jpg");
              JButton b = new JButton("fdfdfdfd");
              f.getContentPane().add(b, BorderLayout.NORTH);
              f.setSize(300,300);
              f.show();
    /*************************************[UserDialog.java]**************************/
    //to check how a swing application with background looks like
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class UserDialog extends JDialog
         JPanel contents = (JPanel)getContentPane();
         JTextField shortField = new JTextField(20);
         JTextField nameField = new JTextField(20);
         JTextField emailField = new JTextField(20);
         JTextField smtpServerField = new JTextField(20);
         JTextField pwdField = new JPasswordField(20);
         JTextField pwdField1 = new JPasswordField(20);
         boolean okay = false;
         public UserDialog(JFrame owner){
              super(owner, "New User Details", true);
              initComponents();
              pack();
              setResizable(false);
         public UserDialog(JDialog owner){
              super(owner, "New User Details", true);
              initComponents();
              pack();
              setResizable(false);
         private void initComponents(){
              JPanel west = new JPanel(new GridLayout(0, 1));
              west.add(new JLabel("Short Name"));
              west.add(new JLabel("Full Name"));
              west.add(new JLabel("Email"));
              west.add(new JLabel("SMTP Server"));
              west.add(new JLabel("Password"));
              west.add(new JLabel("Confirm Password"));
              JPanel east = new JPanel(new GridLayout(0, 1));
              east.add(shortField);
              east.add(nameField);
              east.add(emailField);
              east.add(smtpServerField);
              east.add(pwdField);
              east.add(pwdField1);
              JPanel south = new JPanel();
              JButton ok = new JButton("Ok");
              JButton cancel = new JButton("Cancel");
              south.add(ok);
              south.add(cancel);
              contents.setBorder(JFCUtils.border);
              contents.setLayout(new BorderLayout(10, 10));
              contents.add(west, BorderLayout.WEST);
              contents.add(east, BorderLayout.EAST);
              contents.add(south, BorderLayout.SOUTH);
              ActionListener al = new ActionListener(){
                   public void actionPerformed(ActionEvent ae){
                        okay = ae.getActionCommand().equals("Ok");
                        setVisible(false);
              ok.addActionListener(al);
              cancel.addActionListener(al);
         private void clearFields(){
              shortField.setText("");
              nameField.setText("");
              emailField.setText("");
              smtpServerField.setText("");
              pwdField.setText("");
              pwdField1.setText("");
         public User getUser(){
              clearFields();
              okay = false;
              show();
              if(okay) return new User(shortField.getText(), nameField.getText(), emailField.getText(), smtpServerField.getText(), pwdField.getText());
              else return null;
         public static void main(String[] args){
              Dialog dlg = new UserDialog();
              TexturedImageIcon ticon = JFCUtils.enableBackGround(f, "bg.jpg");.show();
              //we can change the background picture by calling ticon.setImage(...) at runtime.

Maybe you are looking for

  • Adode Creative Suite 3 Crashing OSX 10.9.1

    I've had Adobe Creative Suite 3 for awhile now (I mainly use Photoshop, Dreamweaver and Illustrator).  And nearly every day, one of my programs crashes while I'm using it.  I've gotten in a habit of saving often to prevent losing anything, but it's j

  • Apple put in a new hard drive, but not the computer is VERY LOUD!

    I just got my 13 month old Intel iMac back from the Apple store -- it needed a new hard drive. When I first turned on the computer, it was very loud, and I thought they gave me someone else's computer by mistake, so I checked the Serial Number, and a

  • How can i obtain HTML code

    Hi, I need obtain the source code of one webpage (the page is http://www.banxico.org.mx/tipcamb/tipCamIHAction.do). Until now, i obtained the source code of pages with the function module SCMS_HTTP_GET_WITH_URL, but this page return the code 404 (Not

  • PSD File Assiciations Fireworks CS3

    Hi Having lots of problems with Fireworks CS3 on PC (XP). Most of these issues I can live with but the main problem is that I just can't get it to associate with PSD files. After trying to do it manually, the Fireworks icon shows on PSD files but whe

  • HOW TO SHOW PLUGS ONLY WHEN TRACK IS SELECTED??

    Hello, I has an m audio axiom pro, and it had a cool feature where when you selected a track in logic the plugs you were using for that track would pop up on the screen, when you went to the next track only that tracks plugs would show.... Is there a