Maintaining data of view objects in cache memory for repeated usage

Hi,
     We are developing an application which is having around 800 viewobjects that will be used as LOV in different screens. Therefore, it is decided to create a separate project for all such LOV view objects and keep the same in shared scope so that the data can be made availabe across the application.
     The application also communicates with different database schemas based on the logged-in county. For a particular user, LOV view object LovView1 should get the data fetched from Schema1 whereas for user2, the same LovView1 should get the data from Schema2.
     For this, we have created n number of ApplicationModules like AM1, AM2 etc in the project each one being connected to different database. A base application module also has been created and all the county specific AMs extend this base AM. Also all the LOV view object instances are included in this base AM so that they will be available in the county specific AMs also.The entire project is made as an ADF Library jar and this base AM is utilized by other projects for mapping the LOV by attaching the library.
     At runtime, whenever a particular viewobject is accessed, the findViewObject() method of the baseAM has been overridden and the logic is built in such a way to get the logged in user's county code from a session variable and based on the county, the corresponding AM is communicated with and the view object is returned.
     The view objects of the LOV project is used as LOV as well as for doing some other backend processes. In such cases, the view object is obtained and necessary filter conditions are appended to the view criteria and is executed to get the filtered rowset.
Now, my questions are,
1. Is it enough to create the jar for the LOVProject and access the view objects from the same baseAM across the application?
2. I wish to keep all the data in cache memory to avoid repeated DB hits for all the LOV view objects. How it can be achieved? To be more precise, consider two users user1 and user2 logging into the application with different county. When user1 access a LOV viewobject for the first time, data needs to be fetched from the DB, kept in application scoped cache memory and return the rowset. On subsequent calls to the viewobject, the data needs to be retreived from the cache and not from the DB. When user2 also access the same LOV viewobject, the same logic as explained for user1 should happen. How can I achieve this? Actually my doubt is when user2 access, will the data pertaining to user1 remains available in cache? If not, how to make it retain the data in cache?
3. I also wish to append a particular where condition to a viewobject irrespective of other considerations like logged in county, existing view criteria etc.. How can I do this? A separate thread for this requirement has been posted in the forum Including additional where clause conditions to view criteria dynamically
Kindly give me your suggessions.
Thanks in advance.
Regards.

Hi Vijay,
regarding your questions:
1. What is the difference between "TimesTen In-Memory Database" and
"In-Memory Database Cache" in terms of features and licensing model?
==> Product has just been renamed and integrated better with the Oracle database - Times-Ten == In-Memory-Cache-Database
2. Is "In-Memory Database Cache" option integrated with Oracle 10g
installable or a separate installable (i.e. TimesTen installable with only
cache feature)?
==> Seperate Installation
3. Is "In-Memory Database Cache" option same as that of "TimesTen Cache
Connect to Oracle" option in TimesTen In-Memory Database?
==> Please have a look here: http://www.oracle.com/technology/products/timesten/quickstart/cc_qs_index.html
This explains the differences.
4. After integrating "In-Memory Database Cache" option with Oracle 10g, data
access will happen only through Oracle sqlplus or OCI calls. Am I right here
in making this statement?
==> Please see above mentioned papers
5. Is it possible to cache the result set of a join query in "In-Memory
Database Cache"?
==> Again ... ;-)
Kind regards
Mike

