You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by sasidharsmit <sa...@gmail.com> on 2011/10/20 14:15:08 UTC

Remote testing problem - Works for one testplan does not work for the second

Dear All,
I've been using JMeter for sometime now, to execute my load tests. It has
been working well for me. But, recently when I had to test a new
application, I faced a problem. 

Please find below my test environment specification and problem description.

*Test environment:*

Testplan development environment - Windows 7 32-bit
Testplan execution environment - Redhat enterprise linux 
JMeter version - Version 2.4 r961953
java.version - 1.6.0_10

Test execution servers - Server1;Server2
Testplan names - Plan1.jmx;Plan2.jmx


*Problem description:*

1. Plan1 is a test plan I've been using in the past to do testing.
2. Server1 is used to initiate the test
3. Server2 is where the actual test runs (remotely)
4. I key in the below commands in Server1, to get the jmeter-server started

[Server1]$ /./jmeter-server&/
[Server1]$ /Created remote object: UnicastServerRef [liveRef:
[endpoint:[Server1:45143](local),objID:[589e87a1:13320f5764d:-7fff,
2996288215291058752]]]/

5. I key in the below commands in Server2, to get the jmeter-server started

[Server2]$ /./jmeter-server&/
[Server2]$ /Created remote object: UnicastServerRef [liveRef:
[endpoint:[Server2:34288](local),objID:[-20f5670c:13320be5c62:-7fff,
2518394132361662963]]]/

5. Now, I key in the below command in Server1, to start the test

[Server1]$ /./jmeter -n -R Server2 -t Plan1.jmx -l smoke_result_log.jtl -j
smoke_output.log &/

6. I get the following message in Server1

[Server1]$ /./jmeter -n -R Server2 -t Plan1.jmx -l result_log.jtl -j
output.log &/
/[2] 5668/
[Server1]$ /Created the tree successfully using Plan1.jmx
Configuring remote engine for Server2
Using remote object: UnicastRef [liveRef:
[endpoint:[Server2:34288](remote),objID:[-20f5670c:13320be5c62:-7fff,
2518394132361662963]]]
Starting remote engines
Starting the test @ Thu Oct 20 10:54:50 UTC 2011 (1319108090548)
Remote engines have been started/


7. In Server2, I get the below message

[Server2]$ /Starting the test on host 10.0.103.109 @ Thu Oct 20 11:54:47
CEST 2011 (1319104487972)/

8. Everything is working fine. I can see things getting logged in
smoke_result.jtl

9. No errors in smoke_output.log

10. Now, when I try to do the same with Plan2, I observe the following
behaviour:

     a. I get the below message in Server1

         /[2] 6926
         [Server1]$ Created the tree successfully using Plan2.jmx
         Configuring remote engine for Server2
         Using remote object: UnicastRef [liveRef:
[endpoint:[Server2:41813](remote),objID:[9cf936a:13320f89080:-7fff,
4276509621820231896]]]
         Starting remote engines
         Starting the test @ Thu Oct 20 11:56:20 UTC 2011 (1319111780015)
         Remote engines have been started/

    b. But, in Server2, I do not get any notification

    c. Also, I do not see the smoke_result.jtl file getting created

    d. smoke_output.log logs the following error message:


