ADF View objects as source for OBIEE

Hi,
I have developed an ADF application that exposes a couple of tables from my oracle database using JDBC. We have followed all the steps of using obieebroker to use the ADF component as the source to our OBIEE RPD.
I was able to deploy the application to the Weblogic server, here's the deployment log:
[02:26:43 PM] ---- Deployment started. ----
[02:26:43 PM] Target platform is (Weblogic 10.3).
[02:26:43 PM] Retrieving existing application information
[02:26:43 PM] Running dependency analysis...
[02:26:43 PM] Building...
[02:26:43 PM] Deploying 8 profiles...
[02:26:43 PM] Wrote Archive Module to C:\JDeveloper\mywork\OracleOBIEEADF\Model\deploy\BIEEOrdersDP_MiddleTier.jar
[02:26:43 PM] Wrote Web Application Module to C:\JDeveloper\mywork\OracleOBIEEADF\OBIEEBroker\deploy\webapp.war
[02:26:44 PM] Wrote Web Application Module to C:\JDeveloper\mywork\OracleOBIEEADF\ViewController\deploy\OracleOBIEEADF_ViewController_webapp1.war
[02:26:44 PM] Wrote Archive Module to C:\JDeveloper\mywork\OracleOBIEEADF\Model\deploy\OracleOBIEEADF_Model_adflibOracleOBIEEADF1.jar
[02:26:44 PM] Wrote Archive Module to C:\JDeveloper\mywork\OracleOBIEEADF\Model\deploy\BIEEOrdersDP_Common.jar
[02:26:44 PM] Wrote Archive Module to C:\JDeveloper\mywork\OracleOBIEEADF\Model\deploy\BIEEOrdersDP_MiddleTier.jar
[02:26:44 PM] Wrote Archive Module to C:\JDeveloper\mywork\OracleOBIEEADF\Model\deploy\BIEEOrdersDP_Common.jar
[02:26:44 PM] Wrote Enterprise Application Module to C:\JDeveloper\mywork\OracleOBIEEADF\deploy\application1.ear
[02:26:45 PM] Redeploying Application...
[02:26:49 PM] [Deployer:149192]Operation 'deploy' on application 'application1' is in progress on 'AdminServer'
[02:26:51 PM] [Deployer:149194]Operation 'deploy' on application 'application1' has succeeded on 'AdminServer'
[02:26:51 PM] Application Redeployed Successfully.
[02:26:51 PM] The following URL context root(s) were defined and can be used as a starting point to test your application:
[02:26:51 PM] http://192.168.2.111:7001/OracleOBIEEADF-ViewController-context-root
[02:26:51 PM] http://192.168.2.111:7001/BIEEOrders
[02:26:51 PM] BIEECUST
[02:26:51 PM] Elapsed time for deployment: 9 seconds
[02:26:51 PM] ---- Deployment finished. ----
After the deployment finished I tried browsing to http://192.168.2.111:7001/BIEEOrders/obieebroker but got Error 500--Internal Server Error.
I checked the weblogic server log, and this is what it said:-
####<Feb 6, 2013 2:30:39 PM PST> <Info> <JDBC> <Kaaman-MSAT> <AdminServer> <[ACTIVE] ExecuteThread: '13' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <aad31fe749a8c505:40bfde70:13cad2e8ab5:-8000-00000000000036e5> <1360189839823> <BEA-001128> <Connection for pool "bip_datasource" closed.>
####<Feb 6, 2013 2:30:44 PM PST> <Error> <HTTP> <Kaaman-MSAT> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <aad31fe749a8c505:40bfde70:13cad2e8ab5:-8000-00000000000036e6> <1360189844428> <BEA-101020> <[ServletContext@657680634[app:application1 module:BIEEOrders path:/BIEEOrders spec-version:2.5]] Servlet failed with Exception
oracle.adf.share.ADFShareException: MDSException encountered in parseADFConfiguration
     at oracle.adf.share.config.ADFMDSConfig.getDefaultMDSInstance(ADFMDSConfig.java:459)
     at sun.reflect.GeneratedMethodAccessor2652.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at oracle.adf.share.config.FallbackConfigImpl.getMDSInstance(FallbackConfigImpl.java:65)
     at oracle.adf.share.config.FallbackConfigImpl.getDefaultMDSInstance(FallbackConfigImpl.java:96)
     at oracle.adf.share.config.ADFConfigImpl.getMDSInstance(ADFConfigImpl.java:626)
     at oracle.adf.share.config.ADFConfigImpl.getMDSInstance(ADFConfigImpl.java:606)
     at oracle.adf.share.config.ADFContextMDSConfigHelperImpl.getMDSInstance(ADFContextMDSConfigHelperImpl.java:277)
     at oracle.adf.share.ADFContext.getMDSInstanceAsObject(ADFContext.java:1674)
     at oracle.adf.share.http.ServletADFContext.initialize(ServletADFContext.java:493)
     at oracle.adf.share.http.ServletADFContext.initThreadContext(ServletADFContext.java:402)
     at oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:60)
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
     at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
     at java.security.AccessController.doPrivileged(Native Method)
     at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
     at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
     at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
     at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
     at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
     at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
     at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
     at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
     at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused By: oracle.mds.exception.MDSRuntimeException: MDS-01305: failure to locate schema file "oracle/mds/xsd/mdsConfig.xsd".
     at oracle.mds.internal.config.ConfigurationUtils.setSchemaOnUnmarshaller(ConfigurationUtils.java:797)
     at oracle.mds.internal.config.ConfigurationUtils.access$100(ConfigurationUtils.java:107)
     at oracle.mds.internal.config.ConfigurationUtils$2.run(ConfigurationUtils.java:298)
     at java.security.AccessController.doPrivileged(Native Method)
     at oracle.mds.internal.config.ConfigurationUtils.getUnmarshaller(ConfigurationUtils.java:287)
     at oracle.mds.internal.config.ConfigurationUtils.getBeanFromElement(ConfigurationUtils.java:199)
     at oracle.mds.internal.config.ConfigurationUtils.getBeanFromElement(ConfigurationUtils.java:160)
     at oracle.mds.config.MDSConfig.loadFromElement(MDSConfig.java:843)
     at oracle.mds.config.MDSConfig.<init>(MDSConfig.java:491)
     at oracle.mds.config.MDSConfig.<init>(MDSConfig.java:438)
     at oracle.adf.share.config.ADFMDSConfig.getDefaultMDSInstance(ADFMDSConfig.java:435)
     at sun.reflect.GeneratedMethodAccessor2652.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at oracle.adf.share.config.FallbackConfigImpl.getMDSInstance(FallbackConfigImpl.java:65)
     at oracle.adf.share.config.FallbackConfigImpl.getDefaultMDSInstance(FallbackConfigImpl.java:96)
     at oracle.adf.share.config.ADFConfigImpl.getMDSInstance(ADFConfigImpl.java:626)
     at oracle.adf.share.config.ADFConfigImpl.getMDSInstance(ADFConfigImpl.java:606)
     at oracle.adf.share.config.ADFContextMDSConfigHelperImpl.getMDSInstance(ADFContextMDSConfigHelperImpl.java:277)
     at oracle.adf.share.ADFContext.getMDSInstanceAsObject(ADFContext.java:1674)
     at oracle.adf.share.http.ServletADFContext.initialize(ServletADFContext.java:493)
     at oracle.adf.share.http.ServletADFContext.initThreadContext(ServletADFContext.java:402)
     at oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:60)
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
     at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
     at java.security.AccessController.doPrivileged(Native Method)
     at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
     at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
     at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
     at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
     at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
     at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
     at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
     at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
     at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Can anyone help me identify what went wrong?