Similar Messages

  • How to populate data into view object

    Hi all,
    I am quite new with ViewObject.
    I have one data table which is binding with view object.
    I want to populate data into view object from my managed bean.
    how can i achieve this kind of scenario?
    actually i try to get view object as in the following. but i get only null.
    ViewObject viewobject = DCIteratorBinding.getViewObject();
    With Regards,
    Wai Phyo

    Hi,
    You could use the following code snippet to get handle to view object from the iterator.
    FacesContext fc = FacesContext.getCurrentInstance();
    BindingContainer bindings =
    (BindingContainer)fc.getApplication().evaluateExpressionGet(fc,
    "#{bindings}",
    BindingContainer.class);
    DCBindingContainer bc = (DCBindingContainer)bindings;
    DCIteratorBinding iterator =
    bc.findIteratorBinding("<ITERATOR_ID>");
    ViewObject viewObject = iterator.getViewObject();
         // Perform operations on the view objectThanks,
    Navaneeth

  • Create New Operations for data collection(View Object)

    ADF data collection(View Object) supports Create, CreateInsert, Delete, etc operations.
    And would like to add more operations like clear, etc. How do i create my own operation and add it to data control for all the view objects in the data control.
    Thanks
    JP

    hi esjp2000
    I'm not sure what kind or "clear operation" you are looking for, but I recently asked about a "clear search" in this forum thread:
    " ADF BC : "clear search" using executeEmptyRowSet() "
    ADF BC : "clear search" using executeEmptyRowSet()
    It is about the executeEmptyRowSet() method, and that might not be what you are looking for. (It might not even be what I am looking for because it is undocumented and that is what my question is about and I haven't had an aswer yet.)
    But ... it does provide an example of a "service method" Shay is referring to, in the example application:
    http://verveja.footsteps.be/~verveja/files/oracle/ClearSearchStuff-v0.01.zip
    (So, the specific service method implementation, "ScottServiceImpl.executeEmptyRowSetOnEmpWithParamsVOVI()" in the example, would be different in your case, depending on the specific "clear operation" you are looking for.)
    success
    Jan Vervecken

  • What kind of view object should I create for this data model?

    I have an entity that has several dates. The dates are stored in a table separate from the entity, each entity date has a date type (open, close, interview, etc) associated with it. The DBAs idea (who else of course!) was to have the flexibility to add new types of dates for entities when needed.
    So you have tables like this -
    Table: EntityTable
    Columns: EntityId, EntityName
    Table: DatesTable
    Columns: EntityId, Date, DateTypeCd
    I need to display an editable ADF form where I can update the entity and the entity dates
    The ADF form would contain something like this -------
    Entity Name: []
    Opening Date: []
    Closing Date: []
    Interview Date: []
    What kind of view object would I need to create to achieve this?

    That would be a master-detail relation 1-* between 'entity' and 'entity dates'. If your dba has set up the foreign key association in the db and you use the wizard to create the business objects, jdev pick up the relation and create the correct master detail relation in the vo layer for you.
    By the way naming a table 'entity' is not a good idea when working with ADFbc. We all talk about entities when we relate to a business object (in this case a row of a table or entity object or EO). So it's hard to distinguish the two, your specific table 'entiyt' and the common term entity or EO which can be a row of any table.
    Timo

  • Fails to update data during view object test

    Hi, I'm using:
    Postgresql w/JDBC drivers
    Jdeveloper 10g
    I created entities and associations for my tables, and now I created a view object, assigned it to application module and run it.
    It shows the data properly, but when I try to commit a change, it gives me:
    Business Component Browser - oracle.jbo.DMLException
    (oracle.jbo.DMLException) JBO-26041: Failed to post data to database during "Update": SQL Statement "UPDATE PUBLIC.SIGNON Signon SET username=? WHERE username=?".
    ----- LEVEL 1: DETAIL 0 -----
    (java.sql.SQLException) ERROR: parser: parse error at or near "Signon" at character 22
    Any idea what I'm doing wrong?

    You're hitting Bug# 3537056. Contact worldwide support and they have a one-off patch for this that they can supply for you. The issue is related to lack of support in your database for a table alias in the update statement.

  • Getting data from view object into backing bean

    Hi,
    My requirement is explained below -
         I have a ADF editable table in a jsf page which is connected to backend database table. In the table there are 6 columns and only 2 are editable. So when user inputs a value in first input column an event is triggered such that the data for all the remaining columns should be fetched from another database table.
    Typically if we are not using ADF development environment. We would have had a simple business method which creates the sql query by taking the input from textbox with simple where clause and I would have got the data. I am not getting any idea how to do this in ADF. I have the second table as view object but how to access the view object from backing bean and get data based on the input given.

    Hi,
    step 1) Expose a method on the ViewObject Impl class
    step 2) define arguments for the method as needed to identify the row to read data from
    step 3) retrieve the row from the VO that holds the data you want to add and return a HashMap with this information
    step 4) expose the method on the client interface (Java menu selection on the View Object)
    step 5) In the PageDef file, create a method binding to the method you exposed on the ViewObjectImpl
    step 6) Call the method binding from the managed bean like
    OperationBinding getDataFromVO = (OperationBinding) BindingContext.getCurrent().getCurrentBindingsEntry().get("Name of method binding);
    getDataFromVO.getParamsMap().put("name of arguments1", value1);
    getDataFromVO.getParamsMap().put("name of arguments2", value2);
    Object retData = getDataFromVO.execute();
    if(retData != null && getDataFromVO.getErrors().size()==0){
      HashMap retDataMap = (HashMap) retData;
    ... follow the rest of your logic ....
    Frank

  • Error while writing data to View Object programmetically

    Hi,
    I want to create a poplist with dynamic values.
    For the same,
    I have created a View Object(CustomVO) using the VO wizard.The view object does not have a datasource.I have added 2 transient attributes(TubeCode and TubeName).The viewobject is attached to a poplist.
    The custom method written in the AM is as follows.
    OAViewObjectImpl vo = this.getCustomVO1();
    Row row = vo.createRow();
    row.setAttribute("TubeCode","SS");
    row.setAttribute("TubeName","Stainless Steel");
    vo.insertRow(row);
    row.setNewRowState(Row.STATUS_INITIALIZED);
    I have attached the AM to the PageLayoutRN and display/value attributes to the poplist and the AM custom method is invoked in the controller.(Process Request)
    When I run the page I get the following error and poplist does not contain the values.Please help me to sort it out
    oracle.jbo.ReadOnlyViewObjectException: JBO-25016: View object CustomVO1 is read only.
    thanks,
    Gowtam

    Hi,
    I set the Updateable property of view attributes to "Always".
    It was set to "Never" by default.
    The poplist is populated successfully.
    thanks,
    Gowtam.

  • Export report Excel-Data Only works not,'not enough memory for operation'

    Hi all,
    we are using in our Software CrystalReport Version 11 Service Pack 5. Crystal report is intergated for .NET. We can not uninstall CrystalReport Version 11 Service Pack 5 to install another Version or another Service Pack.
    We are haveing problems to export report as Excel 97-2000 Data Only, "not enough memory for operation" message pop up after you try to export report as Excel data Only.
    Export Report as PDF is working fine.
    This problems are on Windows XP Sp3 and Vista. On Windows 7 we have no problem.
    Please, can somebody help me solving this problem, or to finde a workaround for Windows XP. Memory from PC is not the problem.
    Mit freundlichen Grüßen / Kind regards
    Odisej Nujiq

    Odisej, unfortunately, processes such as remote sessions are reserved for phone cases only. You can create a phone case here;
    http://store.businessobjects.com/store/bobjamer/en_US/pd/productID.98078100?resid=S6I@hgoHAkEAAGsiyVkAAAAR&rests=1282226845369
    Also, just as an FYI, see the blog [What are these 'support' forums good for anyhow?|/people/ludek.uher/blog/2011/04/07/what-are-these-support-forums-good-for-anyhow]
    Without phone support, you are left to do most of the foot work your self. On the forums, we can provide suggestions and guidance, but that is about it.
    Couple of things to note though. If you do create a phone case, one of the 1st things that you will be asked is to update your app to SP6 - unless you can prove the same issue exists with SP6 (see more bellow).
    Something I would recommend you try is to take an XP box, install SP6 on it, then install your app on it. If this works, your options are highly limited. E.g.; SP6...
    One other utility that may be worthwhile to use is [Process Monitor|http://technet.microsoft.com/en-ca/sysinternals/bb896645.aspx]. Run that on the XP box. In the logs, look for "Access Denied" error messages. Look for load or other issues with crxf_xls.dll, exportmodeller.dll and crtslv.dll.
    From your responses I am still not sure if you actually did run Modules and compared the results. This is much, much easier to do than working with ProcMon and I'd start there. To summarize, my troubleshooting plan (irrespective of the limits imposed on you) would be:
    1) Use Modules as this is the easiest thing you can do
    2) Try this with SP6 - more work that (1) above, but at least you are on the latest. If this works, banging your head into an SP5 wall will do you no good (like I said, irrespective of what ever limits...)
    3) Use ProcMon - not too difficult, but time consuming as you will be looking over 100s, possibly 1000s of lines and not being familiar with details of CR, this will take time.
    - Ludek

  • How to block first time loading data in View Object for searching

    hi all,
    I am using jdeveloper ADF 11g 2 release. i am making search page. but i make it manually, not use ADF query pannel.
    I drag and drop the adf read only table. it can execute using Lov and date time range using backing bean.
    eg: vo1.setWhereClause(whereClause);
    vo1.executeQuery();
    where clause can change dynamically.
    But my table indicate vo which load it all data first time page loading. I add all tuning performance,but no data option is for insert only. so like that option can make programmatically and can execute query??
    This method I used because of I can not make searching options what I want in ADF query pannel. Is there any way add 3 options but display all table fields??
    hoping help anyone.,thks

    Akash ,
    thanks ur reply.
    how to call that method? I made this method in my AppImpl class
    public void loaddata(){
    ViewObject viewObject = this.findViewObject("EstimateSearchDet_VO1");
    viewObject.executeEmptyRowSet();
    then in my backing bean make this after phase method..
    public void view_afterPhase(PhaseEvent phaseEvent) {
    // Add event code here...
    EstimateSearch_AMImpl amob= new EstimateSearch_AMImpl();
    amob.loaddata();
    BUT it say loaddata() can not find? what should i do?
    in view property After phase include this..
    #{backingBeanScope.backing_EstimateSearchnew.view_afterPhase}
    it is underline and say After phase is not define property.
    thks

  • Deletion of data in buffer and in cache memory

    Hi Friends,
    Can any one please tell me how to delete the data in buffer (bi server ) and in cache also.
    Thanks in advance,
    Thanks  & Regards,
    Ramnaresh.

    Hi,
    This is my problem .
    We loaded data to cube it was successful,again i loaded data which was modified in source system and before loading ,  i deleted the previous request.
    Now in cube only one request is there and in bex report changed data was reflecting correctly.
    This cube data is used in SAP BO reporting means they built reports on cube then in their report changed data is  not reflecting .
    i have two questions here.
    1) Apart from cube where data will be stored in bw server if it happen how to delete the complete data in bw server?
    2) how bex fetch data from cube? ( because the way bex retreaving is differ from bo report retreave)
    This the reason i am asking about buffer and cache.
    Can you pls tell me  how  to resolve this one.
    Thanks & Regards.
    Ramnaresh.

  • ADF View Objects and Recording changes for Auditing Purposes

    Hello,
    I am a new to the JDeveloper paradigm and currently working on a J2EE web pilot project. I was wondering if I could get some some ideas on how I could implement auditing in an application. Basically when a user modifies some entries on the screen, I would like to make a note of what the record was like before commiting to the database. An administrator could then see, what changes the record has been through over a period of time.
    I was thinking of using XMLTypes with the database. Does Jdeveloper handle oracle XMLType fields, or would I be looking at something along the lines of a CLOB? At this point, I would rather not implement this functionality using database triggers. Any alternate suggestions would be appreciated.
    Regards
    Anora April…
    Jdeveloper 10.1.2 (1811)
    Oracle DB 10g 10.1.2

    Hi,
    I am also interested in a best-practice note from oracle.
    Currently we store history in seperate history tables for columns that changed. All this implemented in our BaseEoImpl overriding the EntityImpl.prepareForDML().
    Thanks

  • How to Filter & Sort on Cached view object data?

    We are using JDeveloper 9.0.3.4 and implemeting a Struts/JSP application that query's via view object on one table. Is it possible to sort and order by on the view object's cached data? How does one do this?
    Thanks
    Natalie

    As for filtering rows, there are two ways:
    1. In the VO that's sorting data (in my article), you can add logic to skip unmatching rows in the following methods:
    protected boolean hasNextForCollection(Object qc)
    protected ViewRowImpl createRowFromResultSet(Object qc, ResultSet resultSet)
    2. In the base VO (unsorted), you can apply a RowQualifier. For example,
    oracle.jbo.server.RowQualifier rowQual = new oracle.jbo.server.RowQualifier("EmpDeptNum = 20");
    myVO.setRowQualifier(rowQual);
    Thanks.
    Sung

  • Graph which should display the data of a view object not visible

    Hi,
    I have a main page which contains a <af:panelAccordion> component with three <af:showDetailItem> components. Each of these <af:showDetailItem> components contain a page fragment. In each of these page fragments are a <af:table>, <dvt:pieGraph>, <dvt:lineGraph> and a <dvt:areaGraph> which represent data of view objects.
    In the first <af:showDetailItem> window all components are visible. But when I click on another <af:showDetailItem> all components are visible except the <dvt:areaGraph>. Weird is when I insert a <af:commandLink> into the page fragment without any functions. Also the link doesn't invoke any mehtod and partial submit is set to false. Now when I click on this link the <dvt:areaGraph> with its data become visible and show the data.
    The area graph and the line graph have partial triggers set to the table. Because when another row in the table is selected, the area and line graph should show data which is dependent on the selected row of the table.
    Has anybody an idea?
    Thanks in advance!
    Edited by: user13061309 on 27.07.2010 06:53

    Hi Frank,
    thanks for your response.
    I created a fragment-based flow and dragged it onto the main page as a region component. The main page contains the panelAccordian with its showDetailItem's. Each of the showDetailItem components of the panelAccordian contain such a region component.
    Now I set the partial trigger's property of the region component pointing to the showDetailItem component which contains the region but nothing changed. The graph is still not visible at the first click on the detailItem. I also set the trigger's property of the region component pointing to the panelAccordian but also nothing happens.
    Regards
    Michael
    Edited by: user13061309 on 06.08.2010 03:00

  • ADF - View Objects

    Hi All,
    We are working on building a web application using on ADF.
    The landing page of our application is a dashboard screen that is read-only with 100 to 500 records displayed in a table.
    User can move to other pages and create requests.
    1) When user is on dashboard and moves to other pages of the application, is there a way to release the memory used by view objects and underlying entity objects used by the views used to display the dashboard? Another point here is, our application requirement is to refresh the data from database when user moves between screens. Even if user switches back to dashboard screen after moving to other screen the data needs to be queried anyway. So for better memory management of the application we would like to release the memory for GC when user leaves our dashboard screens.
    Another question I have is:
    2) When a application module passivation occurs, will there be a snapshot taken for all view rows and entity caches or will it be only for pending DB state - entities added/modified/deleted? - We have lot of cases in our application where we display read-only dashboards and I am trying to understand if we can turnoff the passivation on view objects used to display read-only data if passivation deals with only pending DB state.
    Please suggest.

    Hi,
    1) When user is on dashboard and moves to other pages of the application, is there a way to release the memory used by view objects and underlying entity objects used by the views used to display the dashboard? Another point here is, our application requirement is to refresh the data from database when user moves between screens. Even if user switches back to dashboard screen after moving to other screen the data needs to be queried anyway. So for better memory management of the application we would like to release the memory for GC when user leaves our dashboard screens.
    Note that premature optimization can be contra-productive and often is the root of all evil. In other words, as long as you don't experience performance problems, I would let the framework do its job - so be careful wanting too much without a reason. Anyway, to clear the entity cache (and this is the only memory you need to bother for) you can call  <ApplicationModuleInstance>.getTransaction().clearEntityCache(String entityName);
    clearEntityCache
    public void clearEntityCache(java.lang.String entityName)
    Clears the cache of the specified Entity Object. A value of null clears the caches of all Entities. If a View Object uses the Entity Object, the View Object's cache will be cleared as well.
    Parameters:
    entityName - the name of the entity whose cache is to be cleared. If null, caches for all entities are cleared.
    Another question I have is:
    2) When a application module passivation occurs, will there be a snapshot taken for all view rows and entity caches or will it be only for pending DB state - entities added/modified/deleted? - We have lot of cases in our application where we display read-only dashboards and I am trying to understand if we can turnoff the passivation on view objects used to display read-only data if passivation deals with only pending DB state.
    Passivation is for pending changes only and not for all queried data. You define passivation on the AM level and you can switch it off there. In this case I suggest you use an Application Module that speacifically holds the dashboard queries.
    Since performance is your concern I recommend you reading:
    Advanced View Object Techniques - 11g Release 1 (11.1.1.7.0)
    Tuning Application Module Pools and Connection Pools - 11g Release 1 (11.1.1.7.0)
    Frank

  • Modify view object at responsibility level

    Hello,
    One of our business requirements is to change the drop-down values for several list of values based on the responsibility the user is logged in with. For example when creating a new application, the LOV 'Country' needs to list certain countries under the responsibility A and other countries under the responsibility B.
    In order to accomodate this requirement, I have created an extension to the VO oracle.apps.igs.utilities.server.countriesVO that can be found on the create application page. I have tried two different approaches:
    Approach 1:
    I have modified the SQL code and used the import utility jpximport to enable the substitution and everything works fine EXCEPT that the substitution is done at the site level, not the responsibility level. There are no options to enable the substitution at the responsibility level.
    I tried changing the MDS repository. After initial substitution, the query
    BEGIN jdr_utils.printDocument('/oracle/apps/igs/utilities/server/customizations/site/0/CountriesVO'); END;
    returns the XML for personalization (substitution). I deleted that entry using
    BEGIN jdr_utils.deleteDocument('/oracle/apps/igs/utilities/server/customizations/site/0/CountriesVO'); END;
    and used the import utility to import the XML at the responsibility level. the query
    BEGIN jdr_utils.printDocument('/oracle/apps/igs/utilities/server/customizations/responsibility/23331/CountriesVO'); END;
    returns the correct XML but the extension doesnt appear on the screen.
    Do you know what I am missing and if it is possible to enable substitutions at the responsibility level (not site level) at all?
    Approach 2:
    I am still implementing the View Object extension but I am modifying the SQL code to handle the responsibility:
    Original SQL Code:
    SELECT territory_short_name,territory_code
    FROM fnd_territories_vl
    Updated SQL Code:
    SELECT territory_short_name,territory_code
    FROM fnd_territories_vl
    WHERE fnd_global.resp_name <> 'A' OR fnd_global.resp_name IS NULL
    UNION ALL
    SELECT description as territory_short_name,territory_code
    FROM fnd_territories_vl
    WHERE fnd_global.resp_name = 'B'
    ORDER BY 1
    I used the import utility jpximport to enable the substitution and everything works fine EXCEPT that the View Object gets cached and the SQL statement is only executed the first time the object is called. If I clear the cache and I log in using the responsibility A then the countries are correctly displayed. If I login using the responsibility B then the countries for responsibility A are displayed. Same occurs if I clear the cache, login using responsibility B first then switch to responsibility A. Countries for responsibility B are always displayed.
    We need to find a way for the SQL to be re-executed every time this object is called. This object should not be cached. Is that possible at all?
    Thank you for your help
    Benoit

    Substitution of VO & AM will can be done only at site level. However controller extension can be personalized/substituted at any level, which includes responsibility level also.
    Thanks,
    --Anil
    http://oracleanil.blogspot.com/

