Caching objects in the data cache as a result of an extent.

Patrick -
I wanted to post this since it's related to a question I posted about extents and the data cache on
11/8.
I discovered that the com.solarmetric.kodo.DefaultFetchBatchSize setting affects how many objects
get put into the data cache as a result of running an extent (in 2.3.2). If I have:
com.solarmetric.kodo.DefaultFetchBatchSize=20
then as soon as I execute the second line below:
Iterator anIterator = results.iterator();
Object anObject = anIterator.next();
I see 20 objects in my data cache. In a prior reply you indicated that you were going to check this
behavior in 2.4 so I wanted to send you this additional information. This behavior isn't a problem
for me.
Les

Les,
This is expected behavior -- the DefaultBatchFetchSize instructs Kodo to
retrieve objects from the scrollable ResultSet in groups of 20. So,
getting the first item from the iterator will cause a page of 20 objects
to be pulled from the result set.
-Patrick
Les Selecky wrote:
Patrick -
I wanted to post this since it's related to a question I posted about
extents and the data cache on
11/8.
I discovered that the com.solarmetric.kodo.DefaultFetchBatchSize
setting affects how many objects
get put into the data cache as a result of running an extent (in
2.3.2). If I have:
com.solarmetric.kodo.DefaultFetchBatchSize=20
then as soon as I execute the second line below:
Iterator anIterator = results.iterator();
Object anObject = anIterator.next();
I see 20 objects in my data cache. In a prior reply you indicated that
you were going to check this
behavior in 2.4 so I wanted to send you this additional information.
This behavior isn't a problem
for me.
Les
Patrick Linskey [email protected]
SolarMetric Inc. http://www.solarmetric.com

Similar Messages

  • List of all objects in the data dictionary

    How to capture the list of all objects in the data dictionary named like PSDFDI and verify they are granted to the FDIREADR role

    See the database security guide http://docs.oracle.com/cd/B28359_01/network.111/b28531/authorization.htm#BABFHBFH
    Finding Information About User Privileges and Roles
    This section discusses the system views that have the grant information.
    The tricky part of this is that because roles can be granted to other roles the data is hierarchical.
    So start with the grants made to the FDIREADR role. So referring to the doc above;
    select * from role_role_privs where role = 'FDIREADR'will list the roles granted to your role.
    You will want to look at ROLE_ROLE_PRIVS, ROLE_TAB_PRIVS and ROLE_SYS_PRIVS.
    I suggest you walk thru the views manually to see how the information is related. Then write a test script that queries the views for you.

  • Woke up this am and opened Finder to find no sign of HD icon or a data stick I'd inserted. Couldn't open or eject the data stick as a result. Is there a way around this?

    Woke up this am and opened Finder to find no sign of HD icon or a data stick I'd inserted. Couldn't open or eject the data stick as a result. Is there a way around this? Can I reconfugure my Finder to show the HD Icon and also to display data stick or external drives?

    "Shut Down" the machine (not Sleep), remove the data stick, then power on the machine.

  • Hot to use the data grid to edit column objects

    I have a simple object type:
    CREATE OR REPLACE TYPE TIMESLICE AS OBJECT
    SINCE TIMESTAMP (6),
    UNTIL TIMESTAMP (6)
    And a simple table with one column containing objects of this type:
    CREATE TABLE TABLE1
    COLUMN1 TIMESLICE
    I can insert into the table:
    INSERT INTO SLICES VALUES (timeslice (NULL, NULL));
    But when I try to use the data grid and write there the same string "timeslice (NULL, NULL)" as value I get the following error during commit:
    One error saving changes to table "TABLE1":
    Row 1: ORA-06550: line 1, column 55:
    PL/SQL: ORA-00932: inconsistent datatypes: expected UDT got CHAR
    ORA-06550: line 1, column 7:
    PL/SQL: SQL Statement ignored
    The data grid interprets the value as characters instead of an expression.
    How do I have to enter the object in the data grid?

    Is it possible to access the cache datasource inside the script component which is available in the same data flow task??
    Thanks in advance,
    Saravanan

  • Mismatiching the Data in Reporting level.

    Hi Every One,
    I have ODS like ZMP_REL,THIS ODS FETCHING THE DATA FROM R/3 SIDE.AFTER GETTING THE DATA ,WHEN WE DESIGN A REPORT ON THIS ODS, IN REPORT THE DATA WILL BE MISMATCHED.
    EXAMPLE LIKE:
    I HAVE OBJECT LIKE:  ZADD1
                                        MUMBAI
                                        GOVA
                                        AMERICA..........
    i HAVE ANOTHER OBJECT LIKE:  ZADD2
                                                          CONSUL
                                                          ADD CONSUL....
    THE ABOVE ARE THE TWO OBJECTS ,IN THAT CASE WHEN WE DESIGN A REPORT ZADD1--THIS OBJECT GETTING THE DATA FROM ZADD2. 
    IF ANY ONE KNOWS CAN YOU TELL ME THE EXACT SOLUTION,WITH EXAMPLE.
    REGARDS
    CHETANS.

    Hi.
    This is not correct forum (Business Planning) for such question.
    May I recommend you to post your question to [BI General forum |Business Intelligence Old Forum (Read Only Archive) ;?
    Regards.

  • Is it possible to retrieve the data from maintainance view?

    Hi experts,
    Am facing one problem.
    Is it possible to retrieve the data from Maintainance View ,If yes how?
    IF it is not possible then Y?
    While am trying to retrieve data from maintainance view it's showing message like
    "it is not a database view or table".
    Can u pls give me ans.
    Thanks&Regards,
    Arun.

    Hi Arun,
    It is not possible to retrieve the data from Maintenance view. Maintenance View is different and Database View is different.
    Maintenance view : Maintenance view permits you to maintain the data of an application object together.The data is automatically distributed in the underlying database tables.
    A standardized table maintenance transaction is provided (SM30), permitting you to maintain the data from the base tables of a maintenance view together.
    In other words, Maintenance views enable a business-oriented approach to looking at data, while at the same time, making it possible to maintain the data involved. Data from several tables can be summarized in a maintenance view and maintained collectively via this view. That is, the data is entered via the view and then distributed to the underlying tables by the system.
    Database View: Data about an application object is often distributed on several database tables. A database view provides an application-specific view on such distributed data.A database view is automatically created in the underlying database when it is activated.Database views implement an inner join.If the database view only contains a single table, the maintenance status can be used to determine if data records can also be inserted with the view. If the database view contains more than one table, you can only read the data.
    Database views should be created if want to select logically connected data from different tables simultaneously. Selection with a database view is generally faster than access to individual tables. When selecting with views, you should also ensure that there are suitable indexes on the tables contained in the view.
    Hope this helps.
    Please reward if useful.
    Thanks,
    Srinivasa

  • Setting pl/sql procedure as the data source in a Report Query

    Is there a way to set PL/SQL as the data source in a Report Query? we want to
    able to use the ReportQuery function and query results returned by a PL/SQL procedure.
    thanks

    Not exactly sure what you want to do, but on a ReportQuery you can set either a StoredProcedureCall, or an SQLCall.
    query.setCall(new StoredProcedureCall(...));
    query.setCall(new SQLCall("begin; my_proc(); end"));
    Now, a stored procedure in Oracle cannot return a result, so using a ReportQuery which requires a result may not make sense.
    You could instead use a DataModifyQuery.
    If you return results through output parameters (you must use a StoredProcedureCall for this) you could use a DataReadQuery or a ReadAllQuery/ReportQuery if you wish to build objects from the data.
    James : http://www.eclipselink.org

  • How do I change the date format in Forms Central from mm/dd/yyy to dd/mm/yyy?

    I'm using Forms Central on a Mac and need to convert the US date format to the one used in Australia ie from mm/dd/yyyy to dd/mm/yyyy. I've tried Field properties and can't see any other options. Is there a quick fix somewhere?

    This is covered in the free documentation provided by Adobe for Acrobat JavaScript.
    Acrobat JavaScript documentation
    Use date objects
    Convert the date string to the date object, then use the util.printd method to reformat the date object as needed.

  • Is it proper for an application module has 300 views in the data model?

    Based on my understanding, all view object instances are initialized at the same time as the application module.
    It follows that when an application module is associated with a user session, the queries of each view object in the data model are executed.
    ie. if the data model has 325 view object instances, 325 queries will be executed.
    This doesn't seem efficient:
    1. As each user session only need to access a subset of the view objects (for examples 35 views), the rest of view objects need not be instantiated for that session.
    2. Performance may be slow on executing all 325 queries at one time, even worse when some queries are complex queries.
    Am I correct on this?
    In this case, will it be better to instantiate the view objects using the view object definition at runtime instead of adding all of them to the application module at design time?

    No, that's not the default behaviour.
    Assuming you're talking JDev 11, the AM on it's General tab as a Tuning option where you can set the loading of the VOs to Lazy or Non-Lazy, Lazy is the default. In turn each VO on their General tab also has a Tuning option of similar nature.
    Online documentation says:
    Lazy LoadingSelect to choose lazy loading. In this case, the application module instance is created without any of its components. Your view object and nested application module instances will not load until the first time they are used. For example, when lazy loading is enabled, a view object is instantiated only when the application accesses it. This will make start-up time faster.
    Non-lazy Loading
    Select to choose non-lazy loading. Your view object and nested application module instances will load when the application starts up. For example, suppose the application module you are editing defines three view objects and two nested application modules (which appear in the Application Module Instance section of the Data Model page over the application module overview editor). When lazy loading is disabled, the application module instance is created together with all three view objects and both nested application modules.>
    So in essence as you describe for each session, if we're using the Lazy setting, even though you have 325 VOs within an AM, if the user within the session only visits 35 queries, only 35 queries should fire.
    Does this help?
    CM.

  • How to reference layout object in the program unit?

    Hi Everyone
    I am trying to change the outcome of the result for a field- F_Test_Result1, so i create a format trigger for it, the code is showed at below:
    function F_Test_Result1FormatTrigger return boolean is
    begin
    if F_TEST_Result1 = '0'     then
         F_Test_Result1 := 'Pass';
    end if;
    return (TRUE);
    end;
    but the report builder return error said F_TEST_Result1 is not defined yet. so how do i refer these layout object and data object(from the data model) in trigger?
    Thank you
    Bryan
    Edited by: Bryanevil on Apr 22, 2009 8:50 PM

    Hello,
    I suggest to Create a Formula Column in the group containing the column PASS_FAIL_SUMMARY
    and use a PL/SQL code like this for the Formula Column :
    function CF_1Formula return Char is
    begin
    if :PASS_FAIL_SUMMARY = '0' then
    return ('pass');
    else
    return('--');
    end if;
    end;
    Then, set this Formula Column as Source for the field in the layout .
    Regards

  • Does the data selection on an infopackage only allow a range

    Will the data selection tab on an infopackage allow for multiple single values or just a range?  I have a routine that loads speciific plants.  I'm not getting an error but when I run the infopackage but it seems to be grappbing data for all plants

    It will allow multiple selections..
    You need to place the cursor on the required object  in the data selection field, and then click on + (Plus) icon at the bottom this bill bring one more entry for the same object.
    Like this you can make multiple times to maintain the multiple Selections..
    Hope this helps..

  • How to pass the data from a pop up window to the parent window

    Hi All,
    I have a jsp page which contains a add button, while clicking it a popup will come out(which is a another jsp page). There are some input fieldsand a submit button. Now how could I send the data from the pop up to the parent winow. Also I have to check that if the pop up is open and I click add button then another pop up must not open.
    Plz reply its urgent
    Thanks and Regards
    Rajib Sharma

    Thanks for the reply
    But it not worked
    I have a jsp page and the popup is also a jsp page the data that is passed from the popup window to the parent must be send to the server from the parent window to get a data from the data base as search result. Its of no use to get it as js data
    Thanks and regards
    Rajib Sharma

  • How does the data inserted after a delete command

    Hi Folks,
    I have a question regarding a scenario. I deleted some data from a table ( i use the where clause to delete a portion of rows from the table). So after the rows are deleted the space is free but below the high water mark. When i insert new rows in the same table, then where from oracle fetches the space:
    A. Will it use the space that is freed up by deleted the rows
    B. Use the space above the high water mark. ( If it uses this space then Lets say all the extents are completed and we dont have any extents above the high water mark, then will it use the space freed by the deleted rows or will it complain for the addiditional space)
    Please advice.
    Also I would appriciate if you could give me a link for a documentation for the above scenerio.
    Thanks in advance
    Karthik

    A. Will it use the space that is freed up by deleted
    the rows That depends, it's controled by PCTUSED and PCTFREE parameter as described below. Also the free space need to be big enought to hold the new row.
    The PCTUSED Parameter
    The PCTUSED parameter sets the minimum percentage of a block that can be used for row data plus overhead before new rows are added to the block. After a data block is filled to the limit determined by PCTFREE, Oracle considers the block unavailable for the insertion of new rows until the percentage of that block falls beneath the parameter PCTUSED. Until this value is achieved, Oracle uses the free space of the data block only for updates to rows already contained in the data block.
    B. Use the space above the high water mark. ( If it
    uses this space then Lets say all the extents are
    completed and we dont have any extents above the high
    water mark, then will it use the space freed by the
    deleted rows or will it complain for the addiditional
    space)
    When Extents Are Allocated
    When you create a table, Oracle allocates to the table's data segment an initial extent of a specified number of data blocks. Although no rows have been inserted yet, the Oracle data blocks that correspond to the initial extent are reserved for that table's rows.
    If the data blocks of a segment's initial extent become full and more space is required to hold new data, Oracle automatically allocates an incremental extent for that segment. An incremental extent is a subsequent extent of the same or greater size than the previously allocated extent in that segment.
    Please advice.
    Also I would appriciate if you could give me a link
    for a documentation for the above scenerio.
    check Oracle Concept for more detail,
    Data Blocks, Extents, and Segments

  • Client automatically cache the data got from cache server?

    Hi expert,
    I have 2 questions about the client local cache. Would you please help to give me some suggestion?
    1. Will client automatically locally cache the data got from cache server the first time and automatically update the data in local cache when getting the same data from cache server again? I go through the API reference but cannot find any API to query the data currently cached in the local cache.
    2. If client will automatically cache the data got from cache server. Is there any way for a client to get the data event that happens to its local cache, such as entry created in local cache, entry deleted from local cache and entry updated in local cache? In my opinion, when getting an entry from cache server the first time, the MapListener's entry create event should be triggered. When getting the same entry again, the entry update event should be triggered.
    However, I have tried a client with replicated cache, a client with partitioned cache, an extend client with remote cache and a client with local cache(front cache part of near cache), the client (the NamedCache object has been set the MapListener) cannot get any event notification after getting data from cache server. By the way, my listener is OK since when putting data the entry create event and entry update event will be triggered.
    Your suggestion is very appreciated. :)

    Hi
    If I were you I would read this http://download.oracle.com/docs/cd/E14526_01/coh.350/e14510/toc.htm
    and particularly the section about Near Caching here http://download.oracle.com/docs/cd/E14526_01/coh.350/e14510/nearcache.htm#CDEFEAJG
    which is what you are asking about in your question.
    Near Caching is how Coherence stores data in the locally - which is the answetr to your first question. How Near Caching works is explained in the documentation.
    Events, which you ask about in your second question are explained here http://download.oracle.com/docs/cd/E14526_01/coh.350/e14510/delivereventsjava.htm#CBBIIEFA
    It might be that ContinuousQueryCache is closer to what you want. This is explained here http://download.oracle.com/docs/cd/E14526_01/coh.350/e14510/queryabledatafabric.htm#sthref38 A ContinuousQueryCache is like having a sub-set of the underlying cache on the local client which you can then listen to etc...
    JK

  • Lifetime of Object in the Object Cache on selects

    On inserting an object (corresponding to user-defined SQL type), I can use a stack-allocated struct for the object and its indicator structure, and pass these addresses to OCIBindObject.
    But on selecting an object (by value, not ref), the doc says one must let the OCI runtime allocate the object struct and its indicator struct in the Object Cache, and call OCIObjectFree when done with the object. But it's unclear whether one needs to free the object for each row of the result set processed, or only once all rows have been processed.
    By looking at the cache-allocated addresses of the object/indicator structs, it looks like the same "instance" in the cache is re-used for every row (addresses remain the same for every row). This tends to indicate the same object is reused, as opposed to a new one being allocated. I added a single OCIObjectFree after processing all rows, and things look OK... (read no crash, no complain/error from OCI).
    But I feel a little uneasy about this, because unlike in my case, when the object has secondary allocations associated to it (because the type contains strings, collections, or other objects members), if somehow I need to OCIObjectFree for each row, and I don't, then I'm leaking all the secondary storage from previous instances of the object.
    Can someone please shed some light on the subject? I find the OCI doc often a little sketchy on these very important lifetime issues. I'd appreciate some advice from someone with Object-Relational aspects of OCI.
    Thanks, --DD                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    when I have to select objects by value :
    * I let oci allocate objects in the object fetch arrayI don't think we have a choice here in fact. At least the way I interpret the doc.
    * I have different addresses for every entry in the array after the fetchBut even an array fetch is done is a loop. You fetch 10 rows at a time, and you get say 25, so you have 3 iterations / fetches.
    Of course the 10 object entries of a given fetch are different, but is the address of the 6th object the same in the first, second, and third fetch?
    * I call OCIObjectFree() for every entry of the
    array.If I have retreived object based attributes
    from the object, i call OCIObjectFree() on the
    object attributes recursively.To made it easier to understand my question, please find below the pseudo-code of what I'm doing (all error checking and most boiler plate arguments OCI requires are omitted, to concentrate on the control flow and the calls made)
    create type point_typ as object (
      x binary_float, y binary_float, z binary_float
    create table point_typ_tab (
      id number, point point_typ
    struct point_typ { // C-struct matching SQL User Type
        float x, y, z;
    struct point_ind { // indicator structure for point_typ
        OCIInd self, x, y, z;
    static void select_objects() {
        Environment env(OCI_OBJECT);
        env.connect(zusername, zpassword, zdatabase);
        OCIHandleAlloc(OCI_HTYPE_STMT);
        OCIStmtPrepare("SELECT id, point FROM point_typ_tab");
        ub4 id = 0; OCIDefine* define_id = 0;
        OCIDefineByPos(&define_id, 1, &id, sizeof(id), SQLT_UIN);
        OCIDefine* define_pt = 0;
        OCIDefineByPos(&define_pt, 2, 0, sizeof(point_typ), SQLT_NTY)
        OCIType* point_typ_tdo = 0;
        OCITypeByName("POINT_TYP", OCI_DURATION_SESSION,
            OCI_TYPEGET_ALL, &point_typ_tdo);
        point_typ* p_pt = 0;     ub4 pt_size = 0;
        point_ind* p_pt_ind = 0; ub4 pt_ind_size = (ub4)sizeof(point_ind);
        OCIDefineObject(define_pt, point_typ_tdo,
            (void**)&p_pt, &pt_size, (void**)&p_pt_ind, &pt_ind_size);
        sword rc = OCIStmtExecute(0/*row*/);
        while (OCIStmtFetch2((ub4)1/*row*/, OCI_FETCH_NEXT) has data) {
            if (p_pt_ind->self == OCI_IND_NOTNULL) {
                // Use p_pt. Value of p_pt same for all iteration
        OCIObjectFree(p_pt);
        OCIHandleFree(OCI_HTYPE_STMT);
    }As you can see, I do a single OCIObjectFree after the loop, and as mentioned previously, p_pt's value (a point_typ address) remains identical during the iteration, but the values in that memory chunk do change to reflect the various point instances (so each point instance overlays the previous one).
    Are you saying I should be calling OCIObjectFree(p_pt); inside the loop itself?
    And if so, should I call OCIObjectFree(p_pt); even if the indicator tells me the point is atomically null?
    That what I do in OCILIB, and it doesn't seem to leak.Reading your post, I'm unsure you free of points in the array after the loop, or inside the loop. I hope the pseudo-code I posted above help to clarify my question.
    BTW, OCCI is just a wrapper around OCI. Because OCCI
    first releases were buggy (it's getting better) and
    just few compilers (and compilers versions) are
    supported, OCI remains a portable and workable
    solution for dealing with Oracle ObjectsAs I wrote in a separate reply in this thread, I also agree OCI is the way to go, for various reasons.
    Thanks for the post. I'd appreciate if you could confirm or not whether what I'm doing is consistent with what you are doing in OCILIB, now that I'm hopefully made my question clearer.
    Thanks, --DD                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Maybe you are looking for