You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Aaron Mulder <am...@alumni.princeton.edu> on 2003/10/19 04:09:39 UTC
JMX Communication Problems
I've gotten the JSR-88 command-line client a little further, to
the point where I make 6 or 8 JMX calls when I'm working with it. This
often fails with a timeout error, but not always. Lately, when I start
the Geronimo server, the first time I fire up the client it fails, but if
I then restart it it works OK.
When I fire up the client and it fails, the server prints
something like this:
[java] 13:40:09,793 DEBUG [ChannelPool] channel connecting to:
async://(hostname):35649
When the client works, the server doesn't print that.
When the client fails, it hangs for a while (30 seconds or
something, I'm not exactly sure), and then I get something like this:
org.apache.geronimo.remoting.transport.TransportException: Request time
out.
at
org.apache.geronimo.remoting.transport.async.ChannelPool.sendRequest(ChannelPool.java:459)
at
org.apache.geronimo.remoting.transport.async.AsyncClient.sendRequest(AsyncClient.java:93)
at
org.apache.geronimo.remoting.transport.RemoteTransportInterceptor.invoke(RemoteTransportInterceptor.java:97)
at
org.apache.geronimo.remoting.MarshalingInterceptor.invoke(MarshalingInterceptor.java:80)
at
org.apache.geronimo.proxy.SimpleRPCContainer.invoke(SimpleRPCContainer.java:84)
at
org.apache.geronimo.proxy.ProxyContainer.invoke(ProxyContainer.java:85)
at $Proxy0.invoke(Unknown Source)
at
org.apache.geronimo.enterprise.deploy.server.JmxServerConnection.getAvailableModules(JmxServerConnection.java:52)
Note that all of this is with the client and server running on the
same machine, with a host name that resolves to 127.0.0.1. For most of
the day I was not on the internet at all, but being online doesn't seem to
help.
Aaron
Re: JMX Communication Problems
Posted by Hiram Chirino <hi...@coredevelopers.net>.
Ok.. thanks for the procedure to replicate. I found the bug.
Summary of the problem:
The server sometimes establishes a socket back to the client if all the
current sockets from the client are busy. That part was a little
broke. The client accepted the connection and received the reply
message but it did not associate the reply back to the original request.
The URI of the server that sent the reply did not match exactly to the
URI of the server we sent the request to ( async://localhost vs
async://127.0.0.1 type problem ).
So now it's been fixed to that when the server connects back to the
client it reports the URI that the client originally used to connect to
the server.
Do me a favor and let me know if the fix I checked in fixes your issues.
Regards,
Hiram
On Sun, 2003-10-19 at 22:44, Aaron Mulder wrote:
> On Sun, 19 Oct 2003, Hiram Chirino wrote:
> > Can you point send me a script of the commands you are running that gets
> > this to fail? I'm sure it's a problem somewhere in the async remoting
> > transport layer. It's quite new and has not received that much testing
> > :( Platform info would be good too.
>
> I'm on Linux (Red Hat 9) on Intel with Sun's JDK 1.4.2.
>
> I don't yet have a script to replicate this, but you can use
> the following procedure:
>
> Make a JAR with nothing except a META-INF/ejb-jar.xml DD (you can
> use the one at
> modules/core/src/test-data/xml/deployment/simple-ejb-jar.xml)
>
> Start Geronimo (maven run:main)
>
> In a different window, start the deployer on your JAR
> "target/geronimo-DEV/bin/deploy ejb.jar" (or whatever the JAR name is)
>
> When prompted to enter a URL, enter
> "deployer:geronimo://localhost" (this is the first time it connects to the
> server and sometimes it hangs here)
>
> If you get to the menu of numbered items, hit "6" (deploy or
> redeploy) then "2" (distribute). This connects to the server and might
> hang.
>
> Now hit "4" (redeploy) and then "a" (add module) and then "L"
> (list all modules). This connects to the server 5 times (one per module
> type) and often hangs.
>
> Select "1" (the only deployed module). This connects to the
> server and might hang.
>
> Select "b" (back) then "b" (back again) and then type "y" (to
> redeploy). This connects to the server and might hang.
>
> Select "b" (back) then "8" (manage deployments) then "5" (view
> modules) then "L" (list all deployments). This connects to the server 5
> times and might hang.
>
> If it still hasn't hung, try hitting "L" over and over again until
> it does.
>
>
> With that procedure, it just took me 3 tries to get to the last
> step, and when I did, I hit "L" about 7 times before it hung. Note that I
> always get the message "DEBUG [ChannelPool] channel connecting to:
> async://(hostname):(port)" on the *server* side every time it hangs, and
> not when a request succeeds. Once it has hung, the deployer disconnects
> from the server so you need to exit or Ctrl-C and then restart it to try
> again.
>
> Thanks,
> Aaron
>
Re: JMX Communication Problems
Posted by Aaron Mulder <am...@alumni.princeton.edu>.
On Sun, 19 Oct 2003, Hiram Chirino wrote:
> Can you point send me a script of the commands you are running that gets
> this to fail? I'm sure it's a problem somewhere in the async remoting
> transport layer. It's quite new and has not received that much testing
> :( Platform info would be good too.
I'm on Linux (Red Hat 9) on Intel with Sun's JDK 1.4.2.
I don't yet have a script to replicate this, but you can use
the following procedure:
Make a JAR with nothing except a META-INF/ejb-jar.xml DD (you can
use the one at
modules/core/src/test-data/xml/deployment/simple-ejb-jar.xml)
Start Geronimo (maven run:main)
In a different window, start the deployer on your JAR
"target/geronimo-DEV/bin/deploy ejb.jar" (or whatever the JAR name is)
When prompted to enter a URL, enter
"deployer:geronimo://localhost" (this is the first time it connects to the
server and sometimes it hangs here)
If you get to the menu of numbered items, hit "6" (deploy or
redeploy) then "2" (distribute). This connects to the server and might
hang.
Now hit "4" (redeploy) and then "a" (add module) and then "L"
(list all modules). This connects to the server 5 times (one per module
type) and often hangs.
Select "1" (the only deployed module). This connects to the
server and might hang.
Select "b" (back) then "b" (back again) and then type "y" (to
redeploy). This connects to the server and might hang.
Select "b" (back) then "8" (manage deployments) then "5" (view
modules) then "L" (list all deployments). This connects to the server 5
times and might hang.
If it still hasn't hung, try hitting "L" over and over again until
it does.
With that procedure, it just took me 3 tries to get to the last
step, and when I did, I hit "L" about 7 times before it hung. Note that I
always get the message "DEBUG [ChannelPool] channel connecting to:
async://(hostname):(port)" on the *server* side every time it hangs, and
not when a request succeeds. Once it has hung, the deployer disconnects
from the server so you need to exit or Ctrl-C and then restart it to try
again.
Thanks,
Aaron
Re: JMX Communication Problems
Posted by Hiram Chirino <hi...@coredevelopers.net>.
Hi Aaron,
Can you point send me a script of the commands you are running that gets
this to fail? I'm sure it's a problem somewhere in the async remoting
transport layer. It's quite new and has not received that much testing
:( Platform info would be good too.
Regards,
Hiram
On Sat, 2003-10-18 at 22:09, Aaron Mulder wrote:
> I've gotten the JSR-88 command-line client a little further, to
> the point where I make 6 or 8 JMX calls when I'm working with it. This
> often fails with a timeout error, but not always. Lately, when I start
> the Geronimo server, the first time I fire up the client it fails, but if
> I then restart it it works OK.
>
> When I fire up the client and it fails, the server prints
> something like this:
>
> [java] 13:40:09,793 DEBUG [ChannelPool] channel connecting to:
> async://(hostname):35649
>
> When the client works, the server doesn't print that.
>
> When the client fails, it hangs for a while (30 seconds or
> something, I'm not exactly sure), and then I get something like this:
>
> org.apache.geronimo.remoting.transport.TransportException: Request time
> out.
> at
> org.apache.geronimo.remoting.transport.async.ChannelPool.sendRequest(ChannelPool.java:459)
> at
> org.apache.geronimo.remoting.transport.async.AsyncClient.sendRequest(AsyncClient.java:93)
> at
> org.apache.geronimo.remoting.transport.RemoteTransportInterceptor.invoke(RemoteTransportInterceptor.java:97)
> at
> org.apache.geronimo.remoting.MarshalingInterceptor.invoke(MarshalingInterceptor.java:80)
> at
> org.apache.geronimo.proxy.SimpleRPCContainer.invoke(SimpleRPCContainer.java:84)
> at
> org.apache.geronimo.proxy.ProxyContainer.invoke(ProxyContainer.java:85)
> at $Proxy0.invoke(Unknown Source)
> at
> org.apache.geronimo.enterprise.deploy.server.JmxServerConnection.getAvailableModules(JmxServerConnection.java:52)
>
>
> Note that all of this is with the client and server running on the
> same machine, with a host name that resolves to 127.0.0.1. For most of
> the day I was not on the internet at all, but being online doesn't seem to
> help.
>
> Aaron
>