Hi Rafat, The following are scripts started in the same order (external zk, 1 instance running at localhost:2181). I also tried with the embedded zk with the same result
#Start of Server 1 export SOLR_HOME=/home/apache-solr-4.0.0 cd shard1A java \ -Djetty.port=8983 \ -Djetty.home=$SOLR_HOME/example/ \ -Dsolr.solr.home=multicore \ -Dbootstrap_confdir=./multicore/defaultCore/conf \ -Dcollection.configName=defaultConfig \ -DzkHost=localhost:2181 \ -DnumShards=2 \ -jar $SOLR_HOME/example/start.jar ############################################ #Start of Server 2 export SOLR_HOME=/home/apache-solr-4.0.0 cd shard2A java \ -Djetty.port=8900 \ -Djetty.home=$SOLR_HOME/example/ \ -Dsolr.solr.home=multicore \ -DzkHost=localhost:2181 \ -jar $SOLR_HOME/example/start.jar ############################################ #Start of Server 3 export SOLR_HOME=/home/apache-solr-4.0.0 cd shard1B java \ -Djetty.port=7574 \ -Djetty.home=$SOLR_HOME/example/ \ -Dsolr.solr.home=multicore \ -DzkHost=localhost:2181 \ -jar $SOLR_HOME/example/start.jar ############################################ #Start of Server 4 export SOLR_HOME=/home/apache-solr-4.0.0 cd shard2B java \ -Djetty.port=7500 \ -Djetty.home=$SOLR_HOME/example/ \ -Dsolr.solr.home=multicore \ -DzkHost=localhost:2181 \ -jar $SOLR_HOME/example/start.jar Regards Jay -----Original Message----- From: Rafał Kuć [mailto:r....@solr.pl] Sent: Monday, January 07, 2013 11:44 AM To: solr-user@lucene.apache.org Subject: Re: "No live SolrServers" Solr 4 exceptions on trying to create a collection Hello! Can you share the command you use to start all four Solr servers ? -- Regards, Rafał Kuć Sematext :: http://sematext.com/ :: Solr - Lucene - Nutch - ElasticSearch > Any clue to why this is happening will be greatly appreciated. This has > become a blocker for me. > I can use the HTTPSolrServer to create a core/make requests etc, but then it > behaves like Solr 3.6 > http://host:port/solr/admin/cores and not > http://host:port/solr/admin/collections > With my setup (4 servers running at localhost 8983, 8900, 7574 and 7500) when > I manually do a > http://127.0.0.1:7500/solr/admin/cores?action=CREATE&name=myColl1&instanceDir=default&dataDir=myColl1Data&collection=myColl1&numShards=2 > it creates the collection only at the 7500 server. This is similar > to when I use HttpSolrServer (Solr 3.6 behavior). > And of course when I initiate a > http://127.0.0.1:7500/solr/admin/collections?action=CREATE&name=myColl2&instanceDir=default&dataDir=myColl2Data&collection=myColl2&numShards=2 > as expected it creates the collection spread on 2 servers. I am > failing to achieve the same with SolrJ. As in the code at the bottom > of the mail, I use CloudSolrServer and get the No live SolrServers exception. > Any help or direction will of how to create collections (using the > collections API) using SolrJ will be highly appreciated. > Regards > Jay > -----Original Message----- > From: Jay Parashar [mailto:jparas...@itscape.com] > Sent: Sunday, January 06, 2013 7:42 PM > To: solr-user@lucene.apache.org > Subject: RE: Solr 4 exceptions on trying to create a collection > The exception "No live SolrServers" is being thrown when trying to > create a new Collection ( code at end of this mail). On the > CloudSolrServer request method, we have this line > "ClientUtils.appendMap(coll, slices, clusterState.getSlices(coll));" > where "coll" is the new collection I am trying to create and hence > clusterState.getSlices(coll)); is returning null. > And then the loop of the slices which adds to the urlList never > happens and hence the LBHttpSolrServer created in the > CloudSolrServer has a null url list in the constructor. > This is giving the "No live SolrServers" exception. > What I am missing? > Instead of passing the CloudSolrServer to the create.process, if I > pass the LBHttpSolrServer (server.getLbServer()), the collection > gets created but only on one server. > My code to create a new Cloud Server and new Collection:- > String[] urls = > {"http://127.0.0.1:8983/solr/","http://127.0.0.1:8900/solr/","http://127.0.0.1:7500/solr/","http://127.0.0.1:7574/solr/"}; > CloudSolrServer server = new CloudSolrServer("127.0.0.1:2181", new > LBHttpSolrServer(urls)); > server.getLbServer().getHttpClient().getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, > 5000); > server.getLbServer().getHttpClient().getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, > 20000); server.setDefaultCollection(collectionName); > server.connect(); > CoreAdminRequest.Create create = new CoreAdminRequest.Create(); > create.setCoreName("myColl"); create.setCollection("myColl"); > create.setInstanceDir("defaultDir"); > create.setDataDir("myCollData"); > create.setNumShards(2); > create.process(server); //Exception No live SolrServers is thrown here > Thanks > Jay > -----Original Message----- > From: Alexandre Rafalovitch [mailto:arafa...@gmail.com] > Sent: Friday, January 04, 2013 6:08 PM > To: solr-user@lucene.apache.org > Subject: Re: Solr 4 exceptions on trying to create a collection > Tried Wireshark yet to see what host/port it is trying to connect > and why it fails? It is a complex tool, but well worth learning. > Regards, > Alex. > Personal blog: http://blog.outerthoughts.com/ > LinkedIn: http://www.linkedin.com/in/alexandrerafalovitch > - Time is the quality of nature that keeps events from happening > all at once. Lately, it doesn't seem to be working. (Anonymous - via GTD > book) > On Fri, Jan 4, 2013 at 6:58 PM, Jay Parashar <jparas...@itscape.com> wrote: >> Thanks! I had a different version of httpclient in the classpath. So >> the 2nd exception is gone but now I am back to the first one " >> org.apache.solr.client.solrj.SolrServerException: No live SolrServers >> available to handle this request" >> >> -----Original Message----- >> From: Alexandre Rafalovitch [mailto:arafa...@gmail.com] >> Sent: Friday, January 04, 2013 4:21 PM >> To: solr-user@lucene.apache.org >> Subject: Re: Solr 4 exceptions on trying to create a collection >> >> For the second one: >> >> Wrong version of library on a classpath or multiple versions of >> library on the classpath which causes wrong classes with missing >> fields/variables? Or library interface baked in and the implementation >> is newer. Some sort of mismatch basically. Most probably in Apache http >> library. >> >> Regards, >> Alex. >> >> Personal blog: http://blog.outerthoughts.com/ >> LinkedIn: http://www.linkedin.com/in/alexandrerafalovitch >> - Time is the quality of nature that keeps events from happening all >> at once. Lately, it doesn't seem to be working. (Anonymous - via GTD >> book) >> >> >> On Fri, Jan 4, 2013 at 4:34 PM, Jay Parashar <jparas...@itscape.com> >> wrote: >> >> > >> > Hi All, >> > >> > I am getting exceptions on trying to create a collection. Any help >> > is appreciated. >> > >> > While trying to create a collection, I got this error Caused by: >> > org.apache.solr.client.solrj.SolrServerException: No live >> > SolrServers available to handle this request >> > at >> > >> > >> org.apache.solr.client.solrj.impl.LBHttpSolrServer.request(LBHttpSolrServer. >> > java:322) >> > at >> > >> > org.apache.solr.client.solrj.impl.CloudSolrServer.request(CloudSolrS >> > er >> > ver.ja >> > va:257) >> > at >> > >> > org.apache.solr.client.solrj.request.CoreAdminRequest.process(CoreAd >> > mi >> > nReque >> > st.java:423) >> > >> > >> > On trying to increase the server timeout by >> > >> > server.getLbServer().getHttpClient().getParams().setParameter(CoreCo >> > nn >> > ection >> > PNames.CONNECTION_TIMEOUT, 5000); >> > >> > server.getLbServer().getHttpClient().getParams().setParameter(CoreCo >> > nn >> > ection >> > PNames.SO_TIMEOUT, 20000); >> > >> > I get this... >> > >> > SEVERE: The exception contained within MappableContainerException >> > could not be mapped to a response, re-throwing to the HTTP container >> > java.lang.NoSuchFieldError: DEF_CONTENT_CHARSET >> > at >> > >> > org.apache.http.impl.client.DefaultHttpClient.setDefaultHttpParams(D >> > ef >> > aultHt >> > tpClient.java:175) >> > at >> > >> > org.apache.http.impl.client.DefaultHttpClient.createHttpParams(Defau >> > lt >> > HttpCl >> > ient.java:158) >> > at >> > >> > >> org.apache.http.impl.client.AbstractHttpClient.getParams(AbstractHttpClient. >> > java:448) >> > >> > Thanks >> > Jay >> > >> > >> >>