1 /*
2 * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
30 import java.rmi.registry.Registry;
31 import java.rmi.registry.LocateRegistry;
32 import java.net.MalformedURLException;
33 import sun.jvmstat.monitor.remote.*;
34
35 /**
36 * Application providing remote access to the jvmstat instrumentation
37 * exported by local Java Virtual Machine processes. Remote access is
38 * provided through an RMI interface.
39 *
40 * @author Brian Doherty
41 * @since 1.5
42 */
43 public class Jstatd {
44
45 private static Registry registry;
46 private static int port = -1;
47 private static boolean startRegistry = true;
48
49 private static void printUsage() {
50 System.err.println("usage: jstatd [-nr] [-p port] [-n rminame]");
51 }
52
53 static void bind(String name, RemoteHostImpl remoteHost)
54 throws RemoteException, MalformedURLException, Exception {
55
56 try {
57 Naming.rebind(name, remoteHost);
58 } catch (java.rmi.ConnectException e) {
59 /*
60 * either the registry is not running or we cannot contact it.
61 * start an internal registry if requested.
62 */
63 if (startRegistry && registry == null) {
64 int localport = (port < 0) ? Registry.REGISTRY_PORT : port;
65 registry = LocateRegistry.createRegistry(localport);
66 bind(name, remoteHost);
67 } else {
68 throw e;
69 }
70 }
71 }
72
73 @SuppressWarnings("deprecation") // Use of RMISecurityManager
74 public static void main(String[] args) {
75 String rminame = null;
76 int argc = 0;
77
78 for ( ; (argc < args.length) && (args[argc].startsWith("-")); argc++) {
79 String arg = args[argc];
80
81 if (arg.compareTo("-nr") == 0) {
82 startRegistry = false;
83 } else if (arg.startsWith("-p")) {
84 if (arg.compareTo("-p") != 0) {
85 port = Integer.parseInt(arg.substring(2));
86 } else {
87 argc++;
88 if (argc >= args.length) {
89 printUsage();
90 System.exit(1);
91 }
92 port = Integer.parseInt(args[argc]);
93 }
94 } else if (arg.startsWith("-n")) {
95 if (arg.compareTo("-n") != 0) {
96 rminame = arg.substring(2);
97 } else {
98 argc++;
99 if (argc >= args.length) {
100 printUsage();
101 System.exit(1);
|
1 /*
2 * Copyright (c) 2004, 2017, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
30 import java.rmi.registry.Registry;
31 import java.rmi.registry.LocateRegistry;
32 import java.net.MalformedURLException;
33 import sun.jvmstat.monitor.remote.*;
34
35 /**
36 * Application providing remote access to the jvmstat instrumentation
37 * exported by local Java Virtual Machine processes. Remote access is
38 * provided through an RMI interface.
39 *
40 * @author Brian Doherty
41 * @since 1.5
42 */
43 public class Jstatd {
44
45 private static Registry registry;
46 private static int port = -1;
47 private static boolean startRegistry = true;
48
49 private static void printUsage() {
50 System.err.println("usage: jstatd [-nr] [-p port] [-n rminame]\n" +
51 " jstatd -?|-h|--help");
52 }
53
54 static void bind(String name, RemoteHostImpl remoteHost)
55 throws RemoteException, MalformedURLException, Exception {
56
57 try {
58 Naming.rebind(name, remoteHost);
59 } catch (java.rmi.ConnectException e) {
60 /*
61 * either the registry is not running or we cannot contact it.
62 * start an internal registry if requested.
63 */
64 if (startRegistry && registry == null) {
65 int localport = (port < 0) ? Registry.REGISTRY_PORT : port;
66 registry = LocateRegistry.createRegistry(localport);
67 bind(name, remoteHost);
68 } else {
69 throw e;
70 }
71 }
72 }
73
74 @SuppressWarnings("deprecation") // Use of RMISecurityManager
75 public static void main(String[] args) {
76 String rminame = null;
77 int argc = 0;
78
79 for ( ; (argc < args.length) && (args[argc].startsWith("-")); argc++) {
80 String arg = args[argc];
81
82 if (arg.compareTo("-?") == 0 ||
83 arg.compareTo("-h") == 0 ||
84 arg.compareTo("--help") == 0) {
85 printUsage();
86 System.exit(0);
87 } else if (arg.compareTo("-nr") == 0) {
88 startRegistry = false;
89 } else if (arg.startsWith("-p")) {
90 if (arg.compareTo("-p") != 0) {
91 port = Integer.parseInt(arg.substring(2));
92 } else {
93 argc++;
94 if (argc >= args.length) {
95 printUsage();
96 System.exit(1);
97 }
98 port = Integer.parseInt(args[argc]);
99 }
100 } else if (arg.startsWith("-n")) {
101 if (arg.compareTo("-n") != 0) {
102 rminame = arg.substring(2);
103 } else {
104 argc++;
105 if (argc >= args.length) {
106 printUsage();
107 System.exit(1);
|