Archived

This forum has been archived. Please start a new discussion on GitHub.

Possible late "binding" of Glacier2 to PermissionsVerifier?

Calling glacier2router before the server application has started causes a ConnectionRefusedException:
glacier2router --Ice.Config=resources/glacier2.config 
06/23/07 13:20:02.913 error: unable to contact permissions verifier `Verifier:tcp -h 127.0.0.1 -p 9999'
Network.cpp:662: Ice::ConnectionRefusedException:
connection refused: Connection refused

Is it possible (or could it be possible in future versions) to have glacier2 contact the permissions verifier as late as possible, such that glacier2 could always be started via init.d or similar?

glacier2 seems to be tolerant of restarting the server app, it's just the initial connection which seems problematic. Perhaps a configuration option that bypasses this sanity check (if it is one).

Comments

  • matthew
    matthew NL, Canada
    I agree that it seems a bit restrictive. We'll look into changing this for a future Ice release. If you cannot arrange to start the verifier first for whatever reason you could ensure your verifier is always running first when Glacier2 is started is to load the permissions verifier into the Glacier2 router as a shared library plug-in.
  • Thanks for looking into the startup, Matthew. As far as the plugin is concerned, our permissions verifier is in Java, so a glacier2 plugin won't work. That is, unless there were a Java-based router. Has there been any thought of one? Would it be feasible/sensible? For our purposes a collocated router could make sense and reduce the deployment complexity, which at the moment will most likely involve two separate init.d scripts.
  • matthew
    matthew NL, Canada
    I don't think a Java based router makes sense... it would be quite a bit slower than the C++ version. Seems to me it would be easier to rewrite the permissions verifier in C++ than rewrite the entire router in Java :) An alternative would be to use IceGrid and launch the verifier on demand as an IceGrid service. You can also manage Glacier2 from IceGrid -- except you cannot launch on demand. Instead you would have IceGrid start it up all the time.
  • I'll look into starting Glacier2 from IceGrid. Thanks, Matthew.