2011-04-27 5 views
0

저는 mod_jk를 커넥터로 사용하여 GlassFish 3.1의 프론트 엔드로 Apache를 사용하고 있습니다. 이 둘 사이의 연결은 매우 불안정합니다. 시스템의 유일한 사람 일지라도 시간의 약 50 %가 작동합니다. mod_jk 경우 로그가 완전히 비어, 아파치 측면에서mod_jk를 사용할 때 Apache와 GlassFish 사이의 "브로큰 파이프"

java.io.IOException 
at org.apache.jk.common.JkInputStream.receive(JkInputStream.java:249) 
at org.apache.jk.common.JkInputStream.refillReadBuffer(JkInputStream.java:309) 
at org.apache.jk.common.JkInputStream.doRead(JkInputStream.java:227) 
at com.sun.grizzly.tcp.Request.doRead(Request.java:501) 
at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:336) 
at com.sun.grizzly.util.buf.ByteChunk.substract(ByteChunk.java:431) 
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:357) 
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:265) 
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 com.ctc.wstx.io.MergedReader.read(MergedReader.java:101) 
at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84) 
at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57) 
at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:967) 
at com.ctc.wstx.sr.StreamScanner.getNext(StreamScanner.java:738) 
at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:1995) 
at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2647) 
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019) 

java.net.SocketException: Broken pipe 
at java.net.SocketOutputStream.socketWrite0(Native Method) 
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) 
at java.net.SocketOutputStream.write(SocketOutputStream.java:136) 
at org.apache.jk.common.ChannelSocket.send(ChannelSocket.java:580) 
at org.apache.jk.common.JkInputStream.doWrite(JkInputStream.java:206) 
at com.sun.grizzly.tcp.Response.doWrite(Response.java:685) 
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:420) 

: 문제가 발생하면, 브라우저는 나에게 HTTP 제한 시간을 제공하고, 글래스 피쉬 서버는 로그에 두 가지 예외가 있습니다. 이 조건을 만족하면 복구 할 수있는 유일한 방법은 Apache 서버를 다시 시작하는 것입니다. 재미있는 점은 다시 시작한 후 시간이 초과 된 요청이 자동으로 실행된다는 것입니다 - 마술처럼! 나는 누가 그들을 저장하는지 모른다.

어쨌든, 나는 아파치와 mod_jk를 전혀 경험하지 않았고 문제를 찾기 시작할 곳이 궁금했다.

아파치 : 1.2.30-1

어떤 도움이 많이 주시면 감사하겠습니다 : mod_jk 경우는, 3.1 버전 2.2.17-2, 글래스 피쉬는 다음과 같이 내가 사용하고 소프트웨어 버전은!

감사합니다.

답변

1

아파치를 시작하는 동안 mod_jk 로그에서 mod_jk 초기화를 확인하십시오. 로그가 기록되지 않으면 mod_jk 모듈의 설치/구성에 문제가있는 것입니다.

Glassfish 클러스터를 만들었습니까? 그렇다면 클러스터의 DjvmRoute 및 Dcom.sum.web.enterprise.jkenabled jvm 옵션을 설정하고 mod_jk의 요청을 수신하기 위해 생성해야하는 DAS 호스트의 http 네트워크 리스너도 확인하십시오 (초기에는 jk_disabled이므로 활성화하십시오) .. 그렇지 않으면 응용 프로그램을 전개하고있는 각 서버 도메인에서 http 네트워크 수신기에서 mod_jk를 확인하십시오.