Logo of the Java RMI Plug-in for Eclipse

RMI Plug-in for Eclipse
version 2.0

RMI Spy - Basic method calls information


Two of the RMI Spy tabs are dedicated to the method call information. The snapshot below was taken of a simple client application that fetches a remote object from a registry and makes a single remote method call:

RMI Spy view showing just the method calls, without full stack trace information

As you can see the RMI Spy view displays the following information:

  • (described separately) Remote class loading (11 classes were loaded using the RMI classloader, 10 of them were system classes that are not of a general interest and 1 event is a significant class loading event).
  • Outgoing calls (2 out of 3 are significant events, the other event is a DGC method call)
  • Incoming calls (this application is a client application and no server calls were accepted).

You can double click a method call to open the method's definition (either on the implementing class or on the remote interface). If the remote method has thrown an exception you will see an exclamation mark near the method call:

RMI Spy view showing a remote method call that threw a RemoteException

For each event, we can also see its complete call stack (through which we can go to the exact call location). If the remote method has thrown an exception, it will be displayed as well:

RMI Spy view showing the logged stack trace at the point of method call

Clicking on the underlined file names will open the corresponding file/line in the editor, just like with ordinary exceptions. Some elements of the stack trace are RMI's internal java code, but they are still displayed for the completeness of reference.

Columns

The method calls tab displays the following columns:

  • Timestamp - the exact time at which the remote call was logged.
  • Thread name (server threads in the form of "RMI TCP Connection (#)-(IP)" are abbreviated to "RMI Thread #<n>"; the ip address appears in the following column).
  • Remote address (server or client)
  • Class name or interface name (in case of dynamic proxies)
  • Method name - the remote method name.

© 2002-18 Genady Beryozkin, rmi-info@genady.net. Read our Privacy policy. Hosted on RimuHosting. Visit Javalobby.