Objectspace's Voyager freezes on Namespace.lookup() call running under java 1.1 on Zaurus-5500 PDA.
Posted on 2003-11-17
I am trying to get an intrusion detection system running on a group of Zarusu-5500 PDA's communicating in an ad-hoc network mode. For this IDS, I would like to use mobile agents and have chosen Objectspace Inc's Voyager platform for my ORB and Messaging layers. I have a working application (IDS) using Voyager on multiple Linux desktop machines, running Java 1.4.2. When I attempt to run the ORB server on the PDA's under java 1.1, I receive an exception:
Could not start agent server:
RuntimeRemoteException( java.net.ConnectException: Connection timed out: connect )
from the Namespace.lookup( serverName ) call to the PDA, where serverName = "//192.168.50.35:7000/Test" (<-- That is the IP of the PDA I am trying to add as a host for the mobile agent to move to). I know this is not a problem with my PATH or CLASSPATH variables as I have added all .jar files to the CLASSPATH and I know the code is working fine on the desktop machines. I have tried Voyager version 4.5, 4.6.1 and 4.7, all with the same result. I suspect version 4.6.1+ is not fully compatible with java 1.1, but I do not think I am using any calls that java 1.1 would dislike.
A typical run-through consists of:
[on pda terminal, start up voyager orb server] >voyager tcp://192.168.50.35:7000
["voyager orb professional 4.6.1, copyright...." prints on pda terminal screen]
[on another machine, start up IDS console application for adding in hosts and agents]
[this console asks for a serverName from input and sends the Namespace.lookup( serverName ) call]
[nothing returns from the pda, else timeout error as given above]
When running the console application from the PDA and the ORB server on a desktop machine, the console application throws an exception when trying to bind it's own ip address through Namespace.bind(). That exception is:
RuntimeRemoteException( java.io.IOException: java.lang.NoSuchMethodError: java/util/Vector.add(Ljava/lang/Object;)Z )
Since I am using java 1.1, java/util/Vector does not contain add(), but instead has addElement(). But, Voyager includes 'collections.jar' which has the java 1.2 version of java/util/Vector and supports add().
collections.jar is in my classpath, but it is possible Voyager is not using that newer version of Vector. Inside of collections.jar the path is com/sun/java/util/collections/Vector.class.
The Vector.add call from above is being called from inside of Voyager, a commercial application, so I can not change the call to Vector.addElement, nor change how that call is made or what paths are imported from inside the class that is calling Vector().
Any help on how to get this to use the correct Vector.class would be very helpful, and may be the only real problem I'm having (I hope).
Any help is greatly appreciated.