/2011/10/20 11:56:19 INFO  - jmeter.util.JMeterUtils: Setting Locale to
en_US
2011/10/20 11:56:19 INFO  - jmeter.JMeter: Loading user properties from:
/home/test/jakarta-jmeter-2.4/bin/user.properties
2011/10/20 11:56:19 INFO  - jmeter.JMeter: Loading system properties from:
/home/test/jakarta-jmeter-2.4/bin/system.properties
2011/10/20 11:56:19 INFO  - jmeter.JMeter: Copyright (c) 1998-2010 The
Apache Software Foundation
2011/10/20 11:56:19 INFO  - jmeter.JMeter: Version 2.4 r961953
2011/10/20 11:56:19 INFO  - jmeter.JMeter: java.version=1.6.0_10
2011/10/20 11:56:19 INFO  - jmeter.JMeter: java.vm.name=Java HotSpot(TM)
64-Bit Server VM
2011/10/20 11:56:19 INFO  - jmeter.JMeter: os.name=Linux
2011/10/20 11:56:19 INFO  - jmeter.JMeter: os.arch=amd64
2011/10/20 11:56:19 INFO  - jmeter.JMeter: os.version=2.6.18-128.1.1.el5
2011/10/20 11:56:19 INFO  - jmeter.JMeter: file.encoding=UTF-8
2011/10/20 11:56:19 INFO  - jmeter.JMeter: Default Locale=English (United
States)
2011/10/20 11:56:19 INFO  - jmeter.JMeter: JMeter  Locale=English (United
States)
2011/10/20 11:56:19 INFO  - jmeter.JMeter:
JMeterHome=/home/test/jakarta-jmeter-2.4
2011/10/20 11:56:19 INFO  - jmeter.JMeter: user.dir 
=/home/test/jakarta-jmeter-2.4/bin
2011/10/20 11:56:19 INFO  - jmeter.JMeter: PWD      
=/home/test/jakarta-jmeter-2.4/bin
2011/10/20 11:56:19 INFO  - jmeter.JMeter: IP: Server1 Name: Server1
FullName: Server1
2011/10/20 11:56:19 INFO  - jmeter.services.FileServer: Default
base=/home/test/jakarta-jmeter-2.4/bin
2011/10/20 11:56:19 INFO  - jmeter.services.FileServer: Set new
base=/home/test/jakarta-jmeter-2.4/bin
2011/10/20 11:56:19 INFO  - jmeter.JMeter: Loading file: Plan2.jmx
2011/10/20 11:56:19 INFO  - jmeter.save.SaveService: Testplan (JMX) version:
2.2. Testlog (JTL) version: 2.2
2011/10/20 11:56:19 INFO  - jmeter.save.SaveService: Using SaveService
properties file encoding UTF-8
2011/10/20 11:56:19 INFO  - jmeter.save.SaveService: Using SaveService
properties file version 959116
2011/10/20 11:56:19 INFO  - jmeter.save.SaveService: Using SaveService
properties version 2.1
2011/10/20 11:56:19 INFO  - jmeter.save.SaveService: All converter versions
present and correct
2011/10/20 11:56:19 INFO  - jmeter.JMeter: Configuring remote engine for
Server2
2011/10/20 11:56:20 INFO  - jmeter.engine.ClientJMeterEngine: about to run
remote test on Server2
2011/10/20 11:56:20 INFO  - jmeter.engine.ClientJMeterEngine: done
initiating run command
2011/10/20 11:56:20 INFO  - jmeter.engine.ClientJMeterEngine: running
clientengine run method
2011/10/20 11:56:20 INFO  - jmeter.engine.util.CompoundVariable: Note:
Function class names must contain the string: '.functions.'
2011/10/20 11:56:20 INFO  - jmeter.engine.util.CompoundVariable: Note:
Function class names must not contain the string: '.gui.'
2011/10/20 11:56:20 INFO  - jmeter.engine.ConvertListeners: num threads = 1
2011/10/20 11:56:20 INFO  - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/10/20 11:56:20 INFO  - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/10/20 11:56:20 INFO  - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/10/20 11:56:20 INFO  - jmeter.samplers.StandardSampleSender: Using
Standard Remote Sampler for this test run
2011/10/20 11:56:20 ERROR - jmeter.engine.ClientJMeterEngine: 
java.rmi.MarshalException: error marshalling arguments; nested exception is:
        java.io.NotSerializableException: java.nio.DirectByteBuffer
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:138)
        at
org.apache.jmeter.engine.RemoteJMeterEngineImpl_Stub.configure(Unknown
Source)
        at
