Skip to content
Snippets Groups Projects
Commit 032a5ce8 authored by Florian Fittkau's avatar Florian Fittkau
Browse files

communication takes place on each second basis

parent 6f9c8ed4
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="lightrpc.LightRPCMainStarter"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-serverPort 9999 -secondsToRunServer 10 -callsToServerCount 100 -serverPortsToConnect 9999"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-serverPort 9999 -secondsToRunServer 10 -serverPortsToConnect 9999 -callsToServerCount 100"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="LightRPCApplication"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-javaagent:lib/aspectjweaver-1.8.5.jar -Xmx4G"/>
</launchConfiguration>
No preview for this file type
This diff is collapsed.
"C:\Program Files\Java\jdk1.7.0_75\jre\bin\java" -javaagent:aspectjweaver-1.8.5.jar -Xmx4G -Dexplorviz.live_trace_processing.system_name="testsystem" -Dexplorviz.live_trace_processing.ip_address=10.20.0.1 -Dexplorviz.live_trace_processing.host_name="testhost" -Dexplorviz.live_trace_processing.application_name="testapp" -jar light-RPC-application.jar -serverPort 9999 -secondsToRunServer 10 -callsToServerCount 100
\ No newline at end of file
"C:\Program Files\Java\jdk1.7.0_75\jre\bin\java" -javaagent:aspectjweaver-1.8.5.jar -Xmx4G -Dexplorviz.live_trace_processing.system_name="testsystem" -Dexplorviz.live_trace_processing.ip_address=10.20.0.2 -Dexplorviz.live_trace_processing.host_name="testhost2" -Dexplorviz.live_trace_processing.application_name="client" -jar light-RPC-application.jar -serverPort 21001 -secondsToRunServer 60 -callsToServerCount 1000 -serverPortsToConnect 21000 -serverPortsToConnect 21000 -serverPortsToConnect 21000
\ No newline at end of file
"C:\Program Files\Java\jdk1.7.0_75\jre\bin\java" -javaagent:aspectjweaver-1.8.5.jar -Xmx4G -Dexplorviz.live_trace_processing.system_name="testsystem" -Dexplorviz.live_trace_processing.ip_address=10.20.0.1 -Dexplorviz.live_trace_processing.host_name="testhost" -Dexplorviz.live_trace_processing.application_name="server" -jar light-RPC-application.jar -serverPort 21000 -secondsToRunServer 60
\ No newline at end of file
......@@ -12,8 +12,8 @@ public class ArgOptions {
@Parameter(names = { "-secondsToRunServer" }, description = "How long the server shall run")
public Integer secondsToRunServer;
@Parameter(names = { "-callsToServerCount" }, description = "How many server requests")
public Integer callsToServerCount;
@Parameter(names = { "-callsToServerCount" }, description = "How many server requests per second")
public List<Integer> callsToServerCount = new ArrayList<Integer>();
@Parameter(names = { "-serverPortsToConnect" }, description = "Servers the client should connect")
public List<Integer> serverPortsToConnect = new ArrayList<Integer>();
......
package lightrpc;
import java.util.ArrayList;
import java.util.List;
import lightrpc.jaxws.JAXWSClient;
import lightrpc.jaxws.JAXWSServer;
......@@ -17,11 +18,16 @@ public class LightRPCMainStarter {
JAXWSServer.startServer(arguments.serverPort);
final ArrayList<Thread> serverAccessThreads = new ArrayList<Thread>();
final List<ServerAccessThread> serverAccessThreads = new ArrayList<ServerAccessThread>();
for (final int serverPortToConnect : arguments.serverPortsToConnect) {
serverAccessThreads.add(new Thread(new ServerAccessRunnable(
serverPortToConnect, arguments.callsToServerCount)));
for (int i = 0; i < arguments.serverPortsToConnect.size(); i++) {
final Integer serverPortToConnect = arguments.serverPortsToConnect
.get(i);
final Integer callsToServerCount = arguments.callsToServerCount
.get(i);
serverAccessThreads.add(new ServerAccessThread(serverPortToConnect,
callsToServerCount));
}
for (final Thread serverAccessThread : serverAccessThreads) {
......@@ -36,7 +42,8 @@ public class LightRPCMainStarter {
}
try {
for (final Thread serverAccessThread : serverAccessThreads) {
for (final ServerAccessThread serverAccessThread : serverAccessThreads) {
serverAccessThread.setStopping();
serverAccessThread.join();
}
} catch (final InterruptedException e) {
......@@ -46,22 +53,45 @@ public class LightRPCMainStarter {
}
}
class ServerAccessRunnable implements Runnable {
class ServerAccessThread extends Thread {
private final int serverPortToConnect;
private final int callsToConduct;
private boolean stopping;
public ServerAccessRunnable(final int serverPortToConnect,
public ServerAccessThread(final int serverPortToConnect,
final int callsToConduct) {
this.serverPortToConnect = serverPortToConnect;
this.callsToConduct = callsToConduct;
stopping = false;
}
public void setStopping() {
stopping = true;
}
@Override
public void run() {
final JAXWSClient jaxwsClient = new JAXWSClient(serverPortToConnect);
for (int i = 0; i < callsToConduct; i++) {
jaxwsClient.accessServer();
while (!stopping) {
final long lastSendStart = System.currentTimeMillis();
for (int i = 0; i < callsToConduct; i++) {
jaxwsClient.accessServer();
}
final long timeToSend = System.currentTimeMillis() - lastSendStart;
if (timeToSend < 1000) {
try {
Thread.sleep(1000 - timeToSend);
} catch (final InterruptedException e) {
}
} else {
// we took too long to send, so skip this round
try {
Thread.sleep(1000 - timeToSend % 1000);
} catch (final InterruptedException e) {
}
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment