reconnection to (TAO)servers
shectman1 <[email protected]> Mon, 02 Feb 2015 18:25:36 -0800
| Newsgroups | gmane.comp.corba.jacorb.devel |
|---|---|
| Message-ID | <[email protected]> |
I am in the process of trying to update from JacORB 2.3.1 and TAO 6.0.1 to JacORB 3.5 and TAO 6.3.1, and have a question about some code I wrote some time ago (probably under JacORB 2.3.1 and TAO 5.7). We use TAO/C++ for our servers, and JacORB for our gui(s). For a variety of reasons, our servers can exit while the gui(s) are still running (everything from bugs to timeouts). In addition our servers let TAO select the ports when servers are run (historical artifact from when we were using ORBIX). When a server restarts, its pretty rare for it to be started with the same ports as the previous invocation. This means that every IOR in jacorb that pointed to the server that restarted, is no longer valid, which tended to crash the gui(s) after trying to reconnect to the server, but using a now out-dated port. JacORB would try several times to reconnect to the server, but since it always used an now obsolete port, it would of course never succeed. If there was a way for JacORB to trigger a restart of the server, and remap the ports, I was never aware of it. Several years ago, I implemented a JacORB based Client Interceptor, that caught the error of the IOR with a now bad port, cracked the IOR for the server name, called the TAO implementation repository to restart the server, looked up the new service to get its port number, put the new port number in the IOR, and issued a forward request. And by magic, it all worked. Thankfully, the worst part was cracking the IOR, and there was a jar to support that. Its not all that much code actually, and significantly improved our system. Stick with this just a bit more, I'm almost there. In order for the Interceptor to talk to the TAO IMR, which has/had a different interface than the JacORB IMR, I had to generate an ImplementationRepository.idl file for the JacORB jidl compiler to generate the java to talk to the TAO implementation repository. For that I was able to use ImplRepo.pidl and ServerObject.pidl from TAO. Under TAO 6.3.1 those files no longer exist, nor have I found equivalents (yet). So finally - the question. Does JacORB 3.5 have anything internally these days that will detect when an IOR is no longer connected to the server, and tries to reconnect, but detects the potential change in port numbers for the server (when the server is running under TAO)? Thank you. -- Robert M. Shectman National Atmospheric Release Advisory Center (NARAC) Lawrence Livermore National Laboratory [email protected] (925)423-6714 _______________________________________________ jacorb-developer maillist - [email protected] https://lists.spline.inf.fu-berlin.de/mailman/listinfo/jacorb-developer