org.apache.jmeter.engine.ClientJMeterEngine.run(ClientJMeterEngine.java:131)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.NotSerializableException: java.nio.DirectByteBuffer
        at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
        at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
        at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.HashMap.writeObject(HashMap.java:1000)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
        at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.HashMap.writeObject(HashMap.java:1001)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
        at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.HashMap.writeObject(HashMap.java:1001)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
        at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.HashMap.writeObject(HashMap.java:1001)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
        at
org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:274)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
        ... 3 more/

11. This kind of error happens sometimes in the following cases:
      a. When there is a mismatch of the JMeter versions
      b. When a particular file is available in one server and is not
available in the other
     
12. I verified both and this is not the case. To confirm even further, I
copied the complete "jakarta-jmeter-2.4" directory from Server1 to Server2,
so that they have identical copies of all the files involved (including the
jmeter jar files, data files etc.)

13. Still I'm facing the same problem

14. I also verified what happens if I execute Plan2, only in Server1
(without using remote execution). It works perfectly

Can any of you help me?

Thanks and Regards,
Sasidhar Sekar


--
View this message in context: http://jmeter.512774.n5.nabble.com/Remote-testing-problem-Works-for-one-testplan-does-not-work-for-the-second-tp4921259p4921259.html
Sent from the JMeter - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Remote testing problem - Works for one testplan does not work for the second

Posted by sasidharsmit <sa...@gmail.com>.
Thank you, Sebb.
I contacted the developer. Fortunately, this issue was already known and he
already had a fix ready.
Now, with the new fix everything is working fine.

More details on the fix and the updated jar file can be found at the below
site:
http://code.google.com/p/jmeter-plugins/issues/detail?id=79

And thanks for mentioning the batch mode. It proved really useful.

Thanks and Regards,
Sasidhar Sekar

--
View this message in context: http://jmeter.512774.n5.nabble.com/Remote-testing-problem-Works-for-one-testplan-does-not-work-for-the-second-tp4921259p4925175.html
Sent from the JMeter - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Remote testing problem - Works for one testplan does not work for the second

Posted by sebb <se...@gmail.com>.
On 21 October 2011 13:32, sasidharsmit <sa...@gmail.com> wrote:
> Thank you, Sebb.
> I managed to locate the problem area.
>
> I identified the samplers and non-sampler elements used in my test plans
> Plan1 and Plan2. Details below:
>
> http://jmeter.512774.n5.nabble.com/file/n4924571/sampler_details.png
>
> As you had suggested, I tried to execute test plans remotely, with different
> samplers. The following were the samplers I tried.
>
> a) Webservice (SOAP) request
> b) HTTP request
> c) dummy sampler
> d) jp@gc - http raw request
>
> In each of the first 3 cases, remote execution was successful. No exceptions
> were thrown.
>
> But, when I tried to execute a testplan that uses the sampler "jp@gc - http
> raw request", I face the "NotSerializableException".
>
> So, I believe, the problem is with the sampler "jp@gc - http raw request".

OK, well done.

> This was not one of the default samplers available with JMeter 2.4. This is
> a custom plugin, I downloaded from the below site:
>
> http://code.google.com/p/jmeter-plugins/
>
> I had to use "jp@gc - http raw request" sampler instead of the default "HTTP
> Request" sampler, because my requests to the servers are JSON strings of
> varying length (generated by the beanshell preprocessor) and I could not use
> "HTTP Request" for this.

You probably can use Http request, but it might be tricky.

> Is there any way to resolve the issue with "jp@gc - http raw request"

Contact the provider to get them to fix the bug.

> sampler or any workarounds to get this working?

Don't use client-server mode; batch mode is anyway more efficient.

We are working on a Raw option for the Http Sampler, which will be in
the next release of JMeter.

> Thanks and Regards,
> Sasidhar Sekar
>
> --
> View this message in context: http://jmeter.512774.n5.nabble.com/Remote-testing-problem-Works-for-one-testplan-does-not-work-for-the-second-tp4921259p4924571.html
> Sent from the JMeter - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> 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


