blob: 4ccb9e674a5eb732b198d7fee28c0b11dcbc5472 [file] [log] [blame]
/*
* Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package com.sun.s1asdev.jdbc.stress.client;
import javax.naming.*;
import java.rmi.*;
import java.util.*;
import com.sun.s1asdev.jdbc.stress.ejb.SimpleBMPHome;
import com.sun.s1asdev.jdbc.stress.ejb.SimpleBMP;
public class SimpleBMPClient {
// Invoke with args: #clients, #minutes
public static void main(String[] args) throws Exception {
int numClients = 10; //10 clients
int numMinutes = 10; // 10 minutes
if (args.length == 2) {
numClients = Integer.parseInt( args[0] );
numMinutes = Integer.parseInt( args[1] );
}
SimpleBMPClient client = new SimpleBMPClient();
System.out.println("-=-=-=-=-=-=- Running for "+ numMinutes
+" minutes -=-=-=-=-=-=-=-");
client.runTest( numClients, numMinutes );
}
public void runTest(int numClients, int numMinutes ) throws Exception {
SimpleBMPClientThread[] threads = new SimpleBMPClientThread[ numClients ];
for (int i = 0 ; i < numClients; i++ ) {
try {
threads[i] = new SimpleBMPClientThread(i);
} catch( Exception e) {
System.out.println("Could not create thread : " + i);
e.printStackTrace();
}
threads[i].start();
}
//Let it all run for few hours and then kill all threads
System.out.println("Waiting for threads to do work now...");
try {
//numMinutes min * 60 sec * 1000 = millis
Thread.sleep( numMinutes * 60 * 1000 );
} catch(InterruptedException ie) {
ie.printStackTrace();
}
System.out.println("Interrupting threads now...");
for (int i = 0 ; i < numClients; i++ ) {
threads[i].runFlag = false;
}
}
}