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

📄 datarecovery_impl.h

📁 oracle下调用数据泵接口进行远程数据导出和导入(数据恢复)的CORBA服务
💻 H
字号:
//      DataRecovery_impl.h//     北京本地数据恢复服务接口DataRecovery.idl的实现//#ifndef  __DataRecovery_impl_h__#define  __DataRecovery_impl_h__#include <Thread.h>#include <STAR/CORBA.h>#include <STAR/Afls.h>#include <MTL/MTL.h>#include "DataRecovery_skel.h"#include "DataRecovery.h"#include "TimeOutThread.h"#include <checkConfig.h>//#include "SH_DataRecovery.h"                  //上海数据恢复服务的客户端代理(^)//#include "GZ_DataRecovery.h"                  //广州数据恢复服务的客户端代理(^)#include "RecoveryThread.h"#include <predefine.h>#include <TimeInterval.h>#include <queryserver.h>#include <divideserver.h>//用于获得表的信息#include <config.h>#include <tableinfo.h>#include <register.h>//用于取得文件的大小#include<sys/stat.h>#include<unistd.h>#include <CDataDistributionManager.h>            //异地数据分布状态管理服务的客户端代理class CRecoveryThread;                           //为了解决头文件相互包含问题而做的typedef ThreadHandleT<CRecoveryThread> RecoveryThreadHandle;class   DataRecovery_impl:public MTLMonitor,                        virtual public POA_DataRecovery,                        virtual public PortableServer::RefCountServantBase{	          			DataRecovery_impl(const DataRecovery_impl&);			void operator=(const DataRecovery_impl&);						//PortableServer::POA_var poa_;						//poa,用于注销对象			PortableServer::POA_var m_poa;			IQueryServer_var 		m_SServer;			IDivideServer_var m_DivServer;			char * 			m_AflsConfig;			CORBA::ORB_var m_orb;			//CConfCheck AflsConfCheck;							CORBA::Object_var aflsobj;			Afls_var afls;			CConfig m_config;			CDataDistributionManager*     m_pDdmServer;			char   m_blockId [DXX_BLOCK_ID_LENGTH];			//char*   m_beginTime;			//char*   m_endTime;			TimeInterval m_time;			char    m_strProvinceCode[ MAX_PROVINCE_ID_STR_LENGTH ];			char    m_TableName[ MAX_TABLE_NAME_LENGTH ];			char    m_strStatement[ MAX_STATEMENT_LEN ];			int     my_id;     //北京								//当恢复数据为日志表时需要用的结构			Records_var	m_values;			Records_var	test_values;			IResult_var m_result;			char   m_MinDate[20];      //Date的长度为20			int    m_nInterval;        //分割单位为天数			//根据用户提交的nFileSize来确定每次返回给用户的最大纪录条数			int     m_RecordsNum;						int     m_DXX_TABLE[25];			int     m_nDXX_TABLE_FIELD;									int     m_nFieldCount;			int     m_nSDataLen;			int     m_nTableType;			//COMMON_DXXs   m_ComDxx;			VDZFX_DXXs   m_DzfxDxx;			VDZCT_DXXs   m_DzctDxx;			VDZFD_DXXs   m_DzfdDxx;			VDZJS_DXXs   m_DzjsDxx;			VNRCT_DXXs   m_NrctDxx;			VNRFD_DXXs   m_NrfdDxx;			VNRJC_DXXs   m_NrjcDxx;			VNRJS_DXXs   m_NrjsDxx;			VJM_DXXs       m_JmDxx;			VBF_DXXs       m_BfDxx;						//数据恢复线程,主要的恢复过程在线程里面控制			RecoveryThreadHandle m_pRecoveryThread;  						int nFormSelectStatement(const char* blockId,			       const TimeInterval timeInter,			       const char* strProvinceCode,			       const char* TableName);			int nInitORB();			int nLoadIn();						//超时更新最后的操作时间			void UpdateTime();			//时间			time_t last_int;			//超时线程			TimeOutThreadHandle m_TimeThread;			//获得最近一次操作的时间			int nGetLastTime();						//返回用户id			//const char* getUserID();						//超时设置时间			CORBA::Short m_maxIdleTime;						//CGZ_DataRecovery *  m_pGZDataRecovery;			//CSH_DataRecovery *  m_pSHDataRecovery;							      public:	      	DataRecovery_impl(PortableServer::POA_ptr poa, TimeOutThreadHandle ttTimeThread, CORBA::Short timeOut);            ~DataRecovery_impl();            virtual PortableServer::POA_ptr _default_POA();                        CORBA::Short loseData(const char* blockId,                                  const char* beginTime,                                  const char* endTime,                                  const char* strProvinceCode,                                  const char* TableName)throw(CORBA::SystemException);            CORBA::Short nBeginGetData(const char* blockId,									   const char* beginTime,									   const char* endTime,                                       const char* strProvinceCode,                                       const char* strTableName,                                       const char* strFileName,                                       const char* strPathName,                                       CORBA::Short nFileSize,                                       CORBA::Short timeout,                                       CORBA::Short nTableType,                                       CORBA::Long_out lRealFileSize,                                       CORBA::Short_out nExpdTimes)throw(CORBA::SystemException);                      //这个函数可能是用于给           CORBA::Short nGetNextData(Records_out values)throw(CORBA::SystemException);				  				  //				  // Operation declare nGetNextDataTJ				  //				  virtual CORBA::Short nGetNextDataTJ(CORBA::Short times,				                                      const char* TableName)				      throw(CORBA::SystemException);				      	    			 //可能是接受当中有问题,中途有问题,取消操作(供外界调用)           CORBA::Short nCancel()throw(CORBA::SystemException);										//					// Operation declare nTableType					//					virtual CORBA::Short nTableType(const char* strTableName)					    throw(CORBA::SystemException); 					    	              char* strErrorMessage(CORBA::Short nErrorId) throw(CORBA::SystemException);			     //			     // Operation declare transfer			     //			     virtual CORBA::Short transfer(DataRecovery::RECOVERED_DATA& R_Data)			         throw(CORBA::SystemException);			     float fEstimateFileSize(const char* strTableName);	      		      	//是否超时	      	boolean isTimeOut(time_t curr_int);	      				//释放结果集对象			virtual void destroy()			    throw(CORBA::SystemException);	      			           public:			int nRecoveryProcess();         			int nNeedRecovery();			int nRefuse();};#endif

⌨️ 快捷键说明

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