Re: Remote testing problem - Works for one testplan does not work for the second

Posted by sasidharsmit <sa...@gmail.com>.
Thank you, Sebb.
I managed to locate the problem area.

I identified the samplers and non-sampler elements used in my test plans
Plan1 and Plan2. Details below:

http://jmeter.512774.n5.nabble.com/file/n4924571/sampler_details.png 

As you had suggested, I tried to execute test plans remotely, with different
samplers. The following were the samplers I tried.

a) Webservice (SOAP) request
b) HTTP request
c) dummy sampler
d) jp@gc - http raw request

In each of the first 3 cases, remote execution was successful. No exceptions
were thrown.

But, when I tried to execute a testplan that uses the sampler "jp@gc - http
raw request", I face the "NotSerializableException".

So, I believe, the problem is with the sampler "jp@gc - http raw request".

This was not one of the default samplers available with JMeter 2.4. This is
a custom plugin, I downloaded from the below site:

http://code.google.com/p/jmeter-plugins/

I had to use "jp@gc - http raw request" sampler instead of the default "HTTP
Request" sampler, because my requests to the servers are JSON strings of
varying length (generated by the beanshell preprocessor) and I could not use
"HTTP Request" for this.

Is there any way to resolve the issue with "jp@gc - http raw request"
sampler or any workarounds to get this working?

Thanks and Regards,
Sasidhar Sekar

--
View this message in context: http://jmeter.512774.n5.nabble.com/Remote-testing-problem-Works-for-one-testplan-does-not-work-for-the-second-tp4921259p4924571.html
Sent from the JMeter - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: Remote testing problem - Works for one testplan does not work for the second

Posted by sebb <se...@gmail.com>.
On 20 October 2011 13:15, sasidharsmit <sa...@gmail.com> wrote:
> Dear All,
> I've been using JMeter for sometime now, to execute my load tests. It has
> been working well for me. But, recently when I had to test a new
> application, I faced a problem.
>
> Please find below my test environment specification and problem description.
>
> *Test environment:*
>
> Testplan development environment - Windows 7 32-bit
> Testplan execution environment - Redhat enterprise linux
> JMeter version - Version 2.4 r961953
> java.version - 1.6.0_10
>
> Test execution servers - Server1;Server2
> Testplan names - Plan1.jmx;Plan2.jmx
>
>
> *Problem description:*
>
> 1. Plan1 is a test plan I've been using in the past to do testing.
> 2. Server1 is used to initiate the test

i.e. it is the client in client-server mode.

> 3. Server2 is where the actual test runs (remotely)
> 4. I key in the below commands in Server1, to get the jmeter-server started
>
> [Server1]$ /./jmeter-server&/
> [Server1]$ /Created remote object: UnicastServerRef [liveRef:
> [endpoint:[Server1:45143](local),objID:[589e87a1:13320f5764d:-7fff,
> 2996288215291058752]]]/

Why? I thought you said the plan is run on Server2.

> 5. I key in the below commands in Server2, to get the jmeter-server started
>
> [Server2]$ /./jmeter-server&/
> [Server2]$ /Created remote object: UnicastServerRef [liveRef:
> [endpoint:[Server2:34288](local),objID:[-20f5670c:13320be5c62:-7fff,
> 2518394132361662963]]]/

OK.

> 5. Now, I key in the below command in Server1, to start the test
>
> [Server1]$ /./jmeter -n -R Server2 -t Plan1.jmx -l smoke_result_log.jtl -j
> smoke_output.log &/

OK.

> 6. I get the following message in Server1
>
> [Server1]$ /./jmeter -n -R Server2 -t Plan1.jmx -l result_log.jtl -j
> output.log &/
> /[2] 5668/
> [Server1]$ /Created the tree successfully using Plan1.jmx
> Configuring remote engine for Server2
> Using remote object: UnicastRef [liveRef:
> [endpoint:[Server2:34288](remote),objID:[-20f5670c:13320be5c62:-7fff,
> 2518394132361662963]]]
> Starting remote engines
> Starting the test @ Thu Oct 20 10:54:50 UTC 2011 (1319108090548)
> Remote engines have been started/

