Ask a Question

Mock servis: GC overhead limit exceeded

Beno_Iskratel
Frequent Contributor

Mock servis: GC overhead limit exceeded

hi,

i'm running mock servis. in aprox 12 hours, mock must handle 400.000 requests. when mock recieves request A, request B (readRecord) is sent from mock to server and after server responses with response B, mock returns response A.
there are a lot of problems witm memory. at morning when i get to work SoapUI doesn't work. I can see in memory log, the graph is on the top, flat line and java (SoapUI) is using 1.2GiB of memory.
on windows, i solved the problem with disabling soapUI log and http log.
on linux, this doesn't work.

there is also problem, that i have to open all requests in CcsServiceSoap11Binding interface and minimaze them. if i don't open them, they don't work and if i don't minimize them, soapUI runs out of memmory also on windows.

please check if you can find anything. perhaps in mock start, onRequest script or mock Response1 Script?
on linux i'm using 3.6.2.


here are request for mock and response for testCase.
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<Update_CRMRecord_StatusAS xmlns="http://test57.cocos.si/">
<pID>2032075</pID>
<pStatus>Finished</pStatus>
</Update_CRMRecord_StatusAS>
</S:Body>
</S:Envelope>

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:readRecordResponse xmlns="http://ccs.service112.iskratel.si/xsd" xmlns:ns2="http://ccs.service112.iskratel.si">
<ns2:return>
<id>1772851</id>
<crdate>1316609942025</crdate>
<latitude>4169</latitude>
<longitude>2714</longitude>
<operatorid>1</operatorid>
<phonenumber>8344683104</phonenumber>
<radious>5768</radious>
</ns2:return>
</ns2:readRecordResponse>
</S:Body>
</S:Envelope>



regards,
beno
9 REPLIES 9
SmartBear_Suppo
SmartBear Alumni (Retired)

Hi,

thanks for this - do you get the same problems with 4.0.x? Also, have you tried disabling the request log in the MockService window?

/Ole
SmartBear Software

Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
Beno_Iskratel
Frequent Contributor

i hope i'll get some results with 4.0.2 today.
i didn't disable MockService window, i just limited it to 300 rows.

can you tell me why do i have to open all 24 requests from CcsServiceSoap11Binding? if i don't do this than SoapUI doesn't work (new content is not put into request).
and if i don't minimize them than SoapUI runs into problems with memory. i think... it's strange, i'm also a bit confuzed.
SmartBear_Suppo
SmartBear Alumni (Retired)

Hi,

I agree.. we'll have to look at this and will get back to you...

regards,

/Ole
SmartBear Software

Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
Beno_Iskratel
Frequent Contributor

hi,

4.0.2 doesn't make any difference.
you can reproduse this easy.
heap memory usage is rising and rising and rising... you know what happenes later. >:D

i attached picture. right now soapUI still works, but it's close to the end, perhaps just 2 or 3 more hours before only killing java process can "help".
OS is Fedora 7.

windows platform doesn't have any problems.

regards,
beno
SmartBear_Suppo
SmartBear Alumni (Retired)

Hi Beno,

ok thanks - you need to access the response via the submit object returned by the submit method;

//define
def submit = null

synchronized(context.lock) {
String kreiran_req = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ccs=\"http://ccs.service112.iskratel.si\"><soapenv:Header/><soapenv:Body><ccs:readRecord><ccs:id>"+substr+...
request.requestContent = kreiran_req
// save submit
submit = request.submit( new com.eviware.soapui.impl.wsdl.WsdlSubmitContext( request ), false )
}

log.info submit.response.contentAsString

def TimeTaken = submit.response.timeTaken
....

if you change this throughout your script then it will work without having to have the request windows open.. this might help your memory issue also, at least I am not seeing any memory fill-up during a long-running loadtest

please try the above (make sure you change it everywhere) and let us know how it works..

if you are still having troubles, please send us your updated project so we can continue from there..

regards,

/Ole
SmartBear Software

Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
Beno_Iskratel
Frequent Contributor

tnx ole,

fast replay because i have to go...

this is what i get:

Wed Nov 30 15:21:53 CET 2011:ERROR:java.lang.Exception: Cannot get property 'timeTaken' on null object
java.lang.Exception: Cannot get property 'timeTaken' on null object
at com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse.evaluateScript(WsdlMockResponse.java:359)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse.execute(WsdlMockResponse.java:264)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockOperation.dispatchRequest(WsdlMockOperation.java:259)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchPostRequest(WsdlMockRunner.java:300)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.dispatchRequest(WsdlMockRunner.java:384)
at com.eviware.soapui.monitor.JettyMockEngine$ServerHandler.handle(JettyMockEngine.java:714)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException: Cannot get property 'timeTaken' on null object
at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:56)
at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:156)
at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:235)
at Script1.run(Script1.groovy:62)
at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:96)
at com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SourceFile:88)
at com.eviware.soapui.impl.wsdl.mock.WsdlMockResponse.evaluateScript(WsdlMockResponse.java:355)
... 17 more




beno
SmartBear_Suppo
SmartBear Alumni (Retired)

Hi,

then it seems you got the script wrong somehow - can you paste it here?

regards!

/Ole
SmartBear Software

Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
Beno_Iskratel
Frequent Contributor

hi,

you're right. the script was wrong.
i have put def submit = null inside of {}, should be outside.
synchronized(context.lock) {
def submit = null
...
}

Another great information, it seems that memory problems (in linux os) are solved!
Hep memory usage is stable now. (4.0.2 SNAPSHOT version of SoapUI)
soapUI log and http log also don't make any problems (1000 row limit).

tnx,
beno
SmartBear_Suppo
SmartBear Alumni (Retired)

Great, thanks for the feedback!

regards,

/Ole
SmartBear Software

Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
cancel
Showing results for 
Search instead for 
Did you mean: