&引用;“断管”;使用mod_jk时在Apache和GlassFish之间

&引用;“断管”;使用mod_jk时在Apache和GlassFish之间,apache,glassfish,mod-jk,Apache,Glassfish,Mod Jk,我使用Apache作为GlassFish 3.1的前端,使用mod_jk作为连接器。两者之间的联系非常不稳定——大约50%的时间都能正常工作——即使我是系统中唯一的一个人。出现问题时,浏览器会给我一个HTTP超时,GlassFish服务器的日志中有两种类型的异常: java.io.IOException at org.apache.jk.common.JkInputStream.receive(JkInputStream.java:249) at org.apache.jk.common.JkI

我使用Apache作为GlassFish 3.1的前端,使用mod_jk作为连接器。两者之间的联系非常不稳定——大约50%的时间都能正常工作——即使我是系统中唯一的一个人。出现问题时,浏览器会给我一个HTTP超时,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)
在Apache方面,mod_jk日志是完全空的。一旦遇到这种情况,唯一的恢复方法就是重新启动Apache服务器。有趣的是,重启后,超时的请求会自动执行——神奇地!我不知道是谁储存的

无论如何,我对Apache和mod_jk没有任何经验,我想知道从哪里开始寻找问题。我使用的软件版本如下:

Apache:Version2.2.17-2,GlassFish:3.1,mod_jk:1.2.30-1

任何帮助都将不胜感激


谢谢。

检查mod_jk日志,以便在Apache启动期间初始化mod_jk。如果没有写入日志,则mod_jk模块的安装/配置有问题

你创造了一个玻璃鱼集群吗? 如果是,则为集群设置DjvmRoute和Dcom.sum.web.enterprise.jk启用的jvm选项,并检查DAS主机上需要创建的http网络侦听器,以侦听来自mod_jk的请求(它最初是禁用jk_的,所以启用它)。。 如果没有,那么在部署应用程序的每个服务器域上检查http网络侦听器的mod_jk