I'm trying to bulk update a number of documents using the
ConcurrentUpdateSolrServer.

Now under normal circumstances, this is working fine.
I create the ConcurrentUpdateSolrServer with suitable queue and connection
pool sizes and then submit documents to be added using multiple threads.
Watching the Solr output I can see the docs being added.

I'm not using autocommit as I want an "all or nothing" update - as such
after submitting all documents to the ConcurrentUpdateSolrServer I issue a
"blockUntilFinished()" and then a "commit()".

All good.

The problem I'm having now is that if one of the document contains an error
(they shouldn't but it happens). 
- Solr console shows the error details for the invalid field and returns a
400 status code.
- Eventually this will get caught by the ConcurrentUpdateSolrServer
"handleException(Throwable err)" method.

After this point any attempt stop whats going on seems to get stuck
- calling ConcurrentUpdateSolrServer.shutdownNow() doesn't seem to stop
anything.
- ConcurrentUpdateSolrServer.blockUntilFinished() will never return after
receiving the 400 error.
- the ConcurrentUpdateSolrServer instance refuses to send any more
communication to the solr server.

My question is - what is the best way to handle document errors when using
ConcurrentUpdateSolrServer?

TIA



--
View this message in context: 
http://lucene.472066.n3.nabble.com/ConcurrentUpdateSolrServer-catching-errors-tp3916803p3916803.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to