Hi,
I'm quite new to CORBA world. My problem, as described in title, is to
be able to run a self-maintaining set of servers using JacORB-2.2.3
Implementation Repository. Now, I can activate my servers but not
re-activate them if they fall. Following is my system description.
1/ For now, I am using only one machine host running under RedHat-3.0.
2/ My servers were compiled under MicORB-2.3.11 (but we decided to get
rid of Mico for its core dumping problems; that's why we try to use
JacORB... even though micod was running fine!).
3/ My relevant jacorb.properties are set to:
jacorb.use_imr=on
ORBInitRef.ImplementationRepository=file:/tmp/log/ImR.ior
jacorb.imr.ior_file=/tmp/log/ImR.ior
jacorb.imr.table_file=/tmp/log/table.dat
jacorb.imr.backup_file=/tmp/log/backup.dat
jacorb.use_imr_endpoint=on
jacorb.imr.allow_auto_register=off
jacorb.imr.check_object_liveness=on
4/ After launching JacORB's ImR central process and daemon, I use the
ImR manager so as to reference JacORB's NS and launch it :
(**Is it really necessary?**)
> jaco org.jacorb.imr.ImplementationRepositoryImpl -n
-DOAPort=$IMR_PORT &
> jaco org.jacorb.imr.ServerStartupDaemonImpl &
> jaco org.jacorb.imr.util.ImRManager add StandardNS -c "jaco
org.jacorb.naming.NameServer -DOAPort=$NS_PORT
-Djacorb.naming.ior_filename=/tmp/log/NS.ior"
> jaco org.jacorb.imr.util.ImRManager start StandardNS
5/ Then I register each Server (using the poa name designed in the
Server code), and activate it like this:
> jaco org.jacorb.imr.util.ImRManager add Server_poa -c
"/tmp/exe/Server -ORBInitRef
NameService=iioploc://localhost:$NS_PORT/NameService"
> jaco org.jacorb.imr.util.ImRManager start Server_poa
This makes the Server run and answer its clients correctly, even though
it does not appear as "active" in ImR manager GUI... :
(**Is it normal?**)
Yet it appears in the NS manager GUI (nmg)...
6/ Once registered to the ImR and the NS (done in Server code), I am
following JacORB Programming Guide requirements concerning Server
holding and setting down, which should allow "recovery of crashed
servers" :
> jaco org.jacorb.imr.util.ImRManager hold Server_poa
> jaco org.jacorb.imr.util.ImRManager setdown Server_poa
7/ Eventually, I kill the Server (kill -9 line command) and send him a
request through one of its clients... which fails: the Server is not
recovered by the ImR, though it should!
**Did I forgot one step or misunderstand ImR functionnalities?** or
**Are there some interoperbility problems between JacORB ImR and
Mico-compiled C++ Servers?**
Thanks a lot for your help!! Or if you may, thanks for your sending me
more accurate programming guide concerning JacORB ImR! (the current is
so light...)
Severin


|