Try to check these and look at those doc IDs might help you.
Re: OBIEE 11.1.1.5 guage chart issue
problem after upgrade 11.1.1.6 - "Invalid JSON String"
Do update on this.

Similar Messages

  • ADF panel does not prompt for variable defined in ADF view object.

    I have created an ADF Panel, which allows the user to run a few simple queries against an Oracle database done using ADF view objects and ADF view links and ADF application module.
    One of these queries lookup detail information about a given database object (Table, view or whatever) from dba_objects. The SQL uses a parameter (:P_OBJ_NAME) that has a default value of “Departments”. If I run the ADF application module by itself outside of the ADF panel, all works fine, it prompts me to provide a value for the parameter :P_OBJ_NAME.
    As I said the panel contains the different ADF view links including the one that should prompt the user to provide a value for :P_OBJ_NAME. When I run the panel it does not prompt me for :P_OBJ_NAME, it just uses the default defined value “departments”.
    I hope I described my problem for every one to understand. The question obviously is how do I get the ADF panel to prompt the user to provide a value for parameter :P_OBJ_NAME, my expectation was that since the sql in the view object and the application module both are designed to prompt for a value for this parameter then the panel should do just that but it does not.
    You expert input would be most appreciated.
    Thanks.
    Bobby A.
    Edited by: Babak Akbari on Aug 13, 2009 8:34 AM
    Edited by: Babak Akbari on Aug 13, 2009 11:12 AM

    The prompting for a parameter is a feature we built into the ADF Tester - it is not a default behavior you get in your application when you just place a VO on your page.
    To get something like this expend the operations node under the VO in the data control palette, and drag the "Execute with parameters" operation to your page to drop it as a parameter form.
    This will provide your user a place to fill out the parameter and press a button to execute the query.

  • How do I obtain the next number for a Primary Key using an ADF View Object?

    I have two separate View Objects (A & B) for the same Entity Object. View Object A does a SELECT on all of the fields in the table. This View Object is where I execute my adds and updates. View Object B is only used to retrieve the next number for the primary key. This is done so that when I add a row to the database, I always get the max number of the primary key and add one to it. I accomplished this by setting the SQL mode to Expert and using the SQL: "SELECT MAX(NBR) AS MAX_NUMBER FROM TABLE_1". This may be overkill having a seperate View Object for this, but so far this is the only way I have found to obtain the next number. However, I have discovered that this way does not always work.
    The problem I'm running into is when I try to add multiple records to View Object A without committing the transaction between each add. Because View Object B is disconnected from View Object A, the MAX_NUMBER of View Object B comes back with the same number for each add I do on View Object A. So I know I must retrieve the MAX_NUMBER from View Object A.
    I've tried using the following code in my Table1ViewImpl class:
    this.setQuery("SELECT MAX(Table1.NBR) AS MAX_NUMBER FROM TABLE_1 Table1");
    this.executeQuery();
    The view object now has what I want, but I have yet to figure a way to extract the MAX_NUMBER out of the View Object. I've also looked into using the method addDynamicAttribute() but I can't figure out any way to set the attribute with the MAX_NUMBER.
    I can't be the only one trying to retrieve the next number from a database table using ADF. Can anyone help me with this? FYI - I'm using JDev 10.1.3 EA.

    You missing the point.
    On a multi-user db knowing the next highest number doesn't guarantee the number will be available when it comes time to commit the record. You can prove this to yourself by opening two instances of your app and do whatever you do to add a new record to your VO. Both will assume the same number, and when you commit an error will be generated
    You must use sequences to avoid the possibility of duplicate keys. If you are trying to avoid gaps in your numbering then you need to convince yourself why this is necessary.

  • ADF View Object Capability

    Usually I use ADF View Object when I want to view data from table in Oracle DB.
    Now can View Object extract data from file? xml or csv format?
    Regards
    Erich

    Hi,
    no, ViewObjects work with queries against the database.
    Frank

  • Using Essbase as source for OBIEE 10.1.3.3

    Our company is in the process of implementing OBIEE 10.1.3.3 and I was trying to import an Essbase database (7.1.6) as a source for the Physical layer. However it looks like there was a change from 10.1.3.2 to the version we have. The docs show you can select File/Import/XMLA, however in the newer version instead of XMLA you have "From Multi Dimensional...". When I select this option and fill in the Essbase Server name,ID & pswd it crashes the OBIEE Administrator client.
    The error I get before it wants to "Send the Report" mentions this:
    AppName: admintool.exe     AppVer: 10.1.3.3     ModName: essapinu.dll
    ModVer: 7.1.6.6218     Offset: 00008282
    I then tried another way by right clicking on the Physical layer and choose "New Database". In there you have a option for the database of "Essbase". However, even when I fill in the server and ID & pswd I can't find anything in the docs showing you how to have it list the Essbase applications and Databases. According to the Oracle Support the docs for 10.1.3.2 are the latest docs which don't mention anything about connecting to Essbase that I can see.
    Has anyone tried to use Essbase as the database source for OBIEE 10.1.3.3 and been successful? Any info would be helpful!!
    Thanks!

    It is my understanding you need at least 10.1.3.3.2 (upgrade/patch).
    I'm currently on 10.1.3.3.0 and will be using ESSBASE shortly - so we actually have purchased 10.1.3.3.3 (OBIEE Plus).

  • Creating View Objects at Runtime for Validation

    In Oracle® Application Development Framework
    Developer’s Guide For Forms/4GL Developers tutorial there is a topic about Creating View Objects at Runtime for Validation.
    Is there any sample code available for this topic?
    Please help
    Regards
    S Karar

    I have created a helper method . The code is given below
    protected ViewObject getValidationVO(String viewObjectDefName) {
    // Create a new name for the VO instance being used for validation
    String name = "Validation_" + viewObjectDefName.replace('.', '_');
    // Try to see if an instance of this name already exists
    ViewObject vo = getDBTransaction().getRootApplicationModule().findViewObject(name);
    // If it doesn't already exist, create it using the definition name
    if (vo == null) {
    vo = getDBTransaction().getRootApplicationModule().createViewObject(name,viewObjectDefName);
    return vo;
    // Validation_bc4j_project of type ApplicationModule not found
    and created a validation method.
    The code inside validation method is given below.
    public boolean validateAvgMr(Number data) {
    String batch_catg = getQuality();
    // Get the view object instance for validation
    ViewObject vo = getValidationVO("bc4j_project.v_sqc0150");
    if (getTestStage()=="DOLLOP" && getQuality()=="DECO")
    // Set it's bind variables (which it will typically have!)
    vo.setNamedWhereClauseParam("batch_catg","DECO");
    vo.executeQuery();
    Number dol_mr_lcl=(Number)vo.first().getAttribute("DolMrLclStd");
    setStdMrLcl(dol_mr_lcl);
    return true;
    return true;
    I have checked the validation view and it is returing value with the same bind variable value but is not returning any value when using inside this method validation.
    I have checked several times but can't find the fault in the code.
    Please help

  • ADF (View Object) with open source database

    Hi all,
    Recently, I am evaluating JDeveloper 9.0.5.2 ADF with an open source database (Firebird).
    I follow the instruction to:
    1. Create an entity object
    2. Create a view object for the entity object in 1
    3. Create an application module for the view object in 2
    4. Right click on the application module and test -> all worked fine
    5. I created a jsp and drag the view (in 2) to it from Data Control Palette
    6. Test it in OC4J -> an error occurred (not because of jdbc config)
    JBO-27122: SQL error during statement preparation. Statement: SELECT * FROM (SELECT Department.DEPT_NO, Department.DEPARTMENT AS DEPARTMENT1, Department.HEAD_DEPT, Department.MNGR_NO, Department.BUDGET, Department.LOCATION, Department.PHONE_NO FROM DEPARTMENT Department) QRSLT ORDER BY DEPT_NO
    GDS Exception. 335544569. Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 16 SELECT
    To my knowledge, the error should be due to Firebird doesn't support the query syntax " select * (select col1, col2... from table) QRSLT where... order by... "
    I am quite headache as this query is automatically generated by JDeveloper. I am figuring out whether I can change it. It seems that I have to play with the ViewObjectImpl class.
    I do think ADF is an amazing technology. However, is it only so amazing with the Oracle technologies? Please correct me if I am wrong.
    Hons

    Dear Shay Shmeltzer,
    Thank you for your reply. After hours of trying on Firebird, I still get the error:
    JBO-27122: SQL error during statement preparation. Statement: SELECT * FROM (SELECT Department.DEPT_NO, Department.DEPARTMENT AS DEPARTMENT1, Department.HEAD_DEPT, Department.MNGR_NO, Department.BUDGET, Department.LOCATION, Department.PHONE_NO FROM DEPARTMENT Department) QRSLT ORDER BY DEPT_NO
    GDS Exception. 335544569. Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 16 SELECT
    I then downloaded the MySQL 4.0 and install on my system to do the exact procedures. No error! Thing works fine! Oh man...
    For the Firebird case, a strange thing to note is that the data table (I dragged) contains data, but the error message is on top of it.
    Actually, I don't have a particular database preference but I do hope ADF can work equally for these open-source databases. I think the problem may also be contributed by Firebird. Hope that I can figure it out this week.
    Regards,
    Hons

  • ADF View objects question

    Hello,
    I created a view object (which bases on an entity object) that I'd like to use for searching for records in a table called "CARS". Cars will be searched by names. I also have a JSP page for adding cars (administration functionality).
    The situation is as follows:
    1. I go to the page for adding cars and click "Submit" (which only submits data without committing to the database).
    2. Then I have validation errors (which is ok because some fields are mandatory).
    3. I search for cars by name.
    The funny part is that if I search for cars with given names, I get those cars AND I get the empty row with this new car I'd tried to add just a moment ago. It's definitely not yet in the database and the name of this car is not set (so it shouldn't match with the name I'm searching for).
    My question is: why is it happening and what should I do to get the rows created but not yet committed not appear in the search results?
    I tried to use clearCache() method of ViewObjectImpl but the result is still the same.
    Please help because I desperately need this for my diploma project.
    Thanks,
    Anna

    I run: "java -Djbo.viewlink.consistent=false -jar oc4j.jar" and I still get new rows. I'm using OC4J 10g (9.0.4.0.0) standalone that comes with JDeveloper 10g (9.0.5.2) on Linux.
    And about that Create pages: I mean I click on a link "New something" 3 times (for example). I don't use the browser back button because I have my menu on each page. In this case I'm just curious if it's possible to somehow "overwrite" previous "new" rows with the most recent one.
    I thought I would need that but now I know I need something else.
    Imagine such a situation:
    1. A user wants to create a new row or update an existing one.
    2. They start filling the form and submit it (in my case it's committing at the same time)
    3. During validation it turns out that some required values are missing so the user has to enter them.
    4. At this point the user leaves the input form and decides to add or update a different row.
    5. The user enters all the required values and this time validation would succeed. However, because of points 2. and 3. it does not.
    Now my question is: how can I make ADF somehow "forget" about the row inserted/updated in point 2. I know that ADF validates all new/changed rows at a time. But I would like to change that behavior so that it would validate only the row changed/created most recently.
    Thanks,
    Anna

  • 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

  • How To change the ADF View Object  query where-clause at RunTime?

    I am trying to create a simple display page which will display user data (username, assoc_dist_id, assoc_agent_id, status , etc). The User data is stored in a database table and i am using an ADF Read Only table based on the View Object to display the data on the JSF page.
    However, i want to display only the users that a particular person accessing the page has the AUTH LEVEL to see. e.g. If the person accessing the page is an 'ApplicationAdministrator' then the page should display all users in the table, If its a 'DistributorAdministrator' then the page should display only users associated with that Distributor (i.e. assoc_dist_id = :p_Dist_id ) and If its an 'AgentAdministrator' , then the page should display only users associated with that Agent ( i.e. assoc_agent_id = :p_Agent_id).
    Currently my af:table component displays all the users in the table because the query for the view object is (select * from users) . However, i want to use the same viewobject and just set the where-clause at runtime with the appropriate parameter to restrict the dataset returned.
    Do anyone knows how to accomplish this ?

    David,
    See the custom method initializeDynamicVariableDefaults() in the SRViewObjectImpl.java class in the FrameworkExtentions project in the SRDemoSampleADFBC sample application. You can find out how to install the demo if you haven't already from the ADF Learning Center at:
    http://www.oracle.com/technology/products/adf/learnadf.html
    This class is a framework extension class for view objects that adds a neat, generic feature to be able to dynamic default the value of named bind variables. You can read more about what framework extension classes are and how to use them in Chapter 25, "Advanced Business Components Techniques" of the ADF Developer's Guide for Forms/4GL Developers, also available at the learning center above.
    It is an example of generic framework functionality that "kicks in" based on the presence of custom metadata properties on a named bind variable. See section 25.3.3 "Implementing Generic Functionality Driven by Custom Properties" in the dev guide for more details. Using this sample code, if you add a bind variable to a view object, and define a custom metadata property named "DynamicDefaultValue" on that bind variable, and set this custom metadata property to the value "CurrentUser", then that bind variable will have its value dynamically defaulted to the name of the authenticated user logged in. If instead you set this custom property to the value "UserRole", then the bind variable will be set to the comma-separated string containing the list of roles that the authenticated user is part of.
    Once you've created a framework extension class for view objects like this, you can have the view objects you create inherit this generic functionality.See section 25.1.4 "How to Base an ADF Component on a Framework Extension Class" in the dev guide for more info on this.
    By adapting a technique like this (or some idea similar that better suits your needs) you can have your view object query contain bind variables whose values automatically take on the defaults based on something in the user-session environment.

  • Using ADF View object create method in Data Action

    I need to know how to create a new row in an application module method and get the attributes from the ADF input form.
    If i Drag drop the create method in the data action form it is working fine. But how to do this programmatically, I have a need where i need to execute a query on another view object and set the create method.
    Thanks.

    Steven:
    (My application does not need to show all records and provide Edit/ Remove buttons at row level, navgational buttons and Create button for inserting new record. Instead, I would just open a blank record for entry, and commit)
    As per your post, I followed the following steps (action class) to insert blank record:
    DCBindingContainer bindings = actionContext.getBindingContainer();
    DCControlBinding binding = bindings.findCtrlBinding("Id");
    Row row = binding.getRowIterator().createRow();
    row.setNewRowState(row.STATUS_INITIALIZED);
    RowSetIterator rs =(RowSetIterator)
    binding.getRowIterator();
    rs.insertRow(row);
    End Results: It works fine and a new blank record is created. The only problem is <html:errors/> in JSP throws error for the first time. I do not want to elliminate error object from JSP.
    Please help!
    Thanks in advance

  • ADF View Object filtering

    Hi, This question is related to ADF table filters.
    Let us take an example of a View Object that is being dropped in a jspx page as a "ADF Table" with filters.
    Whenever user applies a filter on a column, will the data for view object be queried from database once again?
    Is there a way to avoid the query re-execution on applying filters in table.

    Thanks for the replies. Jdeveloper version we use is 11.1.1.6.
    I have a follow up question.
    We have a programmatic View Object which gets data from 3 different rows and populate them in view rows (We have overridden standard methods like executeQueryForCollection..etc)
    The data is displayed in a ADF table.
    Now when the user filters data, normally filter works fine but the web service calls are made every time the filters are applied/removed.
    We would like to avoid making calls to web services when user filters data by setting Query Mode to "QUERY_MODE_SCAN_VIEW_ROWS".
    But what happens is first time filter is applied, the filtered rows are displayed properly but from there on the query collection refers to filtered data only and not the complete data set.
    So when the user removes filter and hits enter again only filtered rows are displayed and not all the rows fetched initially. I am not sure why the query collection looses all the rows and keeps only filtered rows??

  • Questions on ADF View Objects, Links and Iterators

    I have a number of questions regarding using ViewObjects in applications where there are alot of relationships between tables.
    First, lets say that I have ViewObject SomeView that was added to the App Module (AM) as VO1. And because it has a number of "detail" records that have to be iterated through in a "report like" view it has those other VO's added under it as "children" in the AM.
    So I have
    VO1 (an instance of SomeView)
    --> VO2 (an instance of some other view)
    --> VO3 (an instance of some other view)
    that is used on pages where only a single VO1 is shown at a time.
    Now because I had another page I wanted to make that had a listing of all SomeView objects. Some of the fields in SomeView are foreign keys to records in VO2 and VO3 and while I don't want to show all the fields from VO2 and VO3, I do want to show a name field from each rather than just the foreign key.
    My experience (though I've never read this anywhere) tells me that when doing a "table" that is a list of rows from a VO, you can't display info from the child VO's because the child VO's are on whatever record corresponds to the "currentRow" in the parent VO and just displaying the rows in a rangeSet doesn't make each the "currentRow" so even we display 10 records in a for loop, the "currentRow" is just one, and the child VO's iterators aren't moved as we go through the for loop. (Can someone confirm if I am correct on this conclusion????)
    So the only way I know of to show some field from a related table in each row is to make the VO have the entity objects from the related tables be part of the view as references. Is this the only way?
    If I do that on a view that didn't have other views as children defined in the AM I don't have any problem and it works like I want.
    But if I do it on a view that did have other views as children defined in the AM it makes the page(s) using that view with the children iterators behave badly. Half the information quits showing up, etc.
    For example, ... if I go to the "SomeView" which was defined with only one entity object association, and I add the entity objects (that are the basis of instances of VO2 and VO3 ) as referenceable only, it totally breaks the page where I display a single VO1 and use it's VO2 and VO3 children. IS THIS NORMAL OR AM I MISSING SOMETHING?
    So, is the solution that I have to have more view objects defined for different purposes ?
    Can anyone give any general guidelines for when/where to use different view objects vs. when to use different iterators. I'm not having much luck with using secondary RSI's and haven't found much info on them.
    Also, how about issues of naming iterators that are in various binding containers (ie. UI Model for a page). If I do and LOV it creates an iterator and gives it a default name like ViewNameIterator1. If I already have a different page that uses a regular (non LOV) iterator with that name, and the user goes back and forth between those pages, is that a clash?
    Finally, I've read a couple of Steve Muench's blogs on View Link consistency but I'm not sure what the rules are on when it applies and doesn't. How you turn it on or off, etc. One of his examples in http://radio.weblogs.com/0118231/2004/02/27.html talks about it in the context of two view objects that are NOT typically "linked" in a master/detail kind of way. Like an AllDepartments and a DepartmentsLessThan view. Do you have to create a View Link between them to have results of one be reflected in the other if they aren't used in the same page in a web app? Or does it happen automatically (with the caveat that you have to do the rowQualifies method). Just feels like I'm missing some pieces.
    Thanks in advance,
    Lynn

    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

  • Oracle EBS Discoverer as a data source for OBIEE 11g

    We are a heavy user of Discoverer workbooks with Oracle EBS. We're moving to OBIEE 11g(11.1.1.3) and have an RPD with both 3rd party and custom content.
    I wanted to ask the experts here how I can leverage my Discoverer investment with out a lot of re-work in OBIEE. I briefly looked at the MigrateEUL.exe and it says it can move an EUL to an RPD, but talks about some limitations for complex EULs such as an EBS Apps EUL. Even if it created an RPD, I'm not sure how I can merge my current RPD and this newly gen'd RPD.
    I also heard from someone that there is a way to setup Discoverer EUL as a standard data source in OBIEE 11g and consume it directly. I'm looking for a document or blog that explains these steps. Any pointers or experiences with the above is appreciated!!
    Thanks.

    Hi,
    For some more details, you can refer to the following document;
    http://www.oracle.com/technetwork/developer-tools/discoverer/discoverer-metadata-conversion-assi-128504.pdf
    My personal expreriences:
    The Metadata Conversion Utility is an accellerator / assistant. It does not provide you with an end product. There is some additional handwork requiered. It could be a risk when you copy an old Oracle Discoverer environment. Shit in is shit out. Last but not least; There is not yet a workbook migration utility.
    Cheers,
    Daan Bakboord
    http://obibb.wordpress.com

  • ADF View Object query to use Oracle  LONG data type

    Hi,
    I'm using a view object that uses Oracle LONG data type.The following exception is thrown
    *"java.sql.SQLException: Stream has already been closed"* and it is not fetching the correct data.
    I have searched in many forums,they suggested to use LOB instead of LONG as LONG is deprecated. But in my case I can't avoid using LONG as some of my legacy applications using the same DB.
    Please suggest me a way
    Thanks in Advance
    Felix

    Thanks for your reply Arun,
    I have solved this problem using the solution suggested by this blog [AskTom-Link|http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:839298816582]
    In the above blog link,they have suggested to convert Long to Varchar by functions and asked to use this function in the column.
    Thank you all guys who have seen this post.
    Regards,
    Felix

Maybe you are looking for

  • Report error- All fields are not taking

    Hi, I have created Program for the report ,But it does ,not selecting all foelds, What will the possible reason. I have created report for rows as Notification  Inspection lot  qty Ok Qty Rejected Qty Defect Group Defect Code Code Qty Code Descriptio

  • Sql Server Network Error !!

    HI we hav 2 sys landscape ,dev and qal on one server and prd on one server  dev and qal are not getting up simultaneously . when I start dev the qal is getting down and if start qal dev is getting down. but if I start dev alone its getting up and sam

  • Can I change the favorites bookmark bar on the top of the screen to show just the relevant favicons?

    I can't find how.  At the moment it shows titles and no favicons.  This rather small issue keep driving me into the arms of Firefox and Chrome, both of which let me easily show favorites by their favicons.  Advantages are that it's easier to see them

  • BAPI or RFC to create material

    Hi folks,         Could any one tell me, if there is any BAPI or RFC to create Material in Material master....if so pls tel me the name and how to use the BAPI...thanks in advance,                           santosh.

  • Entering products in Compliants in IC Web

    Hi guys, We are working on IC web, here we are stuck with an issue. if we open complaints in IC web, identify the account, try to create a complaint.in complaint the product field is grayed out. it has to be filled through  I base. but my scenario do