You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by ms...@apache.org on 2003/08/28 17:47:06 UTC

Re: MarshalException when starting remote plan

I'm switching to the dev list because I want to ask a question:  
wouldn't it be easier for us if JMeter sent text only between server 
and client?  Then the server could be a soap server or something 
and tests could be sent as XML (hey, that's how we save them too, 
isn't that convenient).  The client could then also be a soap server 
and receive event notifications as text.  (btw, I'm not hooked on the 
soap server - it's probably heavier than we need, just some text 
over sockets would make me happy).  In any case, this would get 
rid of the marshalling exceptions, get rid of rmiregistry, put control 
over the port # in the users hands.

The problem and the reason I haven't done it previously is that a 
method needs to be worked out for directing events to the proper 
listeners.  Now, we've talked about having a single test listener that 
just logs and maybe provides some simple visual feedback and 
then "analyzers" could view the data non-interactively, and this 
would remove the need for directing events to particular listeners, 
or something else could be arranged.  It's something to put our 
thinking caps on for because I do want to get rid of RMI.

-Mike


On 28 Aug 2003 at 11:31, mstover1@apache.org wrote:

> Regarding these problems running remotely: You must be very 
> sure that the jar files on each machine are exactly the same - this 
> does not mean exactly the same source compiled on each 
> machine, it means exactly the same jars copied from a single 
> source (ie, the 1.9.1 distribution).
> 
> If you are at all unsure whether the jars are the same, choose one 
> machine and copy it's jars to the other machines, overwriting the 
> jars that are there.
> 
> -Mike
> 
> On 28 Aug 2003 at 10:17, Jon Steelman wrote:
> 
> > BTW, running 1.9.1 server and client.
> > 
> > ---------- Original Message ----------------------------------
> > From: "Jon Steelman" <js...@techdiscovery.com>
> > Reply-To: <js...@techdiscovery.com>
> > Date: Thu, 28 Aug 2003 09:33:43 -0400
> > 
> > >I get this when trying to start a remote test plan. Another 
> machine is able to execute the plan remotely just fine. Has 
anyone 
> seen this? Any ideas?
> > >
> > >Thanks,
> > >Jon
> > >
> > >C:\Projects, Idea\AfterBOT 
> Actual\receiptsplus\config\test\jmeter\Jon Test Plan.jmx 
> > >08/27/2003 4:16:57 PM WARN  - 
> jmeter.engine.ClientJMeterEngine: about to run remote test 
> > >08/27/2003 4:16:57 PM WARN  - 
> jmeter.engine.ClientJMeterEngine: done initiating run command 
> > >08/27/2003 4:16:57 PM WARN  - 
> jmeter.engine.ClientJMeterEngine: running clientengine run 
method 
> > >08/27/2003 4:16:57 PM INFO  - jmeter.engine: num threads = 
2 
> > >08/27/2003 4:16:57 PM INFO  - jmeter.engine: num threads = 
2 
> > >08/27/2003 4:16:58 PM WARN  - 
> jmeter.engine.ClientJMeterEngine: sent host info 
> > >08/27/2003 4:16:58 PM ERROR - 
> jmeter.engine.ClientJMeterEngine:  java.rmi.MarshalException: 
> error marshalling arguments; nested exception is: 
> > >	java.net.SocketException: Software caused connection 
> abort: socket write error
> > >	at sun.rmi.server.UnicastRef.invoke(Unknown Source)
> > >	at 
> 
org.apache.jmeter.engine.RemoteJMeterEngineImpl_Stub.configur
> e(Unknown Source)
> > >	at 
> 
org.apache.jmeter.engine.ClientJMeterEngine.run(ClientJMeterEng
> ine.java:153)
> > >	at java.lang.Thread.run(Unknown Source)
> > >Caused by: java.net.SocketException: Software caused 
> connection abort: socket write error
> > >	at java.net.SocketOutputStream.socketWrite0(Native 
> Method)
> > >	at java.net.SocketOutputStream.socketWrite(Unknown 
> Source)
> > >	at java.net.SocketOutputStream.write(Unknown Source)
> > >	at java.io.BufferedOutputStream.flushBuffer(Unknown 
> Source)
> > >	at java.io.BufferedOutputStream.write(Unknown Source)
> > >	at 
> 
java.io.ObjectOutputStream$BlockDataOutputStream.drain(Unkno
> wn Source)
> > >	at 
> 
java.io.ObjectOutputStream$BlockDataOutputStream.writeByte(Un
> known Source)
> > >	at 
> java.io.ObjectOutputStream.writeFatalException(Unknown 
Source)
> > >	at java.io.ObjectOutputStream.writeObject(Unknown 
> Source)
> > >	at sun.rmi.server.UnicastRef.marshalValue(Unknown 
> Source)
> > >	... 4 more
> > >
> > >
> > >
> > >---------------------------------------------------------------------
> > >To unsubscribe, e-mail: jmeter-user-
> unsubscribe@jakarta.apache.org
> > >For additional commands, e-mail: jmeter-user-
> help@jakarta.apache.org
> > >
> > >
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: jmeter-user-
> unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: jmeter-user-
> help@jakarta.apache.org
> > 
> 
> 
> 
> 
> --
> Michael Stover
> mstover1@apache.org
> Yahoo IM: mstover_ya
> ICQ: 152975688
> AIM: mstover777
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-
unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-
help@jakarta.apache.org
> 




--
Michael Stover
mstover1@apache.org
Yahoo IM: mstover_ya
ICQ: 152975688
AIM: mstover777

Re: MarshalException when starting remote plan

Posted by Jordi Salvat i Alabart <js...@atg.com>.
Yes, RMI sucks. Even the people who designed it acknowledge that the 
process to get a connection is overly complex and problem-prone.

Then there's the distributed-GC problem: if you run GC often, you're 
wasting a lot of time, if you run it seldom, you risk running out of 
memory with a ton of collectable objects held by cross-JVM references.

Yes, soap or a proprietary text-based protocol would very likely be 
better. As for delivering the events, you would need to know which 
sampler each event comes from and just deliver it (real-time, queued or 
store-and-forward) as if produced by that sampler.

-- 
Salut,

Jordi.

mstover1@apache.org wrote:
> I'm switching to the dev list because I want to ask a question:  
> wouldn't it be easier for us if JMeter sent text only between server 
> and client?  Then the server could be a soap server or something 
> and tests could be sent as XML (hey, that's how we save them too, 
> isn't that convenient).  The client could then also be a soap server 
> and receive event notifications as text.  (btw, I'm not hooked on the 
> soap server - it's probably heavier than we need, just some text 
> over sockets would make me happy).  In any case, this would get 
> rid of the marshalling exceptions, get rid of rmiregistry, put control 
> over the port # in the users hands.
> 
> The problem and the reason I haven't done it previously is that a 
> method needs to be worked out for directing events to the proper 
> listeners.  Now, we've talked about having a single test listener that 
> just logs and maybe provides some simple visual feedback and 
> then "analyzers" could view the data non-interactively, and this 
> would remove the need for directing events to particular listeners, 
> or something else could be arranged.  It's something to put our 
> thinking caps on for because I do want to get rid of RMI.
> 
> -Mike
> 
> 
> On 28 Aug 2003 at 11:31, mstover1@apache.org wrote:
> 
> 
>>Regarding these problems running remotely: You must be very 
>>sure that the jar files on each machine are exactly the same - this 
>>does not mean exactly the same source compiled on each 
>>machine, it means exactly the same jars copied from a single 
>>source (ie, the 1.9.1 distribution).
>>
>>If you are at all unsure whether the jars are the same, choose one 
>>machine and copy it's jars to the other machines, overwriting the 
>>jars that are there.
>>
>>-Mike
>>
>>On 28 Aug 2003 at 10:17, Jon Steelman wrote:
>>
>>
>>>BTW, running 1.9.1 server and client.
>>>
>>>---------- Original Message ----------------------------------
>>>From: "Jon Steelman" <js...@techdiscovery.com>
>>>Reply-To: <js...@techdiscovery.com>
>>>Date: Thu, 28 Aug 2003 09:33:43 -0400
>>>
>>>
>>>>I get this when trying to start a remote test plan. Another 
>>
>>machine is able to execute the plan remotely just fine. Has 
> 
> anyone 
> 
>>seen this? Any ideas?
>>
>>>>Thanks,
>>>>Jon
>>>>
>>>>C:\Projects, Idea\AfterBOT 
>>
>>Actual\receiptsplus\config\test\jmeter\Jon Test Plan.jmx 
>>
>>>>08/27/2003 4:16:57 PM WARN  - 
>>
>>jmeter.engine.ClientJMeterEngine: about to run remote test 
>>
>>>>08/27/2003 4:16:57 PM WARN  - 
>>
>>jmeter.engine.ClientJMeterEngine: done initiating run command 
>>
>>>>08/27/2003 4:16:57 PM WARN  - 
>>
>>jmeter.engine.ClientJMeterEngine: running clientengine run 
> 
> method 
> 
>>>>08/27/2003 4:16:57 PM INFO  - jmeter.engine: num threads = 
> 
> 2 
> 
>>>>08/27/2003 4:16:57 PM INFO  - jmeter.engine: num threads = 
> 
> 2 
> 
>>>>08/27/2003 4:16:58 PM WARN  - 
>>
>>jmeter.engine.ClientJMeterEngine: sent host info 
>>
>>>>08/27/2003 4:16:58 PM ERROR - 
>>
>>jmeter.engine.ClientJMeterEngine:  java.rmi.MarshalException: 
>>error marshalling arguments; nested exception is: 
>>
>>>>	java.net.SocketException: Software caused connection 
>>
>>abort: socket write error
>>
>>>>	at sun.rmi.server.UnicastRef.invoke(Unknown Source)
>>>>	at 
>>
> org.apache.jmeter.engine.RemoteJMeterEngineImpl_Stub.configur
> 
>>e(Unknown Source)
>>
>>>>	at 
>>
> org.apache.jmeter.engine.ClientJMeterEngine.run(ClientJMeterEng
> 
>>ine.java:153)
>>
>>>>	at java.lang.Thread.run(Unknown Source)
>>>>Caused by: java.net.SocketException: Software caused 
>>
>>connection abort: socket write error
>>
>>>>	at java.net.SocketOutputStream.socketWrite0(Native 
>>
>>Method)
>>
>>>>	at java.net.SocketOutputStream.socketWrite(Unknown 
>>
>>Source)
>>
>>>>	at java.net.SocketOutputStream.write(Unknown Source)
>>>>	at java.io.BufferedOutputStream.flushBuffer(Unknown 
>>
>>Source)
>>
>>>>	at java.io.BufferedOutputStream.write(Unknown Source)
>>>>	at 
>>
> java.io.ObjectOutputStream$BlockDataOutputStream.drain(Unkno
> 
>>wn Source)
>>
>>>>	at 
>>
> java.io.ObjectOutputStream$BlockDataOutputStream.writeByte(Un
> 
>>known Source)
>>
>>>>	at 
>>
>>java.io.ObjectOutputStream.writeFatalException(Unknown 
> 
> Source)
> 
>>>>	at java.io.ObjectOutputStream.writeObject(Unknown 
>>
>>Source)
>>
>>>>	at sun.rmi.server.UnicastRef.marshalValue(Unknown 
>>
>>Source)
>>
>>>>	... 4 more
>>>>
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: jmeter-user-
>>
>>unsubscribe@jakarta.apache.org
>>
>>>>For additional commands, e-mail: jmeter-user-
>>
>>help@jakarta.apache.org
>>
>>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: jmeter-user-
>>
>>unsubscribe@jakarta.apache.org
>>
>>>For additional commands, e-mail: jmeter-user-
>>
>>help@jakarta.apache.org
>>
>>
>>
>>
>>--
>>Michael Stover
>>mstover1@apache.org
>>Yahoo IM: mstover_ya
>>ICQ: 152975688
>>AIM: mstover777
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: jmeter-user-
> 
> unsubscribe@jakarta.apache.org
> 
>>For additional commands, e-mail: jmeter-user-
> 
> help@jakarta.apache.org
> 
> 
> 
> 
> 
> --
> Michael Stover
> mstover1@apache.org
> Yahoo IM: mstover_ya
> ICQ: 152975688
> AIM: mstover777
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org
> 
> 

-- 
Salut,

Jordi.