I now have a single ZK running standalone on 2121. On the same CPU, I
have three nodes.

I used a curl to send over two documents, one each to two of the three
nodes in the cloud.  According to a web query, they are both there.

My solrconfig.xml file has a custom update response processor chain
defined thus:

<updateRequestProcessorChain name="harvest" default="true">
      <processor class="solr.RunUpdateProcessorFactory"/>
      <processor
class="org.apache.solr.update.TopicQuestsHarvestProcessFactory">
        <str name="inputField">hello</str>
      </processor>
      <processor class="solr.LogUpdateProcessorFactory"/>
    </updateRequestProcessorChain>

where the added process intercepts a SolrDocument after it is
processed and sends it out as a JSON object to TCP socket listeners.

The instance of SolrJ I have implemented looks like this:

     LBHttpSolrServer sv = new LBHttpSolrServer(solrurla,solrurlb,solrurlc);
    sv.getHttpClient().getParams().setParameter("update.chain",
"update"); // "merge");
       CloudSolrServer server = new CloudSolrServer(zkurl,sv);
    server.setDefaultCollection("collection1");

where the commented-out code would call my "merge" update chain.

In curl tests, /solr/merge?commit=true ... got a jetty error
/solr/merge not found.
When I changed that to /solr/update?commit=true... the document got
indexed. Thus, commenting out "merge" in favor of "update".

In any case (merge, update, or no update.chain setting at all), the
SolrJ implementation fails, typically at a zookeeper.out nio exception
"socket closed by peer".

Rewriting my implementation to this:
       CloudSolrServer server = new CloudSolrServer(zkurl);
       server.setDefaultCollection("collection1");
makes no change in behavior.

Where is the error thrown?

The code to build a doc is this (which reflects my field definitions):

    SolrInputDocument doc = new SolrInputDocument();
       doc.addField( "locator", "doc"+i);
       doc.addField( "label", "document " + i);
       doc.addField( "details", "This is document " + i);
       server.add(doc);

The error is thrown at server.add(doc)

Many thanks in advance for any observations or suggestions.

Cheers
Jack

Reply via email to