]
jaikiran pai commented on AS7-3884:
-----------------------------------
Moved to AS7 project JIRA for now since I'm not yet sure it's got to do with EJB
client or remote-naming project.
Can you post the code in the RemoteClientAPI class?
Load testing application with Jmeter & jboss remoting throws
exception saying "Too many channels open"
------------------------------------------------------------------------------------------------------
Key: AS7-3884
URL:
https://issues.jboss.org/browse/AS7-3884
Project: Application Server 7
Issue Type: Bug
Affects Versions: 7.1.0.Final
Environment: windows 64 bit
Reporter: Prasad Deshpande
Assignee: jaikiran pai
I've created a sampler for JMeter for load testing application. When I ran that with
say around 30 threads with rampup time 80 seconds, after a while I kept getting exception
specified in
https://community.jboss.org/thread/195709?tstart=0. I later tried to close
InitialContext in teardown methods, but wasn't really helpful. I looked at no. of
InitialContext intances present in the VM using visualvm heapdump & found that just
before throwing exception, it was 24 & after throwing exception for all threads, it
did reach to 30, but it wasn't useful..
Please note that, I'm creating InitialContext with passing following parameters to
it:
java.naming.factory.url.pkgs=org.jboss.ejb.client.naming
java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory
java.naming.provider.url=remote://localhost:4447
jboss.naming.client.ejb.context=true
Here is the code for Java Sampler
{code}
package com;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import com.banctec.caseware.client.api.API;
import com.banctec.caseware.client.api.RemoteClientAPI;
import com.banctec.caseware.resources.CaseResource;
import com.banctec.caseware.resources.LoginResource;
import com.banctec.caseware.resources.Resource;
public class EJBTest extends AbstractJavaSamplerClient {
private API api = null;
private Long typeId;
private int setupTestCalled = 0;
private int teardownTestCalled = 0;
private int runTestCalled = 0;
public Arguments getDefaultParameters() {
Arguments defaultParameters = new Arguments();
defaultParameters.addArgument("typeId", "1");
defaultParameters.addArgument("RunLoop", "200");
defaultParameters.addArgument("username", "abc");
defaultParameters.addArgument("password", "abc");
return defaultParameters;
}
public void setupTest(JavaSamplerContext context) {
try {
typeId = context.getLongParameter("typeId");
api = new RemoteClientAPI();//this is where InitialContext gets created
LoginResource loginResource = new
LoginResource(context.getParameter("username"),
context.getParameter("password"));
loginResource.setUseDefaultRole(Boolean.valueOf(true));
api.login(new Resource[] { loginResource });
}catch (Exception e) {
e.printStackTrace();
}
System.out.println(" Number of times setupTest called
"+(++setupTestCalled));
}
public void teardownTest(JavaSamplerContext context) {
try{
if (api != null) {
api.logout();//In this method InitialContext.close() get's called
}
}catch (Exception e) {
e.printStackTrace();
}
System.out.println(" Number of times teardownTest called
"+(++teardownTestCalled));
}
public SampleResult runTest(JavaSamplerContext context) {
SampleResult result = new SampleResult();
boolean success = true;
int loopCount = context.getIntParameter("RunLoop");
result.sampleStart();
//Here goes the code that will call few business methods on remote EJB's
in application
// I've purposely removed this bit here..
System.out.println(" Number of times runTest called "+(++runTestCalled));
result.sampleEnd();
result.setSuccessful(success);
return result;
}
}
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: