Skip to Content
avatar image
Former Member

Java HTTP Worker threads hang in nativeRead using XISOAPAdpater

I am seeing all our Java HTTP Worker threads hang waiting on FCAConnection.nativeRead at heavy load. They do not time out and only a server reset re-enables them.<br>

<br>

I am running SAP PI 7.10 SP08. I have several Integrated Configurations with incoming XML files to the SOAP adapter and out to the File adapter. This occurs with several different Operation Mappings which are custom Java. Input file sizes are around 10MB. The system wil run fine under light load and will run for a variable time under heavy load (>20 simultaneous incoming files), but usually only a couple minutes before all the threads are hung and all incoming message processing stops. The corresponding Java web sessions also remain open.<br>

<br>

I found one similar forum questions that suggested updating to SP05. I was at SP07 and updated to SP08 just to check, but there was no change. <br>

<br>

Details from one thread:<br>

Name: HTTP Worker [14]<br>

Pool: Application<br>

Task: Serverlet MessageServlet in XISOAPAdapter<br>

State: processing<br>

Class: com.sap.engine.services.httpserver.server.Processor$FCAProcessor<br>

<br>

Stack trace:<br>

Thread 'HTTP Worker [14]', process 'server0', index '33'<br>
"HTTP Worker [14]" Id=51 is RUNNABLE (running in native)<br>
  at com.sap.bc.proj.jstartup.fca.impl1.FCAConnection.nativeRead(Native Method)<br>
  at com.sap.bc.proj.jstartup.fca.impl1.FCAConnection.read(FCAConnection.java:272)<br>
  at com.sap.bc.proj.jstartup.fca.impl1.FCAInputStream.read(FCAInputStream.java:102)<br>
  at com.sap.bc.proj.jstartup.fca.impl1.FCAInputStream.read(FCAInputStream.java:67)<br>
  at com.sap.engine.services.httpserver.server.io.HttpInputStreamImpl.read(HttpInputStreamImpl.java:167)<br>
  at java.io.FilterInputStream.read(FilterInputStream.java:121)<br>
  at java.io.PushbackInputStream.read(PushbackInputStream.java:161)<br>
  at java.io.FilterInputStream.read(FilterInputStream.java:97)<br>
  at com.sap.aii.af.sdk.xi.net.MIMEInputSource$MIMEReader.readContent(MIMEInputSource.java:713)<br>
  at com.sap.aii.af.sdk.xi.net.MIMEInputSource.readBody(MIMEInputSource.java:342)<br>
  at com.sap.aii.af.sdk.xi.net.MIMEServletInputSource.parse(MIMEServletInputSource.java:58)<br>
  at com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:388)<br>
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)<br>
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)<br>

<br>

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    avatar image
    Former Member
    Jul 13, 2009 at 10:25 PM

    Hi,

    Have you referred to this SAP note - 1295227 ? There is a dev_server0.txt attached to this note, you can compare that to yours and apply this note. Also, what kernel level are you at? Try to update the kernel to the latest available or one level lower than that.

    - Thanks

    Sai

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      While tracking down these warnings and error we found that we needed to increase the amount of MPI memory using the profile parameter:<br>

      <br>

      mpi/total_size_MB <br>

      <br>

      Using transaction SMICM -> goto -> memory pipes we can see that the number of buffers peaks at a value much higher than is normally in use. In our case we saw it peak at over 3,800 buffers when traffic started but at a steady heavy load it was always under 2000.<br>

      We do not see the MPI messages any more and we do not get the hang, so I believe our problem was solved with that change.<br>

      <br>

      Thanks for the responses which helped us find our way to the solution.<br>

      -Jason<br>