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

📄 dbutil.cpp

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    const Uint32 pageSizeInWords = 128;    Uint32 propPage[pageSizeInWords];    LinearWriter w(&propPage[0], 128);    w.first();    w.add(UtilPrepareReq::NoOfOperations, 1);    w.add(UtilPrepareReq::OperationType, UtilPrepareReq::Delete);    w.add(UtilPrepareReq::TableId, (unsigned int)0);	// SYSTAB_0    w.add(UtilPrepareReq::AttributeId, (unsigned int)0);// SYSKEY_0    Uint32 length = w.getWordsUsed();    ndbassert(length <= pageSizeInWords);    sendUtilPrepareReqSignals(signal, propPage, length);  }  if(tCase == 215){    jam();    ndbout << "--------------------------------------------------" << endl;    const Uint32 pageSizeInWords = 128;    Uint32 propPage[pageSizeInWords];    LinearWriter w(&propPage[0],128);    w.first();    w.add(UtilPrepareReq::NoOfOperations, 1);    w.add(UtilPrepareReq::OperationType,  UtilPrepareReq::Insert);    w.add(UtilPrepareReq::TableId, (unsigned int)0);	 // SYSTAB_0    w.add(UtilPrepareReq::AttributeId, (unsigned int)0); // SYSKEY_0    w.add(UtilPrepareReq::AttributeId, 1);		 // NEXTID    Uint32 length = w.getWordsUsed();    ndbassert(length <= pageSizeInWords);    sendUtilPrepareReqSignals(signal, propPage, length);  }  if(tCase == 216){    jam();    ndbout << "--------------------------------------------------" << endl;    const Uint32 pageSizeInWords = 128;    Uint32 propPage[pageSizeInWords];    LinearWriter w(&propPage[0],128);    w.first();    w.add(UtilPrepareReq::NoOfOperations, 1);    w.add(UtilPrepareReq::OperationType,  UtilPrepareReq::Update);    w.add(UtilPrepareReq::TableId, (unsigned int)0);	// SYSTAB_0    w.add(UtilPrepareReq::AttributeId, (unsigned int)0);// SYSKEY_0    w.add(UtilPrepareReq::AttributeId, 1);		// NEXTID    Uint32 length = w.getWordsUsed();    ndbassert(length <= pageSizeInWords);    sendUtilPrepareReqSignals(signal, propPage, length);  }  if(tCase == 217){    jam();    ndbout << "--------------------------------------------------" << endl;    const Uint32 pageSizeInWords = 128;    Uint32 propPage[pageSizeInWords];    LinearWriter w(&propPage[0],128);    w.first();    w.add(UtilPrepareReq::NoOfOperations, 1);    w.add(UtilPrepareReq::OperationType, UtilPrepareReq::Read);    w.add(UtilPrepareReq::TableId, (unsigned int)0);	// SYSTAB_0    w.add(UtilPrepareReq::AttributeId, (unsigned int)0);// SYSKEY_0    Uint32 length = w.getWordsUsed();    ndbassert(length <= pageSizeInWords);    sendUtilPrepareReqSignals(signal, propPage, length);  }  */  /****************************************************************************/  /* // Obsolete tests, should be rewritten for long signals!!  if(tCase == 220){    jam();    ndbout << "--------------------------------------------------" << endl;        Uint32 prepI = signal->theData[1];    Uint32 length = signal->theData[2];    Uint32 attributeValue0 = signal->theData[3];    Uint32 attributeValue1a = signal->theData[4];    Uint32 attributeValue1b = signal->theData[5];    ndbrequire(prepI != 0);    UtilExecuteReq * req = (UtilExecuteReq *)signal->getDataPtrSend();    req->senderData   = 221;    req->prepareId    = prepI;    req->totalDataLen = length;  // Including headers    req->offset       = 0;    AttributeHeader::init(&req->attrData[0], 0, 1);  // AttrNo 0, DataSize    req->attrData[1] = attributeValue0;              // AttrValue     AttributeHeader::init(&req->attrData[2], 1, 2);  // AttrNo 1, DataSize    req->attrData[3] = attributeValue1a;             // AttrValue     req->attrData[4] = attributeValue1b;             // AttrValue     printUTIL_EXECUTE_REQ(stdout, signal->getDataPtrSend(), 3 + 5,0);    sendSignal(DBUTIL_REF, GSN_UTIL_EXECUTE_REQ, signal, 3 + 5, JBB);  }*/  /****************************************************************************   *  230 : PRINT STATE   */#ifdef ARRAY_GUARD  if(tCase == 230){    jam();    ndbout << "--------------------------------------------------" << endl;    if (signal->length() <= 1) {      ndbout << "Usage: DUMP 230 <recordType> <recordNo>" << endl 	     << "[1] Print Prepare (running) records" << endl	     << "[2] Print PreparedOperation records" << endl	     << "[3] Print Transaction records" << endl	     << "[4] Print Operation records" << endl	     << "Ex. \"dump 230 1 2\" prints Prepare record no 2." << endl	     << endl	     << "210 : PREPARE_REQ DELETE SYSTAB_0 SYSKEY_0" << endl	     << "211 : PREPARE_REQ INSERT SYSTAB_0 SYSKEY_0 NEXTID" << endl	     << "212 : PREPARE_REQ UPDATE SYSTAB_0 SYSKEY_0 NEXTID" << endl	     << "213 : PREPARE_REQ READ   SYSTAB_0 SYSKEY_0" << endl	     << "214 : PREPARE_REQ DELETE SYSTAB_0 SYSKEY_0 using id" << endl	     << "215 : PREPARE_REQ INSERT SYSTAB_0 SYSKEY_0 NEXTID using id" << endl	     << "216 : PREPARE_REQ UPDATE SYSTAB_0 SYSKEY_0 NEXTID using id" << endl	     << "217 : PREPARE_REQ READ   SYSTAB_0 SYSKEY_0 using id" << endl	     << "220 : EXECUTE_REQ <PrepId> <Len> <Val1> <Val2a> <Val2b>" <<endl	     << "299 : Crash system (using ndbrequire(0))" 	     << endl	     << "Ex. \"dump 220 3 5 1 0 17 \" prints Prepare record no 2." 	     << endl;      return;    }    switch (signal->theData[1]) {    case 1:      // ** Print a specific record **      if (signal->length() >= 3) {	PreparePtr prepPtr;	if (!c_preparePool.isSeized(signal->theData[2])) {	  ndbout << "Prepare Id: " << signal->theData[2] 		 << " (Not seized!)" << endl;	} else {	  c_preparePool.getPtr(prepPtr, signal->theData[2]);	  prepPtr.p->print();	}	return;      }	      // ** Print all records **      PreparePtr prepPtr;      if (!c_runningPrepares.first(prepPtr)) {	ndbout << "No Prepare records exist" << endl;	return;      }            while (!prepPtr.isNull()) {	prepPtr.p->print();	c_runningPrepares.next(prepPtr);      }      return;    case 2:      // ** Print a specific record **      if (signal->length() >= 3) {	if (!c_preparedOperationPool.isSeized(signal->theData[2])) {	  ndbout << "PreparedOperation Id: " << signal->theData[2] 		 << " (Not seized!)" << endl;	  return;	}	ndbout << "PreparedOperation Id: " << signal->theData[2] << endl;	PreparedOperationPtr prepOpPtr;	c_runningPreparedOperations.getPtr(prepOpPtr, signal->theData[2]);	prepOpPtr.p->print();	return;      }      // ** Print all records **      PreparedOperationPtr prepOpPtr;      if (!c_runningPreparedOperations.first(prepOpPtr)) {	ndbout << "No PreparedOperations exist" << endl;	return;      }      while (!prepOpPtr.isNull()) {	ndbout << "[-PreparedOperation no " << prepOpPtr.i << ":"; 	prepOpPtr.p->print();	ndbout << "]";	c_runningPreparedOperations.next(prepOpPtr);      }      return;    case 3:      // ** Print a specific record **      if (signal->length() >= 3) {	ndbout << "Print specific record not implemented." << endl;	return;      }      // ** Print all records **      ndbout << "Print all records not implemented, specify an Id." << endl;      return;    case 4:      ndbout << "Not implemented" << endl;      return;    default:      ndbout << "Unknown input (try without any data)" << endl;      return;    }        }#endif  if(tCase == 240 && signal->getLength() == 2){    MutexManager::ActiveMutexPtr ptr;    ndbrequire(c_mutexMgr.seize(ptr));    ptr.p->m_mutexId = signal->theData[1];    Callback c = { safe_cast(&DbUtil::mutex_created), ptr.i };    ptr.p->m_callback = c;    c_mutexMgr.create(signal, ptr);    ndbout_c("c_mutexMgr.create ptrI=%d mutexId=%d", ptr.i, ptr.p->m_mutexId);  }  if(tCase == 241 && signal->getLength() == 2){    MutexManager::ActiveMutexPtr ptr;    ndbrequire(c_mutexMgr.seize(ptr));    ptr.p->m_mutexId = signal->theData[1];    Callback c = { safe_cast(&DbUtil::mutex_locked), ptr.i };    ptr.p->m_callback = c;    c_mutexMgr.lock(signal, ptr);    ndbout_c("c_mutexMgr.lock ptrI=%d mutexId=%d", ptr.i, ptr.p->m_mutexId);  }  if(tCase == 242 && signal->getLength() == 2){    MutexManager::ActiveMutexPtr ptr;    ptr.i = signal->theData[1];    c_mutexMgr.getPtr(ptr);    Callback c = { safe_cast(&DbUtil::mutex_unlocked), ptr.i };    ptr.p->m_callback = c;    c_mutexMgr.unlock(signal, ptr);    ndbout_c("c_mutexMgr.unlock ptrI=%d mutexId=%d", ptr.i, ptr.p->m_mutexId);  }    if(tCase == 243 && signal->getLength() == 3){    MutexManager::ActiveMutexPtr ptr;    ndbrequire(c_mutexMgr.seize(ptr));    ptr.p->m_mutexId = signal->theData[1];    ptr.p->m_mutexKey = signal->theData[2];    Callback c = { safe_cast(&DbUtil::mutex_destroyed), ptr.i };    ptr.p->m_callback = c;    c_mutexMgr.destroy(signal, ptr);    ndbout_c("c_mutexMgr.destroy ptrI=%d mutexId=%d key=%d", 	     ptr.i, ptr.p->m_mutexId, ptr.p->m_mutexKey);  }}voidDbUtil::mutex_created(Signal* signal, Uint32 ptrI, Uint32 retVal){  MutexManager::ActiveMutexPtr ptr; ptr.i = ptrI;  c_mutexMgr.getPtr(ptr);  ndbout_c("mutex_created - mutexId=%d, retVal=%d", 	   ptr.p->m_mutexId, retVal);  c_mutexMgr.release(ptrI);}voidDbUtil::mutex_destroyed(Signal* signal, Uint32 ptrI, Uint32 retVal){  MutexManager::ActiveMutexPtr ptr; ptr.i = ptrI;  c_mutexMgr.getPtr(ptr);  ndbout_c("mutex_destroyed - mutexId=%d, retVal=%d", 	   ptr.p->m_mutexId, retVal);   c_mutexMgr.release(ptrI);}voidDbUtil::mutex_locked(Signal* signal, Uint32 ptrI, Uint32 retVal){  MutexManager::ActiveMutexPtr ptr; ptr.i = ptrI;  c_mutexMgr.getPtr(ptr);  ndbout_c("mutex_locked - mutexId=%d, retVal=%d key=%d ptrI=%d", 	   ptr.p->m_mutexId, retVal, ptr.p->m_mutexKey, ptrI);  if(retVal)    c_mutexMgr.release(ptrI);}voidDbUtil::mutex_unlocked(Signal* signal, Uint32 ptrI, Uint32 retVal){  MutexManager::ActiveMutexPtr ptr; ptr.i = ptrI;  c_mutexMgr.getPtr(ptr);  ndbout_c("mutex_unlocked - mutexId=%d, retVal=%d", 	   ptr.p->m_mutexId, retVal);   if(!retVal)    c_mutexMgr.release(ptrI);}   voidDbUtil::execUTIL_SEQUENCE_REF(Signal* signal){  jamEntry();  ndbout << "UTIL_SEQUENCE_REF" << endl;  printUTIL_SEQUENCE_REF(stdout, signal->getDataPtrSend(), signal->length(), 0);}voidDbUtil::execUTIL_SEQUENCE_CONF(Signal* signal){  jamEntry();  ndbout << "UTIL_SEQUENCE_CONF" << endl;  printUTIL_SEQUENCE_CONF(stdout, signal->getDataPtrSend(), signal->length(),0);}voidDbUtil::execUTIL_PREPARE_CONF(Signal* signal){  jamEntry();  ndbout << "UTIL_PREPARE_CONF" << endl;  printUTIL_PREPARE_CONF(stdout, signal->getDataPtrSend(), signal->length(), 0);}voidDbUtil::execUTIL_PREPARE_REF(Signal* signal){  jamEntry();  ndbout << "UTIL_PREPARE_REF" << endl;  printUTIL_PREPARE_REF(stdout, signal->getDataPtrSend(), signal->length(), 0);}void DbUtil::execUTIL_EXECUTE_CONF(Signal* signal) {  jamEntry();  ndbout << "UTIL_EXECUTE_CONF" << endl;  printUTIL_EXECUTE_CONF(stdout, signal->getDataPtrSend(), signal->length(), 0);}void DbUtil::execUTIL_EXECUTE_REF(Signal* signal) {  jamEntry();  ndbout << "UTIL_EXECUTE_REF" << endl;  printUTIL_EXECUTE_REF(stdout, signal->getDataPtrSend(), signal->length(), 0);}void DbUtil::execUTIL_RELEASE_CONF(Signal* signal) {  jamEntry();  ndbout << "UTIL_RELEASE_CONF" << endl;}void DbUtil::execUTIL_RELEASE_REF(Signal* signal) {  jamEntry();  ndbout << "UTIL_RELEASE_REF" << endl;}voidDbUtil::sendUtilPrepareRef(Signal* signal, UtilPrepareRef::ErrorCode error, 			   Uint32 recipient, Uint32 senderData){  UtilPrepareRef * ref = (UtilPrepareRef *)signal->getDataPtrSend();  ref->errorCode = error;  ref->senderData = senderData;  sendSignal(recipient, GSN_UTIL_PREPARE_REF, signal, 	     UtilPrepareRef::SignalLength, JBB);}voidDbUtil::sendUtilExecuteRef(Signal* signal, UtilExecuteRef::ErrorCode error, 			   Uint32 TCerror, Uint32 recipient, Uint32 senderData){    UtilExecuteRef * ref = (UtilExecuteRef *)signal->getDataPtrSend();  ref->senderData  = senderData;  ref->errorCode   = error;  ref->TCErrorCode = TCerror;  sendSignal(recipient, GSN_UTIL_EXECUTE_REF, signal, 	     UtilPrepareRef::SignalLength, JBB);}/************************************************************************** * ------------------------------------------------------------------------ *  MODULE:       Prepare service * ------------------------------------------------------------------------ * *  Prepares a transaction by storing info in some structs **************************************************************************/void DbUtil::execUTIL_PREPARE_REQ(Signal* signal){  jamEntry();      /****************   * Decode Signal   ****************/  UtilPrepareReq * req = (UtilPrepareReq *)signal->getDataPtr();  const Uint32 senderRef    = req->senderRef;  const Uint32 senderData   = req->senderData;  if(signal->getNoOfSections() == 0) {    // Missing prepare data    jam();    releaseSections(signal);    sendUtilPrepareRef(signal, UtilPrepareRef::MISSING_PROPERTIES_SECTION,		       senderRef, senderData);    return;  }  PreparePtr prepPtr;  SegmentedSectionPtr ptr;    jam();  if(!c_runningPrepares.seize(prepPtr)) {    jam();    releaseSections(signal);    sendUtilPrepareRef(signal, UtilPrepareRef::PREPARE_SEIZE_ERROR,		       senderRef, senderData);    return;  };

⌨️ 快捷键说明

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