Determining size of CursoredStream

Hello,
we are developing a system using Toplink. One of our functions uses a CursoredStream to read the result set in sections from the server. The data read query is built "manually" due to complexity reasons. The query needs an additional count query to determine the size of the result set. Now we found that the execution of this count query causes a loss of performance. Is there any other way to determine the result set's size avoiding the count query to be executed? We tried to loop through the CursoredStream to count its elements but this is even slower for large result sets...
Any help is appreciated!
Thank you in advance!
Danilo Gld_l

Hello,
thank you for your answer. By now, I tried the following:
(1) Loop through the CursoredStream and count its objects:
     aCursoredStream = (CursoredStream) getClientSession().executeQuery(aReadAllQuery);
     int size = 0;
     aCursoredStream.mark(1);
     while (!aCursoredStream.atEnd()) {
          aCursoredStream.read();
          size++;
     aCursoredStream.setSize(size);
     aCursoredStream.reset();
(2) Loop through the CursoredStream and read its object in sections:
     aCursoredStream = (CursoredStream) getClientSession().executeQuery(aReadAllQuery);
     int size = 0;
     int stepSize = 100; // also tried other values without mentionable performance differences
     aCursoredStream.mark(1);
     while (!aCursoredStream.atEnd()) {
          try {
               aCursoredStream.read(stepSize);
          } catch (QueryException exc) {
               stepSize = stepSize / 2;
               continue;
          size += stepSize;
     aCursoredStream.setSize(size);
     aCursoredStream.reset();
(3) Filter CursoredStream size from Exception message:
     aCursoredStream = (CursoredStream) getClientSession().executeQuery(aReadAllQuery);
     int size = 0;
     int stepSize = Integer.MAX_VALUE - 1;
     // initialize field for "position" attribute of the cursored stream
     Field positionField = null;
     // store page size of cursored stream's policy
     int pageSize = aCursoredStream.getPolicy().getPageSize();
     aCursoredStream.mark(1);
     // set policy's page size to maximal integer to avoid exception when changing position and reading
     aCursoredStream.getPolicy().setPageSize(stepSize + 1);
     try {
          // fetch "position" attribute of the cursored stream and make it accessible
          positionField = aCursoredStream.getClass().getDeclaredField("position");
          positionField.setAccessible(true);
     } catch (NoSuchFieldException exc) {
          exc.printStackTrace();
     // while cursor is not at the stream's end yet (should never happen)     
     while (!aCursoredStream.atEnd()) {
          try {
               // set "position" to actual position (should always be 0) plus step
               // must happen via reflection because there is not any setter available
               positionField.set(aCursoredStream,
                              new Integer(aCursoredStream.getPosition() + stepSize));
               try {
                    // try to read the next element from the stream
                    aCursoredStream.read();
               } catch (QueryException exc) {
                    // exception since stream size is not greater than the initial read size of
                    // cursor policy
                    // reset the cursor and the size counter
                    aCursoredStream.reset();
                    size = 0;
                    // while cursor is not at the stream's end yet
                    while (!aCursoredStream.atEnd()) {
                         // read an element from the stream
                         aCursoredStream.read();
                         // and increment the size counter
                         size++;
                    // leave the outer while loop
                    break;
          } catch (IllegalAccessException exc) {
               exc.printStackTrace();
          } catch (ArrayIndexOutOfBoundsException exc) {
               // exception since element at position of maximal integer does not exist
               // filter size from exception message and leave while loop
               size = new Integer(exc.getMessage().
                              substring(exc.getMessage().lastIndexOf(" ") + 1)).intValue();
               break;
     // if size could be determined, provide it to cursored stream
     if (size != 0) {
          aCursoredStream.setSize(size);
     // reset cursor policy's page size to initial value
     aCursoredStream.getPolicy().setPageSize(pageSize);
     // reset cursor position
     aCursoredStream.reset();
The third option proved to be a little bit faster than the other two. But it is still slower than the COUNT(*) query for large result sets depending on the query. We are talking about result sets comprising some thousand records. Depending on the complexity of the query, the count query takes longer than the data query - for whatever reasons...
The data query always contains several ORDER BY criteria. So, in my opinion, the database has to process the complete result set (or at least all entries of the ORDER BY columns) to correctly sort it. Am I wrong if I assume that it has to know the record count afterwards? My intention is to retrieve this size with the least performance effort...
Nevertheless I will try your suggestion to retrieve the count by executing a ReportQuery. Thank you.
At the moment I am trying to use a ScrollableCursor to retrieve its size as follows:
     if (aScrollableCursor.last()) {
          aScrollableCursor.setSize(aScrollableCursor.currentIndex());
          aScrollableCursorResultSet.setSize(aScrollableCursor.getSize());
          aScrollableCursor.first();
Performance tests are pending...
Danilo Gld_l

Similar Messages

  • Determine size of pdf from spool

    All,
    does anyone know how to determine size of pdf from spool.
    i'm using RSPO_RETURN_ABAP_SPOOLJOB to get pdf file, but i want to know its size.
    any idea?

    Assume the PDF data is in internal table gt_messg_att.
    MOVE p_spoolno TO lv_spoolno.
    * CONVERT THE SPOOL TO PDF
      CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
        EXPORTING
          src_spoolid                    = lv_spoolno
          no_dialog                      = lc_no_dialog
    *     DST_DEVICE                     =
    *     PDF_DESTINATION                =
       IMPORTING
         pdf_bytecount                  = lv_bytecount
    *     PDF_SPOOLID                    =
    *     OTF_PAGECOUNT                  =
    *     BTC_JOBNAME                    =
    *     BTC_JOBCOUNT                   =
       TABLES
         pdf                            = gt_pdf_output
       EXCEPTIONS
         err_no_otf_spooljob            = 1
         err_no_spooljob                = 2
         err_no_permission              = 3
         err_conv_not_possible          = 4
         err_bad_dstdevice              = 5
         user_cancelled                 = 6
         err_spoolerror                 = 7
         err_temseerror                 = 8
         err_btcjob_open_failed         = 9
         err_btcjob_submit_failed       = 10
         err_btcjob_close_failed        = 11
         OTHERS                         = 12
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
    * Transfer the 132-long strings to 255-long strings
        LOOP AT gt_pdf_output INTO wa_pdf_output.
          TRANSLATE wa_pdf_output USING ' ~'.
          CONCATENATE v_buffer wa_pdf_output INTO v_buffer.
          MODIFY gt_pdf_output FROM wa_pdf_output.
          CLEAR wa_pdf_output.
        ENDLOOP.
    * TO CONVERT THE DATA INTO PDF FORMAT ELSE THE PDF FILE
    * WON'T OPEN & REPORT WOULD GIVE A MESSAGE THAT
    * THE FILE IS DAMAGED & COULD NOT BE OPENED
        TRANSLATE v_buffer USING '~ '.
        CLEAR : wa_messg_att,
                gt_messg_att.
        DO.
          wa_messg_att = v_buffer.
          APPEND wa_messg_att TO gt_messg_att.
          SHIFT v_buffer LEFT BY 255 PLACES.
          IF v_buffer IS INITIAL.
            EXIT.
          ENDIF.
          CLEAR wa_messg_att.
        ENDDO.
      ENDIF.
    * Get size of attachment
      DESCRIBE TABLE gt_messg_att LINES lv_cnt.
      READ TABLE gt_messg_att INTO wa_messg_att INDEX lv_cnt.
      lwa_doc_data-doc_size =  ( lv_cnt - 1 ) * 255 + STRLEN( wa_messg_att ).

  • Determining size of objects

    hi , is there any way we can determine the size of objects in java ,like we have sizeof() in C. because till now I have only found functions in runtime class to determie the mem. as total OR max. OR free

    In Java 1.5 is the Instrumentation package which can provide something like Object sizes. Never used it myself, though.

  • Inventory to determine size of a folder on workstation

    I am trying to see if I can determine the size of a folder on an inventoried workstation. I am trying to find a way to determine the size of the GW archive folder (always named of???arc). Is this possible?
    thanks

    What you're asking for is, I think, really outside ZAM's scope. The Collector can indeed return files from a directory on the workstation to the central database, but the size of those files is limited... and for very good reason. Network bandwidth would suffer terribly if every scan resulted in gigs of returned (collected) files, and the database would bloat beyond belief with one copy of each file from each workstation in the enterprise.
    One way to get closer to what you're asking for would be to pipe DIR directly into a file somewhere on the box, then have the scan return that file. The contents of that "DIR" file can be easily displayed from a ZAM Manager (and, I think, the WebConsole... but I'm not terribly familiar with the WC).
    The DIR file (suggested name: DIR.TXT) would contain the full list of those files by name, including their individual and collective sizes.
    ZAM's purpose is automatically inventorying "Products", or "Assets", and not so much "Data" except in the sense of data about those products.
    -- Tim --
    Originally Posted by JFerris
    Agreed...but if I had to go to that much work, why would I need the product at all? I see in reports that I should be able to return the files located in a particular directory (though I haven't been able to get that to actually function). If I can get the list of files and sizes, I'm good. So maybe my question is how do I get a report of files and their sizes in a defined folder?

  • Determining size of pattern tiles in cc 2014

    In previous versions of Photoshop, I could hover my cursor over the small tile window of a pattern and receive the specific size of any given pattern tile. In CC 2014, it doesn't happen. How can I determine the size of a seamless pattern tile I'm using in CC 2014?

    I believe that's a bug in photoshop cc 2014 and hopefully will get fixed in the next update.
    In the meantime you could get the size from the pattern display when using the Paint Bucket Tool set to pattern or Edit>Fill>Pattern.

  • Determining Size of Requests & Responses

    Hi there,
    I'm looking for a reliable and consistent means of determining the size of data transferred between clients and Servlet-based server-side applications over HTTP.
    I've been exploring doing this with a Servlet Filter which would attempt to measure the size of the HttpServletRequest and HttpServletResponse objects passing through it.
    While I've been able to write code to measure the size of an HttpServletRequest (by inspecting headers and body content), doing so for responses appears to be more error prone, because the HttpServletResponse interface does not expose accessors to items such as headers and status messages.
    The only solution I can think of is to use a custom HttpServletResponseWrapper implementation which would track data size of calls to mutator methods such as setHeader() and setStatus().
    However, it's not guaranteed that all of the headers and status messages encapsulated in the response, such as those created by the Servlet Engine itself, will be added through the API (rather than the underlying impl), making this approach error-prone at best.
    Can anyone suggest a more reliable means of measuring the amount of data being transferred between the client and server tiers?
    Any suggestions or comments are greatly appreciated.
    Regards,
    Sasha Haghani.

    Could you not get the content length by extending HttpServletResponseWrapper in this manner:
    public class CustomResponseWrapper extends HttpServletResponseWrapper
    private int contentLength;
    public CustomResponseWrapper(HttpServletResponse response)
    super(response);
    public void setContentLength(int length)
    this.contentLength = length;
    super.setContentLength(length);
    public int getContentLength()
    return contentLength;
    Then after the filter is invoked with doFilter, you could get the content length.
    Apologies if I'm not understanding your situation.

  • Encrypted .dmg - determining size

    When creating an encrypted .dmg - at what point in the process can you determine the size of the initial image so that it will accommodate future additional files?
    Please keep it simple ... and thanks in advance.

    seventy one wrote:
    When creating an encrypted .dmg - at what point in the process can you determine the size of the initial image so that it will accommodate future additional files?
    At the very beginning When you click New Image in the disk utility. You can choose the volume size.
    Just make it large enough.
    You can always create a new, larger encrypted image later and move everything into it.
    Please keep it simple ... and thanks in advance.
    Message was edited by: nerowolfe

  • Determine size of component at runtime

    I'm trying to build a Paginagion component of a fixed size. Meaning the size of the pagination is fixed, however based on the content the number of pages may vary. Further more it should not be defined how much is displayed on a single page.
    The idea is to use text as input and push as much as can be displayed on the page. Factors that have an influence here is font and formatting.
    To determine the page that should be shown I have to figure out the amount of text that can be displayed. To do so I need to know the size of the component containing the text (think Label). The size of the label however is only determined after it is layouted. So here is what I could do:
        @Override
        public void start(Stage primaryStage) {
            Label lbl = new Label("uitroweigudfgf jkfhgklfsjghslkghs kflgskjgh");
            System.out.println(lbl.getWidth()+","+lbl.getHeight());
            lbl.widthProperty().addListener(new ChangeListener<Number>(){
                @Override
                public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
                    System.out.println(lbl.getWidth()+","+lbl.getHeight());
            lbl.heightProperty().addListener(new ChangeListener<Number>(){
                @Override
                public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
                    System.out.println(lbl.getWidth()+","+lbl.getHeight());
            StackPane root = new StackPane();
            root.getChildren().add(lbl);
            Scene scene = new Scene(root, 300, 250);
            primaryStage.setTitle("Hello World!");
            primaryStage.setScene(scene);
            primaryStage.show();
    After the third change I have the dimensions of the label. With this method I would have to push the whole text into labels to figure out how much can be displayed.
    Is there any better method to do this?

    Have not tried that yet, but will hopefully come around to it. I tried to us a size change listener on the label using this base implementation of a ChangeListener:
    package javafxtest.label;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    public class SizeChangeListener implements ChangeListener<Number>{
        private volatile int sizeChangeCounter = 0;
        @Override
        public final void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
    System.out.println("New value: "+newValue+", counter="+sizeChangeCounter);
            if (sizeChangeCounter < 1) { // one change for height one for width
    System.out.println("Increase counter");
                sizeChangeCounter++;
            } else {
                sizeChangeCounter++;
                executeOnSizeChange();
        protected void executeOnSizeChange() {
            while (!stopCriteriumReached()) {
                System.out.println("Execute on after a sizeChange");
        private boolean flag = true;
        protected boolean stopCriteriumReached() {
            flag = !flag;
            return flag;
    And here is the application for testing:
    package javafxtest.label;
    import javafx.application.Application;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.Label;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;
    public class LabelGrowingSizeChangeTest extends Application {
        @Override
        public void start(Stage primaryStage) {
            Label lbl = new Label(" ");
            MySizeChangeListener changeListener = new MySizeChangeListener(lbl, 250);
            lbl.widthProperty().addListener(changeListener);
            lbl.heightProperty().addListener(changeListener);
            StackPane root = new StackPane();
            root.getChildren().add(lbl);
            Scene scene = new Scene(root, 300, 250);
            primaryStage.setTitle("Hello World!");
            primaryStage.setScene(scene);
            primaryStage.show();
        public static void main(String[] args) {
            launch(args);
        private static class MySizeChangeListener extends SizeChangeListener {
            private final Label label;
            private final double width;
            public MySizeChangeListener(Label label, double width) {
                this.label = label;
                this.width = width;
            @Override
            protected void executeOnSizeChange() {
                while (!stopCriteriumReached()) {
    System.out.println("Add text");
                    label.textProperty().concat(" blah");
                    //label.setText(label.getText()+" blah");
    The curious thing is that I get the println from line 48, but the label does not get updated. Has anyone an idea why that is?

  • Determining size of Export to DVD

    I am in Final Cut Express and want to export to Quicktime Movie. Is there a way to see ahead of time how much I can export (my max limit) before I write the audio and video, to see what will fit on one DVD?
    For example, I want to get as much as possible (I have a bunch of raw footage) each time I export so it will fill up one DVD each time I write it. But I'm not sure how to check to see my max amount.

    There isn't any way to see before exporting how big the file will be. However, iDVD doesn't care about the file size, only the length. Any video less than two hours long should fit on one disc, no matter what the size. iDVD will handle the compression internally.

  • # of objects, not the size of the objects, determine size of a Collection

    There are objects, and references to objects.
    Do, List / Set / Map , etc. just maintain a list of 32-bit addresses for their contained objects? What more does a Collection need, memory-wise, to add an element? The size of the objects in a Collection should not matter?
    listA.add(new Integer(2));  // listA size grows by 32-bits
    listB.add(new GiantSizedClass());  // listB size grows by 32-bitsI started thinking about Collections being able to dynamically grow in runtime. I heard this is complex, but it "looks" like all you do is append a memory address and incriment a counter? This sounds quick, easy, and incorrect. I don't understand. Thanks.

    jverd, ejp: you have always been there with quick responses to help me. ejp, i purchased your book "Fundamental Networking in Java". When I start programming again, your book about RMI is on my list. that said.
    with all sincerity. i belived that serliazing objects in byte[] allows for storing objects in objects, not object references in objects. here is my test code (just cut/paste):
    My idea seems similars to me as cryogenics and so that is the theme of my test code (and it is my favourite movie). note: this code is "proof of concept" and is exetremely hacked together.
    public class Test {
      private static HashMap<String, byte[]> barracks = new HashMap<String, byte[]>();
      public static void main(String[] args) {
        try {  new Test().go();  }   catch(Exception e) {  e.printStackTrace();  }
      public void go() throws Exception {
        Employee empl = new Employee("Dallas", "Captain");
        barracks.put(empl.name, cryogenicallyFreeze(empl));
        empl = new Employee("Kane", "Navigator");
        barracks.put(empl.name, cryogenicallyFreeze(empl));
        empl = new Employee("Ripley", "First Officer");
        barracks.put(empl.name, cryogenicallyFreeze(empl));
        empl = new Employee("Ash", "Science Officer");
        barracks.put(empl.name, cryogenicallyFreeze(empl));
        System.out.println("___log file___");System.out.println(".........");
        int id = (int) (System.currentTimeMillis() % barracks.size());
        System.out.println("[Nostromo]: emergency id #"+id+". Re-animation initiated...");
        switch (id) {
          case 0: empl = (Employee) reanimate("Dallas"); break;
          case 1: empl = (Employee) reanimate("Kane"); break;
          case 2: empl = (Employee) reanimate("Ash"); break;
          case 3: empl = (Employee) reanimate("Ripley");
        System.out.println("[Nostromo]: \"" + empl.name + "\" in command.");
        System.out.println("["+empl.name+"]: Hello. I was an object, not a reference, stored in a collection.");
        System.out.println();
        public static Employee reanimate(String name) throws Exception {
            PipedOutputStream pout = new PipedOutputStream();
            PipedInputStream pin = new PipedInputStream(pout);
            byte[] frozenEmpl = (byte[]) barracks.get(name);
            pout.write(frozenEmpl);
            ObjectInputStream ois = new ObjectInputStream(pin);
            return ((Employee) ois.readObject());
        public static byte[] cryogenicallyFreeze(Employee emp) throws Exception {
            PipedOutputStream pout = new PipedOutputStream();
            PipedInputStream pin = new PipedInputStream(pout);
            ObjectOutputStream oos = new ObjectOutputStream(pout);
            oos.writeObject(emp);
            byte[] frozenEmpl = new byte[pin.available()];
            pin.read(frozenEmpl);
            return frozenEmpl;
          public static class Employee implements Serializable {
            String name; String title;
            Employee(String n, String t) {  name = n; title = t;  }
    }"inside" of each byte[] object is an "Employee" object? I can't see it any other way. But I am not the sharpest pencil in the drawer...I'm on vacation from coding for a while. maybe i will get it when i start again. thanks.
    Edited by: rdkh on Jan 29, 2010 3:53 AM

  • Determine size of tables/tablespaces on disk using EM

    Hi,
    I now have access to 10g Enterprise Manager - newbie.
    Usually use user-segments to find size of table/tablepace on disk.
    Is there a way to do this uisng Enterprise Mnager?
    Thanks

    For tables:
    Login->Schema->Tables->'Select Schema'->Go-> You will see all the tables -> Click on the table you want to see all the information.
    For tablespaces:
    Login->Server->Tablespaces->You will all the tabespaces.
    Just Explore the EM, you will find everything.

  • Determining size of email before downloading?

    Hello,
    i would like to get the size of the email, before i fetch them. Some Email-clients show a progress of the downloading. I haven't found out, how to do this with javamail. Is it possible?
    Tobias

    No, it gets the size prior to downloading the whole message. The Message object will be header info only until you ask for the body info. This is what the api doc claims and what I have verified via packet sniffing.

  • How to determine the  Benefit Salary based on P0168-BPLAN?

    Hi All,
    My requirement is calculation of Benefit salary .As per the Functional Spec ,First I have to retrieve info type PA0168
    record in effect as of the system date where P0168- BPLAN = one of the STD Plan on ed on the selection screen.  Using the system date as the Calculation Date, use the same logic as the I/T168 screen does to determine Benefit Salary. 
    My Doubt here is how the I/T168 screen  determines Benefit Salary?
    Please update me with your idea how can I determine the benefit Salary based on the PA0168 record.
    Thanks a lot,
    Srinivas.

    Payload size is not the only factor while determining size of the system (h/w). You need to consider number of services, nature of services (sync/async), payload size, frequency of messages (load), peak load value, security constraints, performance requirements etc..
    You may contact your local Oracle Sales Representative/ Oracle Support to get help in determining size of the system. They will provide you a sizing questionarre and on the basis of that they may suggest sizing as well (Oracle has an internal tool for proposing sizing)
    Regards,
    Anuj

  • Determing JavaFX Chart Size using FXML

    Hello Guys,
    I'm working on a value marker for a line chart in JavaFX 2.2. I therefore used the answer on an existing question on stackoverflow and the example by Sergey Grinev is working fine. However, if I want to use FXML to add a chart instead of adding it hardcoded I have problems determing the size of the chart's background.
    I moved the initialization of the chart and the valueMarker to the initialize() method which the FXMLLoader automatically calls after the root element has been processed (see the note in the JavaFX Documentation). But if I now use the following code to determine the size of the chart's background it returns just 0.0 for every bound value:
    Node chartArea = chart.lookup(".chart-plot-background");
    Bounds chartAreaBounds = chartArea.localToScene(chartArea.getBoundsInLocal());
    The exact same code in the updateMarker() method returns the determined size of the chart's background on the second call. On the first call the bounds are set, but minX isn't correct. Here is my code:
    public class LineChartValueMarker extends Application {
       @FXML
       private LineChart<Number, Number> chart;
       @FXML
       private Line valueMarker;
       @FXML
       private NumberAxis yAxis;
       private XYChart.Series<Number, Number> series = new XYChart.Series<>();
       private void updateMarker() {
       Node chartArea = chart.lookup(".chart-plot-background");
       Bounds chartAreaBounds = chartArea.localToScene(chartArea
       .getBoundsInLocal());
       // SIZE OF THE CHART IS DETERMINED
       System.out.println(chartAreaBounds);
      valueMarker.setStartX(chartAreaBounds.getMinX());
      valueMarker.setEndX(chartAreaBounds.getMaxX());
       public void initialize() {
      series.getData().add(new XYChart.Data(0, 0));
      series.getData().add(new XYChart.Data(10, 20));
      chart.getData().addAll(series);
       // add new value on mouseclick for testing
      chart.setOnMouseClicked(new EventHandler<MouseEvent>() {
       @Override
       public void handle(MouseEvent t) {
      series.getData().add(
       new XYChart.Data(series.getData().size() * 10,
       30 + 50 * new Random().nextDouble()));
      updateMarker();
       // find chart area Node
       Node chartArea = chart.lookup(".chart-plot-background");
       Bounds chartAreaBounds = chartArea.localToScene(chartArea
       .getBoundsInLocal());
       // SIZE AND POSITION OF THE CHART IS 0.0
       System.out.println(chartAreaBounds);
       @Override
       public void start(Stage stage) throws IOException {
       FXMLLoader loader = new FXMLLoader();
       InputStream in = this.getClass().getResourceAsStream(
       "LineChartValueMarker.fxml");
      loader.setBuilderFactory(new JavaFXBuilderFactory());
      loader.setLocation(this.getClass().getResource(
       "LineChartValueMarker.fxml"));
       Pane pane = (Pane) loader.load(in);
       Scene scene = new Scene(pane);
      stage.setScene(scene);
      stage.show();
       public static void main(String[] args) {
      launch();
    I added upper case comments on the position in the code where I print the bounds (and I removed the update of the Y coordinate of the valueMarker). Here is the output:
    BoundingBox [minX:0.0, minY:0.0, minZ:0.0, width:0.0, height:0.0, depth:0.0, maxX:0.0, maxY:0.0, maxZ:0.0]
    BoundingBox [minX:45.0, minY:15.0, minZ:0.0, width:441.0, height:318.0, depth:0.0, maxX:486.0, maxY:333.0, maxZ:0.0]
    BoundingBox [minX:37.0, minY:15.0, minZ:0.0, width:449.0, height:318.0, depth:0.0, maxX:486.0, maxY:333.0, maxZ:0.0]
    The first output line comes from the initialize() method, the second line from the first call of updateMarker() (first mouseclick on the graph) and the third line from the second call of updateMarker() (second mouseclick on the graph) which finally returns the correct bound values of the chart's background.
    Now my question: How or when can I determine the correct size of the chart's background (best in the initialize() method)? I hope there's someone who can help, because I have no explanation for this behavior. Thank you!

    Thanks! Yes, indeed, that would work in that scenario. Although, I see now that I have to add more complexity in that I want to display multiple logical series. In other words, using the above as one logical series.  So, what I did was this:
    <...more code above here...>
    chart.setData(chartDataList);
    List<String> chartSeriesList = new ArrayList<String>();
    for (int i = 0; i < chartDataList.size(); i++) {
        Series<Number, Number> s = chartDataList.get(i);
        String seriesName = s.getName();
        if (!chartSeriesList.contains(seriesName)) {
            chartSeriesList.add(seriesName);
        s.getNode().getStyleClass()
            .removeAll("default-color0", "default-color1",
                        "default-color2", "default-color3",
                        "default-color4", "default-color5",
                        "default-color6", "default-color7");
    for (int i = 0; i < chartSeriesList.size(); i++) {
        String name = chartSeriesList.get(i);
        for (int j = 0; j < chartDataList.size(); j++) {
        Series<Number, Number> s = chartDataList.get(j);
            if (s.getName().equals(name)) {
                s.getNode().getStyleClass().add("default-color" + (i % 8));
                logger.debug("j="+j+", i="+i+", name="+s.getName() + ", default-color"+(i % 8));
    This works well to set all of the chart lines to the same color for a set of data series with the same name. However, now the dilemma is that the color of the chart line symbols don't match the lines.
    How can I coordinate the color of the symbols in the same manner?
    Message was edited by: 9686a1cf-675c-473c-8e15-7b5b929ef004

  • How to determine the hardware requirements based on the Services' payload

    hello,Guys
    i am wondering if i can calculate the hardware requirements based on the services' payload ?
    what factors should i consider when to determine the hardware requirements?
    is there any documents related to my questions? ;)
    Thanks
    Regards
    Wen

    Payload size is not the only factor while determining size of the system (h/w). You need to consider number of services, nature of services (sync/async), payload size, frequency of messages (load), peak load value, security constraints, performance requirements etc..
    You may contact your local Oracle Sales Representative/ Oracle Support to get help in determining size of the system. They will provide you a sizing questionarre and on the basis of that they may suggest sizing as well (Oracle has an internal tool for proposing sizing)
    Regards,
    Anuj

Maybe you are looking for

  • HT201398 How do I delete an application - which is no longer visible in itunes or on the device - from ipad

    Hi I am getting an error that an app can not be copied due to an internal error. I have deleted the application from my iTunes library and from my device but when when I do a sync, it still gives me this error.

  • Want to move photo library to external drive

    I want to move the '08 iphoto library to an external drive, as I am running out of space on the iMac. However I have numerous picture folders (2007, 2006, etc) within my 'pictures' folder in addition to the iphoto library. The photos from these folde

  • A bug in the ResultSet.getString method?

    Hi, I am using a 8.1.6 database with UTF8 character set on a Win2000 machine. I've inserted some Hebrew characters into a table, and have been able to read them back properly using SQL+. However, when I try to retrieve these values from a simple Java

  • Pivot a Table Records

    Dear All, Here is my Thread.. I have a one table [ABC] with Column Name [YEAR_MONTH], [RECORD_ID],[SALE],[MANAGER] The Distinct [MANAGER]s are -  [AAA],[BBB],[CCC] & [DDD] I want to pivot a report from TABLE in this way.. Please help..

  • How to setup and run JSP project in BEA Weblogic

    i am trying to run my JSP project located in c:\project. i am actually running it in Tomcat webserver, this time i wanna test it in bea weblogic server, i have downloaded a version 8.1, before purchasing the software for development use, i wanna know