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 ??

Similar Messages

  • 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

  • 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

  • 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.

  • 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.

  • 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

  • Error: linguistic initialization failed CTXSYS.CTX_DDL

    Hi,
    When I run my application in client side
    ocurrs this error:
    DBExecSQLCommand SQLExecute S1000 [Oracle][ODBC][Ora]ORA-20000: interMedia Text error: DRG-11422: linguistic initialization failed DRG-00100: internal error, arguments : [52100],[drxs.c],[553],[gxtopen],[1] DRG-11208: ORACLE_HOME is not set ORA-06512: at "CTXSYS.DRUE", line 126 ORA-06512: at "CTXSYS.CTX_DDL", line 1298 ORA-06512: at line 1
    I re-build my index with
    Ctx_Ddl.Sync_Index ( 'dml_text' );
    When I run my program in Server Side this
    error not exists.
    Can anyone teach me how to fix it in side client ?
    Thanks,
    Luis Paulo
    null

    You can find the answers to most of your questions in the online documentation. Here is a link to a section on ctx_doc.gist:.
    http://download-west.oracle.com/docs/cd/B19306_01/text.102/b14218/cdocpkg.htm#i996898
    The error message that you got is telling you that the "knowledge base" (thesaurus) has not been installed. It even gives you the path of the file to load. Gist needs the thesaurus in order to work. If you are use 10g Express Edition, it does not come with a thesaurus.

  • PLS-00904 when trying to run sync_index function

    hello, i wrote a package which has a job to run the sync_index function every minute. see code below
    procedure syncindex
    is
    jobno user_jobs.job%type;
    BEGIN
    --Interval set to every minute
    DBMS_JOB.SUBMIT(jobno, 'CTX_DDL.SYNC_INDEX(''I_TRAXDOC_CONTENT'');',
    SYSDATE, 'SYSDATE + 1/1440');
    COMMIT;
    END;
    this is in pkg_job_call, when i run the following command
    exec pkg_job_call.syncindex;
    i get the following error:
    Error starting at line 1 in command:
    exec pkg_job_call.syncindex;
    Error report:
    ORA-06550: line 1, column 93:
    PLS-00904: insufficient privilege to access object CTXSYS.CTX_DDL
    ORA-06550: line 1, column 93:
    PL/SQL: Statement ignored
    ORA-06512: at "SYS.DBMS_JOB", line 79
    ORA-06512: at "SYS.DBMS_JOB", line 136
    ORA-06512: at "ODB.PKG_JOB_CALL", line 26
    ORA-06512: at line 1
    however if i directly call the sync_index command as the example below it works fine:
    exec CTX_DDL.SYNC_INDEX('I_TRAXDOC_CONTENT');

    You need to have ctxsys grant execute on ctx_ddl directly to the creator of the procedure, not through a role. Procedures do not recognize privileges granted through roles. So, for example, the ctxapp role is sufficient to execute ctx_ddl.sync_index from SQL*Plus, but not from a procedure.

  • Error in creation of text indexes and synching with user datastore

    Hi
    has any body encountered error in creating text indexes on 9.2.0.1 with user datastore. you can create them only with no-populate option. however once created after checking-in documents the indexes cannot be synched using ctx_ddl command manually.

    The only thing that I have seen similar to this was worked around by updating the column to itself, then sync...not sure if this is the same thing you are running into, but it may be worth a try. See the Oracle Text FAQ - take special note of step c:
    ===============================
    Creates the index without populating it.
    SQL > CREATE INDEX GLOBALINDEXEDBLOB_I
    ON ODMM_CONTENTSTORE ("GLOBALINDEXEDBLOB" ) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS (' stoplist CTXSYS.DEFAULT_STOPLIST storage IFS_DEF_STORAGE section group IFS_SECTION_GROUP wordlist IFS_DEF_WORDLIST memory 32000000 filter IFS_DEF_FILTER format column FORMAT charset column CHARACTERSET lexer IFS_GLOBAL_LEXER language column LANGUAGE nopopulate');
    b. Mark globalindexedblob column in every row as updated.
    SQL > update odmm_contentstore set globalindexedblob = globalindexedblob;
    c. Sync the index. If you skipped the previous step, then this step does not index content that existed prior to index creation in step a.
    SQL > exec ctx_ddl.sync_index('GLOBA[i]Long postings are being truncated to ~1 kB at this time.

  • Problem using CTXXPATH index

    Hi all,
    i'm using Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 on Windows.
    I created this table
    create table PERSISTENT_COMPOSITION
      COMPOSITION_ID NUMBER(19) not null,
      XML_CONTENT    SYS.XMLTYPE not null,
    )and filled it with more or less 1.000.000 records (that si 1.000.000 xml document loaded into XML_CONTENT).
    Then first of all i tested it with a simple query just like the following:
    SELECT *
      FROM PERSISTENT_COMPOSITION t
    WHERE existsNode(t.xml_content, '/composition/archetype_details/archetype_id[value="openEHR-EHR-COMPOSITION.composition_test.v1"]') = 1;obtaining the expected result: 50,000 records found.
    Now, in order to improve query performances, i created a CTXXPATH index as follows:
    CREATE INDEX IDX#COMP_CTXXPATH ON PERSISTENT_COMPOSITION(XML_CONTENT) INDEXTYPE IS CTXSYS.CTXXPATH;Then i tested the new performances using exactly the same query shown above...and here comes the problem: the query returns NO RESULT! No record was found! I looked at the query execution plan and it uses the created index IDX#COMP_CTXXPATH...but no record could be found...
    I thought it could be a matter of namespace: in fact loaded xml documents have a xmlns set and so i changed the query as follows:
    SELECT *
    FROM persistent_composition t
    WHERE existsNode(t.xml_content,
                      '/composition/archetype_details/archetype_id[value="openEHR-EHR-COMPOSITION.composition_test.v1"]',
                 'xmlns="http://this.is.an.xmlns.url.org/v1"') = 1and surprise: i obtained my 50,000 results just like before BUT, looking at the query execution plan, the IDX#COMP_CTXXPATH index HASN'T BEEN USED!!!
    I really don't understand why using the IDX#COMP_CTXXPATH i get no result....can someone help me?
    Thank you very much
    P.S: i tried using ANALYZE (both on index and on table), CTX_DDL.sync_index and CTX_DDL.optimize_index but got no result..
    Edited by: user11295548 on 29-giu-2009 5.47

    Besides following Mark's advice, and I could be mistaken regarding this in combination with domain indexes, you should NOT use ANALYZE anymore in a Oracle 10 environment. Instead use DBMS_STATS. Its more flexible.
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_4005.htm#SQLRF01105
    Note:
    Do not use the COMPUTE and ESTIMATE clauses of ANALYZE to collect optimizer statistics.
    These clauses are supported for backward compatibility.
    Instead, use the DBMS_STATS package, which lets you collect statistics in parallel,
    collect global statistics for partitioned objects, and fine tune your statistics collection
    in other ways. The optimizer, which depends upon statistics, will eventually use only
    statistics that have been collected by DBMS_STATS.
    See PL/SQL Packages and Types Reference for more information on the
    DBMS_STATS package. You must use the ANALYZE statement (rather than
    DBMS_STATS) for statistics collection not related to the cost-based optimizer, such as:
    - To use the VALIDATE or LIST CHAINED ROWS clauses
    - To collect information on freelist blocks

Maybe you are looking for

  • Having troubles playing back songs from imported CD

    Ok, I imported a CD using the the button on the top righ corner. It seemed to go very fast, which I found odd. Now I go to play the songs that I imported, and it just cycles through them. It does not play them, It just goes from one to the next. The

  • General Sales Register

    Hi Friends, Can anyone provide the Tables and fields for general sales register. this report we would like to take from billing document.This regiseter is for material items, not for service items. It would be more helpful for me if u can provide inf

  • Could weak signal be a computer specific problem?

    I've read all of the other "weak signal" posts, and they all seem to be caused by an interference/distance issue. My problem seems to be particular to my iBook, as my roommate's iBook gets full signal anywhere in the same room as the express and at l

  • Ios 8.1.3 emails keep downloading to iphone

    After updating my iPhone 5 to IOS 8.1.3 2 weeks ago my emails are continually being downloaded to my Mail even after they have been deleted from my PC email inbox. It's a POP 3 account and I'm not changing it to IMAP. There is no longer any limit to

  • If you buy an ipad mini with cellular - after 2 year contract ends...

    can i still use the ipad as a wifi only?  or do you HAVE to have cell service?