Hi All,
I am quite new to Lucene and I have problem with locking. I have a
MessageDrivenBean that sends messages to my Lucene indexer whenever there is
a new database update. The indexer updates the index incrementally . Below
is the code fragment in the indexer method that gets invoked by the MDB
listener.
public void addDocument(Document doc) {
String indexLoc = luceneConfig.getIndexDir();
IndexWriter writer = getIndexWriter(indexLoc, false);
try{
writer.addDocument(doc);
} catch(IOException e) {
logger.error("IOException occurred in addDocument()");
} catch(Exception e) {
logger.error("Exception occurred in addDocument()");
} finally {
try {
writer.close();
} catch(IOException e){
}
}
The incremental update works fine twice and the third time it throws the
following exception :
java.io.IOException: Index locked for write: [EMAIL
PROTECTED]:\tmpIndex\write.lock
at org.apache.lucene.index.IndexWriter.<init>(Unknown Source)
at org.apache.lucene.index.IndexWriter.<init>(Unknown Source)
at lucene.LuceneActions.getIndexWriter(LuceneActions.java:151)
at lucene.LuceneActions.addDocument(LuceneActions.java:43)
at index.IndexServiceImpl.addData(IndexServiceImpl.java:63)
at index.IndexServiceImpl.addToIndex(IndexServiceImpl.java:28)
The Index Writer is created every time and also closed in the finally block.
Should I be doing something else?
Any help would be appreciated.
Thanks,
Harini
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]