RMI in Linux

Hi,
I have some questions. Hope you can help me..thanks..i have a situation like this:
I have built a server and client program using RMI. But, i want to run my server and client program in different operating system. i run my server in Windows environment and run my client program under Linux environment. My IP address of my server is 192.168.0.1. Here are my questions.
(a) i have rebind my remote object by writing the code like this:
Naming.rebind("rmiserver", server);
How my client program gets the reference for remote object? is it
like this:
Naming.lookup("rmi://192.168.0.1/rmiserver");
(b) i know in windows, i just need to type:
java -Djava.security.policy=policy IMApp
to run my client program(assume my client program named is
IMApp.java). In linux, how to run my client program? if i put my
source file in ./root/project/, then what should i type?
(c) Anything that should i do to make my client program in Linux
connect to server program in Window properly?
thanks your advices..

Hi,
let's begin from the first question:
(a) if you rebind your remote object like Naming.rebind("rmiserver",server);
your client program gets the remote object is Naming.lookup("rmi://your.ip/rmiserver");
(b) in linux it is exactly the same thing that you must do to run the client.
you should type /root/project>java -Djava.security.policy=policy IMApp
(c) there is nothing else to do to connect to server program...

Similar Messages

  • Problems using RMI between linux and windows.

    I have problems using RMI between linux and windows.
    This is my scenario:
    - Server running on linux pc
    - Clients running on linux and windows PCs
    When a linux client disconnect, first time that server try to call a method of this client, a rmi.ConnectException is generated so server can catch it, mark the client as disconnected and won't communicate with it anymore.
    When a windows client (tested on XP and Vista) disconnect, no exceptions are generated (I tryed to catch all the rmi exception), so server cannot know that client is disconnected and hangs trying to communicate with the windows client.
    Any ideas?
    Thanks in advance.
    cambieri

    Thanks for your reply.
    Yes, we are implementing a sort of callback using Publisher (remote Observable) and Subscribers (remote Observer). The pattern and relative code is very well described at this link: http://www2.sys-con.com/ITSG/virtualcd/java/archives/0210/schwell/index.html (look at the notifySubscribers(Object pub, Object code) function).
    Everything works great, the only problem is this: when a Publisher that reside on a Linux server try to notify something to a "dead" Subscriber that reside on a Windows PC it does't receive the usual ConnectException and so tends to hang.
    As a workaround we have solved now starting a new Thread for each update (notification), so only that Thread is blocked (until the timeout i guess) and not the entire "notifySubscribers" function (that contact all the Subscribers).
    Beside this, using the Thread seem to give us better performance.
    Is that missed ConnectException a bug? Or we are just making some mistake?
    We are using java 6 and when both client and server are Linux or Windows the ConnectException always happen and we don't have any problem.
    I hope that now this information are enough.
    Thanks again and greetings.
    O.C.

  • Java commands for using RMI in linux .

    Please tell me if the commands for running client , creating stubs , starting rmi registry etc are different in windows and linux .
    In linux I got error when I put the command : start rmiregistry . (saying start not a command)

    'start' is a Windows thing. Try
    rmiregistry &

  • Why my RMI is not Working in Linux???

    Hiii how ru?
    I am Rahul here
    Well I have a problem that my RMI in not working on Linux.. so can u tell me the solution to my problem???
    When i am typing following command i am getting exception as RmiNotBoundException
    java -Djava.security.policy=my.policy ChaClient&
    however my Server is Starting normally but client is not connection to server.
    so please tell me the solution to this problem
    U can contact me at
    [email protected]
    [email protected]
    Thank u Very much...

    i ran into the same issue dealing with RMI and Linux. My issue was the the stub that linux was giving you gave in the host field the ip number of "127.0.0.1" which tried to make the client connect to itself. this is how i got around it:
    java -Djava.rmi.server.hostname=<ip that other clients will connect to>
    so, for instance, if on a client you connect to the server with an IP of 10.5.0.1, then when starting up the java vm, you start it
    java -Djava.rmi.server.hostname=10.5.0.1
    hopefully that helps

  • RMI failed between 2 Linux macines (Red Hat 9)

    follwing exception is occurs when trying to communicate RMI between Linux.
    Communication failure while contacting agent platform: An RMI exception occurred [nested Connection refused to host: 127.0.0.1; nested exception is:
            java.net.ConnectException: Connection refused]

    Perhaps yoc can try this:
    when you run the rmiregistry use this command:
    rmiregistry -J-Djava.security.policy=xxx.policy
    xxx.policy is your policy file to use when the client try to connect to the server. Both the client and the server program must apply to this policy. When you start your server program type this command:
    java -Djava.security.policy=xxx.policy rmiServerClass
    and then start the client with the same command, just replace the rmiServerClass with your client class. the xxx.policy files must exist in both your server and client directory(you can invoke the rmiregistry command from anywhere).

  • Why rmic command in Linux gives NullPointerException

    Hiii
    I have a problem in RMI on Linux
    I whenever i am trying to create Stubs on Linux using rmic it's giving NULLPOINTEREXCEPTION..
    so please can anybody tell me why it's happeneing..
    my command was
    rmic ChatterImpl

    Markus Waldorf wrote:
    Test 1: mv renamed the file to * *.txt*. Does this mean wildcard operations are not possible anymore? Never renamed while moving - feels "+unsafe+". Like talking on a mobile while driving. :-)
    Test 2: Instead of overwriting the test directory, it moved test_test directory inside the existing test. Is this correct?Think so. You need to qualify using "scope" to move the contents of a directory as oppose to the directory itself. So instead of moving "<i>dirname</i>" itself, specify it as "<i>dirname/*</i>" instead.
    E.g.
    /home/billy> mkdir test
    /home/billy> touch test/file1
    /home/billy> ll test
    total 0
    -rw-r--r-- 1 billy billy 0 2010-09-21 11:51 file1
    /home/billy>
    /home/billy> mkdir test2
    /home/billy>
    /home/billy> mv test/* test2
    /home/billy> ll test2
    total 0
    -rw-r--r-- 1 billy billy 0 2010-09-21 11:51 file1
    /home/billy>

  • Java RMI under UNIX

    I have execute an example of RMI on 2 stations client/server
    under the same one systeme(Windows)mais when I have to try to test it
    under Unix, I do not have arrive
    what is it necessary for me like configuration?

    well: how far have you gone or tested the app? where are you getting stuck? i'm running rmi on linux and i may be able to help out, but you need to give me more details.

  • Basic RMI program works in windows but not Linux

    Hello,
    I'm trying to learn RMI for a program at work.
    I have the book "Core Java 2 - Volume 2 - Advanced Features". Chapter 5 of this book is about RMI.
    The most basic example program they use works fine in Windows. However, when I try to run this same program under linux it doesn't work.
    For now, I'm not even trying to run a client (in linux)...just the server.
    Here is the server code.
    public class ProductServer
    public static void main(String args[])
    try
    System.out.println
    ("Constructing server implementations...");
    ProductImpl p1
    = new ProductImpl("Blackwell Toaster");
    ProductImpl p2
    = new ProductImpl("ZapXpress Microwave Oven");
    System.out.println
    ("Binding server implementations to registry...");
    Naming.rebind("rmi://172.20.101.1/toaster", p1);
    Naming.rebind("rmi://172.20.101.1/microwave", p2);
    System.out.println
    ("Waiting for invocations from clients...");
    catch(Exception e)
    e.printStackTrace();
    What is very interesting is that this call works
    Naming.rebind("rmi://172.20.101.1/toaster", p1);
    But the very next line
    Naming.rebind("rmi://172.20.101.1/microwave", p2);
    Throws this error ::
    java.rmi.UnmarshalException: Error unmarshaling return header: java.io.EOFException
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:221)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:366)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(RegistryImpl_Stub.java:133)
    at java.rmi.Naming.rebind(Naming.java:172)
    at ProductServer.main(ProductServer.java:35)
    I would very much appreciate the help. Thank You.

    We solved the problem
    Apparently, on the linux machine we had both gcc and the jdk installed
    the regualar compile command hit the jdk
    the rmic command used the gcc version of rmic
    the rmiregistry used the gcc version of rmiregistry
    the regular run command hit the jdk
    using the rmic and rmiregistry in the jdk made everything work fine
    I knew it had to be a stupid answer.

  • RMI program not  working on SuSe Linux with java version "1.4.2" installed

    Hi
    I am trying to run a basic RMI Server object on a GNU bash, version 2.05b.0(1)-release (i586-suse-linux)
    machine with java version "1.4.2" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
    Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode).And I am getting an error with the following StackTrace
    java.lang.StackOverflowError
         at java.lang.System.arraycopy(Native Method)
         at java.io.BufferedInputStream.read1(BufferedInputStream.java:227)
         at java.io.BufferedInputStream.read(BufferedInputStream.java:277)
         at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2150)
         at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2163)
         at java.io.ObjectInputStream$BlockDataInputStream.readInt(ObjectInputStream.java:2655)
         at java.io.ObjectInputStream.readHandle(ObjectInputStream.java:1373)
         at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1429)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1845)
         at java.io.ObjectInputStream.readSerialD

    Here is the code.Its a sample of a Distributed Testing System Java application.Where this Scheduler is actually a machine allocator
    Note I've removed the methods implementing the specified interface from this sample.(Seeing as they don't even get called)
    import java.lang.*;
    import java.util.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.DefaultHandler;
    import oracle.xml.parser.v2.*;
    import java.io.*;
    import java.rmi.*;
    import java.rmi.server.*;
    public class Scheduler extends UnicastRemoteObject implements IScheduler
         private Dictionary allMachines = new Hashtable();
         private Set     allocatedMachines =     new HashSet();
    /*=============================================================
              CONTRUCTORS
    ==============================================================
    public Scheduler()throws RemoteException
    /*=================================================================
              TEST DRIVER
    ==================================================================
         public static void main(String[] args)
         {     if (System.getSecurityManager()== null)
              { System.setSecurityManager(new     RMISecurityManager());
              try     
              { System.setErr(new PrintStream(new FileOutputStream(new File("debug.log")))); 
              String name     = "IScheduler";
              IScheduler sched     = new Scheduler();
              Naming.rebind(name, sched);
              System.out.println("Scheduler bound");
              catch(Exception     e)
              {     System.err.println("Scheduler exception: " +
                                       e.getMessage());
                   e.printStackTrace();
    import java.rmi.*;
    import java.rmi.RemoteException;
    import java.util.*;
    public interface IScheduler extends Remote
    public Set findMachines(TestMachineDescription aTmd)throws RemoteException;
    public IClient makeActiveClient(String aClientName)throws RemoteException;

  • RMI Client on Linux issue.

    I am facing Java RMI problem on Suse Linux.
    RMI server running on solaris and RMI client running on Solaris ---> works fine
    RMI server running on solaris and RMI client running on Linux ---> gives error
    Pls note that RMI server running fine. When invoking remote method from RMI client on Suse Linux, I get following error.
    Java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
    java.lang.ClassNotFoundException: RemoteVtskImpl_Stub
    Any help/pointers will be useful.

    Even we tried setting the CLASSPATH to point to those jar files. But still the problem persist.
    At run time is there any way to see what all the _stub files are downloaded in the JVM at the client machine (linux machine in our case) from the server machine (solaris machine in our case).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • RMI in RedHat Linux 9

    I developed a RMI Server/Client. The Server works without problems on Windows 2000, but fails on RH Linux 9.
    Q1: When run server in win2000,I use
    -Djava.rmi.server.codebase=file:///D:/myrmi/classes/
    What the codebase should be in Linux (suppose I put all the classes needed in /home/myrmi/classes/*.class)
    Q2:If I remove the codebase property,I got the exception :
    CalculateServer: Error unmarshaling return header; nested exception is:
    java.net.SocketException: Connection reset
    java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
    java.net.SocketException: Connection reset
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:203)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:350)
    at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
    at java.rmi.Naming.rebind(Naming.java:160)

    rmic won't compile the program for you, it only creates the stub/skel files.. you must javac your files first... After that rmic the class that implements the interface.. Before you do that:
    cd /usr/bin and rename the java related files that are there:
    cd /usr/bin
    mv java java.old
    mv rmic rmic.old
    mv javac javac.old
    mv javah javah.old
    make symlinks that point to the 1.4 versions:
    ln -s /jdk1.4/bin/java
    ln -s /jdk1.4/bin/javac
    ln -s /jdk1.4/bin/javah
    ln -s /jdk1.4/bin/rmic
    This puts your 1.4 jdk in the path, and renames the stock version. This will rule out version mismatches.. If it still doesn't work, then post some code, there's probably something simple..

  • Linux RMI lookup takes too long when DNS is not available

    I am running Java 6 on Linux and ran into the following problem (please bear with me, there is a lot of background info before the actual question). I have a Java program that uses RMI for IPC. The server binds to localhost and clients lookup on localhost. The following are code snippets for my server and client.
    // Server binding code
    registry = LocateRegistry.createRegistry(port);
    registry.rebind("SERVICE", new ServiceImpl());
    // Client lookup code
    Naming.lookup("rmi://localhost:" + port + "/SERVICE");As long as DNS works, this code runs just fine. It takes ~0.3s for the server to bind and ~0.4s for the client to lookup. If DNS is not available, it takes ~40s for the server to bind and ~60s for the client to lookup! The times for lookup do not change if I use "127.0.0.1" instead of "localhost".
    I have localhost defined in my /etc/hosts file and my /etc/nsswitch.conf file specifies that host lookups should use files before nameservers. By commenting out the localhost value in the /etc/hosts file, I have determined that eventually the value in /etc/hosts is used if needed (the server bind fails if DNS is not available and localhost is commented out).
    If the network goes down, someone messes up the /etc/resolv.conf file, or our nameservers go down, RMI binds and lookups for something as easy to resolve as localhost takes way too long.
    So my question boils down to: Is there any way I can bind and lookup RMI servers without using DNS or by using DNS after /etc/hosts lookup fails?

    I turned on logging. You can see here that when DNS is working everything runs fine.
    Nov 19, 2007 5:14:12 PM sun.rmi.transport.tcp.TCPTransport$ConnectionHandler run0
    FINER: RMI TCP Connection(10)-127.0.0.1: (port 1234) client using localhost:0
    Nov 19, 2007 5:14:12 PM sun.rmi.transport.tcp.TCPTransport handleMessages
    FINE: RMI TCP Connection(10)-127.0.0.1: (port 1234) op = 80
    Nov 19, 2007 5:14:12 PM sun.rmi.transport.StreamRemoteCall getInputStream
    FINER: RMI TCP Connection(10)-127.0.0.1: getting input stream
    Nov 19, 2007 5:14:12 PM sun.rmi.transport.Transport serviceCall
    FINER: RMI TCP Connection(10)-127.0.0.1: call dispatcher
    Nov 19, 2007 5:14:12 PM sun.rmi.server.UnicastServerRef logCall
    FINER: RMI TCP Connection(10)-127.0.0.1: [127.0.0.1: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(java.lang.String)]
    Nov 19, 2007 5:14:12 PM sun.rmi.transport.StreamRemoteCall getOutputStream
    FINER: RMI TCP Connection(10)-127.0.0.1: getting output stream
    Nov 19, 2007 5:14:12 PM sun.rmi.transport.tcp.TCPTransport$ConnectionHandler run0
    FINE: RMI TCP Connection(11)-127.0.0.1: accepted socket from [127.0.0.1:37084]When DNS is not working, there is a 15 second timeout and 5 seconds to reconnect.
    Nov 19, 2007 5:16:03 PM sun.rmi.transport.tcp.TCPTransport$ConnectionHandler run0
    FINE: RMI TCP Connection(12)-127.0.0.1: accepted socket from [127.0.0.1:57328]
    Nov 19, 2007 5:16:03 PM sun.rmi.transport.tcp.TCPTransport$ConnectionHandler run0
    FINER: RMI TCP Connection(12)-127.0.0.1: (port 1234) suggesting 127.0.0.1:57328
    Nov 19, 2007 5:16:03 PM sun.rmi.transport.tcp.TCPTransport$ConnectionHandler run0
    FINER: RMI TCP Connection(12)-127.0.0.1: (port 1234) client using localhost:0
    Nov 19, 2007 5:16:03 PM sun.rmi.transport.tcp.TCPTransport handleMessages
    FINE: RMI TCP Connection(12)-127.0.0.1: (port 1234) op = 80
    Nov 19, 2007 5:16:03 PM sun.rmi.transport.StreamRemoteCall getInputStream
    FINER: RMI TCP Connection(12)-127.0.0.1: getting input stream
    Nov 19, 2007 5:16:03 PM sun.rmi.transport.Transport serviceCall
    FINER: RMI TCP Connection(12)-127.0.0.1: call dispatcher
    Nov 19, 2007 5:16:03 PM sun.rmi.server.UnicastServerRef logCall
    FINER: RMI TCP Connection(12)-127.0.0.1: [127.0.0.1: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(java.lang.String)]
    Nov 19, 2007 5:16:03 PM sun.rmi.transport.StreamRemoteCall getOutputStream
    FINER: RMI TCP Connection(12)-127.0.0.1: getting output stream
    Nov 19, 2007 5:16:18 PM sun.rmi.transport.tcp.TCPTransport handleMessages
    FINE: RMI TCP Connection(12)-127.0.0.1: (port 1234) connection closed
    Nov 19, 2007 5:16:18 PM sun.rmi.transport.tcp.TCPConnection close
    FINE: RMI TCP Connection(12)-127.0.0.1: close connection
    Nov 19, 2007 5:16:23 PM sun.rmi.transport.tcp.TCPTransport$ConnectionHandler run0
    FINE: RMI TCP Connection(13)-127.0.0.1: accepted socket from [127.0.0.1:37087]I tried specifying different timeout values using different RMI properties. Nothing seems to affect it except setting sun.rmi.transport.tcp.readTimeout to a value less than 15 seconds (which is not practical).
    Any ideas why getting the output stream would timeout?

  • Starting RMI registry in LINUX

    HI I am new to LINUX and want to use RMI in java.
    So anyone suggest me how to start rmiregistry in linux for the server.

    hi genedy .
    thnx for ur reply.
    I already have jdk 2 beta 1.6 rpm.
    I have downloded fisrmi.linux ,fisrmistart and i am able to start rmiregistry but it doesn't stops i have to kill the process.
    I am also starting by using the rmiregistry command.
    when I start my server application the it gives error of "connection refused,unmarshall exception etc" and doesn't works.
    so suggest me how should I run my server and client.

  • RMI Server Starting pblm in Linux

    Hi,
    When i'm starting to run my RMI application in linux which is showing an error...
    java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
    java.net.SocketException: Connection reset
    But this same programe easly can run in windows

    Just see the administration guide. There is a section for starting and stopping both the inf and midtier components via command line or using the GUI.

  • RMI-server works on Windows and Linux but not on Solaris

    I wrote an application which uses RMI. The server is successfully tested on Windows and Linux. However it doesn't work on Solaris.
    Naming.lookup works, I can find the server. But calling a method on my remote interface causes a ConnectionException:
    java.rmi.ConnectException: Connection refused to host: 192.168.1.123; nested exception is:
         java.net.ConnectException: Connection refused: connect
         at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
         at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
         at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
         at sun.rmi.server.UnicastRef.newCall(Unknown Source)
         at at.triton.javaengine.server.ServerImpl_Stub.connectToWindow(Unknown Source)
         at at.triton.javaengine.client.JavaEngineClient.connectToWindow(JavaEngineClient.java:288)
         at at.triton.javaengine.client.JavaEngineClient.main(JavaEngineClient.java:787)
    Caused by: java.net.ConnectException: Connection refused: connect
         at java.net.PlainSocketImpl.socketConnect(Native Method)
         at java.net.PlainSocketImpl.doConnect(Unknown Source)
         at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
         at java.net.PlainSocketImpl.connect(Unknown Source)
         at java.net.SocksSocketImpl.connect(Unknown Source)
         at java.net.Socket.connect(Unknown Source)
         at java.net.Socket.connect(Unknown Source)
         at java.net.Socket.<init>(Unknown Source)
         at java.net.Socket.<init>(Unknown Source)
         at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)
         at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)
         ... 7 moreNote that I have almost no experience with Solaris.
    Additional information about the common pitfalls which I have already checked:
    * rmiregistry finds the server classes (the exception was different without them)
    * the server is in the LAN and the desktop firewall of the client is double-checked to let the required ports through to any destination.

    java.rmi.ConnectException: Connection refused tohost: >192.168.1.123; nested exception is:
    java.net.ConnectException: Connection refused:
    : connect
    Clearly indicates what is happening inside there.Clearly indicates that you don't know what you are talking about.
    Any applications invoked with a security manager must
    be granted explicit permission to access local system
    resources apart from read access to the directory and
    its subdirectories where the program is invoked.Any application that gets a java.net.ConnectionException: Connection
    refused is getting it more or less directly from the TCP/IP stack. If the problem had anything to do with policies and permissions and SecurityManagers, it would have been an AccessControlException .
    if your client RMI doesnt include these lines then If your 'client RMI' does include these lines then I would like a definition of what exactly a 'client RMI' really is, because I've been using RMI for ten years and wrote a book about it and I certainly don't know.
    1)just include these lines
    if (System.getSecurityManager() == null) {
    System.setSecurityManager(new
    SecurityManager());In other words, if the application doesn't already have a security manager, in which case the contents of the policy file or the 'client RMI', or whatever you want to call it, are completely irrelevant, such that they couldn't possibly be having the problem you desrcribe, add a security manager so that we get into the land where you might possibly know what you're talking about?
    e a policy file
    grant {
    permission java.net.SocketPermission
    "192.168.1.123:1099", "accept,connect,resolve";
    };And this is completely unnecessary if there isn't a security manager, and completely unrelated to the OP's problem.

Maybe you are looking for

  • MPEG-2 files no longer working after Software update

    Quicktime 7.5 has been installed for a year and played .mpg files just fine up until today. Now it gives a "this is not a video file" error. The MPEG StreamClip Application for converting files also magically stopped accepting MPG unless I fork over

  • How do i save emails so i Can fee up space ?

    I would like to save my emails to an external Hard Drive so i can fee up space i have around 15-20Gb of mails with photo Attachments but in the future i may wish to read the emails again can this be done look forward to your answers.Regards.Martin

  • Route determination

    Hai All, In the step of define routes and sdtages, there is a field for procedure. If we give the standrad procedure how it will be effected in the route determination 2. Also we are checking the box cal;led shipping costs relevent. How we wll mainta

  • How are labels applied and referenced (they are mentioned in Preferences)

    How are labels applied and referenced (they are mentioned in Preferences)?

  • Continue playing unplayed episodes

    I can sync a smart playlist to my iPhone with unplayed episodes. On the iPhone the upplayed episodes option is available, I can start the first podcast episode but it doesn't automatically continue to the next unplayed episode with the last iOS and P