Entity Object Caching!

Hi I am trying to understand what kind of caching an entity object does. Suppose a user issues a query which returns X no of rows utilizing a view Object. If another user issues the same query, will it retrieve from the entity object or go to the database to find it?
What do developers have to do in order to minimize visits to the database?
null

Hi
My understanding is that the query will still be send to the database, the rows returned will be compared with those in the cache, and if they exist and have not been changed the cached objects will be used.
To enable Oracle to prevent queries being submitted to the database the BC4J framework would have to support functionality similar to that provided by Oracle parallel server (and its support for distributed caches) determing whether data had been modified via distributed locks.
I apologise if this is a bum steer, perhaps Development can comment...
null

Similar Messages

  • Filter rows in Entity Object Cache

    Hi
    Jeveloper version:Studio Edition Version 11.1.2.1.0
    I have a table employees with columns employee_id, first_name, last_name, last_opr.
    i have created entity object employees_eo. my entity cache should contain only rows which are not deleted(i.e last_opr not equal to 'D');
    how do i achieve it.

    I need to have only the rows which are not deleted(.e last_opr<>'D') in the entity object cache. (Not in the view object cache)
    The reason why i need is: i have an alternate key in the entity object employees_eo with the combination of employee_id, department_id. it raises an error('already exists') when the same combination is found.
    Lets say employee_id 100 with department_id 10 is deleted. Delete in the sense i am not deleting the record physically. Just flagging last_opr as 'D'.
    When i am trying to add new record with employee_id 100 and department_id 10. it says 'already exists'.
    so what i thought is , my entity object cache can contain only rows which are not deleted, so that alternate key will not check the deleted rows..

  • Usage of Object Cache for Java in J2EE apps

    Hi,
    we are investigating on whether we can use the Object Cache for Java
    (OCS4J) for our requirements. The question we have come across is:
    What is the designated way of integration for the Object cache to fit
    into the J2EE environment? Unfortunately, although the current manuals
    group OCS4J into the "Oracle Containers for J2EE Services Guide" and the
    suggested package name for the whole thing in JSR 107 seems to be
    javax.util.jcache, there is very little documentation on how the
    designers would like J2EE programmers to use the cache from within a
    J2EE app and all examples given are not from within a J2EE environment.
    We are in particular thinking about a hierarchy of several cache
    "compartments" (Region->Subregion->group) for different topics and using
    the hierarchical name of the cache (region.subregion.group) as the
    primary key for BMP Entity beans, each of them having their own
    CacheAccess object. Then we would have an API of stateless Session beans
    on top of that, which would be determining the cache "compartment", get
    the appropriate Entity Bean with the Cache Access object and then do the
    required operations on the cache.
    But then we immediately run into the question of how the mapping between
    Cache Objects and CacheAccess objects will be done etc.
    So is there anybody that can give us any hints how to use the OCS4J in
    an EJB scenario?
    Thanks in advance for any help!
    Andreas Loew
    [email protected]

    We have Java client requesting over HTTP to application server. We would like to cache some of the objects created by the servlet while serving the request. Can I use the OCS4J for caching the Java objects. Do I require any software or just copying the JAR file and importing the class would serve the purpose?
    Regards
    Arun

  • Java Object Cache have wired behaviour

    HI,
    I am trying to get my Oracle Java Object Cache working but I am observing some really stange behaviour which has stop it working. So any help will be really useful (10.1.3 and 10.1.2.0.2). I will explain:
    Progammaticly I have setup a parent region call 'DatabaseDataCache' and a sub-region call 'country'. In this region I have defined my object call countriesDto' with a Attribuite that has a CaheLoader attached. In my cache loader I connects to a Entity EJB that loads a bunch of DTOs into the cache.
    What is strange is that when i run the unit test on the code (cactus). The cache seems to call the cache loader 3 times consequtively before the EJB will load the data (i know this due to debuging messages)
    Then in the actual implmentation I have the cache setup code of the in the init() of the servlet but again the cache loader doesn't seem to able to call the ejb it requires. Ones the cache is access it trys to call the cache loader and of course the ejb dosn't get called and is returning me a NullPointerError as I am trying to acces the local interface (in the cache loader). This is strange as in the cactus test it actually calls the ejb ok bit only on the third attemp.
    I am abit puzzled with this so any help will be much appreciated.
    Charlie

    I think I have got what you need. The following is the cactus test class that test the getCountries method in my session ejb:
    public class WebinUtilTest extends ServletTestCase {
    private CacheAccess globParCache;
    public void setUp() throws Exception {
    CacheAccess.defineRegion("DatabaseDataCache");
    globParCache = CacheAccess.getAccess("DatabaseDataCache");
    globParCache.defineSubRegion("country");
    Attributes cAtt = new Attributes();
    cAtt.setLoader(new CountryCacheLoader());
    CacheAccess globCountCache = globParCache.getSubRegion("country");
    globCountCache.defineObject("countriesDto", cAtt);
    globCountCache.preLoad("countriesDto");
    globCountCache.close();
    globParCache.close();
    public void testGetCountries() throws Exception{
    WebinUtilLocal wuLoc = HomeFactory.getWebinUtilLocalHome().create();
    String[] countries = wuLoc.getCountries();
    assertTrue(countries.length >0);
    public void tearDown() throws Exception {
    if (globParCache != null){
    CacheAccess gCache = CacheAccess.getAccess("DatabaseDataCache");
    gCache.destroy();
    When I run this test here is the stack trace I am getting (in order):
    06/01/05 15:54:14 load entred for country cache loader: Thu Jan 05 15:54:14 GMT 2006
    06/01/05 15:54:14 java.lang.Exception: Stack trace
    06/01/05 15:54:14 at java.lang.Thread.dumpStack(Thread.java:1064)
    06/01/05 15:54:14 at uk.ac.ebi.submission.util.CountryCacheLoader.load(Unknown Source)
    06/01/05 15:54:14 at oracle.ias.cache.CacheLoader.callLoad(Unknown Source)
    06/01/05 15:54:14 at oracle.ias.cache.CacheHandle.findObject(Unknown Source)
    06/01/05 15:54:14 at oracle.ias.cache.CacheHandle.asyncLoad(Unknown Source)
    06/01/05 15:54:14 at oracle.ias.cache.Task.execute(Unknown Source)
    06/01/05 15:54:14 at oracle.ias.cache.WorkerThread.run(Unknown Source)
    06/01/05 15:54:14 WebinUtil Session Started: Thu Jan 05 15:54:14 GMT 2006
    06/01/05 15:54:14 load entred for country cache loader Thu Jan 05 15:54:14 GMT 2006
    06/01/05 15:54:14 java.lang.Exception: Stack trace
    06/01/05 15:54:14 at java.lang.Thread.dumpStack(Thread.java:1064)
    06/01/05 15:54:14 at uk.ac.ebi.submission.util.CountryCacheLoader.load(Unknown Source)
    06/01/05 15:54:14 at oracle.ias.cache.CacheLoader.callLoad(Unknown Source)
    06/01/05 15:54:14 at oracle.ias.cache.CacheHandle.findObject(Unknown Source)
    06/01/05 15:54:14 at oracle.ias.cache.CacheHandle.locateObject(Unknown Source)
    06/01/05 15:54:14 at oracle.ias.cache.CacheAccess.get(Unknown Source)
    06/01/05 15:54:14 at uk.ac.ebi.submission.ejb.session.WebinUtilBean.getCountries(Unknown Source)
    06/01/05 15:54:14 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    06/01/05 15:54:14 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    06/01/05 15:54:14 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    06/01/05 15:54:14 at java.lang.reflect.Method.invoke(Method.java:324)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.EJBJoinPointImpl.invoke(EJBJoinPointImpl.java:39)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:45)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:62)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:43)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.system.JAASInterceptor$1.run(JAASInterceptor.java:32)
    06/01/05 15:54:14 at java.security.AccessController.doPrivileged(Native Method)
    06/01/05 15:54:14 at javax.security.auth.Subject.doAs(Subject.java:379)
    06/01/05 15:54:14 at com.evermind.server.ThreadState.runAs(ThreadState.java:637)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.system.JAASInterceptor.invoke(JAASInterceptor.java:36)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:43)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.system.TxRequiredInterceptor.invoke(TxRequiredInterceptor.java:56)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:43)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.system.SecurityRoleInterceptor.invoke(SecurityRoleInterceptor.java:46)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:43)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:62)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:43)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.system.RunningStateInterceptor.invoke(RunningStateInterceptor.java:28)
    06/01/05 15:54:14 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:43)
    06/01/05 15:54:14 at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:106)
    06/01/05 15:54:14 at WebinUtilLocal_StatelessSessionBeanWrapper50.getCountries(WebinUtilLocal_StatelessSessionBeanWrapper50.java: 310)
    06/01/05 15:54:14 at uk.ac.ebi.submission.cactus.session.WebinUtilTest.testGetCountries(Unknown Source)
    06/01/05 15:54:14 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    06/01/05 15:54:14 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    06/01/05 15:54:14 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    06/01/05 15:54:14 at java.lang.reflect.Method.invoke(Method.java:324)
    06/01/05 15:54:14 at junit.framework.TestCase.runTest(TestCase.java:154)
    06/01/05 15:54:14 at junit.framework.TestCase.runBare(TestCase.java:127)
    06/01/05 15:54:14 at org.apache.cactus.internal.AbstractCactusTestCase.runBareServer(AbstractCactusTestCase.java:153)
    06/01/05 15:54:14 at org.apache.cactus.internal.server.AbstractWebTestCaller.doTest(AbstractWebTestCaller.java:119)
    06/01/05 15:54:14 at org.apache.cactus.internal.server.AbstractWebTestController.handleRequest_aroundBody0(AbstractWebTestControl ler.java:93)
    06/01/05 15:54:14 at org.apache.cactus.internal.server.AbstractWebTestController.handleRequest_aroundBody1$advice(AbstractWebTest Controller.java:224)
    06/01/05 15:54:14 at org.apache.cactus.internal.server.AbstractWebTestController.handleRequest(AbstractWebTestController.java)
    06/01/05 15:54:14 at org.apache.cactus.server.ServletTestRedirector.doPost_aroundBody2(ServletTestRedirector.java:101)
    06/01/05 15:54:14 at org.apache.cactus.server.ServletTestRedirector.doPost_aroundBody3$advice(ServletTestRedirector.java:224)
    06/01/05 15:54:14 at org.apache.cactus.server.ServletTestRedirector.doPost(ServletTestRedirector.java)
    06/01/05 15:54:14 at org.apache.cactus.server.ServletTestRedirector.doGet_aroundBody0(ServletTestRedirector.java:72)
    06/01/05 15:54:14 at org.apache.cactus.server.ServletTestRedirector.doGet_aroundBody1$advice(ServletTestRedirector.java:224)
    06/01/05 15:54:14 at org.apache.cactus.server.ServletTestRedirector.doGet(ServletTestRedirector.java)
    06/01/05 15:54:14 at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    06/01/05 15:54:14 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    06/01/05 15:54:14 at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
    06/01/05 15:54:14 at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:382)
    06/01/05 15:54:14 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:701)
    06/01/05 15:54:14 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:397)
    06/01/05 15:54:14 at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:833)
    06/01/05 15:54:14 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:430)
    06/01/05 15:54:14 at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
    06/01/05 15:54:14 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
    06/01/05 15:54:14 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
    06/01/05 15:54:14 at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:215)
    06/01/05 15:54:14 at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:232)
    06/01/05 15:54:14 at oracle.oc4j.network.ServerSocketAcceptHandler.access$1000(ServerSocketAcceptHandler.java:35)
    06/01/05 15:54:14 at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:819)
    06/01/05 15:54:14 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    06/01/05 15:54:14 at java.lang.Thread.run(Thread.java:534)
    Hope this is enough information.
    Thanks
    Charlie

  • ClassNotFound Exception integrating Coherence and Eclipselink with composite key entity objects

    I am hooking up coherence as an L2 cache for eclipselink in weblogic 12c (using the latest released weblogic and eclipselink 2.4.2.v20130514-5956486).  I have my application war and coherence gar packaged in the same EAR file.  For Entity Objects with single primary keys (Longs) coherence integration works as expected.  However I have several multi-part key Entity Objects that use an IdClass to represent the key.  When these objects get serialized, coherence throws a class not found exception.  I'm assuming its because the cachekey used is an instance of my applications IdClass, and the weblogic classloader doesn't have access to this.  Since eclipselink hides the cache integration with coherence, I cannot pass my classloader off to coherence (as i do with other caches i'm using directly with coherence).
    How can I get around this problem? 
    I saw this option in ExternalizableHelper.xml, but modifying it directly had no effect:
      <!-- if deploying Coherence in CLASSPATH and deploying application
           classes within a hot-redeployable archive (e.g. ".ear"), set this to
           true -->
      <!-- *** WARNING *** all cluster nodes must use the same setting -->
      <force-classloader-resolving>false</force-classloader-resolving>
    Here is the stack trace:
    ClassLoader: null) java.io.IOException: readObject failed: java.lang.ClassNotFoundException: com.oracle.pgbu.common.data.OverlayIdClass
      at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Class.java:270)
      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:623)
      at weblogic.coherence.service.internal.io.WLSObjectInputStream.resolveClass(WLSObjectInputStream.java:45)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
      at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1704)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
      at com.tangosol.util.ExternalizableHelper.readSerializable(ExternalizableHelper.java:2262)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2393)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2315)
      at oracle.eclipselink.coherence.integrated.internal.cache.RelationshipUpdateProcessor.readExternal(RelationshipUpdateProcessor.java:82)
      at com.tangosol.util.ExternalizableHelper.readExternalizableLite(ExternalizableHelper.java:2086)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2390)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at oracle.eclipselink.coherence.integrated.cache.WrapperSerializer.deserialize(WrapperSerializer.java:79)
      at com.tangosol.util.ExternalizableHelper.deserializeInternal(ExternalizableHelper.java:2791)
      at com.tangosol.util.ExternalizableHelper.fromBinary(ExternalizableHelper.java:266)
    ClassLoader: null
      at com.tangosol.util.Base.ensureRuntimeException(Base.java:286)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.tagException(Grid.CDB:50)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onInvokeRequest(PartitionedCache.CDB:61)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$InvokeRequest.run(PartitionedCache.CDB:1)
      at com.tangosol.coherence.component.util.DaemonPool.add(DaemonPool.CDB:20)
      at com.tangosol.coherence.component.util.DaemonPool.add(DaemonPool.CDB:1)
      at com.tangosol.coherence.component.net.message.requestMessage.DistributedCacheKeyRequest.onReceived(DistributedCacheKeyRequest.CDB:2)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:38)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:23)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.PartitionedService.onNotify(PartitionedService.CDB:3)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onNotify(PartitionedCache.CDB:3)
      at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:51)
      at java.lang.Thread.run(Thread.java:724)
    Caused by: java.io.IOException: readObject failed: java.lang.ClassNotFoundException: com.oracle.pgbu.common.data.OverlayIdClass
      at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Class.java:270)
      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:623)
      at weblogic.coherence.service.internal.io.WLSObjectInputStream.resolveClass(WLSObjectInputStream.java:45)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
      at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1704)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
      at com.tangosol.util.ExternalizableHelper.readSerializable(ExternalizableHelper.java:2262)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2393)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2315)
      at oracle.eclipselink.coherence.integrated.internal.cache.RelationshipUpdateProcessor.readExternal(RelationshipUpdateProcessor.java:82)
      at com.tangosol.util.ExternalizableHelper.readExternalizableLite(ExternalizableHelper.java:2086)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2390)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at oracle.eclipselink.coherence.integrated.cache.WrapperSerializer.deserialize(WrapperSerializer.java:79)
      at com.tangosol.util.ExternalizableHelper.deserializeInternal(ExternalizableHelper.java:2791)
      at com.tangosol.util.ExternalizableHelper.fromBinary(ExternalizableHelper.java:266)
    ClassLoader: null
      at com.tangosol.util.ExternalizableHelper.readSerializable(ExternalizableHelper.java:2270)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2393)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2315)
      at oracle.eclipselink.coherence.integrated.internal.cache.RelationshipUpdateProcessor.readExternal(RelationshipUpdateProcessor.java:82)
      at com.tangosol.util.ExternalizableHelper.readExternalizableLite(ExternalizableHelper.java:2086)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2390)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at oracle.eclipselink.coherence.integrated.cache.WrapperSerializer.deserialize(WrapperSerializer.java:79)
      at com.tangosol.util.ExternalizableHelper.deserializeInternal(ExternalizableHelper.java:2791)
      at com.tangosol.util.ExternalizableHelper.fromBinary(ExternalizableHelper.java:266)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$InvokeRequest.deserializeProcessor(PartitionedCache.CDB:7)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onInvokeRequest(PartitionedCache.CDB:37)
      ... 10 more

    I am hooking up coherence as an L2 cache for eclipselink in weblogic 12c (using the latest released weblogic and eclipselink 2.4.2.v20130514-5956486).  I have my application war and coherence gar packaged in the same EAR file.  For Entity Objects with single primary keys (Longs) coherence integration works as expected.  However I have several multi-part key Entity Objects that use an IdClass to represent the key.  When these objects get serialized, coherence throws a class not found exception.  I'm assuming its because the cachekey used is an instance of my applications IdClass, and the weblogic classloader doesn't have access to this.  Since eclipselink hides the cache integration with coherence, I cannot pass my classloader off to coherence (as i do with other caches i'm using directly with coherence).
    How can I get around this problem? 
    I saw this option in ExternalizableHelper.xml, but modifying it directly had no effect:
      <!-- if deploying Coherence in CLASSPATH and deploying application
           classes within a hot-redeployable archive (e.g. ".ear"), set this to
           true -->
      <!-- *** WARNING *** all cluster nodes must use the same setting -->
      <force-classloader-resolving>false</force-classloader-resolving>
    Here is the stack trace:
    ClassLoader: null) java.io.IOException: readObject failed: java.lang.ClassNotFoundException: com.oracle.pgbu.common.data.OverlayIdClass
      at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Class.java:270)
      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:623)
      at weblogic.coherence.service.internal.io.WLSObjectInputStream.resolveClass(WLSObjectInputStream.java:45)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
      at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1704)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
      at com.tangosol.util.ExternalizableHelper.readSerializable(ExternalizableHelper.java:2262)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2393)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2315)
      at oracle.eclipselink.coherence.integrated.internal.cache.RelationshipUpdateProcessor.readExternal(RelationshipUpdateProcessor.java:82)
      at com.tangosol.util.ExternalizableHelper.readExternalizableLite(ExternalizableHelper.java:2086)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2390)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at oracle.eclipselink.coherence.integrated.cache.WrapperSerializer.deserialize(WrapperSerializer.java:79)
      at com.tangosol.util.ExternalizableHelper.deserializeInternal(ExternalizableHelper.java:2791)
      at com.tangosol.util.ExternalizableHelper.fromBinary(ExternalizableHelper.java:266)
    ClassLoader: null
      at com.tangosol.util.Base.ensureRuntimeException(Base.java:286)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.tagException(Grid.CDB:50)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onInvokeRequest(PartitionedCache.CDB:61)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$InvokeRequest.run(PartitionedCache.CDB:1)
      at com.tangosol.coherence.component.util.DaemonPool.add(DaemonPool.CDB:20)
      at com.tangosol.coherence.component.util.DaemonPool.add(DaemonPool.CDB:1)
      at com.tangosol.coherence.component.net.message.requestMessage.DistributedCacheKeyRequest.onReceived(DistributedCacheKeyRequest.CDB:2)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onMessage(Grid.CDB:38)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.onNotify(Grid.CDB:23)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.PartitionedService.onNotify(PartitionedService.CDB:3)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onNotify(PartitionedCache.CDB:3)
      at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:51)
      at java.lang.Thread.run(Thread.java:724)
    Caused by: java.io.IOException: readObject failed: java.lang.ClassNotFoundException: com.oracle.pgbu.common.data.OverlayIdClass
      at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      at java.lang.Class.forName0(Native Method)
      at java.lang.Class.forName(Class.java:270)
      at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:623)
      at weblogic.coherence.service.internal.io.WLSObjectInputStream.resolveClass(WLSObjectInputStream.java:45)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1610)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
      at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1704)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
      at com.tangosol.util.ExternalizableHelper.readSerializable(ExternalizableHelper.java:2262)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2393)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2315)
      at oracle.eclipselink.coherence.integrated.internal.cache.RelationshipUpdateProcessor.readExternal(RelationshipUpdateProcessor.java:82)
      at com.tangosol.util.ExternalizableHelper.readExternalizableLite(ExternalizableHelper.java:2086)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2390)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at oracle.eclipselink.coherence.integrated.cache.WrapperSerializer.deserialize(WrapperSerializer.java:79)
      at com.tangosol.util.ExternalizableHelper.deserializeInternal(ExternalizableHelper.java:2791)
      at com.tangosol.util.ExternalizableHelper.fromBinary(ExternalizableHelper.java:266)
    ClassLoader: null
      at com.tangosol.util.ExternalizableHelper.readSerializable(ExternalizableHelper.java:2270)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2393)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2315)
      at oracle.eclipselink.coherence.integrated.internal.cache.RelationshipUpdateProcessor.readExternal(RelationshipUpdateProcessor.java:82)
      at com.tangosol.util.ExternalizableHelper.readExternalizableLite(ExternalizableHelper.java:2086)
      at com.tangosol.util.ExternalizableHelper.readObjectInternal(ExternalizableHelper.java:2390)
      at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:2336)
      at oracle.eclipselink.coherence.integrated.cache.WrapperSerializer.deserialize(WrapperSerializer.java:79)
      at com.tangosol.util.ExternalizableHelper.deserializeInternal(ExternalizableHelper.java:2791)
      at com.tangosol.util.ExternalizableHelper.fromBinary(ExternalizableHelper.java:266)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$InvokeRequest.deserializeProcessor(PartitionedCache.CDB:7)
      at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache.onInvokeRequest(PartitionedCache.CDB:37)
      ... 10 more

  • HOWTO: Expose Entity Object Methods to Clients

    By design, clients cannot directly access entity objects. The view object layer provides an extra layer of security--you can choose exactly what data and methods you want clients to see.
    This HOWTO describes the process of exposing an entity object method to client programs.
    First, if you don't already have one, you must base a view object on your entity object and add the view object to your data model. For full details of how to do this, see the help topics under
    +Developing Business Components
    --Working with View Objects, View Links, Application Modules, and Clients
    +----Creating and Modifying View Objects, View Links, Application Modules, and Clients
    For the purposes of this HOWTO, we'll assume that you already have an entity object, Employees, with a method on it, calculateBonus(),
    and a view object EmployeesView based on Employees.
    First, you must generate a view row class. A view row represents one row of the view object's cache; it corresponds to a view of a particular entity object.
    To generate a view row class:
    1. Right-click EmployeesView and choose Edit.
    2. In the View Object Editor, select the Java page.
    3. Select Generate Java File and Generate Accessors for the view row class.
    4. Click Done. This creates a class called EmployeesViewRowImpl.
    Next, you should add a "delegator" method to the view row class--a public method with the exact same signature as the entity method, that simply calls the entity method. For example:
    public int calculateBonus(int rating) {
    return getEmployees().calculateBonus(rating);
    Next, you should export this method.
    1. Right-click EmployeesView and choose Edit.
    2. In the View Object Editor, select the Client Row Methods page.
    3. Shuttle the method you just created into the Selected list and click Done.
    This creates an interface called EmployeesViewRow that contains your method.
    Now you can call the method from your client. You should cast the row returned by EmployeesView.current(), the <jbo:Row> tag, or a similar method or data tag to EmployeesViewRow.
    For example,
    <jbo:Row id="myRow" datasource="ds" action=Current>
    <% out.println(((EmployeesViewRow) myRow).calculateBonus(3)); %>
    </jbo:Row>
    null

    Hi Lisa,
    There's a difference between exporting methods (on an application module, view object, and view row--this is done on the "Client Methods" tab of the view object and application module wizards and the "Client Row Methods" tab of the view object wizard) and making an application module remotable (which is done on the "remote" tab of the application module wizard).
    You should always export methods you want clients to use--and you only need to do this on the application module if you've written methods on your application module (which I didn't in this HOWTO). You can still use these methods in local mode--the interfaces will be present locally. The advantage of exporting methods is that it doesn't lock you into local mode--you'll be able to change to remote mode later (if you decide that's the way to go) with minimal changes--because the interfaces will be present locally even when the implementation classes aren't.
    By contrast, you should only make an application module remotable if you're planning on deploying in a non-local configuration. You can do this step right before deployment.
    Hope this helps,
    Avrom
    null

  • Extended but NOT polymorphic Entity Object ?

    Hi,
    We are trying to implement the OO features of ADF BC, i.e : Inheritance and Polymorphism, to reuse the logic in EO. I need some confirmation below to make sure we apply it correctly :
    1) We can Extend Entity Object WITHOUT assigning any discriminator, can't we ?
    (this is what I call Extended but NOT polymorphic )
    If the answer is yes , then I have further question :
    2) In our Order Processing module of our ERP application, there are following entity object : SalesOrder, Invoice, SalesReturn, CreditNote
    And there are four underlying database tables : SalesOrder, Invoice, SalesReturn, CreditNote.
    They are surely DIFFERENT transaction BUT they have COMMON attributes (and validation), This is why I call it "Extended but NOT polymorphic".
    The common attributes are :
    - DocID (PK)
    - DocNumber
    - DocDate
    - Warehouse
    - Customer
    - Salesman
    - TermOfPayment
    - DueDate
    So I create one BaseOrderEntity as super class entity. Then I create four entity objects that extend the base entity :
    Entity : SalesOrder, Extend : BaseOrderEntity, Database Object : SalesOrder
    Entity : Invoice, Extend : BaseOrderEntity, Database Object : Invoice
    Entity : SalesReturn, Extend : BaseOrderEntity, Database Object : SalesReturn
    Entity : CreditNote, Extend : BaseOrderEntity, Database Object : CreditNote
    Is this the correct way to apply it ?
    In other word, is this the correct use case ?
    Thank you very much,
    xtanto.

    Starting in JDeveloper 10.1.2, the ADF runtime throws an error if it detects that you have a superclass and subclass entity objects without properly-configured discriminator attributes. If you do not intend to instantiate the superclass, just assign it a descriminator attribute with a value that will never occur in real-life, like NULL or 'x' or whatever.
    It will be simplest if all your family of subclasses were stored in the same table, although that is not required. It simply makes the polymorphic queries easier.
    If you want to avoid the runtime check for the discriminator's being properly configured, because you know that your application will never run the chance of loading the same row into the entity cache as two different entity definition types, then you can get a property jbo.abstract.base.check in your configuration (or as a System property) to the value false and then the check is not performed.

  • Purpose of Entity / View caches

    From research, articles, testing, and what info I've been able to glean off forum and metalink, it appears that entity/view caches are not used to satisfy querying, but to minimize storage of redundant data in memory. In other words, the purpose of the cache is simply to minimize memory used, but does not help query performance in any way.
    Is this accurate? If this is the case, it would seem that minimizing caching in many cases might be better for performance than using a cache.
    I've asked about the naure of entity / view caching in a TAR -- over two weeks in, still no answer....
    B

    Brad,
    A fundamental design point of ADF Business Components is that we let the database be our global, cross-user shared cache. We make no attempt to try and be the global, shared cache in the middle tier very much by design. The application module defines the boundaries of the current users unit of work, and provides facilities for allowing that unit of work to span multiple HTTP requests with failover protection, etc.
    The alternative approach is to try and provide a global, shared cache in the middle-tier, and require the user to consciously clone objects that need to be modified, and then deal with the issues of keeping the global, shared cache up to date when users make changes. This incurs overhead to maintain the consistency of that global cache when users are pounding lots of changes into it. We consciously opted against this approach after studying the way that Oracle Applications applications worked with the database in a typical scenario. The AM's transaction, which holds the caches, is a cache of in-progress work by that user, which can optionally have some of its data kept around for the next client that will use that AM from the pool.
    The AM instances are pooled and used in a stateless way, but using an algorithm called "stateless with affinity" which attempts to keep an AM intance "sticky" to the client that used it last if load allows us to do that. This occurs when the user is performing a unit of work that spans pages, so that the AM is being released to the AM pool in the "Managed State" mode instead of the "Stateless" mode.
    During the span of that unit of work, a user might use the same LOV's and visit the same screens over and over in the act of completing the job. The caches allow that user to avoid requerying any of that data during the span of that transaction, and generally the caches will contain only the data that is relevant to that user's task at hand.
    In 10.1.2, you can use the RowQualifier to filter rows in memory for simple kinds of SQL-type predicates. In 10.1.3, we've added a lot more control for querying over the caches, filtering over the caches, and doing both -- under developer control -- over either or both the cache and the database.
    Today, the primary way that the cache comes into play is avoiding database queries when things like association traversal is performed (typically as a part of business logic inside entity objects that need to access related entities to consult properties or methods on them), finding an entity by primary key which is performed for various reasons I've outlined in this blog article...
    http://radio.weblogs.com/0118231/stories/2005/07/28/differenceBetweenViewObjectSelectAndEntityDoselectMethod.html
    ..., as well as avoiding requerying when you re-render view object data that's already been queried during the unit of work.
    The entity cache holds the entity instances that the user has queried into the application module instance's transaction. The entity cache is populated by virtue of a view object's SQL statement, or by a direct or indirect call to EntityDefImpl.findByPrimaryKey().
    That said, we do support the notion of a shared, read-mostly application module as well. To use a shared application module, you need to set the jbo.ampool.isuseexclusive configuration property to the value false.
    Since all users are sharing the same application module, in particular they are sharing the view object instance, and even more in particular, its default rowset's default iterator.
    At the present time, for this feature to work robustly, the client code must insure that each user iterating the rows in a view objects inside a shared AM instance creates his own RowSetIterator and does not rely upon using the default RowSetIterator. Failure to do this could result in users messing each other notion of "current row" up.
    If you read my article on OTN about VO Performance Tuning...
    http://www.oracle.com/technology/products/jdev/tips/muench/voperftips/index.html
    you'll see that by avoiding caching when not needed, in some situations you can improve performance.
    We hope to make the multi-user, shared-readonly data reading even simpler to take advantage of in the future for shared, read-only data, but it's possible to achieve today with a little work.

  • How to manage lifespan of Entity Objects?

    Greetings,
    I am familiar with OA Framework, and I've already done several projects.
    However, I am going to start a project where Entity Objects will be needed, and I'm kinda confused.
    So I have a few questions:
    A) If I execute PL/SQL DML directly on the database, is there some auto-sync features that I need to use?
    ..or do I have to manually update the cache via Manual Cache Iteration / findPrimaryKey / etc ...
    B) Is it possible to to preserve cached EOs between pages?
    ..The docs say that re-executing a VO will "apply" the cached EOs, and I'm worried that unnecessary commits will happen.
    C) How are Entity Objects related to the OADbTransaction?
    If an Entity gets applied to its View Object, can I still "rollback" the changes at the Transaction level?
    Thanks in advanced for your wisdom !

    Hi,T Schneider
    Thank you for your appropriate advice.
    I reviewed the math textbook of my son immediately.
    PMReal newWidth = newLength * oldRect.Width() / oldLength;
    PMReal newHeight = newLength * oldRect.Height() / oldLength;
    It works perfectly.
    I just expected PMRect might have something pythagorean methods...
    I am a true idle man.
    Thanks.
    Satoru Fujimori

  • Transient Attributes in Entity object vs View Object

    Hi Everyone,
    I need some suggestion with my project. I have a vendors table based on which I created an entity object (columns: vendor_id, contract_id, so on ) but I want to display vendor_name in UI which can be read from other table. I thought of using a transient attribute to populate this vendor_name.
    It is working fine when I create a new record (where I handled this in LOV return value of vendor_id field and it return vendor_id, vendor_name values) but when there is edit/view of page, this vendor_name is null which means I need to populate it during page load /refresh time. Can someone suggest me a better way to populate this transient attributes. I also want to know when should I use transient attributes in Entity object (I saw most of the developer using VO transient attributes in these kind of situation)
    Thanks,
    Ravi

    Hi,
    also want to know when should I use transient attributes in Entity object (I saw most of the developer using VO transient attributes in these kind of situation)
    transient values in entities are saved in the entity cache and thus can be changed in the UI. If you use transient attributes on the VO then these are read-only. All transient attribute however need to be populated upon page load, which you can do in a ViewRowImpl class that checks for a null value when the getter is called to then call a setter, or by using Groovy script as a default value (just set the attribute to script)
    Frank

  • Error while deleting a row from the Entity Object

    Hi OAF Guys,
    i am unable to delete the newly created row from the entity object.
    let me explain my scenario.
    1. i have a table of which some of the columns are mandatory.
    2. I am writing the code in the validateEntity to check wether the user really enter anything into the fields.
    3. My problem is, when the user creates row and wanted to delete the row without entering any details, the validate entity of the EO gets fired which will not allows to delete the row.
    Is there any workaround for this problem.
    Regards,
    Nagesh Manda.

    Hi Tapash,
    I am very sorry for not providing you the complete details of my scenario. Here i am explaining
    1. what code you have placed while creating the row and in validation method on EOImpl.
    while creating a new row i am initializing the primary key of the EO with the sequence value.
    2.When you say, you are unable to delete the row, are you getting a error message ? if yes, custom message or fwk error ?
    its not the fwk error, its the custom message which wrote in my validateEntity method of EO to check whether the user had entered all the necesary columns or not.
    3.How are you trying to delete the row ?
    while the user clicks on the delete switcher i am getting the primary key of the row and searching for the row in the vo and finally deleting it.
    The problem arises when the user creates a row, and later doesnt want to enter the details and delete it. Here while deleting the row the validateEntity method of the EO gets fired and doesnt allow me to do so :(.
    Any way appreciate your help tapash.
    Regards,
    Nagesh Manda.

  • Refreshing Entity Objects after Altering the table

    Hi,
    My Entity Object is based on a table... and View Objects on the Entity Objects. Now if I alter the table (just changing the width of the column), that change is not visible on the Entity Object. Is there any way I can automatically refresh the Entity Objects after altering the table(only column width is changed).
    (Changes made to Entity Objects manually are reflected in the View Object correctly.)
    Regards
    Faiyaz

    'changing the width of the column' means changing the size of the column in the table description in the database. For e.g.. In the original table I had a column OIL_KEY NUMBER(6). Now I change the column to be of size 12 i.e. OIL_KEY NUMBER(12). This does not get refreshed in the Entity Object.

  • Two View Objects & One Entity Object

    Has anyone ever had it where they create a row from a view object, set some attributes, insert it into that view object, and it shows up in another view object (as well as the one the row was actually inserted on)? Both of these view objects are using the same single entity object, it's just that their where clauses are slightly different. When I do a commit and then executeQuery, all is good and the new row only shows up in the intended view object.
    Here is the code in my app module to do a row insertion on one of the view objects.
    public void addQCNote(int userID, Number theStudyID, String theNote)
              try
                   //StudyFtsViewObjImpl freeTextVO = getStudyFtsViewObj();
                   StudyFtsQCOnlyViewObjImpl freeTextVO = getStudyFtsReadOnlyViewObj();
                   freeTextVO.setWhereClauseParam(0, theStudyID);
                   DBSequence freeTextTypeCode = null;
                   StudyFTSQCCodeValueViewObjImpl freeTextCodeValue = getStudyFTSCodeValueViewObj();
                   freeTextCodeValue.executeQuery();
                   Row[] freeTextCodeValueCurrentRowArray = freeTextCodeValue.getAllRowsInRange();
                   // There SHOULD only be one ... but if there is more, pick one - geeez.
                   for (int i = 0; i < freeTextCodeValueCurrentRowArray.length; i++)
                        Row currentFTRow = freeTextCodeValueCurrentRowArray[0];
                        freeTextTypeCode = ((DBSequence) (currentFTRow.getAttribute(StudyFTSQCCodeValueViewObjRowImpl.CODEVALUE1)));
                   Row freeTextRow = freeTextVO.createRow();
                   // Sets up default values for insertion into db at commit time
                   freeTextRow.setAttribute(StudyFtsQCOnlyViewObjRowImpl.PARENTENTITYID, theStudyID);
                   freeTextRow.setAttribute(StudyFtsQCOnlyViewObjRowImpl.PARENTENTITYNAME, "STUDY");
                   freeTextRow.setAttribute(StudyFtsQCOnlyViewObjRowImpl.FREETEXT, theNote);
                   freeTextRow.setAttribute(StudyFtsQCOnlyViewObjRowImpl.FREETEXTTYPECD, freeTextTypeCode);
                   freeTextRow.setAttribute(StudyFtsQCOnlyViewObjRowImpl.CREATEDID, new Number(userID));
                   freeTextVO.insertRow(freeTextRow);
                   freeTextVO.setCurrentRow(freeTextRow);
              catch (Exception ex)
                   System.out.println("Exception in AR3MainAppModule.addQCNote: " + ex.toString());
    -brian

    Did you read this?
    Re: Row created in one ViewObject added to all VOs based on the same Entity
    Why don't you search this forum before posting?
    Sascha

  • Uix two view-objects on one entity-object synchronize

    Hi All
    I want to add some uix pages to an old project using ADF UIX and Business Components.
    I have an entity object to a table witch about 50 fields.
    Now I create two view objects due to a better performance. One witch seven attributes for the overwiew and one with all attributes for the detail page.
    They are related via a view link.
    I create the overview as a read-only-table and the detail-page as an input-form.
    The proplem is that the synchronization don't work. The detail page shows the first dataset ever.
    Has anyone a solution or a tip where I can found that?
    Is where a performance problem if I use one view-object for both pages?
    Thanks in advance
    Roger

    Use custom DataAction for the first page:
    package controller;
    import oracle.adf.controller.struts.actions.DataAction;
    import oracle.adf.controller.struts.actions.DataActionContext;
    public class Class1 extends DataAction
      protected void validateModelUpdates(DataActionContext actionContext)
         //super.validateModelUpdates(actionContext);
          // put you custom validation here
    }http://www.oracle.com/technology/products/jdev/collateral/papers/10g/ADFBindingPrimer/index.html#usingdataaction
    Message was edited by:
    Sasha
    Message was edited by:
    Sasha

  • Can Designer generate ADF Entity Objects, View Objects and Apps Module ?

    Hi all,
    On what way can Designer integrate with JDeveloper (+ ADF) ?
    Can Designer generate ADF Entity Objects, View Objects and Apps Module ?
    Thank you for your help,
    xtanto

    Designer itself has no direct integration with JDeveloper. However, there are three options. First of all, you can get a JDeveloper extension (download this separately) that lets you create a Connection to a Designer repository. From that Connection you can find modules that you defined in Designer and generate Entity and View objects for the tables and columns that you used in those modules, and an Application Module. It does not create JSPs or other user interface objects.
    Another option is to buy JHeadstart from Oracle. This contains a set of code generators and ADF extensions that include an ability to get information from a Designer repository. JHeadstart works fine for non-Designer users too, but was built by the same people who wrote Designer Headstart - they know the repository API intimately.
    The third option is to download Oracle Designer Extension Builder (ODEB) which was just recently made available. This is a product of a collaboration between Designer users from the Oracle Development Tools Users Group (ODTUG) and Oracle to extend the capabilities of Designer with user written tools and utilities. You could use ODEB to write your own generators for ADF Business Components. Or you could wait and see if someone else in the user community does this. I hope that you or whoever does such a generator will be willing to share it with us all.

Maybe you are looking for

  • When I make a new Calendar event the phone loads, and then the event disappears! How can I fix this?

    On my iPhone 4 8GB unlocked (iOS 6), whenever I try to make a new event in Apples Calendar app, when I am done making the event, the phone shows a small loading circle in the top bar and when that loading circle stops the event disappears. I checked

  • Email Bursting Problems

    Hi, I am using the java program to send the invoices to the different customers. I am able to send the email properly. There are some issues which I need to resolve. 1. Password protection with all the attachments with customer number. 2. Special Cha

  • JS: how can find role in XML element attribute

    Dear All, We could gather "footnote" XML elements as an array. But we need to filter the elements which has "role=endnote" in the attributes from the group of common footnote tagged elements . Eg. <footnote xml:id="en2" label="2" role="endnote"> from

  • .Max Files in After Effects

    We are trying to create a movie with a roving drone. The movie is being created in FCP; and edited in after effects. Beacause we are only doing this for a school project we do not want to pay for any models. My question: Are we able to import .MAX, .

  • Opening an attachment

    I have a list box with 3 buttons, attach, open and delete. The attach and delete buttons work fine when I attach or delete an attachment but when I click on the attachment button it does not open the attachment saying the is no attachment. I am runni