Return-Path: Delivered-To: apmail-jakarta-lucene-user-archive@www.apache.org Received: (qmail 54347 invoked from network); 20 Sep 2004 12:49:16 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 20 Sep 2004 12:49:16 -0000 Received: (qmail 77526 invoked by uid 500); 20 Sep 2004 12:49:09 -0000 Delivered-To: apmail-jakarta-lucene-user-archive@jakarta.apache.org Received: (qmail 77444 invoked by uid 500); 20 Sep 2004 12:49:07 -0000 Mailing-List: contact lucene-user-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Lucene Users List" Reply-To: "Lucene Users List" Delivered-To: mailing list lucene-user@jakarta.apache.org Received: (qmail 77426 invoked by uid 99); 20 Sep 2004 12:49:07 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from [143.205.118.212] (HELO proserver2.ifit.uni-klu.ac.at) (143.205.118.212) by apache.org (qpsmtpd/0.28) with ESMTP; Mon, 20 Sep 2004 05:49:06 -0700 Received: from [143.205.118.98] ([143.205.118.98]) by proserver2.ifit.uni-klu.ac.at with Microsoft SMTPSVC(5.0.2195.6713); Mon, 20 Sep 2004 14:50:41 +0200 Message-ID: <414ED221.2050207@ifit.uni-klu.ac.at> Date: Mon, 20 Sep 2004 14:50:41 +0200 From: sergiu gordea User-Agent: Mozilla Thunderbird 0.7 (Windows/20040616) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Lucene Users List Subject: Re: indexes won't close on windows References: <6.0.1.1.2.20040919230927.03cbae30@fast.synernet.com> <414E799A.4050302@ifit.uni-klu.ac.at> <6.0.1.1.2.20040920070127.04251a90@fast.synernet.com> In-Reply-To: <6.0.1.1.2.20040920070127.04251a90@fast.synernet.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 20 Sep 2004 12:50:41.0919 (UTC) FILETIME=[6FEB20F0:01C49F10] X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Hi Fred, That's right, there are many references to this kind of problems in the lucene-user list. This suggestions were already made, but I'll list them once again: 1. One way to use the IndexSearcher is to use yopur code, but I don't encourage users to do that IndexReader reader = null; IndexSearcher searcher = null; reader = IndexReader.open(indexName); searcher = new IndexSearcher(reader); It's better to use the constructor that uses a String to create a IndexSearcher. |*IndexSearcher *(String path)|. I even suggest that the path to be obtained as File indexFolder = new File(luceneIndex); IndexSearcher searcher = new IndexSearcher(indexFolder.toString()). 2. I can imagine situations when the lucene index must be created at each startup, but I think that this is very rare, so I suggest to use code like if(indexExists(indexFolder)) writer = new IndexWriter(index, new StandardAnalyzer(), false); else writer = new IndexWriter(index, new StandardAnalyzer(), true); //don#t forget to close the indexWriter when you create the index and to open it again I use a indexExists function like boolean indexExists(File indexFolder) return indexFolder.exists() and it works propertly .... even if that's not the best example of testing the existence of the index 3.'It is here that I get a failure, "can't delete _b9.cfs"' that's ptobably because of the way you use the searcher, and probably because you don't close the readers, writers and searchers propertly. 4. be sure that all close() methods are guarded with catch(Exception e){ logger.log(e); } blocks 5. Pay attention if you use a multithreading environment, in this case you have to make indexing, delition and search synchronized So ... Have fun, Sergiu PS: I think that I'll submit some code with synchronized index/delete/search operations and to tell why I need to use it. Fred Toth wrote: > Hi Sergiu, > > My searches take place in tomcat, in a struts action, in a single method > Abbreviated code: > > IndexReader reader = null; > IndexSearcher searcher = null; > reader = IndexReader.open(indexName); > searcher = new IndexSearcher(reader); > // code to do a search and extract hits, works fine. > searcher.close(); > reader.close(); > > I have a command-line indexer that is a minor modification of the > IndexHTML.java that comes with Lucene. It does this: > > writer = new IndexWriter(index, new StandardAnalyzer(), create); > // add docs > > (with the create flag set true). It is here that I get a failure, > "can't delete _b9.cfs" > or similar. This happens when tomcat is completely idle (we're still > testing and > not live), so all readers and searchers should be closed, as least as > far as > java is concerned. But windows will not allow the indexer to delete > the old index. > > I restarted tomcat and the problem cleared. It's as if the JVM on > windows doesn't > get the file closes quite right. > > I've seen numerous references on this list to similar behavior, but > it's not clear > what the fix might be. > > Many thanks, > > Fred > > At 02:32 AM 9/20/2004, you wrote: > >> Hi Fred, >> >> I think that we can help you if you provide us your code, and the >> context in which it is used. >> we need to see how you open and close the searcher and the reader, >> and what operations are you doing on index. >> >> All the best, >> >> Sergiu >> >> >> >> Fred Toth wrote: >> >>> Hi, >>> >>> I have built a nice lucene application on linux with no problems, >>> but when I ported to windows for the customer, I started experiencing >>> problems with the index not closing. This prevents re-indexing. >>> >>> I'm using lucene 1.4.1 under tomcat 5.0.28. >>> >>> My search operation is very simple and works great: >>> >>> create reader >>> create searcher >>> do search >>> extract N docs from hits >>> close searcher >>> close reader >>> >>> However, on several occasions, when trying to re-index, I get >>> "can't delete file" errors from the indexer. I discovered that >>> restarting >>> tomcat clears the problem. (Note that I'm recreating the index >>> completely, not updating.) >>> >>> I've spent the last couple of hours trolling the archives and I've >>> found numerous references to windows problems with open files. >>> >>> Is there a fix for this? How can I force the files to close? What's >>> the best work-around? >>> >>> Many thanks, >>> >>> Fred >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org >>> For additional commands, e-mail: lucene-user-help@jakarta.apache.org >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org >> For additional commands, e-mail: lucene-user-help@jakarta.apache.org > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org > For additional commands, e-mail: lucene-user-help@jakarta.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org For additional commands, e-mail: lucene-user-help@jakarta.apache.org