To cache or materialize?

Hi all,
I have a table with a few thousand rows of SDO_GEOMETRY (simple curves), and a view that returns the results of operations on them as follows:
CREATE TABLE BASE_GEOM
ID NUMBER,
CONTOUR MDSYS.SDO_GEOMETRY
/* ... populate this table with a bunch of closed curves ... */
CREATE OR REPLACE FORCE VIEW VW_DERIVED_VALS
AS
SELECT BG.ID,
SDO_GEOM.SDO_AREA (BG.CONTOUR, 0.005) AREA
FROM BASE_GEOM BG;
On a regular basis, I want to return the AREA field for a large subset of the rows in the table. Since this AREA field only changes when the underlying CONTOUR field changes, is there any way that I can pre-compute the result (ie, at the time of insert/update to the BASE_GEOM table), and simply return this result from memory, rather than calculating the AREA every time it is requested?
I have a feeling the answer might be materialized views, but every example I've seen for materialized views is based on the idea that a query is run at some other time (ie, midnight each night), and on a whole data set, rather than at the time of insert/update and only on a single row.
Thanks,
Sven.

Sven,
The problem is with the SDO_AREA function as can be seen in the result text ("mv references PL/SQL function that maintains state") at the bottom:
/* First create the table */
CREATE TABLE MUSCLE_PSOAS (
  MUSCLE_PSOASID   NUMBER(38),
  RL4AXIALCONTOUR  MDSYS.SDO_GEOMETRY
/* Now the primary key */
ALTER TABLE MUSCLE_PSOAS ADD CONSTRAINT MUSCLE_PSOAS_PK PRIMARY KEY (MUSCLE_PSOASID);
/* Now the MV log */
/* To support all DML (INSERT, UPDATE and DELETE) for FAST REFRESH you must include SEQUENCE and "INCLUDING NEW VALUES" in the MV log. */
CREATE MATERIALIZED VIEW LOG ON MUSCLE_PSOAS
     WITH SEQUENCE, PRIMARY KEY, ROWID
     INCLUDING NEW VALUES;
/* Now create the materialized view */
CREATE MATERIALIZED VIEW MV_DERIVED_MUSCLE_PSOAS
BUILD IMMEDIATE
REFRESH COMPLETE /* Hide "FAST ON COMMIT" to see what MV_Capabilities says... */
WITH PRIMARY KEY
AS
   SELECT mp.rowid as mp_rowid,
          MP.MUSCLE_PSOASID,
          SDO_GEOM.SDO_AREA (mp.RL4AxialContour, 0.005) rl4area
     FROM muscle_psoas mp;
DELETE FROM MV_CAPABILITIES_TABLE;
COMMIT;
execute dbms_mview.explain_mview('MV_DERIVED_MUSCLE_PSOAS');
SELECT capability_name,
       possible,
       related_text,
       msgtxt
  FROM MV_CAPABILITIES_TABLE
WHERE capability_name not like '%PCT%'
   AND capability_name not like 'PCT%'
   AND capability_name not like '%REWRITE%'
   AND capability_name not like 'REWRITE%'
ORDER BY seq;
/* Drop objects */
DROP MATERIALIZED VIEW MV_DERIVED_MUSCLE_PSOAS;
DROP TABLE MUSCLE_PSOAS;Results....
CREATE TABLE succeeded.
ALTER TABLE MUSCLE_PSOAS succeeded.
CREATE MATERIALIZED succeeded.
CREATE MATERIALIZED succeeded.
20 rows deleted
commited
anonymous block completed
CAPABILITY_NAME                POSSIBLE RELATED_TEXT MSGTXT
REFRESH_COMPLETE               Y        NULL         NULL
REFRESH_FAST                   N        NULL         NULL
REFRESH_FAST_AFTER_INSERT      N        NULL         mv references PL/SQL function that maintains state
REFRESH_FAST_AFTER_ONETAB_DML  N        NULL         see the reason why REFRESH_FAST_AFTER_INSERT is disabled
REFRESH_FAST_AFTER_ANY_DML     N        NULL         see the reason why REFRESH_FAST_AFTER_ONETAB_DML is disabled
DROP MATERIALIZED VIEW succeeded.
DROP TABLE MUSCLE_PSOAS succeeded.Now, how can one get it to work? This is how I did it.
/* First create the table */
CREATE TABLE MUSCLE_PSOAS (
  MUSCLE_PSOASID    NUMBER(38),
  rl4area           NUMBER,
  RL4AXIALCONTOUR   MDSYS.SDO_GEOMETRY
/* Now the primary key */
ALTER TABLE MUSCLE_PSOAS ADD CONSTRAINT MUSCLE_PSOAS_PK PRIMARY KEY (MUSCLE_PSOASID);
/* Create Sequence */
Create Sequence MUSCLE_PSOAS_PK_SEQ;
/* Create Trigger for PK and Area */
create or replace trigger MUSCLE_PSOAS_PK_SEQ
before insert or update on MUSCLE_PSOAS
for each row
begin
  if inserting then
    if :NEW.MUSCLE_PSOASID is null then
       select MUSCLE_PSOAS_PK_SEQ.nextval into :NEW.MUSCLE_PSOASID from dual;
    end if;
  end if;
  If :NEW.rl4area is null and :NEW.RL4AXiALCONTOUR is not null then
     :new.rl4area := MDSYS.SDO_GEOM.SDO_AREA(:new.RL4AxialContour, 0.005);
  end if;
end;
show errors
/* Now the MV log */
/* To support all DML (INSERT, UPDATE and DELETE) for FAST REFRESH you must include SEQUENCE and "INCLUDING NEW VALUES" in the MV log. */
CREATE MATERIALIZED VIEW LOG ON MUSCLE_PSOAS
     WITH SEQUENCE, PRIMARY KEY, ROWID
     INCLUDING NEW VALUES;
/* Now create the materialized view */
CREATE MATERIALIZED VIEW MV_DERIVED_MUSCLE_PSOAS
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
WITH PRIMARY KEY
AS
   SELECT mp.rowid as mp_rowid,
          MP.MUSCLE_PSOASID,
          mp.rl4area
     FROM muscle_psoas mp;
DELETE FROM MV_CAPABILITIES_TABLE;
COMMIT;
execute dbms_mview.explain_mview('MV_DERIVED_MUSCLE_PSOAS');
SELECT capability_name,
       possible,
       related_text,
       msgtxt
  FROM MV_CAPABILITIES_TABLE
WHERE capability_name not like '%PCT%'
   AND capability_name not like 'PCT%'
   AND capability_name not like '%REWRITE%'
   AND capability_name not like 'REWRITE%'
ORDER BY seq;
/* Drop objects */
DROP MATERIALIZED VIEW LOG ON MUSCLE_PSOAS;
DROP MATERIALIZED VIEW MV_DERIVED_MUSCLE_PSOAS;
DROP TABLE MUSCLE_PSOAS;
DROP SEQUENCE MUSCLE_PSOAS_PK_SEQ;With the result being:
CREATE TABLE succeeded.
ALTER TABLE MUSCLE_PSOAS succeeded.
Create Sequence succeeded.
TRIGGER MUSCLE_PSOAS_PK_SEQ compiled
No Errors.
CREATE MATERIALIZED succeeded.
CREATE MATERIALIZED succeeded.
14 rows deleted
commited
anonymous block completed
CAPABILITY_NAME                POSSIBLE RELATED_TEXT   MSGTXT
REFRESH_COMPLETE               Y        NULL           NULL
REFRESH_FAST                   Y        NULL           NULL
REFRESH_FAST_AFTER_INSERT      Y        NULL           NULL
REFRESH_FAST_AFTER_ONETAB_DML  Y        NULL           NULL
REFRESH_FAST_AFTER_ANY_DML     Y        NULL           NULL
DROP MATERIALIZED VIEW succeeded.
DROP MATERIALIZED VIEW succeeded.
DROP TABLE MUSCLE_PSOAS succeeded.
DROP SEQUENCE MUSCLE_PSOAS_PK_SEQ succeeded.OK, I know you want to generate the area on the fly - and in this solution an ordinary view will do - but if you need to build fast refresh MVs, the way to do it is:
1. Create the MV REFRESH COMPLETE
2. Then use dbms_mview.explain_mview and MV_CAPABILITIES_TABLE to work out why it will not refresh fast.
3. Play around until you get the required Y against the REFRESH_FAST CAPABILITY_NAME.
4. Deploy
Hope this helps.
regards
Simon

Similar Messages

  • Object Serialization(Materialization and Dematerialization)

    I've encountered some issues with mapping my objects to an RDBMS and am hoping for some advice.
    I've tried various O/R mapping frameworks like Castor(too complex and too slow for my liking), JRF(nice but very repetitive and difficult to extend) and then some, but have yet to find one which I'm comfortable with building an application on.
    Instead, I've chosen to do it the low-tech way, with each domain class, say Book for instance, having a Broker class which knows how to communicate with the chosen form of persistence. So, since I chose an RDBMS, Book class has a BookRelationalBroker class which knows how to materialize and dematerialize Book objects to and from a RDBMS. If so required, I can plug in a BookXMLBroker which knows how to serialize the object in the form of an xml data file.
    I've also implemented a primitive object caching system which (when enabled), caches objects requested so we only have to materialize it from the db once.
    Here are 2 issues I have with my system:
    It is amazingly tedious (not to mention inefficient) to recreate the entire object from the database. This is even more so because I've implemented the Event Notification pattern, such that when say a book is deleted, the members who have reserved it are notified. The whole point of the Event Notification mechanism is so that the object being watched does not need to know of the objects which need to be notified on a state change. However, I've found it necessary to re-attach all the listeners on an object when it is materialized from the DB, defeating the purpose of the pattern.
    Complex object relationships are mapped poorly and recursive materialization leads to slow response times. If a Group object has a Vector of Members and other Groups, then whenever a Group object is materialized, all its constituent Members and Group objects also need to be materialized. (I understand O/R frameworks solve this through lazy instantiation)
    I studied the Jive2 architecture and found that they approached this problem by accessing the DB directly for any complex object relationships. In other words, the Group object does not actually contain a Vector of Members and Groups. Instead, it has a method called say getMembers() which proceeds to retrieve the necessary data from the DB and then materialize these objects.
    I'm not too excited about this approach for 2 reasons:
    How object-oriented is this approach? Seems more like database-oriented programming to me.
    Every call to retrieve Members necessitates a call to the DB. The data isn't cached with the Group object because the Group object does not actually contain the necessary reference to the Members and Groups.
    Can anyone shed some light on this topic?

    How object-oriented is this approach? Seems more like database-oriented programming to me. There is a reason people still use Relational databases rather than OO DBs. First, is that the vast majority of data in the real world maps easily to a relational model, consequently there is no advantage to a OO model. Second, either because of this or simply because OO models are not computationally simple, OO databases tend to be slower than relational DBs.
    It sounds like you are trying to implement a OO DB model using a relational database. So you basically end up with two problems. The DB is not optimized for OO models, and you have to find a way to map it in the OO model itself. And this is slow and messy.
    To solve the slowness problem you could, just like EJB servers, cache the data in memory. Lot of work but if you want to do it then have fun.
    The second way is to give up. Realize that your data model is not inherently OO'd and just implement it efficiently as a relational model. Then provide an interface that loads it into the OO model. And where needed add pass through logic to allow the database itself to do things it is really good at - like queries.

  • Error Message: Need to purge Cache in Adobe Bridge CC (on PC)

    I tried purging using Adobe Bridge by going to Edit/Preferences/Cache then purging, but it becomes non responsive.  The error message said the problem files were at Users/(my user name)/AppData/Roaming/Adobe/BridgeCC/Cache.   There are 4 files in there that are taking up 124 GB!  Can I simply delete these files or will it corrupt my regular files?  I tried doing as some other forums suggested and hold the ALT key down when opening Bridge before purging, but no luck.

    Yes, you can delete the cache files manually,  Just be advised that Bridge will become very, very slow until it finishes rebuilding its caches.  Depending on your files, that can take a few minutes or several hours.
    A good way of doing it is at night, so you can do it before going to bed and let Bridge rebuild caches overnight.
    If you can, save the cache files before deleting them to an external drive, so that you'll have them as backup if something goes wrong.

  • How do I stop Firefox from auto-loading websites on startup? Why doesn't it use the cache?

    When I open up Firefox, I see a row of "loading circles" swishing around. I don't want my browser to do this, because it slows down my internet connection, it's unnecessary 95% of the time (I often keep tabs open just to have quick access to some text), and sometime it's actually detrimental (for example, when the page has changed since the last time I loaded it, but I actually wanted the information from the former state of the page).
    How do I fix it so that Firefox uses the cached page instead of trying to load a new one?
    To clarify: I want Firefox to load the new page when I visit a bookmark, or click on a link to a page I've seen before, or press the reload button. I just don't want it to do this when all I've done is start up Firefox.
    Let the tabs sit there until I tell them to do something! Can anyone help?
    Using:
    Firefox 9.0.1
    Windows XP SP3

    Yes, but at least the start will be faster and only one tab ta the time is checked on the server.
    See also:
    *http://kb.mozillazine.org/browser.cache.check_doc_frequency

  • Have a  problem with Lightroom 5.4.  Since the program crashed yesterday it won't launch, it comes up with the message "Lightroom encountered an error when reading its preview cache and needs to quit".  "  Lightroom will attempt to fix this problem net ti

    Have a  problem with Lightroom 5.4.  Since the program crashed yesterday it won't launch, it comes up with the message "Lightroom encountered an error when reading its preview cache and needs to quit".  "  Lightroom will attempt to fix this problem next time it launches".  Except that it doesn't, I keep getting the same message and the program closes.  Does anyone know what I  can do to repair it?  Can't back up, can't do anything.

    There are dozens of threads in this forum that describe the fix

  • When I try to open my Lightroom 5 program it comes up with this message, "Lightroom encountered an error when reading from its preview cache and needs to quit."  How do I fix this?

    Can someone please let me know how I can fix this error and open my Lightroom?  Thanks.

    You might be quicker help posting in the LR forum rather than the ACR forum, but I believe the way to fix this is to delete the preview cache. 
    Find your catalog folder.
    Close LR.
    Within the catalog folder, delete the FOLDER called Catalog-Name Previews.lrdata
    Start LR.

  • Lightroom will not launch and comes up with the following message "Lightroom encountered an error when reading from its preview cache and needs to quit".  Lightroom will attempt to fix the problem next time it launches, except it doesn't fix and I now can

    Can anyone help with the above problem?

    Here is your fix: Lightroom says my preview cache is corrupted—how do I fix it? - The Lightroom Queen

  • Outlook autocomplete cache stops working for multiple users at the same time

    Hi there
    Ever since we upgraded our Exchange 2010 to Exchange 2013 we have had problems with the autocomplete cache in Outlook 2010.
    We have 700 users and about once per week I get a call about the autocomplete cache. A few users are on cached mode, but most use online mode. The problem appears on both, but it can usually be corrected by /cleanautocompletecache.
    Granted, the autocomplete cache gets corrupted sometimes, but it seems to happen a lot for us. I have noticed that often more than one user experiences the problem at the same time, and, since the problem starting after upgrading Exchange, I suspect that
    the issue is with Exchange and not Outlook. Yesterday three users complained about the cache at the same time.
    I know how to get a broken cache going again - that is not the issue. The issue is keeping this from happening so often.
    Anyone out there able to help?
    Thanks!
    /Anders

    Hi ,
    Based on my knowledge , when you tried to send an email to a recipient in the same exchange organisation then the recipient address will be resolved in to legacy dn value and then that email will be delivered to destination mailbox by pointing towards to
    that legacy dn value.
    For the external recipients exchange user the smtp address to get it delivered.
    For your issue :
    Based upon the NDR message , we need to covert those values in to x500 format and add it to respective recipient mailbox as an x500 address.Then These erorrs will happen if the x500 value of the destination recipient is not available on it's maibox
    and that would be the cause of the NDR for most of the times.Some time as you said autocomplete cache would get corrupted on the client end but it is very rare.
    How to convert NDR to x500 address format :
    http://msexchangeguru.com/2012/03/15/x500/
    How to avoid getting such kind of NDR'S :
    https://www.simple-talk.com/sysadmin/exchange/exchange-e-mail-addresses-and-the-outlook-address-cache/
    In case if you don't want the users to use the autocomplete cache when composing the new emails :
    In group policy we can use the  office templates to disable the below mentioned option.
    1.use autocomplete to suggest the names ---> this option will comes under the advanced settings on the outlook client.
    In case if you don't want the users to use the autocomplete cache when composing the new emails as well as if you wanted to delete that autocomplete then you need to choose one more option along with the first one.
    1.Empty autocomplete cache.
    Please reply me if anyhitng is unclear.
    Thanks & Regards S.Nithyanandham

  • Ssd cache performanc​e

    At this point I can only image it will help but I am trying to decide if sdd cache on the 450r is going to have a better return on performance versus a ssd drive for swap files on my VMware host. Soon to be multiple hosts.  This is not a production box but a replica site I have pieced together from some new hardware and old,.
    I would like to know if anyone has any performance metrics with ssd cache.  I am looking to get 2x256GB drives in a mirror.  This is a big project since I will have all my bays filled.  I would have to find a temp location for all my replicas break my raid and rebuild everything. I am not against it, I just want to know what I am looking at for percent of performance gains.  i know it will depend on what I plan on get setting cache policy to but I am planning on write around since most of our systems are read based. 
    Any info is appreciated. 
    Also let me know if you anyone is using iSCSI over NFS and why.  I have heard a lot about read being way faster with iSCSI but since I can't have multiple hosts on an iSCSI volume am stuck with NFS for now.

    I did try eSATA as well, the WD drive was able to do 150MB/s and 149MB/s, read and write respectively. (as the QM57 chipset natively supports SATA at 3Gb/s)
    The issue here is as part of the decision process to get the W510, USB 3 capability came into consideration (for having more than 1 fast external storage device).
    EDIT:
    Ultimately, what I'm really after is:
    1. Have I configured something incorrectly, or misconfigured something.  Or is there's some ideal component linkage I'm missing.
    2. Is the W510's USB 3.0, at the very least, capable of delivering 2.5GT/s?
    3. I may, or may not have to file a complaint to Lenovo or BBB for misleading marketing / sales info.
    2nd EDIT:
    I do thank you for suggesting eSATA.  However, if Lenovo is going to reply to this, I simply won't take "use the touchpad instead" if the trackpoint isn't working properly.

  • Error while attaching to cache grid - 3399

    Hi experts,
    I am getting following error in cache grid operation –
    3399: The recorded information indicates that there are other attached members of the grid but this member failed to communicate any of them
    Let me tell you what I am trying to achieve
    I have two hosts 1 and 2, host 1 and host 2 should be a part of cachegrid. Oracle DB (Persistent DB) is shared with both hosts and is at host 1. Host 2 have access to Oracle on Host 1 (I can do sqlplus from host 2 to host 1's Oracle DB)
    Steps I followed are -
    Host 1 – (Contains IMDB as well as Persistent DB )
    call ttcacheUidPwdSet ('cacheuser','oracle');
    call ttGridCreate ('Grid');
    call ttGridNameSet ('Grid');
    call ttcacheStart;
    call ttCachePolicySet('always');
    call ttrepPolicySet('always');
    …some cache groups ….
    call ttRepStart;
    call ttGridAttach(1,'alone1','host',5001);
    Host 2 - (Contain only IMDB)
    call ttcacheUidPwdSet ('cacheuser','oracle');
    call ttGridNameSet ('Grid');
    call ttcacheStart;
    call ttCachePolicySet('always');
    call ttrepPolicySet('always');
    …. Same cache groups as in host 1 …
    call ttRepStart;
    call ttGridAttach(1,'alone2','host2',5002);
    ttGridNodeStatus displays on both hosts, TimesTen standalone DB attached on grid -
    Command> call ttGridNodeStatus;
    < GRID, 1, 1, T, host1, GRID_alone1_1, "some IP address", 5001, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
    When I try to attach host 2 on grid gets following message –
    Command> call ttGridAttach(1,'alone2','host2',5002);
    3399: The recorded information indicates that there are other attached members of the grid but this member failed to communicate any of them
    The command failed.
    All .ini files for timesten seem to be good.
    Are steps correct? Did I miss something in documentation?

    Hi,
    The error indicates that host2 couldn't communicate with the attached data store on host1. Can you try to get more information?
    1. ttStatus output of the attached data store on host1.
    2. On host2, can you try to ping "some IP address"?
    Besides, I noticed some inconsistency in your script. When you were attaching the first data store, you invoked:
    call ttGridAttach(1,'alone1','*host*',5001);
    But ttGridNodeStatus showed "*host1*" instead of "*host*".
    Command> call ttGridNodeStatus;
    < GRID, 1, 1, T, host1, GRID_alone1_1, "some IP address", 5001, <NULL>, <NULL>, <NULL>, <NULL>, <NULL> >
    Andy

  • Invalid connection cache name error while invoking a bpel process

    while invoking a service via DB adapter ,it gives invalid connection cache name orabpel 00000 error. the JCA connection is set properly and its reffered via jndi name in code. i tested the connection in EM and its working fine.
    Few transactions have passed and thereafter i'm getting this error.
    is there any parameter that needs to be set. Someone can help here!!

    Have got the same problem. Scenario at my end is little different though.
    I am trying to invoke a BPEL process from an ESB Service.
    I am trying to look into it..
    However, would be grateful, if someone can give some insight into this since many are running into this issue without being able to fix.
    Ashish.

  • Install cache error

    I'm trying to install itunes 10.6 on windows 7 home premium.  it downloads the software and starts to install.  I receive an error:  "an error occurred while attempting to create the directory c:/program data/apple/installer cache" I click retry several times and no luck so I have to click cancel and it rollsback the installation. I have downloaded a new copy of the installer from another computer and receive the same error.  I dropped the UAC on the system to none.  That did not work, it give me the same error.  I have tried renaming the Installer Cache to a temp name and when installing again, I the error says it doesn't have the permissions to create the directory.  I have gone into the control panel and attempted to repair bonjour, itunes, apple mobile device support, apple software update and quicktime and all of them have reported "The system cannot find the file specified."  I have tried running the install package with the right click Run as Administrator and the install cache error still occurs.  I have check the security on the file and it has my user name and full control on the parent and all items below.
    When I plug in my iphone or ipod, it asks about updating to 5.1, I click download only. I then receive an error window "There was a problem downloading the software for the iphone or ipod.  The network connection could not be established"
    I don't know if the two problems are related.  I'm at a stand still have have no other ideas of what to try next.  What suggestions might you have to solve this problem?
    Thanks for the help!
    Joel

    I tried to rename the apple computer folder to _old and I received another error with another really funky folder name that looked like a SID.  I renamed that and reran.
    Crikey. Probably that number (in the folder name) was the SQUID ("squished GUID") for the iTunes installation (or possibly one of the other associated components being installed). In addition to the error 5, that brings us to a total of three of the more exotic things that could possibly happen in this sort of file-access-problem context.
    So, excellent work on your part getting past all that. Many thanks for reporting back with your resolution, too.

  • Upgrading JWS applications installed in the system cache (enterprise)

    Hello,
    On request from several customers, I've looked into the best way to install a web start application for all users on a computer. These customers have users sharing computers, and the IT department doesn't want to be inconvenienced with installing applications on every user profile on every computer. The following articles provides a thorough explanation into how this can be done.
    http://download.oracle.com/javase/1.5.0/docs/guide/javaws/developersguide/javaws.html
    http://download.oracle.com/javase/1.5.0/docs/guide/deployment/deployment-guide/properties.html
    By specifying the system deployment.config and deployment.properties files and performing the following installation command as an administrator, the application is made available for all current and new users with shared icons on the desktop and the start menu. This works actually very nicely.
    javaws -system -import https://server/app.jnlp
    However, I'm running into different problems when trying to upgrade the application. The application uses an online shortcut (but can be run in offline) and the update check is set to background.
    If an ordinary (non-administrator) user start the application when a new version is available on the server, web start downloads the new version in the background, but into the user's personal cache! When restarting the application, the old shared version still starts. Web start does not download the new version, presumably because it found the new files in the personal cache.
    Another approach I tested was to use offline icons and manually performing a new system installation/import. This downloads the new version into the shared system cache, but leaves all shortcuts invalid. Now the only solution to start the application is to run it from Java Control Panel. It's not even possible to recreate the shortcuts.
    I'm wondering if I'm doing anything wrong or if there exists some best practices for enterprise installations that I'm not aware of. I'm suspecting that these problems are due to limitations or bugs with JWS, but I thought to check with the community before reporting it officially to Oracle.
    The customers are using client computers with Windows flavours.
    I've been testing on Windows 7 64 bit using the 32 bit JRE 1.6.0_u23.
    Any suggestions would be really appreciated. If you are handling enterprise installations in altogether different manner, don't hesitate to respond.
    Thanks.

    Hello,
    Were you able to solve your problem?
    Actually, I'm planning to install the application for all users in a system and I'm on the investigation process.
    In fact, these are my concerns:
    - What is going to happen if a user with limited permissions tries to install a javaws application and it has been enable to be installed on system cache?
    - Where the deployment files need to be located? In the web server (where jnlp is located)?
    - Could system cache installation be performed automatically (when jnlp file is launched) or it would be performed by a system administrator?
    If you could share some information on how you installed a javaws application for all users, I would really appreciate it.

  • Dynamic Creation of Physical Data Server / Agent cache Refresh

    Scenario:
    I have a requirement to load data from xml source to oracle DB, and the xml source will change at run time,but the xsd of the xml would remain same ( so I don't have to change the Logical data Server, models, mappings, interfaces and scenarios - only the Physical Data Server will change at runtime).I have created all the ODI artifacts using ODI studio in my Work Repo and then I'm using odi sdk to create the physical dataserver for the changed xml data source and then invoking the agent programmatically.
    Problem:
    The data is being loaded from the xml source to oracle DB for the first time, but it is not working fine from the second time onwards. If I restart the agent, it is again working fine for one more time. on the first run, I think the agent maintains some sort of cache for the physical data server details and so when ever I change the data server, something is going wrong and that is leading to the following exception. So I want to know, if there is any mechanism to handle dynamic data servers or if there is any way of clearing the agent cache, if any.
    Caused By: org.apache.bsf.BSFException: exception from Jython:
    Traceback (most recent call last):
    File "<string>", line 41, in <module>
    AttributeError: 'NoneType' object has no attribute 'createStatement'
         at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:146)
         at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.execInBSFEngine(SnpScriptingInterpretor.java:346)
         at com.sunopsis.dwg.codeinterpretor.SnpScriptingInterpretor.exec(SnpScriptingInterpretor.java:170)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.scripting(SnpSessTaskSql.java:2458)
         at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:48)
         at oracle.odi.runtime.agent.execution.cmd.ScriptingExecutor.execute(ScriptingExecutor.java:1)
         at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:50)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2906)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2609)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:540)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:453)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1740)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1596)
         at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$2.doAction(StartScenRequestProcessor.java:582)
         at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:214)
         at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.doProcessStartScenTask(StartScenRequestProcessor.java:513)
         at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$StartScenTask.doExecute(StartScenRequestProcessor.java:1070)
         at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:123)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$1.run(DefaultAgentTaskExecutor.java:50)
         at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor.executeAgentTask(DefaultAgentTaskExecutor.java:41)
         at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doExecuteAgentTask(TaskExecutorAgentRequestProcessor.java:93)
         at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.process(TaskExecutorAgentRequestProcessor.java:83)
         at oracle.odi.runtime.agent.support.DefaultRuntimeAgent.execute(DefaultRuntimeAgent.java:68)
         at oracle.odi.runtime.agent.servlet.AgentServlet.processRequest(AgentServlet.java:445)
         at oracle.odi.runtime.agent.servlet.AgentServlet.doPost(AgentServlet.java:394)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:503)
         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
         at org.mortbay.jetty.Server.handle(Server.java:326)
         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
         at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:879)
         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
         at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
         at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)

    Hi ,
    If you want to load multiple files ( same structure) through one connection then in topology create M.XSD for M.XML file
    Create three directories
    RAW -- It will contain file with original name
    PRO- Processing area where file will be moved one by one & renamed it as M.XML.
    OUT- Once file data will be loaded into tables move the file M.XML from PRO to OUT.
    Go to odiexperts to create loop,
    Use odifilemove ( to move & rename/masking) to move A.XML from RAW to PRO & rename to M.XML
    use ODIfilemove to move M.XML to OUT folder & then rename back to A.XML
    Use variables to store file names & refresh
    NoneType' object has no attribute 'createStatement' : It seems that structure of your file is different & your trying to load different files in same schema. If stucture is same then use Procedure "SYNCHRONIZE ALL" after every load...
    Edited by: neeraj_singh on Feb 16, 2012 4:47 AM

  • Lenovo U310: Clean Windows 7 Installation Guide (including Rapid Start and Caching)

    Hi there,
    this is the first time that I am writing such a guide/tutorial/whatever you may call it – there are probably better ones, but though not being a total computer noob, it took me almost one week to get this pretty (now again) little beast running again. So hopefully this helps some others to avoid such stupid downtimes.
    A brief overview on what has happened to my original win 7 Home Premium:
    As some may know, this laptop is very well usable as a “Hackintosh” called Macbook clone. So that’s what I did. It turned out to be nice, but I wanted to go back to Windows after a while, using a clean W7 Pro installation to start over. Actually an easy task, format all drives, install Windows, be happy. Just as I had been doing this for years. Unfortunately, it turned out to be a real challenge. First, I couldn’t “see” my drives during installation (and thus not install), then I got random errors during installation aborting it at different points and finally rapid start and caching didn’t work. Every time I tried to activate them (after Win installation), it crashed my PC. I even found an (official Lenovo!) guide stating to install W7 on the SSD, which worked, but sucks due to space limitations. Oh and another very nice thing: The SSD showed up during WIN installation (but not the classical hard drive) stating it was about 60 GB. So as you can see, I have had a lot of different tries and errors. Why I didn’t use Lenovo Easy Recover? As said before, I erased all partitions…
    Before we start: If you have a good Windows running on the Laptop, do yourself a favor and disconnect the RAID 0 disks using the Intel Rapid Storage Application before(!!!) proceeding. It will make things much easier. And don’t forget to get all you data on an external drive or something.
    Ok, now let’s start.
    1.)    Prepare a USB Stick with the following driver
             http://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=21730 (choose f6flpy-x64.zip If you’re running a   
             64-bit system (standard nowadays), take f6flpy-x86.zip if it is a 32-bit Windows, just download and copy them
             into the stick’s root directory) and plug this stick in one of the left side USB ports.
    2.)    You’ll need Win 7 on either a DVD (plus external drive, for sure) or (bootable) USB stick
    3.)    Connect your drive/stick (with W7) to the right side USB port.
    4.)    Switch the computer on, immediately hit FN and F2. That will open the BIOS.
    5.)    In the BIOS, navigate to the very right section (“save and exit”) and navigate the cursor to “load setup defaults”.
             Hit enter to approve.
    6.)    After that, go to the “boot” tab and disable UEFI-boot.
    7.)    Next, go one more tab to the left and set the controller setting to RAID (NOT AHCI or Compatible!!!).
    8.)    Navigate the cursor down to “Intel Rapid Start” and hit enter. A submenu will pop up-
    9.)    Disable the first entry in that window, that will make the rest be disabled as well.
    10.) Navigate to the very right tab, this time hit save and exit.
    11.) The PC restarts.
    12.) Immediately hit FN and F12 to open the boot selection menu. Select to boot from your W7 DVD drive or USB
            stick.
    13.) Click yourself through the whole process of installing Windows 7 until the page comes up where you will have
            to select where to install it.
    14.) Click on “load drivers” and after a few seconds your downloaded driver should be there. Click ok to use them.
            Please do this step even if you can see your drives (SSD Disk 0, 32 GB and HDD Disk 1, 465(<-?) GB) as you
            would expect them – otherwise you’re very likely to get an error during the install process.
    15.) Now erase all partitions on both drives and select the HDD as the drive to install W7 to – NOT THE SSD!!!!!
            Seriously, don’t choose the SSD.
    16.) Windows will probably say that some extra partitions are necessary and so on, click ok and install Windows.
    17.) After the installation has finished and you see your Desktop, I suggest you to proceed with the next steps in the
            following order to see as early as possible if you are on the right way.
    18.) Install the Chipset driver, restart.
    19.) Install the Intel Rapid Storage “driver” and check the box where it asks to additionally install the control center.
            Reboot.
    20.) Go into BIOS (FN and F2) and enable Intel Rapid Start (the one you disabled in Step 8 and 9)
    21.) Boot into Windows.
    22.) Click on the Windows button, type cmd and right klick on the cmd.exe, select to run it as Admin.
    23.) Now you’ll create a hibernation partition on the SSD. (which by now should be completely empty as we’ve
            deleted all partitions in step 15)
    24.) In the command prompt that we have just opened, type: (without quotas, for sure)
    “diskpart” and hit the enter button
    “list disk” and hit the enter button
    Now you should see your ssd as disk 0 and your hdd as disk 1
    If your ssd is disk 0 (that would be standard), write “select disk 0”, otherwise write: “select disk 1”, and hit the enter button.
    Now write “create partition primary size=4096” and hit enter again. [if you have 4GB of ram, type 4096, if you have 8 GB of ram, use 8192]
    Now write “detail disk” and hit enter to see the volume number behind the volume that we have just created (it is 4 GB or 8 respectively, should be easy to find), in my case that was “2”
    Now type “select volume 2” if your 4 or 8 GB volume has number 2 as well, otherwise use the number you found out in step f. Hit enter.
    Finally, type: “set id=84 override” and hit enter for one last time.
    It should now say back that the id has been set successfully.
    Exit the command prompt. (close)
    25.) Reboot
    26.) Install the Rapid Start driver. Reboot.
    27.) Open the Intel Rapid Storage Application.
    28.) Click on accelerate and approve the settings. Two RAID’s will be created. Reboot.
    29.) Install the remaining drivers, have fun with Windows Update and that’s it!
    Good luck to all of you… And hey Lenovo - wouldn't that have been your job after all these posts showing your costumers in trouble? Just my two cents...
    If you want, you can now turn on UEFI-boot in BIOS.
    PS: If, after installing all drivers, you happen to see one unknown device in your device manager – this one belongs to Lenovo Connect Software that came with your Laptop. (Updates FB, Email etc when PC is in sleep mode) If you install Lenovo Connect it’s going to be fine, however, I would not recommend it as it is said to use a lot of energy and cause some other problems. So just live with it, your PC is totally fine without it.
    Kind regards from Shanghai

    Seriously guys, I can't use my 3 days old laptop. Some help would be mostly appreciated. At this point, the network connection issue doesn't show up anymore, it's just a blank screen after reboot. I reinstall windows and do it all over again just to achieve the same result.
    Now couple of things caught my attention: as I load the "6flpy-x64.zip" driver from step 14, I get a message saying I need to install signed drivers, because unsigned ones are likely to mess up the system.
    Secondly, I could not find any Rapid Storage Technology drivers for Windows 7 (particularly for U310 model), so I use the Windows 8 ones (http://support.lenovo.com/en_US/downloads/detail.page?DocID=DS031455), which seems a silly thing, yet I know of no alternatives.
    Could it be any of these issues to cause my problem? Or smth else? Please help!

Maybe you are looking for

  • "show in explorer" is very slow

    I am running win 7 on  a workstation. The windows  indexing function is running properly.  If I enter a filename into the windows search box it is found instantly.  But when I am in LR CC and I select the option to show the file in Explorer, LR begin

  • CUPS Linux-to-Linux printing problems [SOLVED]

    I'm having quite a hard time getting my shared Brother HL-2040 to be recognized by another Arch workstation on my LAN. Solved: Upon inspecting the config further, I decided to try adding the remote user's account to the local machine and that did the

  • Slideshow Not Working

    In Windows XP Pro the slideshow goes black when I press play, even tho the slide numbers on the lower right of the screen are progressing as if there was a slideshow. I know others have posted similar problems upon the upgrade to 1.1. And I did updat

  • BOBJ XI Communication Security Blackberry

    Hi all, i need to test out BOBJ installation , with the blackberry as the explorer, i have try to look for information on the Security., on how to secure data communicaton between the handheld to the  BOBJ Server, is it handled by the applicaiton def

  • A program that automatically updates into a new version

    I want to build a program that will automatically update to new version...can someone help me the concept regarding this one...thanks in advance.