Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Help with ConText bug

Help with ConText bug

From: <bethmfreeman_at_my-deja.com>
Date: Tue, 26 Oct 1999 16:04:20 GMT
Message-ID: <7v4je0$792$1@nnrp1.deja.com>


I just got started with Oracle 8i (8.1.5) and have been trying to index a collection of about 60,000 documents that are stored in a table, the document content in a BLOB. Unfortunately, when I try to index the BLOB information using ConText with the INSO filter, it crashes. I'm hoping that someone can tell me what I might be doing wrong or offer a suggestion to set up the tables or index in a different way that will avoid this crash.

Here's what I've done:

(All tables are owned by scott/tiger; the tablespaces were created using the system account ctxsys).

  1. I created a tablespace doc1 to hold the data:

SQL> create tablespace doc1 datafile 'f:\Databases\doc1.dat'

     size 100M autoextend on next 20M online;

This worked fine.

2) I granted some rights to user "scott":

SQL> grant unlimited tablespace to scott; Grant succeeded.

SQL> grant ctxapp to scott;
Grant succeeded.

3) Logged in as "scott" and created the table:

SQL> create table Documents_Indexed (
  2 id NUMBER PRIMARY KEY,
  3 rid NUMBER,
  4 owner VARCHAR(30),
  5 creationTime VARCHAR(30),
  6 contentType VARCHAR(30),
  7 readList VARCHAR(256),
  8 writeList VARCHAR(256),
  9 publicflag VARCHAR(30),
 10 keywords VARCHAR(256),
 11 title VARCHAR(256),
 12 filename VARCHAR(256),
 13 content BLOB)
 14 Tablespace doc1;

Table created.

4) Loaded the table with data from a file repository:

F:\Oracle\Ora81\BIN\sqlldr userid=scott/tiger control=loader.dat log=loader.log

This worked fine also. I am able to query this table and retrieve data (including BLOB data) with no problems.

Now the index.

6) I created a tablespace to hold the index:

SQL> create tablespace doc1index1 datafile 'f:\Databases\doc1index1.dat'

     size 1000M autoextend on next 500M online;

7) I Specified this tablespace in the BASIC_STORAGE for the index: SQL>begin
ctx_ddl.create_preference('MyStore', 'BASIC_STORAGE'); ctx_ddl.set_attribute('MyStore', 'I_TABLE_CLAUSE',

'tablespace doc1index1 storage (initial 1K)');
ctx_ddl.set_attribute('MyStore', 'K_TABLE_CLAUSE',

'tablespace doc1index1 storage (initial 1K)');
ctx_ddl.set_attribute('MyStore', 'R_TABLE_CLAUSE',

'tablespace doc1index1 storage (initial 1K)');
ctx_ddl.set_attribute('MyStore', 'N_TABLE_CLAUSE',

'tablespace doc1index1 storage (initial 1K)');
ctx_ddl.set_attribute('MyStore', 'I_INDEX_CLAUSE',

'tablespace doc1index1 storage (initial 1K)');
end;

8) Then I created preferences for the inso filter:

SQL> execute ctx_ddl.create_preference('MyFilter', 'USER_FILTER');
SQL> execute ctx_ddl.set_attribute('MyFilter', 'COMMAND', 'myfilt.bat');
SQL> execute ctx_ddl.create_section_group('MySectionGroup',
'HTML_SECTION_GROUP'); I was told to do it this way by a representative of Oracle because of a bug that doesn't allow the index to be created directly. This works fine. MyFilt.bat simply contains:

set ORACLE_HOME=F:\Oracle\Ora81
ctxhx.exe %1 %2 ascii8 iso8859-1
del C:\ctxhx*.*

9) Finally, I created the index:
SQL> create index index1 on Documents_Indexed(content)

     indextype is ctxsys.context
     parameters ('filter MyFilter
                 section group MySectionGroup
                 storage MyStore');

This all works fine for a much smaller collection of 500 documents - the index is created successfully and I am able to do a query using the "contains" keyword on the indexed data.

However, when I attempt this on the 60,000 document collection the index procedure crashes as follows:

First, I get a dialog box that says:

The instruction at "0x01CD7463" referenced memory at "0x01FF7000". The memory could not be "read". Click on OK to terminate the application, Click on Cancel to debug the application.

When I click on "Cancel", Visual Studio pops up and I see the message:

Unhandled exception in EXTPROC.EXE (ORACTXX8.DLL): 0xC0000005: Access Violation.

Then I see this error in the sql window:

SQL> create index index1 on Documents_Indexed(content)   2 indextype is ctxsys.context
  3 parameters('filter MyFilter section group MySectionGroup storage MyStore');
 create index index1 on Documents_Indexed(content) *
ERROR at line 1:

ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: ConText error:
ORA-28579: network error during callback from external procedure agent
ORA-06512: at "CTXSYS.DRUE", line 122
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 34
ORA-06512: at line 1


I have verified with Oracle that my .ora files are set up correctly and I have used TNSPING to test that my external procedures are accessible.

Any help would be much apprecited. Thanks!!

Elisabeth Freeman
Mirror Worlds Technologies

Sent via Deja.com http://www.deja.com/
Before you buy. Received on Tue Oct 26 1999 - 11:04:20 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US