⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbtcmain.cpp

📁 mysql-5.0.22.tar.gz源码包
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    sendSignal(tapiBlockref, GSN_TCRELEASECONF, signal, 1, JBB);  } else {    if (tapiBlockref == apiConnectptr.p->ndbapiBlockref) {      if (apiConnectptr.p->apiConnectstate == CS_CONNECTED ||	  (apiConnectptr.p->apiConnectstate == CS_ABORTING &&	   apiConnectptr.p->abortState == AS_IDLE) ||	  (apiConnectptr.p->apiConnectstate == CS_STARTED &&	   apiConnectptr.p->firstTcConnect == RNIL))      {        jam();                                   /* JUST REPLY OK */        releaseApiCon(signal, apiConnectptr.i);        signal->theData[0] = tuserpointer;        sendSignal(tapiBlockref,                   GSN_TCRELEASECONF, signal, 1, JBB);      } else {        jam();        signal->theData[0] = tuserpointer;        signal->theData[1] = ZINVALID_CONNECTION;	signal->theData[2] = __LINE__;	signal->theData[3] = apiConnectptr.p->apiConnectstate;        sendSignal(tapiBlockref,                   GSN_TCRELEASEREF, signal, 4, JBB);      }    } else {      jam();      signal->theData[0] = tuserpointer;      signal->theData[1] = ZINVALID_CONNECTION;      signal->theData[2] = __LINE__;      signal->theData[3] = tapiBlockref;            signal->theData[4] = apiConnectptr.p->ndbapiBlockref;            sendSignal(tapiBlockref, GSN_TCRELEASEREF, signal, 5, JBB);    }//if  }//if}//Dbtc::execTCRELEASEREQ()/****************************************************************************/// Error Handling for TCKEYREQ messages/****************************************************************************/void Dbtc::signalErrorRefuseLab(Signal* signal) {  ptrGuard(apiConnectptr);  if (apiConnectptr.p->apiConnectstate != CS_DISCONNECTED) {    jam();    apiConnectptr.p->abortState = AS_IDLE;    apiConnectptr.p->apiConnectstate = CS_ABORTING;  }//if  sendSignalErrorRefuseLab(signal);}//Dbtc::signalErrorRefuseLab()void Dbtc::sendSignalErrorRefuseLab(Signal* signal) {  ndbassert(false);  ptrGuard(apiConnectptr);  if (apiConnectptr.p->apiConnectstate != CS_DISCONNECTED) {    jam();    ndbrequire(false);    signal->theData[0] = apiConnectptr.p->ndbapiConnect;    signal->theData[1] = signal->theData[ttransid_ptr];    signal->theData[2] = signal->theData[ttransid_ptr + 1];    signal->theData[3] = ZSIGNAL_ERROR;    sendSignal(apiConnectptr.p->ndbapiBlockref, GSN_TCROLLBACKREP, 	       signal, 4, JBB);  }}//Dbtc::sendSignalErrorRefuseLab()void Dbtc::abortBeginErrorLab(Signal* signal) {  apiConnectptr.p->transid[0] = signal->theData[ttransid_ptr];  apiConnectptr.p->transid[1] = signal->theData[ttransid_ptr + 1];  abortErrorLab(signal);}//Dbtc::abortBeginErrorLab()void Dbtc::printState(Signal* signal, int place) {#ifdef VM_TRACE // Change to if 0 to disable these printouts  ndbout << "-- Dbtc::printState -- " << endl;  ndbout << "Received from place = " << place	 << " apiConnectptr.i = " << apiConnectptr.i	 << " apiConnectstate = " << apiConnectptr.p->apiConnectstate << endl;  ndbout << "ctcTimer = " << ctcTimer	 << " ndbapiBlockref = " << hex <<apiConnectptr.p->ndbapiBlockref	 << " Transid = " << apiConnectptr.p->transid[0]	 << " " << apiConnectptr.p->transid[1] << endl;  ndbout << " apiTimer = " << getApiConTimer(apiConnectptr.i)	 << " counter = " << apiConnectptr.p->counter	 << " lqhkeyconfrec = " << apiConnectptr.p->lqhkeyconfrec	 << " lqhkeyreqrec = " << apiConnectptr.p->lqhkeyreqrec << endl;  ndbout << "abortState = " << apiConnectptr.p->abortState 	 << " apiScanRec = " << apiConnectptr.p->apiScanRec	 << " returncode = " << apiConnectptr.p->returncode << endl;  ndbout << "tckeyrec = " << apiConnectptr.p->tckeyrec	 << " returnsignal = " << apiConnectptr.p->returnsignal	 << " apiFailState = " << apiConnectptr.p->apiFailState << endl;  if (apiConnectptr.p->cachePtr != RNIL) {    jam();    CacheRecord *localCacheRecord = cacheRecord;    UintR TcacheFilesize = ccacheFilesize;    UintR TcachePtr = apiConnectptr.p->cachePtr;    if (TcachePtr < TcacheFilesize) {      jam();      CacheRecord * const regCachePtr = &localCacheRecord[TcachePtr];      ndbout << "currReclenAi = " << regCachePtr->currReclenAi	     << " attrlength = " << regCachePtr->attrlength	     << " tableref = " << regCachePtr->tableref	     << " keylen = " << regCachePtr->keylen << endl;    } else {      jam();      systemErrorLab(signal, __LINE__);    }//if  }//if#endif  return;}//Dbtc::printState()voidDbtc::TCKEY_abort(Signal* signal, int place){  switch (place) {  case 0:    jam();    terrorCode = ZSTATE_ERROR;    apiConnectptr.p->firstTcConnect = RNIL;    printState(signal, 4);    abortBeginErrorLab(signal);    return;  case 1:    jam();    printState(signal, 3);    sendSignalErrorRefuseLab(signal);    return;  case 2:{    printState(signal, 6);    const TcKeyReq * const tcKeyReq = (TcKeyReq *)&signal->theData[0];    const Uint32 t1 = tcKeyReq->transId1;    const Uint32 t2 = tcKeyReq->transId2;    signal->theData[0] = apiConnectptr.p->ndbapiConnect;    signal->theData[1] = t1;    signal->theData[2] = t2;    signal->theData[3] = ZABORT_ERROR;    ndbrequire(false);    sendSignal(apiConnectptr.p->ndbapiBlockref, GSN_TCROLLBACKREP, 	       signal, 4, JBB);    return;  }  case 3:    jam();    printState(signal, 7);    noFreeConnectionErrorLab(signal);    return;  case 4:    jam();    terrorCode = ZERO_KEYLEN_ERROR;    releaseAtErrorLab(signal);    return;  case 5:    jam();    terrorCode = ZNO_AI_WITH_UPDATE;    releaseAtErrorLab(signal);    return;  case 6:    jam();    warningHandlerLab(signal, __LINE__);    return;  case 7:    jam();    tabStateErrorLab(signal);    return;  case 8:    jam();    wrongSchemaVersionErrorLab(signal);    return;  case 9:    jam();    terrorCode = ZSTATE_ERROR;    releaseAtErrorLab(signal);    return;  case 10:    jam();    systemErrorLab(signal, __LINE__);    return;  case 11:    jam();    terrorCode = ZMORE_AI_IN_TCKEYREQ_ERROR;    releaseAtErrorLab(signal);    return;  case 12:    jam();    terrorCode = ZSIMPLE_READ_WITHOUT_AI;    releaseAtErrorLab(signal);    return;  case 13:    jam();    switch (tcConnectptr.p->tcConnectstate) {    case OS_WAIT_KEYINFO:      jam();      printState(signal, 8);      terrorCode = ZSTATE_ERROR;      abortErrorLab(signal);      return;    default:      jam();      /********************************************************************/      /*       MISMATCH BETWEEN STATE ON API CONNECTION AND THIS          */      /*       PARTICULAR TC CONNECT RECORD. THIS MUST BE CAUSED BY NDB   */      /*       INTERNAL ERROR.                                            */      /********************************************************************/      systemErrorLab(signal, __LINE__);      return;    }//switch    return;  case 15:    jam();    terrorCode = ZSCAN_NODE_ERROR;    releaseAtErrorLab(signal);    return;  case 16:    jam();    systemErrorLab(signal, __LINE__);    return;  case 17:    jam();    systemErrorLab(signal, __LINE__);    return;  case 18:    jam();    warningHandlerLab(signal, __LINE__);    return;  case 19:    jam();    return;  case 20:    jam();    warningHandlerLab(signal, __LINE__);    return;  case 21:    jam();    systemErrorLab(signal, __LINE__);    return;  case 22:    jam();    systemErrorLab(signal, __LINE__);    return;  case 23:    jam();    systemErrorLab(signal, __LINE__);    return;  case 24:    jam();    seizeAttrbuferrorLab(signal);    return;  case 25:    jam();    warningHandlerLab(signal, __LINE__);    return;  case 26:    jam();    return;  case 27:    systemErrorLab(signal, __LINE__);    jam();    return;  case 28:    jam();    // NOT USED    return;  case 29:    jam();    systemErrorLab(signal, __LINE__);    return;  case 30:    jam();    systemErrorLab(signal, __LINE__);    return;  case 31:    jam();    systemErrorLab(signal, __LINE__);    return;  case 32:    jam();    systemErrorLab(signal, __LINE__);    return;  case 33:    jam();    systemErrorLab(signal, __LINE__);    return;  case 34:    jam();    systemErrorLab(signal, __LINE__);    return;  case 35:    jam();    systemErrorLab(signal, __LINE__);    return;  case 36:    jam();    systemErrorLab(signal, __LINE__);    return;  case 37:    jam();    systemErrorLab(signal, __LINE__);    return;  case 38:    jam();    systemErrorLab(signal, __LINE__);    return;  case 39:    jam();    systemErrorLab(signal, __LINE__);    return;  case 40:    jam();    systemErrorLab(signal, __LINE__);    return;  case 41:    jam();    systemErrorLab(signal, __LINE__);    return;  case 42:    jam();    systemErrorLab(signal, __LINE__);    return;  case 43:    jam();    systemErrorLab(signal, __LINE__);    return;  case 44:    jam();    systemErrorLab(signal, __LINE__);    return;  case 45:    jam();    systemErrorLab(signal, __LINE__);    return;  case 46:    jam();    systemErrorLab(signal, __LINE__);    return;  case 47:    jam();    terrorCode = apiConnectptr.p->returncode;    releaseAtErrorLab(signal);    return;  case 48:    jam();    terrorCode = ZCOMMIT_TYPE_ERROR;    releaseAtErrorLab(signal);    return;  case 49:    jam();    abortErrorLab(signal);    return;  case 50:    jam();    systemErrorLab(signal, __LINE__);    return;  case 51:    jam();    abortErrorLab(signal);    return;  case 52:    jam();    abortErrorLab(signal);    return;  case 53:    jam();    abortErrorLab(signal);    return;  case 54:    jam();    abortErrorLab(signal);    return;  case 55:    jam();    printState(signal, 5);    sendSignalErrorRefuseLab(signal);    return;      case 56:{    jam();    terrorCode = ZNO_FREE_TC_MARKER;    abortErrorLab(signal);    return;  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -