I am using Tomcat 6 and Solr 1.2 on a Windows 2003 server using the
following java code.   I am trying to index pdf files, and I'm
constantly getting errors on larger files (the same ones).  

 

      SolrServer server = new CommonsHttpSolrServer(solrPostUrl);

      SolrInputDocument addDoc = new SolrInputDocument();

      addDoc.addField("url", url);

      addDoc.addField("site", site);

      addDoc.addField("author", author);

      addDoc.addField("title", title);

      addDoc.addField("subject", subject);

      addDoc.addField("keywords", keywords);

      addDoc.addField("text", docText);

      UpdateRequest ur = new UpdateRequest();

      ur.setAction( UpdateRequest.ACTION.COMMIT, false, false );  //Auto
Commits on Update...

      ur.add(addDoc);

      UpdateResponse rsp = ur.process(server);

 

The java error I received is: class
org.apache.solr.client.solrj.SolrServerException
(java.net.SocketException: Software caused connection abort: recv
failed)

Tomcat Log:

SEVERE: java.net.SocketTimeoutException: Read timed out

                at java.net.SocketInputStream.socketRead0(Native Method)

                at
java.net.SocketInputStream.read(SocketInputStream.java:129)

                at
org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.ja
va:716)

                at
org.apache.coyote.http11.InternalInputBuffer$InputStreamInputBuffer.doRe
ad(InternalInputBuffer.java:746)

                at
org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInpu
tFilter.java:116)

                at
org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.
java:675)

                at org.apache.coyote.Request.doRead(Request.java:428)

                at
org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java
:297)

                at
org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:405)

                at
org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:312)

                at
org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.j
ava:193)

                at
sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)

                at
sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)

                at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)

                at
java.io.InputStreamReader.read(InputStreamReader.java:167)

                at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2972)

                at org.xmlpull.mxp1.MXParser.more(MXParser.java:3026)

                at
org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1384)

                at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)

                at
org.xmlpull.mxp1.MXParser.nextText(MXParser.java:1058)

                at
org.apache.solr.handler.XmlUpdateRequestHandler.readDoc(XmlUpdateRequest
Handler.java:332)

                at
org.apache.solr.handler.XmlUpdateRequestHandler.update(XmlUpdateRequestH
andler.java:162)

                at
org.apache.solr.handler.XmlUpdateRequestHandler.handleRequestBody(XmlUpd
ateRequestHandler.java:84)

                at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerB
ase.java:77)

                at
org.apache.solr.core.SolrCore.execute(SolrCore.java:658)

                at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.ja
va:191)

                at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.j
ava:159)

                at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:235)

                at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:206)

                at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:233)

                at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:175)

                at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:128)

                at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:102)

                at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:109)

                at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:2
63)

                at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:84
4)

                at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(
Http11Protocol.java:584)

                at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

                at java.lang.Thread.run(Thread.java:619)

 

This happens when I try to index a field containing the contents of the
PDF file.  It's string length is 189002.  If I only do a substring on
the field of say length 150000, it usually will work.  Does anyone have
any idea on why this might be happening?

 

I have had this and other files index correctly using a different
combination version of Tomcat/Solr without any problem (using similar
code, I re-wrote it because I thought it would be better to use Solrj).
I get the same error whether I use a simple StringBuilder to created the
add manually or if I use Solrj.  I have manually encoded each field
before passing it in to the add function as well, so I don't believe it
is a content problem.   I have tried to change every setting in Tomcat
and Solr that I can think of, but I'm newer to both of them.  

 

I have tried to do large files (docText.length() = 439902) and I'm
getting class org.apache.solr.client.solrj.SolrServerException
(java.net.SocketException: Connection reset by peer: socket write
error).

 Any help would be greatly appreciated!  Thanks.  

Reply via email to