Is ctx_ddl.sync_index an offline operation?

Sorry if the answer to this is staring at me in the documentation: I couldn't find it if so.
We run Standard Edition 11.2.0.1, so RECREATE_INDEX_ONLINE is not available to us.
Instead, we regularly (about every 2 hours) use ctx_ddl.sync_index to get our Text index to pick up new arrivals in the underlying table.
My question is where ctx_ddl.sync_index is an online operation or not? Does the table become unsearchable whilst it's happening, in other words? Our resyncs take about 8 seconds to complete, and I haven't been able to test for this because if there is an outage, it's over too quickly to spot. But there's talk about us resyncing more frequently -so if it does make the thing unsearchable for even a few seconds, I think we need to know that!

See "3.5 Managing DML Operations for a CONTEXT Index"
at http://download.oracle.com/docs/cd/E11882_01/text.112/e16594/ind.htm#i1007544
and "SYNC_INDEX"
at http://download.oracle.com/docs/cd/E11882_01/text.112/e16593/cddlpkg.htm#CCREF0652
Yes, reading them doesn't make it clear the the existing index is usable, queryable while a Sync is running.
However, it is apparent that new entries from DML are not visible in the index until the SYNC_INDEX is done. The SYNC_INDEX commits new entries in batches -- so it is concurrent with existing entries being queryable.
Your Text Indexes may need periodic re-optimization.
see "OPTIMIZE_INDEX"
at http://download.oracle.com/docs/cd/E11882_01/text.112/e16593/cddlpkg.htm#i998200
(OTOH : DROP and CREATE is something which you wouldn't do !)
Text Indexes aren't really "index structures" in the manner of, say, regular B-Tree indexes. They are actually "Tables" that are seen as Indexes -- somewhat like "Lookup Tables".
(The last time I worked with Text Indexes was in 8.1.7 , but 11.2 doesn't negate any of my knowledge of Text Indexes).
Hemant K Chitale

Similar Messages

  • CTX_DDL.SYNC_INDEX 'memory' argument

    According to the Oracle Text manual,
    http://download.oracle.com/docs/cd/B28359_01/text.111/b28304/cddlpkg.htm#i998469
    The memory parameter specifies the amount of memory Oracle Text uses for the synchronization operation before flushing the index to disk.
    Does this memory come out of the shared pool, or the PGA?
    I want to allocate as much memory as possible for a one-time index sync following a massive data intake, but I need to know where the memory is coming from.
    Thanks

    According to the Performance FAQ,
    http://www.oracle.com/technology/products/text/x/faqs/imt_perf_faq.html#q21
    It helps to size your SGA downward during an index rebuild to make more room for the indexing process. So the 'memory' referred to in CTX_DDL.SYNC_INDEX must be external to the SGA. That's what I needed to know.

  • Trigger calling ctx_ddl.sync_index problem

    Dear,
    In order to keep my context indexes up-to-date, I'm trying to write a trigger calling this PL/SQL procedure on update/insert/delete statement.
    However, there must be a problem in my trigger definition since it gives compilation errors! I don't see what 's wrong!
    This is my trigger definition:
    =========BEGIN==================
    create or replace trigger update_lexicon_expl_nl after insert or delete or update on lexicon begin execute ctx_ddl.sync_index('lexicon_expl_nl'); end;
    =========END===================
    The compilation error is something like:
    "Encountered ctx_ddl when expecting one of the following :=.(@;immediate"
    PS. calling 'execute ctx_ddl.sync('myindex') in SQL Plus is workigng OK
    Please help.
    Dirk

    You do not need to trigger that table,there are two way to 'update' index.
    1.Alter index your_index_name rebuild.
    2.Set up background DML process, which need you work with an DBA or you have ctxsys role.

  • Calling CTX_DDL.SYNC_INDEX Package but reflected

    Hi All,
    I have a table Customer_Tif_Detail which is having   9383428 rows:
    select count(*) from Customer_Tif_Detail;
    COUNT(*)
    9383428
    And I have a query which taking too much time to execute, below is teh query:
    Select  ZIP_STATUS From Customer_Tif_Detail Ctd Where Ctd.Tif_Name Like '%231079_0068.tif%'
    AND 0= ( select count(*) as CNT From Customer_Document_Detail Cdd Where Cdd.Tif_End Is Null
    And cdd.id = ctd.id AND Cdd.Submit_Flag = 'Y');
    Then I created a Index Type Index, below is the process I did:
    BEGIN
         CTX_DDL.CREATE_PREFERENCE ('tif_details', 'BASIC_LEXER');
        CTX_DDL.SET_ATTRIBUTE ('tif_details', 'PRINTJOINS', '_.');
       END;
    CREATE INDEX idx_customer_tif_name ON Customer_Tif_Detail(tif_name) INDEXTYPE IS CTXSYS.CONTEXT
       PARAMETERS ('LEXER tif_details');
    And I am using below query with using contains, below is query:
    Select  ZIP_STATUS From Customer_Tif_Detail Ctd Where Ctd.Tif_Name contains(tif_name, '%231079_0068.tif%' )
    AND 0= ( select count(*) as CNT From Customer_Document_Detail Cdd Where Cdd.Tif_End Is Null
    And cdd.id = ctd.id AND Cdd.Submit_Flag = 'Y');
    Now its working fine, but when I check from below query them I am gettimg lot of missing data from index:
    select count(*) from dr$IDX_TIF_NAME_CTX$i;
    COUNT(*)
    7953605
    Even I used below CTX_DDL.SYNC_INDEX package to do syncronization even I am getting same records:
       call CTX_DDL.SYNC_INDEX('idx_customer_tif_name', '1073741824');
    what I am missing here to do proper syncronization between index and original data?
    and how miuch memory I need to apply after some insertion goes on Customer_Tif_Detail table to syncronization  index on CTX_DDL.SYNC_INDEX package?
    Thanks

    What is the result of;
    select count(DISTINCT tif_name) from Customer_Tif_Detail;

  • CTX_DDL.SYNC_INDEX  gives ORA-03113 error

    I am trying to use the CTX_DDL.SYNC_INDEX command in order to update the full Text Index on a table, which contains a word document as a binary object, but I get an ORA-03113 error every time I do this. I get the same error if the table contains an Excel file. It works perfectly OK if the table contains simple text files.

    Hi Barbara - thanks for your response.
    In answer to your questions;
    Oracle version is 9.2.0.1.0
    Table structure is created with following sql;
    CREATE TABLE DOCUMENTFILE
         (DOCUMENTFILEID      NUMBER (10,0) NOT NULL,
         DATA                LONG RAW,
         FILE_SIZE           NUMBER (10,0),
         FILENAME           VARCHAR2 (510),
         ENCRYPTIONKEY           VARCHAR2 (100),
         VALIDATIONKEY           VARCHAR2 (100),
         MIMETYPE           VARCHAR2 (255),
         FILEEXTENSION           CHAR (3),
         DELETED           NUMBER (1,0)
    Index is created with following command
    CREATE INDEX ORGANISATION_TEXT_INDEX
    ON COLLABORATOR.ORGANISATION(ORGANISATION_NAME)
    INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS ('');
    Resync command is as follows
    EXEC CTX_DDL.SYNC_INDEX('DOCUMENT_TEXT_INDEX');
    I am testing by runing the command via SQL Plus
    In response to question 'Are you using inso_filter or auto_filter? ' - I dont know
    Thanks for your help,
    Peter

  • Will frequent execution of CTX_DDL.SYNC_INDEX causes slow performance

    Hi:
    We currently execute CTX_DDL.SYNC_INDEX every 5 mins (using a DBMS_JOB) to synchronize oracle text indexes on VARCHAR2 columns. We are planning on increasing the frequency to 1 min. It looks like performance will not be impacted based on the information in http://download.oracle.com/docs/html/A95995_01/oraclete.htm.
    My question is has anyone seen database performance problems after increasing the frequency of sync_index.
    Thanks!

    Hi,
    our load is not that big, about 1500 new documents (stored in blob) and about 250 updates on documents. The size varies between 2k and 50MB. Even the biggest one goes fast although "Sync on commit". About 10 seconds to insert and index. BTW running on AIX 5.3 and Oracle 10.2.0.3. What helps in this indexing that we made the parameter for memory for text indexes increased to 128MB.
    Herald ten Dam
    Superconsult.nl

  • Ctx_ddl.sync_index

    The sql below synchronizes all the pending context:
    set echo off
    set heading off
    set feedback off
    set pagesize 50000
    spool c:\sync.sql
    select distinct 'exec ctx_ddl.sync_index(''' || PND_INDEX_OWNER || '.' || PND_INDEX_NAME || ''')' from ctx_pending;
    spool off
    @c:\sync.sql;
    Would it be possible to transform the above code into a procedure?
    So I could run that procedure at regular intervals using dbms_job ?
    Can Anyone translate the above into a procedure ?
    Thanks.

    I've received the procedure from a college:
    create or replace procedure sync_context
    is
    begin
    for s_rec in
    (select distinct pnd_index_owner, pnd_index_name
    from ctx_pending) loop
    execute immediate 'begin ctx_ddl.sync_index('''||s_rec.pnd_index_owner||'.'||s_rec.pnd_index_name||'''); end;';
    end loop;
    end;
    Extra Question:
    As user ctxsys it should be sufficient to execute ctx_dll.sync_index to sync all pending context
    but this does not seem to work properly ??

  • CTX_DDL.SYNC_INDEX gives ORA-03113

    I am trying to use the CTX_DDL.SYNC_INDEX command in order to update the full Text Index on a table, which contains a word document as a binary object, but I get an ORA-03113 error every time I do this. I get the same error if the table contains an Excel file. It works perfectly OIK if the table contains simple text files.
    Message was edited by:
    peterearle

    Please post your question in the Oracle Text forum. This forum is for image, audio video.

  • Error building procedure with CTX_DDL.SYNC_INDEX

    I am getting the following error when I try to compile a procedure with a call to CTX_DDL.SYNC_INDEX:
    PLS-00201: identifier 'CTX_DDL' must be declared
    The public synonym for CTX_DDL exists and I can run ctx_ddl.sync_index from an anonymous block within SQL*PLUS. I also have other instances where the procedure will compile. The only real difference I can see between the 2 is the one where it will compile has the QUERY REWRITE privilege whereas the one where it will not compile does not. Is there some reason this privilege is required? Or is there something else I need to get this to compile?
    Thank you for any information.

    Hi,
    to see if some records are waiting to be indexed you can query the view CTX_USER_PENDING:
    select * from ctx_user_pending
    where pnd_index_name = 'NOTES_DETAIL4_INDX';If this gives rows, then you need to Synchronize the index. If it give no rows, then all the records are indexed.
    Herald ten Dam
    http://htendam.wordpress.com

  • Ctx_ddl.sync_index problem

    Hi,
    When I try to use the ctx_ddl.syn_index procedure to synchronize index I've got the following error:
    ERROR at line 1:
    ORA-20000: Oracle Text error:
    DRG-50857: oracle error in drekalc
    ORA-06502: PL/SQL: numeric or value error: character to number conversion error
    ORA-06512: at "CTXSYS.DRIXMD", line 1137
    ORA-01426: numeric overflow
    ORA-06512: at "CTXSYS.DRVXMD", line 206
    ORA-06512: at line 1
    ORA-06512: at "CTXSYS.DRUE", line 160
    ORA-06512: at "CTXSYS.CTX_DDL", line 649
    ORA-06512: at line 1
    So I turned on the 10046 event to see what exactly the cause of the error. And in the trace file I find the following interesting code:
    PARSING IN CURSOR #6 len=56 dep=1 uid=47 oct=47 lid=47 tim=1254155812380556 hv
    begin ctxsys.drvxmd.AllocateDocids(:1, :2, :3, :4); end;
    END OF STMT
    PARSE #6:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=0,tim=1254155812380556
    BINDS #6:
    Bind#0
    oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
    oacflg=00 fl2=0000 frm=00 csi=00 siz=96 off=0
    kxsbbbfp=00c33b8c bln=22 avl=03 flg=05
    value=3268
    Bind#1
    oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
    oacflg=00 fl2=0000 frm=00 csi=00 siz=0 off=24
    kxsbbbfp=00c33ba4 bln=22 avl=01 flg=01
    value=0
    Bind#2
    oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
    oacflg=00 fl2=0000 frm=00 csi=00 siz=0 off=48
    kxsbbbfp=00c33bbc bln=22 avl=04 flg=01
    value=152253
    Bind#3
    oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
    oacflg=00 fl2=0000 frm=00 csi=00 siz=0 off=72
    kxsbbbfp=00c33bd4 bln=22 avl=00 flg=01
    =====================
    PARSING IN CURSOR #8 len=61 dep=2 uid=48 oct=3 lid=48 tim=1254155812380556 hv=2>
    SELECT IDX_NEXTID FROM DR$INDEX WHERE IDX_ID = :B1 FOR UPDATE
    END OF STMT
    PARSE #8:c=1000,e=0,p=0,cr=0,cu=0,mis=1,r=0,dep=2,og=1,plh=0,tim=12541558123805>
    BINDS #8:
    Bind#0
    oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
    oacflg=03 fl2=1206001 frm=00 csi=00 siz=24 off=0
    kxsbbbfp=00fee97c bln=22 avl=03 flg=05
    value=3268
    EXEC #8:c=2999,e=0,p=1,cr=2,cu=3,mis=1,r=0,dep=2,og=1,plh=2404769607,tim=125415>
    FETCH #8:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=1,dep=2,og=1,plh=2404769607,tim=12541558>
    STAT #8 id=1 cnt=1 pid=0 pos=1 obj=0 op='FOR UPDATE (cr=2 pr=1 pw=0 time=0 us)'
    STAT #8 id=2 cnt=1 pid=1 pos=1 obj=66881 op='TABLE ACCESS BY INDEX ROWID DR$IND>
    STAT #8 id=3 cnt=1 pid=2 pos=1 obj=66882 op='INDEX UNIQUE SCAN DRC$IDX_KEY (cr=>
    CLOSE #8:c=0,e=0,dep=2,type=3,tim=1254155812380556
    EXEC #6:c=13998,e=231027,p=1,cr=2,cu=3,mis=0,r=0,dep=1,og=1,plh=0,tim=125415581>
    ERROR #6:err=6502 tim=1254155812611583
    Then I checked ctxsys.drvxmd.AllocateDocids procedure
    SQL> desc ctxsys.drvxmd
    PROCEDURE ALLOCATEDOCIDS
    Argument Name Type In/Out Default?
    P_IDXID BINARY_INTEGER IN
    P_IXPID BINARY_INTEGER IN
    P_ALLOCSZ BINARY_INTEGER IN
    P_STARTID BINARY_INTEGER OUT
    and executed SELECT IDX_NEXTID FROM DR$INDEX WHERE IDX_ID = 3268 statement to see what this query returned
    SQL> SELECT IDX_NEXTID FROM DR$INDEX WHERE IDX_ID =3268;
    IDX_NEXTID
    2147497630
    I think that a main reason of the error that procedure AllocateDocids tries to return this value through P_STARTID parameter or use this variable to store a value from the above-mentioned query. As appears from documentation the limit of BINARY_INTEGER is 2147483647, so we have exception "numeric overflow".
    Is I am right in conclusions? If yes, is there any workaround to eliminate this error?
    Thanks.

    I would appear you've exceeded the docid limit of 2 billion. That can only happen if you have more than 2 billion rows added or updated in your table.
    Is this likely? Is this a very highly-used table with a huge number of updates?
    The only solution here is to rebuild the index so that allocates new docid values throughout. If the table is large, that obviously could take a while. Is this 11g? If so you can use the "recreate index offline" feature.

  • Problem when using About Operator in Contains Query

    Hi,
    I'm new to Oracle and this forums too. I have a problem when using about operator in contains query.
    I create a table with some records and then create a context index on 'name' column.
    CREATE TABLE my_items (
      id           NUMBER(10)      NOT NULL,
      name         VARCHAR2(200)   NOT NULL,
      description  VARCHAR2(4000)  NOT NULL,
      price        NUMBER(7,2)     NOT NULL
    ALTER TABLE my_items ADD (
      CONSTRAINT my_items_pk PRIMARY KEY (id)
    CREATE SEQUENCE my_items_seq;
    INSERT INTO my_items VALUES(my_items_seq.nextval, 'Car', 'Car description', 1);
    INSERT INTO my_items VALUES(my_items_seq.nextval, 'Train', 'Train description', 2);
    INSERT INTO my_items VALUES(my_items_seq.nextval, 'Japan', 'Japan description', 3);
    INSERT INTO my_items VALUES(my_items_seq.nextval, 'China', 'China description', 4);
    COMMIT;
    EXEC ctx_ddl.create_preference('english_lexer','basic_lexer');
    EXEC ctx_ddl.set_attribute('english_lexer','index_themes','yes');
    EXEC ctx_ddl.set_attribute('english_lexer','theme_language','english');
    CREATE INDEX my_items_name_idx ON my_items(name) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS('lexer english_lexer');
    EXEC ctx_ddl.sync_index('my_items_name_idx');Then I perform contains query to retrieve record :
    SELECT count(*) FROM my_items WHERE contains(name, 'Japan', 1) > 0;
    COUNT(*)
          1
    SELECT count(*) FROM my_items WHERE contains(name, 'about(Japan)', 1) > 0;
    COUNT(*)
          1But the problem is when I using ABOUT operator like in Oracle's English Knowledge Base Category Hierarchy it return 0
    SELECT count(*) FROM my_items WHERE contains(name, 'about(Asia)', 1) > 0;
    COUNT(*)
          0
    SELECT count(*) FROM my_items WHERE contains(name, 'about(transportation)', 1) > 0;
    COUNT(*)
          0I can't figure out what 's wrong in my query or in my index.
    Any help will be appreciated.
    Thanks,
    Hieu Nguyen
    Edited by: user2944391 on Jul 10, 2009 3:25 AM

    Hello (and welcome),
    You'd be best asking this question in the Oracle Text forum, here:
    Text
    And by the way, it will help others to analyse if you put {noformat}{noformat} (lowercase code in curly brackets) before and after your code snippets.
    Good luck!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Using fuzzy operator in contains

    I am new to all of this and would like to get more comfortable that the approach I've taken is correct. Our problem is taking user input which may not be 100% correct or slighty off and attempting to search the database with that input. The idea is the user provided '201 Wilshire Blvd' when the databse contains '201 Wiltshire Ave'. Can we find this customer in the system even if they left the 't' out of Wiltshire and not searching for Ave, Blvd, St, etc? Oracle Text fuzzy operators seems the right solution. We are using Oracle 9i. The app is written in Java/JDBC (1.3 jdk).
    I tried to keep it as simple as possible but here is what I did:
    1- create a table specifically for searching containing an id, varchar2(360), varchar2(666)
    2- create a CONTEXT index on the first varchar
    3- create a CONTEXT index on the second varchar
    4- the varchar2(666) contains the address information in the following format: 'zip state city addr1 addr2'
    5- triggers are defined to keep the search table in sync with its source tables
    6- the indexes are re-sync'ed nightly
    I created a separate search table because I was concerned over performance if I were to create indexes on the source tables. The select statements I construct look like the following:
    Where CONTAINS(address, ‘24032 & MD & Frostburg’, 10) > 0 AND
    CONTAINS(address, ‘1616’, 20) > 0 AND
    CONTAINS(address, ‘fuzzy(Pullman, 60, 30, weight)’, 30) > 0 AND
    CONTAINS(customer_name, ‘fuzzy(Acme, 60, 30, weight)’, 40) > 0
    So, zip, state and city must match and street address must match. Terms extracted from the address and name are searched for using the fuzzy operator.
    My concerns are:
    1- performance: My search table has over 2.1M records. What can I do to improve lookups.
    2- ignorance: Like I said, I'm new to all of this; am I correct that using the fuzzy operator for numbers makes no sense? So if they type '30' but meant '300' too bad?
    3- accuracy: How can I use the input parameters to improve my hit rate? Given that I am indexing varchars and not a document set, does it make sense to change the min score from the conatins clause?
    Sorry this is so long but I appreciate any comments/suggestions. Hope I haven't left out anything important.
    David

    Hi,
    Here's a start - taking your questions one at a time:
    (1) "Can we find this customer in the system even if they left the 't' out of Wiltshire..."
    create table z_test (col1 varchar2(100));
    insert into z_test values ('wiltshire');
    commit;
    create index z_test_idx on z_test(col1)
    indextype is ctxsys.context;
    -- SQL> column col1 format a20
    -- SQL> select score(1), col1
    -- 2 from z_test
    -- 3 where contains(col1, '!wilshire', 1) > 0;
    -- SCORE(1) COL1
    -- 3 wiltshire
    (2) "...and not searching for Ave, Blvd, St, etc"
    truncate table z_test;
    insert into z_test values ('wiltshire blvd');
    insert into z_test values ('wiltshire ave');
    insert into z_test values ('wilshire ave');
    commit;
    exec ctx_ddl.sync_index('Z_TEST_IDX')
    -- SQL> COLUMN COL1 FORMAT A20
    -- SQL> select score(1), col1
    -- 2 from z_test
    -- 3 where contains(col1, '!wilshire, ave', 1) > 0
    -- 4 order by 1 desc;
    -- SCORE(1) COL1
    -- 52 wiltshire ave
    -- 52 wilshire ave
    -- 2 wiltshire blvd
    -- wiltshire blvd is returned even though the search was
    -- for ave - see the comma separating tokens in this case.
    -- Note also the difference in score as a result.
    (3) "5- triggers are defined to keep the search table in sync with its source tables"
    That has to be expensive. More on this to come.
    (4) "I created a separate search table because I was concerned over
    performance if I were to create indexes on the source tables. "
    Please explain where you anticipate performance problems that prompted
    the separate table. If search, do a trace on the search and see
    where Oracle spends its time. You'd be better off creating a storage
    preference, storing the DR$ tables in a separate tablespace.
    (5) "CONTAINS(address, ‘24032 & MD & Frostburg’, 10) > 0 AND
    CONTAINS(address, ‘1616’, 20) > 0 AND
    CONTAINS(address, ‘fuzzy(Pullman, 60, 30, weight)’, 30) > 0 AND
    CONTAINS(customer_name, ‘fuzzy(Acme, 60, 30, weight)’, 40) > 0 "
    You can (and should) simplify this query. There are three
    passes at the same column and it isn't necessary. Read up on
    searching using contains some more.
    -Ron

  • Offline Data Chaching Problem in SMP 3.0 Android Native

      Hi All,                    I am working on Offline features of SMP 3.0 Android, Saving data in Cache and syncing with backend when network available. Once I close all activities and login in online mode the Cache getting cleared and no data available in the cache.I am using SP03.             Is there any issue with Libraries or is it the nature of libraries?? Please suggest me any alternative to work on this. Need suggestions on next versions for complete offline features.  

    The SMP Odata SDK provides the capability for client applications to cache the data on device when the mobile device is out of network and process it later when it is within the range of network. You need to use Cache APIs to do it. Make sure you added cache related libraries are included in the project (ex.cache,persistence,libdatabase_sqlcipher.so, libsqlcipher_android.so,guava,libstlport_shared.so).
    In order to parse and build Odata entries Service document and metadata document are required. So on first registration of user with SMP server retrieve these documents and store it locally by leveraging Odata SDK Cache library.
    Sample code to retrieve the service document from cache:
    IODataServiceDocument serviceDocument = null;
    try {
    //Getting Service Document from the cache
    serviceDocument =
    (IODataServiceDocument)mApplication.getCache().readDocument(
    DocumentType.ServiceDocument,
    FlightModelConstants.FLIGHT_MODEL_SERVICE_DOCUMENT);
    } catch (CacheException e) {
    Log.v(TAG, e.getLocalizedMessage());
    //Checking if Service Document was not found in cache,
    if (serviceDocument == null) {
    mProgress =
    ProgressDialog.show(this,
    (CharSequence) "",
    (CharSequence)
    getString(R.string.serviceDocumentProgress),
    true);
    mRequestTag = REQUEST_SERVICE_DOCUMENT;
    //Preparing request to retrieve Service Document from the server
    IRequest request =
    RequestBuilder.getInstance().buildServiceDocumentRequest(this,
    REQUEST_SERVICE_DOCUMENT);
    //Sending the request
    mApplication.getRequestManager().makeRequest(request);
    } else {
    Toast.makeText(this, R.string.msgServiceDocumentCache,
    Toast.LENGTH_LONG).show();
    //Service Document was in the cache, now we are going to retrieve the
    Schema
    this.getServiceSchema();
    Code to be added in onSuccess callback method to store the document:
    IODataServiceDocument serviceDocument = parser
    .parseODataServiceDocument(responseString);
    mApplication.getCache().storeDocument(serviceDocument,
    DocumentType.ServiceDocument,
    FlightModelConstants.FLIGHT_MODEL_SERVICE_DOCUMENT);
    Code above is for storing service document; to store Metadata document above code is repeated once.
    The above code shows how to store and retrieve service document and metadata document. Odata SDK also allows storing of Odata entries in cache and offline operation.
    Midhun VP

  • OFFLINE datafile and Recovery

    Gurus,
    on 10Gr2, db is in archivelog mode, when I take empty datafile OFFLINE,
    then at some point in the future(full backups were performed regurarly) I need to perform
    recovery from last full backup, but archive log from the datafile OFFLINE operation way back is not available, I am not able to perform restore and recovery from full backup because of that OFFLINE datafile which needs to be recovered(why? it is offline). Is there any way to restore from the full backup and open the instance? Seems like the SET UNTIL scn/seq doesn't work either.
    Thank you
    D.

    Daniel
    I meant to ask you whether you used offline for drop or just offline command. Your posting answered my question.
    Error message says that it can not identify datafile, which means it can't find datafile for restore, either from control file or from recovery catalog depending upon what you use.
    I still don't understand issue here. Making a datafile offline should not prevent you from recovering it or restoring it.
    Are you using rman to restore ? Are you doing full database restore ? Is the restore throwing this error ? or Is the recovery throwing this error ? During backup did you use any skip option ? Sorry for numerous questions, but trying to understand the issue clearly.
    Do you have the offlined file in the file system ? If yes, you could just alter it to be online. That file shouldn't need recovery if the full backup was taken after the file was taken offline.
    Thanks
    Riyaj

  • CTX_DDL.SYNC_

    ctx_ddl.sync_index(index_name) and have not been able to get it to work. Are you suppose
    to "exec" it or use the "@".

    I have use the exec and it still does not work I get the error
    SQL> exec ctx.ddl.sync_index(sess_cont_ind);
    BEGIN ctx.ddl.sync_index(sess_cont_ind); END;
    ERROR at line 1:
    ORA-06550: line 1, column 26:
    PLS-00201: identifier 'SESS_CONT_IND' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    null

Maybe you are looking for