P. 1
Middle Ware

Middle Ware

|Views: 2|Likes:
Published by debonairamit

More info:

Published by: debonairamit on Aug 26, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

07/03/2014

pdf

text

original

System Startup sequence: The first task started is StartPxc with the entry point pxc().

pxc() instantiates the CpCardManager_i , the CorbaManager and other managers and provisioners in the pxc() function. Starting as a CORBA servant object by calling the function activateServant internally calls the getInstance() method over the class to instantiate the singleton object and register it with the naming service of the CORBA. 1. pxc() { 2. CpCardManager_i is activated as a CORBA servant object. This is with name CardManager 3. Auth_i started as AuthenticationServer . 4. NodeManager_i started as a CORBA servant object. With the name NodeManager . . . } Then pxcMainComplete() is called by pxc() and then this task is delayed indefinitely because we don t want the arguments on its stack

The CpCardManager_i then further initializes the following objects: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. IP Service Manager IpServiceMgr::getInstance() Replication Manager BackupNRM::getInstance() Corba Setup CorbaSetup::getInstance() Config Registry startCfgReg(); Force creation of NMS interface?? NmsIntf::create(); Set time TimeZone::getInstance() Alarm manager AlarmMgr_i::getInstance() Cp Redundancy CpRedundancy::getInstance() Control Shelf Manager ControlShelfManager_i::getInstance() CP Proxy service CpProxy::getInstance()

Attach with CpRedundancy as observer and get current role in case we miss updates. This is followed by starting up of pxc event server: es = new EventServer(EventServerParams);es->start;

SubjectList*.The EventServer: PxcEventServer_i PxcPortEventServer_i PxcCardEventServer_i Data members of PxcEventServer_i: 1. pxcEvent). NS_PxcEvent::EventSubType t) : id(_id). typedef list<subjects>SubjectList. SubjectMapmySubjects. subject is basically a char*. The subscribers call attach() to get them added to the SubjectList. EventServer&myEventServer. a map is made like ( All . 3. 4. the event will be pushed to the consumers by calling the function myEventServer. string id. ).addEvent(si->consumer. For example. which maps the lists against the event type. NS_PxcEvent::EventSubType type. 2. AMutexmyMutex. struct subjects { subjects(const char * _id. Its All if the consumers wants to be notified of all the events for that event server object ( viz. string myServerType. PxcPortEventServer_i . consumer2. type(t) {} PxcEventConsumer_var consumer. consumer1. 5. . }. 7. When an event occurs. less<string>>SubjectMap. consumer(PxcEventConsumer::_duplicate(ec)). 6. PxcEventConsumer_ptrec. and PxcCardEventServer_i ). Hence a map of these lists is created called SubjectMap. which tells the type of event the consumer is subscribing to. typedef map<string.

} Where. Have to find out. { GuardMutexlock(myEventListMutex). PxcEvent& event. The next step is to do the rest of the initialization: initComplete().cpp for details. if(myEventList. What all are done by this function: 1..) { EventQEntry* entry. } // release lock // Update the consumer with the event entry->aConsumer->update(entry->event). Probably this has been replaced by the Corba Event service.begin()). addCommonOperationalMonitors 2.empty()) break.pop_front(). This list is popped and sent to the consumer in the entry. basically. viz. like this: for(. EventQEntry. entry = *(myEventList.The event server. Get the Active lan interface 3. Refer: /vobs/pxc/src/NodeServices/PxcEvent/server/EventServer. PxcEventConsumer* consumer. Initiate Heartbeating HeartBeatMonitor::getInstance( . runs as a thread and maintains a queue of events. delete entry. myEventList.

newAdcStateHeartBeatMsg().AdcStateHBMonitorParams. basically the ControlShelfManager_i and NodeManager_i. // System services . interfaceAddr. multicastAddr ). Startup::service_CpCardManager. // Internal Lan Startup::service_corba. CpStartup: Starts up the CP services. The services which logically belong to CP: Startup::service_IpServiceMgr.

Startup::service_OooNRVCardProv. Startup::service_IoShelfProv. . Startup::service_OooCardProv. Startup::service_PwrCardProv. Startup::service_OAORSCardProv. Startup::service_OooSMFCardProv. Startup::service_OOORS15CardProv. Startup::service_ControlShelfManager.Startup::service_Replication. Startup::service_NodeManager. Startup::service_Drv16CardProv. Startup::service_OOOFRXCardProv. Startup::service_AuthServer. Startup::service_CpRedundancy. Startup::service_SysmonCardProv. Startup::service_BdmCardProv. Startup::service_AMP15CardProv. Startup::service_CpProxy. Startup::service_ConfigRegistry. Startup::service_NodeProv. Startup::service_OAONRCardProv. Startup::service_AlarmMgr. Startup::service_CSCardProv. Startup::service_RGNNRCardProv. Startup::service_ControlShelfProv.

Startup::service_OooMMFCardProv. Startup::service_OooRSVCardProv. . Startup::service_IoscCardProv. Startup::service_NOPCardProv. Startup::service_PROXYCardProv.

.

. And for the Standby card it is made sure that the cfgreg files directory structure is created. 3. 4. Initiate Standby Initiate Active Register callback with CpCardManager_i to get to know the role changes.NodeManager_i: Functions of NodeManager_i during initialization: 1. 2.

If it is not a standalone setup. Question: I understand that AdcStateHeartBeatMgrworks by sending UDB based socket pulses. Initiate Standby NodeManager_i::initStandby() Start the heartbeat manager if This CP is not a Standlone. AlarmMgr_i is started by the CpCardManager_i when the CpCardManager_i is initialized as a singleton object. But how this is structured in classes? 2. . Initiate Active NodeManager_i::initActive Populates the CardStateDB in /Node/Manager format strings in the cfgreg. then heartbeat monitoring is started.1.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->