DblqhInit.cpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:16k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #include <pc.hpp>
  14. #define DBLQH_C
  15. #include "Dblqh.hpp"
  16. #include <ndb_limits.h>
  17. #define DEBUG(x) { ndbout << "LQH::" << x << endl; }
  18. void Dblqh::initData() 
  19. {
  20.   caddfragrecFileSize = ZADDFRAGREC_FILE_SIZE;
  21.   cattrinbufFileSize = ZATTRINBUF_FILE_SIZE;
  22.   c_no_attrinbuf_recs= ZATTRINBUF_FILE_SIZE;
  23.   cdatabufFileSize = ZDATABUF_FILE_SIZE;
  24.   cfragrecFileSize = 0;
  25.   cgcprecFileSize = ZGCPREC_FILE_SIZE;
  26.   chostFileSize = MAX_NDB_NODES;
  27.   clcpFileSize = ZNO_CONCURRENT_LCP;
  28.   clcpLocrecFileSize = ZLCP_LOCREC_FILE_SIZE;
  29.   clfoFileSize = ZLFO_FILE_SIZE;
  30.   clogFileFileSize = 0;
  31.   clogPartFileSize = ZLOG_PART_FILE_SIZE;
  32.   cpageRefFileSize = ZPAGE_REF_FILE_SIZE;
  33.   cscanrecFileSize = ZSCANREC_FILE_SIZE;
  34.   ctabrecFileSize = 0;
  35.   ctcConnectrecFileSize = 0;
  36.   ctcNodeFailrecFileSize = MAX_NDB_NODES;
  37.   addFragRecord = 0;
  38.   attrbuf = 0;
  39.   databuf = 0;
  40.   fragrecord = 0;
  41.   gcpRecord = 0;
  42.   hostRecord = 0;
  43.   lcpRecord = 0;
  44.   lcpLocRecord = 0;
  45.   logPartRecord = 0;
  46.   logFileRecord = 0;
  47.   logFileOperationRecord = 0;
  48.   logPageRecord = 0;
  49.   pageRefRecord = 0;
  50.   tablerec = 0;
  51.   tcConnectionrec = 0;
  52.   tcNodeFailRecord = 0;
  53.   
  54.   // Records with constant sizes
  55.   cLqhTimeOutCount = 0;
  56.   cLqhTimeOutCheckCount = 0;
  57.   cbookedAccOps = 0;
  58.   c_redo_log_complete_frags = RNIL;
  59. }//Dblqh::initData()
  60. void Dblqh::initRecords() 
  61. {
  62.   // Records with dynamic sizes
  63.   addFragRecord = (AddFragRecord*)allocRecord("AddFragRecord",
  64.       sizeof(AddFragRecord), 
  65.       caddfragrecFileSize);
  66.   attrbuf = (Attrbuf*)allocRecord("Attrbuf",
  67.   sizeof(Attrbuf), 
  68.   cattrinbufFileSize);
  69.   databuf = (Databuf*)allocRecord("Databuf",
  70.   sizeof(Databuf), 
  71.   cdatabufFileSize);
  72.   fragrecord = (Fragrecord*)allocRecord("Fragrecord",
  73. sizeof(Fragrecord), 
  74. cfragrecFileSize);
  75.   gcpRecord = (GcpRecord*)allocRecord("GcpRecord",
  76.       sizeof(GcpRecord), 
  77.       cgcprecFileSize);
  78.   hostRecord = (HostRecord*)allocRecord("HostRecord",
  79. sizeof(HostRecord), 
  80. chostFileSize);
  81.   lcpRecord = (LcpRecord*)allocRecord("LcpRecord",
  82.       sizeof(LcpRecord), 
  83.       clcpFileSize);
  84.   for(Uint32 i = 0; i<clcpFileSize; i++){
  85.     new (&lcpRecord[i])LcpRecord();
  86.   }
  87.   lcpLocRecord = (LcpLocRecord*)allocRecord("LcpLocRecord",
  88.     sizeof(LcpLocRecord), 
  89.     clcpLocrecFileSize);
  90.   logPartRecord = (LogPartRecord*)allocRecord("LogPartRecord",
  91.       sizeof(LogPartRecord), 
  92.       clogPartFileSize);
  93.   logFileRecord = (LogFileRecord*)allocRecord("LogFileRecord",
  94.       sizeof(LogFileRecord),
  95.       clogFileFileSize);
  96.   logFileOperationRecord = (LogFileOperationRecord*)
  97.     allocRecord("LogFileOperationRecord", 
  98. sizeof(LogFileOperationRecord), 
  99. clfoFileSize);
  100.   logPageRecord = (LogPageRecord*)allocRecord("LogPageRecord",
  101.       sizeof(LogPageRecord),
  102.       clogPageFileSize,
  103.       false);
  104.   pageRefRecord = (PageRefRecord*)allocRecord("PageRefRecord",
  105.       sizeof(PageRefRecord),
  106.       cpageRefFileSize);
  107.   cscanNoFreeRec = cscanrecFileSize;
  108.   c_scanRecordPool.setSize(cscanrecFileSize);
  109.   c_scanTakeOverHash.setSize(64);
  110.   tablerec = (Tablerec*)allocRecord("Tablerec",
  111.     sizeof(Tablerec), 
  112.     ctabrecFileSize);
  113.   tcConnectionrec = (TcConnectionrec*)allocRecord("TcConnectionrec",
  114.   sizeof(TcConnectionrec),
  115.   ctcConnectrecFileSize);
  116.   
  117.   m_commitAckMarkerPool.setSize(ctcConnectrecFileSize);
  118.   m_commitAckMarkerHash.setSize(1024);
  119.   
  120.   tcNodeFailRecord = (TcNodeFailRecord*)allocRecord("TcNodeFailRecord",
  121.     sizeof(TcNodeFailRecord),
  122.     ctcNodeFailrecFileSize);
  123.   
  124.   /*
  125.   ndbout << "FRAGREC SIZE = " << sizeof(Fragrecord) << endl;
  126.   ndbout << "TAB SIZE = " << sizeof(Tablerec) << endl;
  127.   ndbout << "GCP SIZE = " << sizeof(GcpRecord) << endl;
  128.   ndbout << "LCP SIZE = " << sizeof(LcpRecord) << endl;
  129.   ndbout << "LCPLOC SIZE = " << sizeof(LcpLocRecord) << endl;
  130.   ndbout << "LOGPART SIZE = " << sizeof(LogPartRecord) << endl;
  131.   ndbout << "LOGFILE SIZE = " << sizeof(LogFileRecord) << endl;
  132.   ndbout << "TC SIZE = " << sizeof(TcConnectionrec) << endl;
  133.   ndbout << "HOST SIZE = " << sizeof(HostRecord) << endl;
  134.   ndbout << "LFO SIZE = " << sizeof(LogFileOperationRecord) << endl;
  135.   ndbout << "PR SIZE = " << sizeof(PageRefRecord) << endl;
  136.   ndbout << "SCAN SIZE = " << sizeof(ScanRecord) << endl;
  137. */
  138.   // Initialize BAT for interface to file system
  139.   NewVARIABLE* bat = allocateBat(2);
  140.   bat[1].WA = &logPageRecord->logPageWord[0];
  141.   bat[1].nrr = clogPageFileSize;
  142.   bat[1].ClusterSize = sizeof(LogPageRecord);
  143.   bat[1].bits.q = ZTWOLOG_PAGE_SIZE;
  144.   bat[1].bits.v = 5;
  145. }//Dblqh::initRecords()
  146. Dblqh::Dblqh(const class Configuration & conf):
  147.   SimulatedBlock(DBLQH, conf),
  148.   m_commitAckMarkerHash(m_commitAckMarkerPool),
  149.   c_scanTakeOverHash(c_scanRecordPool)
  150. {
  151.   Uint32 log_page_size= 0;
  152.   BLOCK_CONSTRUCTOR(Dblqh);
  153.   const ndb_mgm_configuration_iterator * p = conf.getOwnConfigIterator();
  154.   ndbrequire(p != 0);
  155.   ndb_mgm_get_int_parameter(p, CFG_DB_REDO_BUFFER,  
  156.     &log_page_size);
  157.   /**
  158.    * Always set page size in half MBytes
  159.    */
  160.   clogPageFileSize= (log_page_size / sizeof(LogPageRecord));
  161.   Uint32 mega_byte_part= clogPageFileSize & 15;
  162.   if (mega_byte_part != 0) {
  163.     jam();
  164.     clogPageFileSize+= (16 - mega_byte_part);
  165.   }
  166.   addRecSignal(GSN_PACKED_SIGNAL, &Dblqh::execPACKED_SIGNAL);
  167.   addRecSignal(GSN_DEBUG_SIG, &Dblqh::execDEBUG_SIG);
  168.   addRecSignal(GSN_ATTRINFO, &Dblqh::execATTRINFO);
  169.   addRecSignal(GSN_KEYINFO, &Dblqh::execKEYINFO);
  170.   addRecSignal(GSN_LQHKEYREQ, &Dblqh::execLQHKEYREQ);
  171.   addRecSignal(GSN_LQHKEYREF, &Dblqh::execLQHKEYREF);
  172.   addRecSignal(GSN_COMMIT, &Dblqh::execCOMMIT);
  173.   addRecSignal(GSN_COMPLETE, &Dblqh::execCOMPLETE);
  174.   addRecSignal(GSN_LQHKEYCONF, &Dblqh::execLQHKEYCONF);
  175. #ifdef VM_TRACE
  176.   addRecSignal(GSN_TESTSIG, &Dblqh::execTESTSIG);
  177. #endif
  178.   addRecSignal(GSN_LQH_RESTART_OP, &Dblqh::execLQH_RESTART_OP);
  179.   addRecSignal(GSN_CONTINUEB, &Dblqh::execCONTINUEB);
  180.   addRecSignal(GSN_START_RECREQ, &Dblqh::execSTART_RECREQ);
  181.   addRecSignal(GSN_START_RECCONF, &Dblqh::execSTART_RECCONF);
  182.   addRecSignal(GSN_EXEC_FRAGREQ, &Dblqh::execEXEC_FRAGREQ);
  183.   addRecSignal(GSN_EXEC_FRAGCONF, &Dblqh::execEXEC_FRAGCONF);
  184.   addRecSignal(GSN_EXEC_FRAGREF, &Dblqh::execEXEC_FRAGREF);
  185.   addRecSignal(GSN_START_EXEC_SR, &Dblqh::execSTART_EXEC_SR);
  186.   addRecSignal(GSN_EXEC_SRREQ, &Dblqh::execEXEC_SRREQ);
  187.   addRecSignal(GSN_EXEC_SRCONF, &Dblqh::execEXEC_SRCONF);
  188.   addRecSignal(GSN_SCAN_HBREP, &Dblqh::execSCAN_HBREP);
  189.   addRecSignal(GSN_ALTER_TAB_REQ, &Dblqh::execALTER_TAB_REQ);
  190.   // Trigger signals, transit to from TUP
  191.   addRecSignal(GSN_CREATE_TRIG_REQ, &Dblqh::execCREATE_TRIG_REQ);
  192.   addRecSignal(GSN_CREATE_TRIG_CONF, &Dblqh::execCREATE_TRIG_CONF);
  193.   addRecSignal(GSN_CREATE_TRIG_REF, &Dblqh::execCREATE_TRIG_REF);
  194.   addRecSignal(GSN_DROP_TRIG_REQ, &Dblqh::execDROP_TRIG_REQ);
  195.   addRecSignal(GSN_DROP_TRIG_CONF, &Dblqh::execDROP_TRIG_CONF);
  196.   addRecSignal(GSN_DROP_TRIG_REF, &Dblqh::execDROP_TRIG_REF);
  197.   addRecSignal(GSN_DUMP_STATE_ORD, &Dblqh::execDUMP_STATE_ORD);
  198.   addRecSignal(GSN_ACC_COM_BLOCK, &Dblqh::execACC_COM_BLOCK);
  199.   addRecSignal(GSN_ACC_COM_UNBLOCK, &Dblqh::execACC_COM_UNBLOCK);
  200.   addRecSignal(GSN_TUP_COM_BLOCK, &Dblqh::execTUP_COM_BLOCK);
  201.   addRecSignal(GSN_TUP_COM_UNBLOCK, &Dblqh::execTUP_COM_UNBLOCK);
  202.   addRecSignal(GSN_NODE_FAILREP, &Dblqh::execNODE_FAILREP);
  203.   addRecSignal(GSN_CHECK_LCP_STOP, &Dblqh::execCHECK_LCP_STOP);
  204.   addRecSignal(GSN_SEND_PACKED, &Dblqh::execSEND_PACKED);
  205.   addRecSignal(GSN_TUP_ATTRINFO, &Dblqh::execTUP_ATTRINFO);
  206.   addRecSignal(GSN_READ_CONFIG_REQ, &Dblqh::execREAD_CONFIG_REQ, true);
  207.   addRecSignal(GSN_LQHFRAGREQ, &Dblqh::execLQHFRAGREQ);
  208.   addRecSignal(GSN_LQHADDATTREQ, &Dblqh::execLQHADDATTREQ);
  209.   addRecSignal(GSN_TUP_ADD_ATTCONF, &Dblqh::execTUP_ADD_ATTCONF);
  210.   addRecSignal(GSN_TUP_ADD_ATTRREF, &Dblqh::execTUP_ADD_ATTRREF);
  211.   addRecSignal(GSN_ACCFRAGCONF, &Dblqh::execACCFRAGCONF);
  212.   addRecSignal(GSN_ACCFRAGREF, &Dblqh::execACCFRAGREF);
  213.   addRecSignal(GSN_TUPFRAGCONF, &Dblqh::execTUPFRAGCONF);
  214.   addRecSignal(GSN_TUPFRAGREF, &Dblqh::execTUPFRAGREF);
  215.   addRecSignal(GSN_TAB_COMMITREQ, &Dblqh::execTAB_COMMITREQ);
  216.   addRecSignal(GSN_ACCSEIZECONF, &Dblqh::execACCSEIZECONF);
  217.   addRecSignal(GSN_ACCSEIZEREF, &Dblqh::execACCSEIZEREF);
  218.   addRecSignal(GSN_READ_NODESCONF, &Dblqh::execREAD_NODESCONF);
  219.   addRecSignal(GSN_READ_NODESREF, &Dblqh::execREAD_NODESREF);
  220.   addRecSignal(GSN_STTOR, &Dblqh::execSTTOR);
  221.   addRecSignal(GSN_NDB_STTOR, &Dblqh::execNDB_STTOR);
  222.   addRecSignal(GSN_TUPSEIZECONF, &Dblqh::execTUPSEIZECONF);
  223.   addRecSignal(GSN_TUPSEIZEREF, &Dblqh::execTUPSEIZEREF);
  224.   addRecSignal(GSN_ACCKEYCONF, &Dblqh::execACCKEYCONF);
  225.   addRecSignal(GSN_ACCKEYREF, &Dblqh::execACCKEYREF);
  226.   addRecSignal(GSN_TUPKEYCONF, &Dblqh::execTUPKEYCONF);
  227.   addRecSignal(GSN_TUPKEYREF, &Dblqh::execTUPKEYREF);
  228.   addRecSignal(GSN_ABORT, &Dblqh::execABORT);
  229.   addRecSignal(GSN_ABORTREQ, &Dblqh::execABORTREQ);
  230.   addRecSignal(GSN_COMMITREQ, &Dblqh::execCOMMITREQ);
  231.   addRecSignal(GSN_COMPLETEREQ, &Dblqh::execCOMPLETEREQ);
  232. #ifdef VM_TRACE
  233.   addRecSignal(GSN_MEMCHECKREQ, &Dblqh::execMEMCHECKREQ);
  234. #endif
  235.   addRecSignal(GSN_SCAN_FRAGREQ, &Dblqh::execSCAN_FRAGREQ);
  236.   addRecSignal(GSN_SCAN_NEXTREQ, &Dblqh::execSCAN_NEXTREQ);
  237.   addRecSignal(GSN_ACC_SCANCONF, &Dblqh::execACC_SCANCONF);
  238.   addRecSignal(GSN_ACC_SCANREF, &Dblqh::execACC_SCANREF);
  239.   addRecSignal(GSN_NEXT_SCANCONF, &Dblqh::execNEXT_SCANCONF);
  240.   addRecSignal(GSN_NEXT_SCANREF, &Dblqh::execNEXT_SCANREF);
  241.   addRecSignal(GSN_ACC_SCAN_INFO, &Dblqh::execACC_SCAN_INFO);
  242.   addRecSignal(GSN_ACC_SCAN_INFO24, &Dblqh::execACC_SCAN_INFO24);
  243.   addRecSignal(GSN_STORED_PROCCONF, &Dblqh::execSTORED_PROCCONF);
  244.   addRecSignal(GSN_STORED_PROCREF, &Dblqh::execSTORED_PROCREF);
  245.   addRecSignal(GSN_COPY_FRAGREQ, &Dblqh::execCOPY_FRAGREQ);
  246.   addRecSignal(GSN_COPY_ACTIVEREQ, &Dblqh::execCOPY_ACTIVEREQ);
  247.   addRecSignal(GSN_COPY_STATEREQ, &Dblqh::execCOPY_STATEREQ);
  248.   addRecSignal(GSN_LQH_TRANSREQ, &Dblqh::execLQH_TRANSREQ);
  249.   addRecSignal(GSN_TRANSID_AI, &Dblqh::execTRANSID_AI);
  250.   addRecSignal(GSN_INCL_NODEREQ, &Dblqh::execINCL_NODEREQ);
  251.   addRecSignal(GSN_ACC_LCPCONF, &Dblqh::execACC_LCPCONF);
  252.   addRecSignal(GSN_ACC_LCPREF, &Dblqh::execACC_LCPREF);
  253.   addRecSignal(GSN_ACC_LCPSTARTED, &Dblqh::execACC_LCPSTARTED);
  254.   addRecSignal(GSN_ACC_CONTOPCONF, &Dblqh::execACC_CONTOPCONF);
  255.   addRecSignal(GSN_LCP_FRAGIDCONF, &Dblqh::execLCP_FRAGIDCONF);
  256.   addRecSignal(GSN_LCP_FRAGIDREF, &Dblqh::execLCP_FRAGIDREF);
  257.   addRecSignal(GSN_LCP_HOLDOPCONF, &Dblqh::execLCP_HOLDOPCONF);
  258.   addRecSignal(GSN_LCP_HOLDOPREF, &Dblqh::execLCP_HOLDOPREF);
  259.   addRecSignal(GSN_TUP_PREPLCPCONF, &Dblqh::execTUP_PREPLCPCONF);
  260.   addRecSignal(GSN_TUP_PREPLCPREF, &Dblqh::execTUP_PREPLCPREF);
  261.   addRecSignal(GSN_TUP_LCPCONF, &Dblqh::execTUP_LCPCONF);
  262.   addRecSignal(GSN_TUP_LCPREF, &Dblqh::execTUP_LCPREF);
  263.   addRecSignal(GSN_TUP_LCPSTARTED, &Dblqh::execTUP_LCPSTARTED);
  264.   addRecSignal(GSN_END_LCPCONF, &Dblqh::execEND_LCPCONF);
  265.   addRecSignal(GSN_EMPTY_LCP_REQ, &Dblqh::execEMPTY_LCP_REQ);
  266.   addRecSignal(GSN_LCP_FRAG_ORD, &Dblqh::execLCP_FRAG_ORD);
  267.   
  268.   addRecSignal(GSN_START_FRAGREQ, &Dblqh::execSTART_FRAGREQ);
  269.   addRecSignal(GSN_START_RECREF, &Dblqh::execSTART_RECREF);
  270.   addRecSignal(GSN_SR_FRAGIDCONF, &Dblqh::execSR_FRAGIDCONF);
  271.   addRecSignal(GSN_SR_FRAGIDREF, &Dblqh::execSR_FRAGIDREF);
  272.   addRecSignal(GSN_ACC_SRCONF, &Dblqh::execACC_SRCONF);
  273.   addRecSignal(GSN_ACC_SRREF, &Dblqh::execACC_SRREF);
  274.   addRecSignal(GSN_TUP_SRCONF, &Dblqh::execTUP_SRCONF);
  275.   addRecSignal(GSN_TUP_SRREF, &Dblqh::execTUP_SRREF);
  276.   addRecSignal(GSN_GCP_SAVEREQ, &Dblqh::execGCP_SAVEREQ);
  277.   addRecSignal(GSN_FSOPENCONF, &Dblqh::execFSOPENCONF);
  278.   addRecSignal(GSN_FSCLOSECONF, &Dblqh::execFSCLOSECONF);
  279.   addRecSignal(GSN_FSWRITECONF, &Dblqh::execFSWRITECONF);
  280.   addRecSignal(GSN_FSWRITEREF, &Dblqh::execFSWRITEREF, true);
  281.   addRecSignal(GSN_FSREADCONF, &Dblqh::execFSREADCONF);
  282.   addRecSignal(GSN_FSREADREF, &Dblqh::execFSREADREF, true);
  283.   addRecSignal(GSN_ACC_ABORTCONF, &Dblqh::execACC_ABORTCONF);
  284.   addRecSignal(GSN_SET_VAR_REQ,  &Dblqh::execSET_VAR_REQ);
  285.   addRecSignal(GSN_TIME_SIGNAL,  &Dblqh::execTIME_SIGNAL);
  286.   addRecSignal(GSN_FSSYNCCONF,  &Dblqh::execFSSYNCCONF);
  287.   addRecSignal(GSN_REMOVE_MARKER_ORD, &Dblqh::execREMOVE_MARKER_ORD);
  288.   //addRecSignal(GSN_DROP_TAB_REQ, &Dblqh::execDROP_TAB_REQ);
  289.   addRecSignal(GSN_PREP_DROP_TAB_REQ, &Dblqh::execPREP_DROP_TAB_REQ);
  290.   addRecSignal(GSN_WAIT_DROP_TAB_REQ, &Dblqh::execWAIT_DROP_TAB_REQ);
  291.   addRecSignal(GSN_DROP_TAB_REQ, &Dblqh::execDROP_TAB_REQ);
  292.   addRecSignal(GSN_LQH_ALLOCREQ, &Dblqh::execLQH_ALLOCREQ);
  293.   addRecSignal(GSN_LQH_WRITELOG_REQ, &Dblqh::execLQH_WRITELOG_REQ);
  294.   // TUX
  295.   addRecSignal(GSN_TUXFRAGCONF, &Dblqh::execTUXFRAGCONF);
  296.   addRecSignal(GSN_TUXFRAGREF, &Dblqh::execTUXFRAGREF);
  297.   addRecSignal(GSN_TUX_ADD_ATTRCONF, &Dblqh::execTUX_ADD_ATTRCONF);
  298.   addRecSignal(GSN_TUX_ADD_ATTRREF, &Dblqh::execTUX_ADD_ATTRREF);
  299.   addRecSignal(GSN_READ_PSUEDO_REQ, &Dblqh::execREAD_PSUEDO_REQ);
  300.   initData();
  301. #ifdef VM_TRACE
  302.   {
  303.     void* tmp[] = { 
  304.       &addfragptr,
  305.       &attrinbufptr,
  306.       &databufptr,
  307.       &fragptr,
  308.       &gcpPtr,
  309.       &lcpPtr,
  310.       &lcpLocptr,
  311.       &logPartPtr,
  312.       &logFilePtr,
  313.       &lfoPtr,
  314.       &logPagePtr,
  315.       &pageRefPtr,
  316.       &scanptr,
  317.       &tabptr,
  318.       &tcConnectptr,
  319.       &tcNodeFailptr,
  320.     }; 
  321.     init_globals_list(tmp, sizeof(tmp)/sizeof(tmp[0]));
  322.   }
  323. #endif
  324.   
  325. }//Dblqh::Dblqh()
  326. Dblqh::~Dblqh() 
  327. {
  328.   // Records with dynamic sizes
  329.   deallocRecord((void **)&addFragRecord, "AddFragRecord",
  330. sizeof(AddFragRecord), 
  331. caddfragrecFileSize);
  332.   deallocRecord((void**)&attrbuf,
  333. "Attrbuf",
  334. sizeof(Attrbuf), 
  335. cattrinbufFileSize);
  336.   deallocRecord((void**)&databuf,
  337. "Databuf",
  338. sizeof(Databuf), 
  339. cdatabufFileSize);
  340.   deallocRecord((void**)&fragrecord,
  341. "Fragrecord",
  342. sizeof(Fragrecord), 
  343. cfragrecFileSize);
  344.   
  345.   deallocRecord((void**)&gcpRecord,
  346. "GcpRecord",
  347. sizeof(GcpRecord), 
  348. cgcprecFileSize);
  349.   
  350.   deallocRecord((void**)&hostRecord,
  351. "HostRecord",
  352. sizeof(HostRecord), 
  353. chostFileSize);
  354.   
  355.   deallocRecord((void**)&lcpRecord,
  356. "LcpRecord",
  357. sizeof(LcpRecord), 
  358. clcpFileSize);
  359.   deallocRecord((void**)&lcpLocRecord,
  360. "LcpLocRecord",
  361. sizeof(LcpLocRecord), 
  362. clcpLocrecFileSize);
  363.   
  364.   deallocRecord((void**)&logPartRecord,
  365. "LogPartRecord",
  366. sizeof(LogPartRecord), 
  367. clogPartFileSize);
  368.   
  369.   deallocRecord((void**)&logFileRecord,
  370. "LogFileRecord",
  371. sizeof(LogFileRecord),
  372. clogFileFileSize);
  373.   deallocRecord((void**)&logFileOperationRecord,
  374. "LogFileOperationRecord", 
  375. sizeof(LogFileOperationRecord), 
  376. clfoFileSize);
  377.   
  378.   deallocRecord((void**)&logPageRecord,
  379. "LogPageRecord",
  380. sizeof(LogPageRecord),
  381. clogPageFileSize);
  382.   deallocRecord((void**)&pageRefRecord,
  383. "PageRefRecord",
  384. sizeof(PageRefRecord),
  385. cpageRefFileSize);
  386.   
  387.   deallocRecord((void**)&tablerec,
  388. "Tablerec",
  389. sizeof(Tablerec), 
  390. ctabrecFileSize);
  391.   
  392.   deallocRecord((void**)&tcConnectionrec,
  393. "TcConnectionrec",
  394. sizeof(TcConnectionrec),
  395. ctcConnectrecFileSize);
  396.   
  397.   deallocRecord((void**)&tcNodeFailRecord,
  398. "TcNodeFailRecord",
  399. sizeof(TcNodeFailRecord),
  400. ctcNodeFailrecFileSize);
  401. }//Dblqh::~Dblqh()
  402. BLOCK_FUNCTIONS(Dblqh)