INT32 _pmdController::active () { INT32 rc = SDB_OK ; pmdEDUParam *pProtocolData = NULL ; pmdEDUMgr *pEDUMgr = pmdGetKRCB()->getEDUMgr() ; EDUID eduID = PMD_INVALID_EDUID ; rc = _restAdptor.init( _fixBufSize, _maxRestBodySize, _restTimeout ) ; PD_RC_CHECK( rc, PDERROR, "Failed to init rest adaptor, rc: %d", rc ) ; rc = pEDUMgr->startEDU( EDU_TYPE_SYNCCLOCK, NULL, &eduID ) ; pEDUMgr->regSystemEDU( EDU_TYPE_SYNCCLOCK, eduID ) ; rc = pEDUMgr->startEDU( EDU_TYPE_TCPLISTENER, (void*)_pTcpListener, &eduID ) ; PD_RC_CHECK( rc, PDERROR, "Failed to start tcp listerner, rc: %d", rc ) ; pEDUMgr->regSystemEDU( EDU_TYPE_TCPLISTENER, eduID ) ; rc = pEDUMgr->waitUntil ( eduID, PMD_EDU_RUNNING ) ; PD_RC_CHECK( rc, PDERROR, "Wait Tcp Listerner active failed, rc: %d", rc ) ; rc = pEDUMgr->startEDU( EDU_TYPE_RESTLISTENER, (void*)_pHttpListener, &eduID ) ; PD_RC_CHECK( rc, PDERROR, "Failed to start rest listerner, rc: %d", rc ) ; pEDUMgr->regSystemEDU( EDU_TYPE_RESTLISTENER, eduID ) ; rc = pEDUMgr->waitUntil ( eduID, PMD_EDU_RUNNING ) ; PD_RC_CHECK( rc, PDERROR, "Wait rest Listener active failed, rc: %d", rc ) ; if ( SDB_ROLE_COORD != pmdGetDBRole() ) { UINT32 pageTaskNum = pmdGetOptionCB()->getPageCleanNum() ; UINT32 pageIntervel = pmdGetOptionCB()->getPageCleanInterval() ; for ( UINT32 i = 0; i < pageTaskNum ; ++i ) { startPageCleanerJob( NULL, (INT32)pageIntervel ) ; } rtnStartLoadJob() ; } done: return rc ; error: goto done ; }
INT32 _pmdController::active () { INT32 rc = SDB_OK ; pmdEDUMgr *pEDUMgr = pmdGetKRCB()->getEDUMgr() ; EDUID eduID = PMD_INVALID_EDUID ; rc = _restAdptor.init( _fixBufSize, _maxRestBodySize, _restTimeout ) ; PD_RC_CHECK( rc, PDERROR, "Failed to init rest adaptor, rc: %d", rc ) ; // start time sync edu rc = pEDUMgr->startEDU( EDU_TYPE_SYNCCLOCK, NULL, &eduID ) ; PD_RC_CHECK( rc, PDERROR, "Start sync clock edu failed, rc: %d", rc ) ; pEDUMgr->regSystemEDU( EDU_TYPE_SYNCCLOCK, eduID ) ; // start db monitor edu rc = pEDUMgr->startEDU( EDU_TYPE_DBMONITOR, NULL, &eduID ) ; PD_RC_CHECK( rc, PDERROR, "Start db monitor edu failed, rc: %d", rc ) ; pEDUMgr->regSystemEDU( EDU_TYPE_DBMONITOR, eduID ) ; #if defined ( _LINUX ) // start signal test if ( pmdGetOptionCB()->getSignalInterval() > 0 ) { pmdEDUCB *mainCB = pmdGetThreadEDUCB() ; rc = pEDUMgr->startEDU( EDU_TYPE_SIGNALTEST, (void*)mainCB, &eduID ) ; PD_RC_CHECK( rc, PDERROR, "Start signal test edu failed, rc: %d", rc ) ; pEDUMgr->regSystemEDU( EDU_TYPE_SIGNALTEST, eduID ) ; } #endif // _LINUX // start tcp listern edu and http listerner edu rc = pEDUMgr->startEDU( EDU_TYPE_TCPLISTENER, (void*)_pTcpListener, &eduID ) ; PD_RC_CHECK( rc, PDERROR, "Failed to start tcp listerner, rc: %d", rc ) ; pEDUMgr->regSystemEDU( EDU_TYPE_TCPLISTENER, eduID ) ; // wait until tcp listener starts rc = pEDUMgr->waitUntil ( eduID, PMD_EDU_RUNNING ) ; PD_RC_CHECK( rc, PDERROR, "Wait Tcp Listerner active failed, rc: %d", rc ) ; rc = pEDUMgr->startEDU( EDU_TYPE_RESTLISTENER, (void*)_pHttpListener, &eduID ) ; PD_RC_CHECK( rc, PDERROR, "Failed to start rest listerner, rc: %d", rc ) ; pEDUMgr->regSystemEDU( EDU_TYPE_RESTLISTENER, eduID ) ; // wait until http listener starts rc = pEDUMgr->waitUntil ( eduID, PMD_EDU_RUNNING ) ; PD_RC_CHECK( rc, PDERROR, "Wait rest Listener active failed, rc: %d", rc ) ; rc = activeForeignModule() ; PD_RC_CHECK( rc, PDERROR, "active Foreign module failed, rc: %d", rc ) ; // For non-coord nodes, we need to start page cleaners if ( SDB_ROLE_COORD != pmdGetDBRole() ) { UINT32 pageTaskNum = pmdGetOptionCB()->getPageCleanNum() ; UINT32 pageIntervel = pmdGetOptionCB()->getPageCleanInterval() ; // start page flush background task for ( UINT32 i = 0; i < pageTaskNum ; ++i ) { startPageCleanerJob( NULL, (INT32)pageIntervel ) ; } // start load job rtnStartLoadJob() ; } // For data nodes(both primary and slavery nodes), we need to start // dictionary creating threads. if ( SDB_ROLE_DATA == pmdGetDBRole() || SDB_ROLE_STANDALONE == pmdGetDBRole() ) { rc = startDictCreatorJob( NULL ) ; PD_RC_CHECK( rc, PDERROR, "Start dictionary creating job thread failed, " "rc: %d", rc ) ; } done: return rc ; error: goto done ; }