OK

>
> 7. In Server2, I get the below message
>
> [Server2]$ /Starting the test on host 10.0.103.109 @ Thu Oct 20 11:54:47
> CEST 2011 (1319104487972)/
>
> 8. Everything is working fine. I can see things getting logged in
> smoke_result.jtl
>
> 9. No errors in smoke_output.log
>
> 10. Now, when I try to do the same with Plan2, I observe the following
> behaviour:
>
>     a. I get the below message in Server1
>
>         /[2] 6926
>         [Server1]$ Created the tree successfully using Plan2.jmx
>         Configuring remote engine for Server2
>         Using remote object: UnicastRef [liveRef:
> [endpoint:[Server2:41813](remote),objID:[9cf936a:13320f89080:-7fff,
> 4276509621820231896]]]
>         Starting remote engines
>         Starting the test @ Thu Oct 20 11:56:20 UTC 2011 (1319111780015)
>         Remote engines have been started/
>
>    b. But, in Server2, I do not get any notification
>
>    c. Also, I do not see the smoke_result.jtl file getting created
>
>    d. smoke_output.log logs the following error message:
>
>
> /2011/10/20 11:56:19 INFO  - jmeter.util.JMeterUtils: Setting Locale to
> en_US
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: Loading user properties from:
> /home/test/jakarta-jmeter-2.4/bin/user.properties
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: Loading system properties from:
> /home/test/jakarta-jmeter-2.4/bin/system.properties
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: Copyright (c) 1998-2010 The
> Apache Software Foundation
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: Version 2.4 r961953
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: java.version=1.6.0_10
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: java.vm.name=Java HotSpot(TM)
> 64-Bit Server VM
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: os.name=Linux
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: os.arch=amd64
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: os.version=2.6.18-128.1.1.el5
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: file.encoding=UTF-8
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: Default Locale=English (United
> States)
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: JMeter  Locale=English (United
> States)
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter:
> JMeterHome=/home/test/jakarta-jmeter-2.4
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: user.dir
> =/home/test/jakarta-jmeter-2.4/bin
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: PWD
> =/home/test/jakarta-jmeter-2.4/bin
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: IP: Server1 Name: Server1
> FullName: Server1
> 2011/10/20 11:56:19 INFO  - jmeter.services.FileServer: Default
> base=/home/test/jakarta-jmeter-2.4/bin
> 2011/10/20 11:56:19 INFO  - jmeter.services.FileServer: Set new
> base=/home/test/jakarta-jmeter-2.4/bin
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: Loading file: Plan2.jmx
> 2011/10/20 11:56:19 INFO  - jmeter.save.SaveService: Testplan (JMX) version:
> 2.2. Testlog (JTL) version: 2.2
> 2011/10/20 11:56:19 INFO  - jmeter.save.SaveService: Using SaveService
> properties file encoding UTF-8
> 2011/10/20 11:56:19 INFO  - jmeter.save.SaveService: Using SaveService
> properties file version 959116
> 2011/10/20 11:56:19 INFO  - jmeter.save.SaveService: Using SaveService
> properties version 2.1
> 2011/10/20 11:56:19 INFO  - jmeter.save.SaveService: All converter versions
> present and correct
> 2011/10/20 11:56:19 INFO  - jmeter.JMeter: Configuring remote engine for
> Server2
> 2011/10/20 11:56:20 INFO  - jmeter.engine.ClientJMeterEngine: about to run
> remote test on Server2
> 2011/10/20 11:56:20 INFO  - jmeter.engine.ClientJMeterEngine: done
> initiating run command
> 2011/10/20 11:56:20 INFO  - jmeter.engine.ClientJMeterEngine: running
> clientengine run method
> 2011/10/20 11:56:20 INFO  - jmeter.engine.util.CompoundVariable: Note:
> Function class names must contain the string: '.functions.'
> 2011/10/20 11:56:20 INFO  - jmeter.engine.util.CompoundVariable: Note:
> Function class names must not contain the string: '.gui.'
> 2011/10/20 11:56:20 INFO  - jmeter.engine.ConvertListeners: num threads = 1
> 2011/10/20 11:56:20 INFO  - jmeter.samplers.StandardSampleSender: Using
> Standard Remote Sampler for this test run
> 2011/10/20 11:56:20 INFO  - jmeter.samplers.StandardSampleSender: Using
> Standard Remote Sampler for this test run
> 2011/10/20 11:56:20 INFO  - jmeter.samplers.StandardSampleSender: Using
> Standard Remote Sampler for this test run
> 2011/10/20 11:56:20 INFO  - jmeter.samplers.StandardSampleSender: Using
> Standard Remote Sampler for this test run
> 2011/10/20 11:56:20 ERROR - jmeter.engine.ClientJMeterEngine:
> java.rmi.MarshalException: error marshalling arguments; nested exception is:
>        java.io.NotSerializableException: java.nio.DirectByteBuffer

