[omniORB] How can I creat a hot-standby name service?

zlr zhanglr@stee.com.sg
Tue Jul 23 10:16:01 2002


Hi Duncan,

Again I appreciate your help.

Current System
--------------
Our previous system used Orbix, where we did not use a Nameservice. We have
a hot-standby Database system (DS) where each DS is a separate PC. On each
DS we ran an Orbix Daemon and the client would handle which DS is alive. So
it would communicate with the alive DS. This is done in the bind statement
where we would pass in the PC Name. Our GUI clients are also corba servers.
i.e. It receives and sends messages. So basically we have a task (Snet)
running on each Client (when I mean client, I also mean it is a server).
This Snet task runs on all of our PC's which communicate with DS. This Snet
task running of the Master Ds checks the status of Slave Ds and vice versa.
When the Master Ds fails the Snet on the slave DS will inform all the Snets
on the Clients that the DS has switched. Therefore when the Client needs to
talk to the DS it will get the PC Name from Snet (residing on each client).

New System
----------
In our new development we replaced Orbix with Omniorb. We wrote our own
daemon which peforms similar functions to the Orbix Daemon. The only main
difference is that we are forced to use a Name Service. Now we want to do
the same thing as before i.e we want a fail safe for the NameService which
will reside on each DS. Let me explain the logic of our Daemon we have
written.

1) The Client gets the pointer of the Daemon Service from the NameService.
2) The Daemon gets the pointer of the DS Snet Servers and returns this to
the Client (which is done via a function in the daemon). When the Client
calls the function which is available on the DS the daemon will spawn the
relavant task. (Just like Orbix)
3) The Client then can call any function which our server provides (i.e. for
Database access or Messaging)

I hope this is a thorough enough explanation of our current and new system
and I really hope you or someone out there can help me solve this problem
with less coding as possible! :-)

Thanks in advance!


Best Regards
ZHANG Liren
----------------------------------------------------------------------------

Singapore Technologies Electronics Ltd.
Product Development & Management Division (PDMD)
(65) 413 1613 (Direct)
zhanglr@stee.com.sg

----- Original Message -----
From: "Duncan Grisby" <duncan@grisby.org>
To: "zlr" <zhanglr@stee.com.sg>
Cc: <omniorb-list@realvnc.com>
Sent: Tuesday, July 23, 2002 4:25 PM
Subject: Re: [omniORB] How can I creat a hot-standby name service?


> On Tuesday 23 July, "zlr" wrote:
>
> >     And I also try to synchronization these files. I rename the
> > omninames-PC1.log to omninames-PC2.log and omninames-PC1. bak to
> > omninames-PC2.bak. But I found the NameService cannot be started in PC2.
>
> The references stored in the log files are specific to the machine it
> was created on. That's why the log files include the name of the
> machine. You can't just use the log file from one machine on another.
>
> I'm afraid I really don't understand what you are trying to achieve.
> I'm sure it's possible to do what you need, as long as your write all
> your application code to understand what's going on. Can you give a
> high-level overview of what you actually want to achieve?
>
> Cheers,
>
> Duncan.
>
> --
>  -- Duncan Grisby         --
>   -- duncan@grisby.org     --
>    -- http://www.grisby.org --
>
>
>