Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Help with ConText bug
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).
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
![]() |
![]() |