Skip to content

Commit 35a37d3

Browse files
committed
added endlessmode to remote-call sample
1 parent c679336 commit 35a37d3

File tree

2 files changed

+42
-29
lines changed
  • samples/remotecall
    • remotecall-client/src/main/java/com/dynatrace/oneagent/sdk/samples/remoting
    • remotecall-server/src/main/java/com/dynatrace/oneagent/sdk/samples/remoting

2 files changed

+42
-29
lines changed

samples/remotecall/remotecall-client/src/main/java/com/dynatrace/oneagent/sdk/samples/remoting/ClientApp.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,22 @@ public static void main(String args[]) {
5656
System.out.println("** Running remote call client **");
5757
System.out.println("*************************************************************");
5858
int port = 33744;
59+
boolean endlessmode = false;
5960
for (String arg : args) {
6061
if (arg.startsWith("port=")) {
6162
port = Integer.parseInt(arg.substring("port=".length()));
63+
} else if (arg.startsWith("endlessmode")) {
64+
endlessmode = true;
6265
} else {
6366
System.err.println("unknown argument: " + arg);
6467
}
6568
}
6669
try {
67-
new ClientApp().run(port);
68-
System.out.println("remote call client finished. sleeping a while, so OneAgent is able to send data to server ...");
69-
Thread.sleep(15000); // we have to wait - so OneAgent is able to send data to server.
70+
ClientApp clientApp = new ClientApp();
71+
do {
72+
clientApp.run(port);
73+
Thread.sleep(10000);
74+
} while (endlessmode);
7075
} catch (Exception e) {
7176
System.err.println("remote call client failed: " + e.getMessage());
7277
e.printStackTrace();

samples/remotecall/remotecall-server/src/main/java/com/dynatrace/oneagent/sdk/samples/remoting/ServerApp.java

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
*
3535
*/
3636
public class ServerApp {
37-
37+
3838
private final OneAgentSDK oneAgentSdk;
3939
private final Logger logger = Logger.getLogger("ServerApp");
4040

@@ -50,29 +50,34 @@ private ServerApp() {
5050
"SDK is PERMANENT_INACTIVE; Probably no OneAgent injected or OneAgent is incompatible with SDK.");
5151
break;
5252
case TEMPORARILY_INACTIVE:
53-
System.err.println("SDK is TEMPORARY_INACTIVE; OneAgent has been deactivated - check OneAgent configuration.");
53+
System.err.println(
54+
"SDK is TEMPORARY_INACTIVE; OneAgent has been deactivated - check OneAgent configuration.");
5455
break;
5556
default:
5657
System.err.println("SDK is in unknown state.");
5758
break;
5859
}
5960
}
60-
61+
6162
public static void main(String args[]) {
6263
System.out.println("*************************************************************");
6364
System.out.println("** Running remote call server **");
6465
System.out.println("*************************************************************");
6566
int port = 33744; // default port
67+
boolean endlessmode = false;
6668
for (String arg : args) {
6769
if (arg.startsWith("port=")) {
6870
port = Integer.parseInt(arg.substring("port=".length()));
71+
} else if (arg.startsWith("endlessmode")) {
72+
endlessmode = true;
6973
} else {
7074
System.err.println("unknown argument: " + arg);
7175
}
7276
}
7377
try {
74-
new ServerApp().run(port);
75-
System.out.println("remote call server stopped. sleeping a while, so OneAgent is able to send data to server ...");
78+
new ServerApp().run(port, endlessmode);
79+
System.out.println(
80+
"remote call server stopped. sleeping a while, so OneAgent is able to send data to server ...");
7681
Thread.sleep(15000); // we have to wait - so OneAgent is able to send data to server.
7782
} catch (Exception e) {
7883
System.err.println("remote call server failed: " + e.getMessage());
@@ -81,39 +86,42 @@ public static void main(String args[]) {
8186
}
8287
}
8388

84-
private void run(int port) throws IOException, ClassNotFoundException {
89+
private void run(int port, boolean endlessmode) throws IOException, ClassNotFoundException {
8590
ServerSocket serverSocket = new ServerSocket(port);
8691
try {
87-
System.out.println("Waiting for clients on port " + serverSocket.getInetAddress().getHostName() + ":"
88-
+ serverSocket.getLocalPort());
89-
Socket client = serverSocket.accept();
90-
try {
91-
System.out.println(
92-
"Client " + client.getInetAddress().getHostName() + ":" + client.getPort() + " connected");
93-
ObjectInputStream in = new ObjectInputStream(client.getInputStream());
94-
95-
Object receivedTag = in.readObject();
96-
String receivedMessage = (String) in.readObject();
97-
System.out.println("received tag: " + receivedTag.toString());
98-
traceCallFromClient(receivedTag, receivedMessage);
99-
} finally {
100-
client.close();
101-
}
92+
do {
93+
System.out.println("Waiting for clients on port " + serverSocket.getInetAddress().getHostName() + ":"
94+
+ serverSocket.getLocalPort());
95+
Socket client = serverSocket.accept();
96+
try {
97+
System.out.println(
98+
"Client " + client.getInetAddress().getHostName() + ":" + client.getPort() + " connected");
99+
ObjectInputStream in = new ObjectInputStream(client.getInputStream());
100+
101+
Object receivedTag = in.readObject();
102+
String receivedMessage = (String) in.readObject();
103+
System.out.println("received tag: " + receivedTag.toString());
104+
traceCallFromClient(receivedTag, receivedMessage);
105+
} finally {
106+
client.close();
107+
}
108+
} while (endlessmode);
102109
} finally {
103110
serverSocket.close();
104111
}
105112
}
106-
113+
107114
private void traceCallFromClient(Object receivedTag, String receivedMessage) {
108-
IncomingRemoteCallTracer incomingRemoteCall = oneAgentSdk.traceIncomingRemoteCall("myMethod", "myService", "endpoint");
115+
IncomingRemoteCallTracer incomingRemoteCall = oneAgentSdk.traceIncomingRemoteCall("myMethod", "myService",
116+
"endpoint");
109117
if (receivedTag instanceof String) {
110118
incomingRemoteCall.setDynatraceStringTag((String) receivedTag);
111119
} else if (receivedTag instanceof byte[]) {
112120
incomingRemoteCall.setDynatraceByteTag((byte[]) receivedTag);
113121
} else {
114122
System.err.println("invalid tag received: " + receivedTag.getClass().toString());
115123
}
116-
124+
117125
incomingRemoteCall.start();
118126
try {
119127
handleCallFromClient(receivedMessage);
@@ -123,12 +131,12 @@ private void traceCallFromClient(Object receivedTag, String receivedMessage) {
123131
} finally {
124132
incomingRemoteCall.end();
125133
}
126-
134+
127135
}
128136

129137
private void handleCallFromClient(String receivedMessage) {
130138
// do whatever the server should do ...
131139
System.out.println("Received message from client: " + receivedMessage);
132140
}
133-
141+
134142
}

0 commit comments

Comments
 (0)