Maybe you are looking for

  • Add a Hyperlink to the Report

    Hello Folks. I have a RTF report with 6 columns. This part is easy, as you probably know. But now I want one of the columns to show a link to a document such as Excel or Word or even a PDF. The recordset that popluates this report has the path and fi

  • SAP LSO - BADI LSO_check_booking

    Dear experts, I want to use BADI lso_check_booking as two implementations at same time. Can it be done? implementtaion1: Mandatory assignment check implementation 2:Org structure restriction of booking courses Regards Rizwan

  • Itunes radio subscription still giving me commercials

    I subscribed to iTunes Radio in Nov 2014, and periodically it resumes interrupting with commercials. There is no simple iTunes Radio support process that allows my to register my complaint. (iTunes Radio isn't even listed with your other products/ser

  • This message may contain a virus or there is not enough disk space. Skip this message?

    I have been randomly getting the following message for example for the past couple of weeks and it seems to be getting worse: There was an error downloading the following message: From: Popular Science <[email protected]> Subject: The Coolest Cars We

  • Missing text markup features in the new discussions platform

    Hi guys, The old discussion platform provided us with ability to use some useful markup for: rendering a source code (with syntax coloring) - [code] ... [/code] rendering a text with a fixed pitch font - <tt> ...</tt> referencing other forum messages