OracleAS Java Object Cache 10g

OracleAS Java Object Cache 10g Documentation link on the top right of the page is broken and leads to a 404 page not found.

Hi,
apologies for the delay responding.
Can you please confirm if link is part of the OTN documentation pages at: http://otn.oracle.com/documentation/index.html
Regards,
Les

Similar Messages

  • Cache distribution - Java object cache

    Hi.
    I'm trying to use Oracle Java Object Cache (cache.jar), the one included in the 9iAS 9.0.3.
    Everything works fine but the cache distribution between different JVM:s.
    Anyone got this to work?
    Regards
    Jesper
    package test;
    import oracle.ias.cache.*;
    * Singleton Cache class.
    public class Cache {
         /** The singleton instance of the object. */
         private static Cache instance = null;
         /** The root region. */
         private final static String APP_NAME = "Test";
         * Protected constructor - Use <code>getInstance()</code>.
         * @throws Exception if error
         protected Cache() throws Exception {
              CacheAccess.defineRegion(APP_NAME);
         * Gets the singleton instance.
         * @return The instance of the Cache object.
         public static Cache getInstance() throws Exception {
              if (instance==null) {
                   createInstance();
              return instance;
         * Creates the singleton instance in a thread-safe manner.
         synchronized private static void createInstance() throws Exception {
              if (instance==null) {
                   instance = new Cache();
         * Put an object on the cache.
         * @param name The object name
         * @param subRegion The sub region
         * @param object The object to cache
         * @throws Exception if error
         public static void put(String name, String subRegion, Object object) throws Exception {
              CacheAccess appAcc = null;
              CacheAccess subAcc = null;
              try {
                   appAcc = CacheAccess.getAccess(APP_NAME);
                   // Create a group
                   Attributes a = new Attributes();
                   a.setFlags(Attributes.DISTRIBUTE);
                   appAcc.defineSubRegion(subRegion, a);
                   subAcc = appAcc.getSubRegion(subRegion);
                   if (!subAcc.isPresent(name)) {
                        subAcc.put(name, a, object);
                   } else {
                        subAcc.replace(name, object);
              } catch (CacheException ex){
                   // handle exception
                   System.out.println(ex.toString());
              } finally {
                   if (subAcc != null) {
                        subAcc.close();
                   if (appAcc != null) {
                        appAcc.close();
         * Gets a cached object from the specified sub region
         * @param name The object name
         * @param subRegion The sub region
         * @return The cached object
         * @throws Exception if requested object not in cache
         public static Object get(String name, String subRegion) throws Exception {
              CacheAccess appAcc = null;
              CacheAccess subAcc = null;
              Object result = null;
              try {
                   appAcc = CacheAccess.getAccess(APP_NAME);
                   subAcc = appAcc.getSubRegion(subRegion);
                   // define an object and set its attributes
                   result = (Object)subAcc.get(name);
              } catch (CacheException ex){
                   // handle exception
                   throw new Exception("Object '" + name + "' not in cache region '" + subAcc.getRegionName() + "'.");
              } finally {
                   if (subAcc != null) {
                        subAcc.close();
                   if (appAcc != null) {
                        appAcc.close();
              return result;
         * Invalidates all objects in all regions
         public static void invalidateAll() throws Exception {
              CacheAccess appAcc = CacheAccess.getAccess(APP_NAME);
              appAcc.invalidate(); // invalidate all objects
              appAcc.close(); // close the CacheAccess access
         // Main method for testing purposes.
         public static void main(String[] args) throws Exception {
              try {
                   System.out.println(">> Caching object OBJ1 into region TEST1.");
                   Cache.getInstance().put("OBJ1", "TEST1", "Object cached in TEST1.");
                   System.out.println(">> Getting OBJ1 from cache region TEST1.");
                   System.out.println(Cache.getInstance().get("OBJ1", "TEST1"));
              } catch (Exception ex) {
                   System.out.println(ex.getMessage());
    Contents of JAVACACHE.PROPERTIES:
    # discoveryAddress is a list of cache servers and ports
    discoveryAddress = host1.myserver.com:12345,host2.myserver.com:12345
    logFileName = c:\javacache.log
    logSeverity = DEBUG
    distribute = true

    I have same problem
    Exist some reason?
    I'm testing Cache with isDistributed() method and I still got false!
    Thanx

  • 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

  • Oracle Application Server 10g Java Object Cache

    Hi,
    I am new to Java and looking for a java caching framework and just came across Oracle Application Server 10g Java Object Cache. I am unable to find 11g version of the same. Is it not supported any more?
    Can I use this with weblogic server? Please suggest if any other alternatives.
    Thanks,
    Manoj

    Bump.
    I definitely don't see the same file: C:\dev\jdevstudio10134\javacache\lib\cache.jar in the Oracle JDEV tree. Is there a suggested alternative?

  • Java Object Cache

    With a cache loader, the Java Object Cache automatically determines if an object needs to be loaded into the cache when the object is request.
    Can someone tellme how exactly this works.
    I am trying to get the cache framework to load objects automatically in the cache.
    hwoever unless i explicitly use the CacheAcess.put method. the object is not loaded in the cache.
    Plss lemme knw, how the framework does it automatically.
    Regards,
    Mukta

    Hi Mukta,
    FYI, This discussion forum is all about Web Cache, and not related to Java Object Cache.
    Anyways, to hint you on automatic loading of objects -> use the CacheAccess.preLoad() method.
    You can post this question in a forum related to the Java Object Cache, for better answers.
    Regards,
    Priyanka GES
    Oracle Web Cache Team

  • Java object caching

    Hi All,
    I need to cache java objects, have anyone a documentation or sample code to help me.
    Thanks in advance

    http://download-uk.oracle.com/docs/cd/B14099_15/web.1012/b14012/objcache.htm#sthref1069
    http://download-uk.oracle.com/docs/cd/B14099_15/web.1012/b14019/toc.htm

  • Declarative java object cache in non oc4j container

    hello,
    i'm trying to use the cache.jar from 10g in a standalone application.
    i've followed the j2ee services guide and use cache.open(path_to_javacache.xml). javacache.xml has preload-file defined, in which i've declared my userdefined classloader and userdefined cached object. the implementations of both implement declarable. however,when i use cacheaccess.getaccess(region_name) i get regionnotfoundexception.
    i've also tried to use the configurator alternative, where i specify the declarative cache xml file. but this gives me a classcastexception.
    any suggestions. better yet is there a sample program that
    shows the use of a decl cache in a non oc4j container.
    thanks

    Hi,
    I ran into the same problem while evaluating OC4J V9 Java Cache standalone.
    Cache.open() silently ignores errors:
    * Cache.open(path_to_javacache.xml) seems to silently swallow alle error messages (in your case the ClassCastException) and the ignore the configuration file
    * so to get meaningful error messages, first attempt to open the file with new Configurator(path_to_javacache.xml)
    * once there are no more errors, you can open it with Cache.open(path_to_javacache.xml)
    Now, to get around the ClassCastException:
    * you need to add xmlparserv2.jar from your oc4j distribution
    * this must be the first xml-parser in your classpath (when e.g. xerces.jar comes first, you will get a ClassCastException)
    A relative javacache.xml is relative to your working directory.
    The preload-file - Path seems to be relative to the javacache.xml path, if it is not absolute. I keep javacache.xml and preload-file together which worked for me.
    Hope this help,
    Andreas

  • 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

  • Dropping java object from Oracle 8i

    We areaable to load java methods and publish them to SQL in Oracle 8i using Jdev Deploy wizard, but we can not drop them thru
    Open View As->Database Browser of the connection object, they drop menu is greyed out/disable. What kind privilege we need to drop java object from Oracle 8i? Or there is something wrong with the database setup.
    Thank you very much

    There are three options:
    Normal
    SysDBA
    SysOper
    I have tried the three of them, none of them works, is there third option SYS?
    Thank you very much.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Amit:
    Log in as SYS.<HR></BLOCKQUOTE>
    null

  • Java Servlet Error in oracle 10.1.2 (10g)

    Hello,
    This question belongs to our company project,which is a Govt.Organization. We are using AIX 5.3 Server OS with Oracle 10.1.2 (10g) Application Server on it.
    We have installed all the above OS & Oracle Application on IBM P-Series High End Servers.
    Now, We have successfully installed "Oracle 10g AS" on AIX but after installation, we are getting some common errors which is related to JAVA & Servlet. Below is the error file.
    09/05/02 19:01:50 Started
    09/05/02 19:01:51 vatwebsite: jsp: init
    09/05/02 19:01:51 vatwebsite: FrontServlet: init
    09/05/02 19:01:52 vatwebsite: action: init
    09/05/02 19:01:54 vatwebsite: barbecue: init
    09/05/02 19:01:54 vatwebsite: Started
    09/05/02 19:01:55 vatwebsite: Servlet error
    java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.nextEntry(HashMap.java(Compiled Code))
        at java.util.HashMap$KeyIterator.next(HashMap.java(Compiled Code))
        at java.util.Collections$6.nextElement(Collections.java:2493)
        at org.apache.struts.util.RequestUtils.getModulePrefixes(RequestUtils.java:1907)
        at org.apache.struts.util.RequestUtils.getModuleName(RequestUtils.java:1803)
        at org.apache.struts.util.RequestUtils.getModuleName(RequestUtils.java:1788)
        at org.apache.struts.util.RequestUtils.selectModule(RequestUtils.java:1768)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1481)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
        at com.vat.website.utils.LogRecorderServlet.doPost(LogRecorderServlet.java:38)
        at com.vat.website.utils.LogRecorderServlet.doGet(LogRecorderServlet.java:29)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:824)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:224)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:133)
        at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
        at java.lang.Thread.run(Thread.java:568)
    I need some solution to remove this error. Kindly let me know how to go further to sort out this error. Another thing is,I am not a JAVA/Programmer person But still this is a part of my job.
    So,please do the needful & provide me some guidence & document about "How to solve this JAVA Error".
    Advanced Thanks,
    Nishith Vyas.

    See this thread for a JDBC bug number reference
    JDev 10.1.3 : Error running my first ADF application.

  • Java Visualizer for Oracle 8i Object model

    I have used the java visualizer demo version that is within Ora8iR2 but it cant work with oracle spatial object model I think this version is designed for the relational model.
    Where I can find a object model oracle spatial visualizer??
    Where I can find any oraclevector2image (jpeg or gif) traslator?
    Anybody knows whats the procedure for geolocate the address field of any other table in the database?
    null

    This is a duplicate question. Answers are in the other posting. Thanks.
    Dan

  • Passing Array of java objects to and from oracle database-Complete Example

    Hi all ,
    I am posting a working example of Passing Array of java objects to and from oracle database . I have struggled a lot to get it working and since finally its working , postinmg it here so that it coudl be helpful to the rest of the folks.
    First thinsg first
    i) Create a Java Value Object which you want to pass .
    create or replace and compile java source named Person as
    import java.sql.*;
    import java.io.*;
    public class Person implements SQLData
    private String sql_type = "PERSON_T";
    public int person_id;
    public String person_name;
    public Person () {}
    public String getSQLTypeName() throws SQLException { return sql_type; }
    public void readSQL(SQLInput stream, String typeName) throws SQLException
    sql_type = typeName;
    person_id = stream.readInt();
    person_name = stream.readString();
    public void writeSQL(SQLOutput stream) throws SQLException
    stream.writeInt (person_id);
    stream.writeString (person_name);
    ii) Once you created a Java class compile this class in sql plus. Just Copy paste and run it in SQL .
    you should see a message called "Java created."
    iii) Now create your object Types
    CREATE TYPE person_t AS OBJECT
    EXTERNAL NAME 'Person' LANGUAGE JAVA
    USING SQLData (
    person_id NUMBER(9) EXTERNAL NAME 'person_id',
    person_name VARCHAR2(30) EXTERNAL NAME 'person_name'
    iv) Now create a table of Objects
    CREATE TYPE person_tab IS TABLE OF person_t;
    v) Now create your procedure . Ensure that you create dummy table called "person_test" for loggiing values.
    create or replace
    procedure give_me_an_array( p_array in person_tab,p_arrayout out person_tab)
    as
    l_person_id Number;
    l_person_name Varchar2(200);
    l_person person_t;
    l_p_arrayout person_tab;
    errm Varchar2(2000);
    begin
         l_p_arrayout := person_tab();
    for i in 1 .. p_array.count
    loop
         l_p_arrayout.extend;
         insert into person_test values(p_array(i).person_id, 'in Record '||p_array(i).person_name);
         l_person_id := p_array(i).person_id;
         l_person_name := p_array(i).person_name;
         l_person := person_t(null,null);
         l_person.person_id := l_person_id + 5;
         l_person.person_name := 'Out Record ' ||l_person_name ;
         l_p_arrayout(i) := l_person;
    end loop;
    p_arrayout := l_p_arrayout;
         l_person_id := p_arrayout.count;
    for i in 1 .. p_arrayout.count
    loop
    insert into person_test values(l_person_id, p_arrayout(i).person_name);
    end loop;
    commit;
    EXCEPTION WHEN OTHERS THEN
         errm := SQLERRM;
         insert into person_test values(-1, errm);
         commit;
    end;
    vi) Now finally create your java class which will invoke the pl/sql procedure and get the updated value array and then display it on your screen>Alternatively you can also check the "person_test" tbale
    import java.util.Date;
    import java.io.*;
    import java.sql.*;
    import oracle.sql.*;
    import oracle.jdbc.driver.*;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    public class ArrayDemo
    public static void passArray() throws SQLException
    Connection conn = getConnection();
    ArrayDemo a = new ArrayDemo();
    Person pn1 = new Person();
    pn1.person_id = 1;
    pn1.person_name = "SunilKumar";
    Person pn2 = new Person();
    pn2.person_id = 2;
    pn2.person_name = "Superb";
    Person pn3 = new Person();
    pn3.person_id = 31;
    pn3.person_name = "Outstanding";
    Person[] P_arr = {pn1, pn2, pn3};
    Person[] P_arr_out = new Person[3];
    ArrayDescriptor descriptor =
    ArrayDescriptor.createDescriptor( "PERSON_TAB", conn );
    ARRAY array_to_pass =
    new ARRAY( descriptor, conn, P_arr);
    OracleCallableStatement ps =
    (OracleCallableStatement )conn.prepareCall
    ( "begin give_me_an_array(?,?); end;" );
    ps.setARRAY( 1, array_to_pass );
         ps.registerOutParameter( 2, OracleTypes.ARRAY,"PERSON_TAB" );
         ps.execute();
         oracle.sql.ARRAY returnArray = (oracle.sql.ARRAY)ps.getArray(2);
    Object[] personDetails = (Object[]) returnArray.getArray();
    Person person_record = new Person();
    for (int i = 0; i < personDetails.length; i++) {
              person_record = (Person)personDetails;
              System.out.println( "row " + i + " = '" + person_record.person_name +"'" );
                        public static void main (String args[]){
         try
                             ArrayDemo tfc = new ArrayDemo();
                             tfc.passArray();
         catch(Exception e) {
                        e.printStackTrace();
              public static Connection getConnection() {
         try
                             Class.forName ("oracle.jdbc.OracleDriver");
                             return DriverManager.getConnection("jdbc:oracle:thin:@<<HostNanem>>:1523:VIS",
                             "username", "password");
         catch(Exception SQLe) {
                        System.out.println("IN EXCEPTION BLOCK ");
                        return null;
    and thats it. you are done.
    Hope it atleast helps people to get started. Comments are appreciated. I can be reached at ([email protected]) or [email protected]
    Thanks
    Sunil.s

    Hi Sunil,
    I've a similar situation where I'm trying to insert Java objects in db using bulk insert. My issue is with performance for which I've created a new thread.
    http://forum.java.sun.com/thread.jspa?threadID=5270260&tstart=30
    I ran into your code and looked into it. You've used the Person object array and directly passing it to the oracle.sql.ARRAY constructor. Just curios if this works, cos my understanding is that you need to create a oracle.sql.STRUCT out of ur java object collection and pass it to the ARRAY constructor. I tried ur way but got this runtime exception.
    java.sql.SQLException: Fail to convert to internal representation: JavaBulkInsertNew$Option@10bbf9e
                        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
                        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
                        at oracle.jdbc.oracore.OracleTypeADT.toDatum(OracleTypeADT.java:239)
                        at oracle.jdbc.oracore.OracleTypeADT.toDatumArray(OracleTypeADT.java:274)
                        at oracle.jdbc.oracore.OracleTypeUPT.toDatumArray(OracleTypeUPT.java:115)
                        at oracle.sql.ArrayDescriptor.toOracleArray(ArrayDescriptor.java:1314)
                        at oracle.sql.ARRAY.<init>(ARRAY.java:152)
                        at JavaBulkInsertNew.main(JavaBulkInsertNew.java:76)
    Here's a code snippet I used :
    Object optionVal[] =   {optionArr[0]};   // optionArr[0] is an Option object which has three properties
    oracle.sql.ArrayDescriptor empArrayDescriptor = oracle.sql.ArrayDescriptor.createDescriptor("TT_EMP_TEST",conn);
    ARRAY empArray = new ARRAY(empArrayDescriptor,conn,optionVal);If you visit my thread, u'll see that I'm using STRUCT and then pass it to the ARRAY constructor, which works well, except for the performance issue.
    I'll appreciate if you can provide some information.
    Regards,
    Shamik

  • How to use Java NIO to implement disk cache for serialized java objects

    Hi,
    I have a cache (implemented as hahstable etc.) that contains java objects (mostly strings) and swaps objects from runtime memory to the disk and back based on some algorithms. Currently, the reading and writing from the disk is implemented using java.io.* package i.e. fileInputstream and FileOutputStream. Essentially, I serialize the java object and write to the disk and the deserialize and give it back to the Hashtable cache.
    The performance of swapping from disk to memory is kinda slow. I have read that memory mapping would improve the performance.
    My idea is to do the following:
    Have one big file mapped to memory. I write the serialized objects to different portions of the file and then read those portions when needed. I can use the MappedByteBuffer for that but then I have the following questions. I will not store objects in the hashtable anymore.
    1. How do I delete things from the cache in the above design i.e. how do I delete portions of a mapped file?
    2. How do I serialize objects using ByteBuffers and then deserialize them? I guess this shouldn't be hard but just want to confirm.
    Do you think this is the right design or should I change? Right now using the old io package, I have a separate file for each object. When using the NIO package, I want to store all objects in a single file in different portions of the file, is that the right way to go?
    As you can see, I am beginner in memory mapped io and need help.

    Have one big file mapped to memory. I write the serialized objects to different portions of the file and then read those portions when needed. I can use the MappedByteBufferThis is a good idea, one that I have worked on. It involves quite a bit of manipulation with temporary buffers and a deep working knowledge of object serialization.
    1. How do I delete things from the cache in the above design i.e. how do I delete portions of a mapped file?The best way to handle this is do a two-step process, cutting the file into two pieces and gluing it back together where the original one is...
    2. How do I serialize objects using ByteBuffers and then deserialize them? I guess this shouldn't be hard but just want to confirm.It is hard. Wrapping the streams and making the IO work properly is not the challenge however. The hard part comes in hacking the object streams. The object input/output streams use a ClassDescriptor object which only gets written once/ read once. This shouldn't be a problem if you will read/write the entire file at once, but will bring you grief if you want random access to your objects. You will also need an indexing mechanism to support random access.
    Do you think this is the right design or should I change? Right now using the old io package, I have a separate file for each object. When using the NIO package, I want to store all objects in a single file in different portions of the file, is that the right way to go?I guess it depends on your needs. Do you require random access to objects? NIO provides some performance gains, but mostly for very large amounts of data (>10M in my experience).
    You can always write all your objects into the same file using normal io techniques and you can still generate an index and acheive random access. It might be easier...
    Good luck

  • Trying to pass Oracle array/object type to Java

    I have a Java class with two inner classes that are loaded into Oracle:
    public class PDFJ
        public static class TextObject
            public String font_name;
            public int font_size;
            public String font_style;
            public String text_string;
        public static class ColumnObject
            public int left_pos;
            public int right_pos;
            public int top_pos;
            public int bottom_pos;
            public int leading;
            public TextObject[] column_texts;
    }I have object types in Oracle as such that bind to the Java classes:
    CREATE OR REPLACE TYPE "PROGRAMMER"."PDFJ_TEXT" AS OBJECT
    EXTERNAL NAME 'PDFJ$TextObject'
    LANGUAGE JAVA
    USING SQLData(
      "FONT_NAME" VARCHAR2(25) EXTERNAL NAME 'font_name',
      "FONT_SIZE" NUMBER EXTERNAL NAME 'font_size',
      "FONT_STYLE" VARCHAR2(1) EXTERNAL NAME 'font_style',
      "TEXT_STRING" VARCHAR2(4000) EXTERNAL NAME 'text_string'
    CREATE OR REPLACE TYPE "PROGRAMMER"."PDFJ_TEXT_ARRAY" AS
      TABLE OF "PROGRAMMER"."PDFJ_TEXT";
    CREATE OR REPLACE TYPE "PROGRAMMER"."PDFJ_COLUMN" AS OBJECT
    EXTERNAL NAME 'PDFJ$ColumnObject'
    LANGUAGE JAVA
    USING SQLData(
      "LEFT_POS" NUMBER EXTERNAL NAME 'left_pos',
      "RIGHT_POS" NUMBER EXTERNAL NAME 'right_pos',
      "TOP_POS" NUMBER EXTERNAL NAME 'top_pos',
      "BOTTOM_POS" NUMBER EXTERNAL NAME 'bottom_pos',
      "LEADING" NUMBER EXTERNAL NAME 'leading',
      "COLUMN_TEXTS" "PROGRAMMER"."PDFJ_TEXT_ARRAY" EXTERNAL NAME 'column_texts'
    CREATE OR REPLACE TYPE "PROGRAMMER"."PDFJ_COLUMN_ARRAY" AS
        TABLE OF "PROGRAMMER"."PDFJ_COLUMN";
    /I successfully (as far as I know) build a PDFJ_COLUMN_ARRAY object in a PL/SQL procedure. The PDFJ_COLUMN_ARRAY contains PDFJ_COLUMN objects; each of those objects contains a PDFJ_TEXT_ARRAY of PDFJ_TEXT objects (Example: pdf_column_array(i).pdf_text_array(i).text_string := 'something';). In this procedure, I pass this PDFJ_COLUMN_ARRAY as a parameter to a Java function. I assume the Java function parameter is supposed to be a oracle.sql.ARRAY object.
    I cannot figure out how to decompose this generic ARRAY object into a ColumnObject[] array. I also tried Googling and searching the forums, but I can't figure out matching search criteria. I was wondering if anyone here knows anything about passing user-defined Oracle type objects to a Java function and retrieving the user-defined Java class equivalents that they are supposedly mapped to--especially a user-defined array type of user-defined object types containing another user-defined array type of user-defined object types.

    Ok. I will try asking on the JDBC forum. So, don't
    flame me for cross-posting. :PWe won't, if over there you just post basically a
    link to this one.
    sigh Guess what, he did it the flame-deserving way. It's crossposted at:
    http://forum.java.sun.com/thread.jspa?threadID=602805
    <flame level="mild">Never ceases to amaze me how people don't think that posting a duplicate rather than a simple link isn't wasteful, as people could end up answering in both of them, not seeing each other's answers</flame>

  • Oracle cache - 10g updating...

    Hi all,
    I have setup a cache using TimesTen in front of an Oracle 10g instance.
    I am caching a number of tables where I would like to allow updates/inserts within TimesTen to be propogated back to 10g.
    The reason being I would only like to hold a subset of the cached table in TimesTen (and keep on pruning it on a daily basis by date for instance - due to memory constraints) I of course dont want these deletes to be pushed to the cache but I do want the updates and inserts to be pushed.
    Is there a way of doing this?
    Thanks,
    Dan

    Yes, there are several ways to do this.
    1. If you are using TimesTen 7.0 or later then you could configure automatic aging (timestamp or LRU based). See the SQL Guide for details. When aging removes a row in TimesTen the 'delete' is not propagated to Oracle.
    2. If you are using AWT or SWT cache groups, you or the application (or a cron script etc.) can execute UNLOAD CACHE GROUP cgname WHERE ...; Any rows matching the WHERE clause will be removed from TimesTen but again the 'deletes' will not be propagated to Oracle. Contracts this with doing DELETE FROm cgtable WHERE ...; in which case the deletes are propagated to Oracle.
    3. If you have a USERMANAGED cache group and are doing manual propagation to Oracle using FLUSH CACHE GROUP then this anyway does not propagate deletes.
    Chris

Maybe you are looking for