org.apache.solr.client.solrj.impl

## Class ConcurrentUpdateSolrServer

- java.lang.Object
- - org.apache.solr.client.solrj.SolrServer
  - - org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer

All Implemented Interfaces:
  Serializable

    public class ConcurrentUpdateSolrServer
    extends SolrServer

ConcurrentUpdateSolrServer buffers all added documents and writes them into open HTTP connections. This class is thread safe. Params from `UpdateRequest` are converted to http request parameters. When params change between UpdateRequests a new HTTP request is started. Although any SolrServer request can be made with this implementation, it is only recommended to use ConcurrentUpdateSolrServer with /update requests. The class `HttpSolrServer` is better suited for the query interface.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`ConcurrentUpdateSolrServer(String solrServerUrl, org.apache.http.client.HttpClient client, int queueSize, int threadCount)` Uses the supplied HttpClient to send documents to the Solr server.
`ConcurrentUpdateSolrServer(String solrServerUrl, int queueSize, int threadCount)` Uses an internaly managed HttpClient instance.

### Method Summary

Methods
`void` `blockUntilFinished()`
`void` `handleError(Throwable ex)`
`NamedList<Object>` `request(SolrRequest request)` SolrServer implementations need to implement how a request is actually processed
`void` `setConnectionTimeout(int timeout)`
`void` `setParser(ResponseParser responseParser)`
`void` `setRequestWriter(RequestWriter requestWriter)`
`void` `setSoTimeout(int timeout)` set soTimeout (read timeout) on the underlying HttpConnectionManager.
`void` `shutdown()` Release allocated resources.
`void` `shutdownNow()`

### Methods inherited from class org.apache.solr.client.solrj.SolrServer

`add, add, add, add, addBean, addBean, addBeans, addBeans, commit, commit, commit, deleteById, deleteById, deleteById, deleteById, deleteByQuery, deleteByQuery, getBinder, optimize, optimize, optimize, ping, query, query, queryAndStreamResponse, rollback`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ConcurrentUpdateSolrServer

    public ConcurrentUpdateSolrServer(String solrServerUrl,
                              int queueSize,
                              int threadCount)

Uses an internaly managed HttpClient instance.

Parameters:
  `solrServerUrl` - The Solr server URL
  `queueSize` - The buffer size before the documents are sent to the server
  `threadCount` - The number of background threads used to empty the queue

#### ConcurrentUpdateSolrServer

    public ConcurrentUpdateSolrServer(String solrServerUrl,
                              org.apache.http.client.HttpClient client,
                              int queueSize,
                              int threadCount)

Uses the supplied HttpClient to send documents to the Solr server.

### Method Detail

#### request

    public NamedList<Object> request(SolrRequest request)
                              throws SolrServerException,
                                     IOException

Description copied from class: `SolrServer`
SolrServer implementations need to implement how a request is actually processed

Specified by:
  `request` in class `SolrServer`
Throws:
  `SolrServerException`
  `IOException`

#### blockUntilFinished

    public void blockUntilFinished()

#### handleError

    public void handleError(Throwable ex)

#### shutdown

    public void shutdown()

Description copied from class: `SolrServer`
Release allocated resources.

Specified by:
  `shutdown` in class `SolrServer`

#### setConnectionTimeout

    public void setConnectionTimeout(int timeout)

#### setSoTimeout

    public void setSoTimeout(int timeout)

set soTimeout (read timeout) on the underlying HttpConnectionManager. This is desirable for queries, but probably not for indexing.

#### shutdownNow

    public void shutdownNow()

#### setParser

    public void setParser(ResponseParser responseParser)

#### setRequestWriter

    public void setRequestWriter(RequestWriter requestWriter)