Test Plans are sent from client to server using serialisation.

For some reason, Test Plan2 depends (indirectly) on
java.nio.DirectByteBuffer which is not serialisable.
This may be due to a bug in the JMeter code.

>        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:138)
>        at
> org.apache.jmeter.engine.RemoteJMeterEngineImpl_Stub.configure(Unknown
> Source)
>        at
> org.apache.jmeter.engine.ClientJMeterEngine.run(ClientJMeterEngine.java:131)
>        at java.lang.Thread.run(Thread.java:619)
> Caused by: java.io.NotSerializableException: java.nio.DirectByteBuffer
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
>        at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>        at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>        at java.util.HashMap.writeObject(HashMap.java:1000)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>        at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>        at
> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
>        at
> org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>        at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>        at java.util.HashMap.writeObject(HashMap.java:1001)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>        at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>        at
> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
>        at
> org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>        at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>        at java.util.HashMap.writeObject(HashMap.java:1001)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>        at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>        at
> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
>        at
> org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>        at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>        at java.util.HashMap.writeObject(HashMap.java:1001)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>        at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
>        at
> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:416)
>        at
> org.apache.jorphan.collections.HashTree.writeObject(HashTree.java:947)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>        at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>        at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>        at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>        at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>        at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>        at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:274)
>        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
>        ... 3 more/
>
> 11. This kind of error happens sometimes in the following cases:
>      a. When there is a mismatch of the JMeter versions

This is not supported.

>      b. When a particular file is available in one server and is not
> available in the other

That causes a different error.

> 12. I verified both and this is not the case. To confirm even further, I
> copied the complete "jakarta-jmeter-2.4" directory from Server1 to Server2,
> so that they have identical copies of all the files involved (including the
> jmeter jar files, data files etc.)

Good.

> 13. Still I'm facing the same problem
>
> 14. I also verified what happens if I execute Plan2, only in Server1
> (without using remote execution). It works perfectly
>
> Can any of you help me?

What sampler are you using in Plan2 that you are not using in Plan1?

If there are several unique ones, try disabling them one by one until
the plan works.
Or create separate test plans with one sampler in each. If the startup
gets beyond the serialisation error then it's not that sampler.

Or it could perhaps be a non-sampler test element, but try samplers first.

Then report back which test element is involved.

Unfortunately the log does not provide detail of the test element that
is causing the issue.

> Thanks and Regards,
> Sasidhar Sekar
>
>
> --
> View this message in context: http://jmeter.512774.n5.nabble.com/Remote-testing-problem-Works-for-one-testplan-does-not-work-for-the-second-tp4921259p4921259.html
> Sent from the JMeter - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> 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