| /**********************************************************************
|
| // @@@ START COPYRIGHT @@@ |
| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| // @@@ END COPYRIGHT @@@ |
| ********************************************************************/
|
| /**************************************************************************
|
| **************************************************************************/
|
| // RegValues.h
|
| #ifndef RegValues_H_DEFINED_
|
| #define RegValues_H_DEFINED_
|
|
|
| // NOTE: There is a problem compiling this file under the
|
| // driver project (which is an MFC DLL) and any server
|
| // project (which in NOT an MFC DLL). The following
|
| // #ifdef takes care of those problems.
|
| //
|
| #ifdef _AFXDLL
|
| #include <stdafx.h>
|
| #else
|
| #include <windows.h>
|
| #endif
|
|
|
| #include <stdio.h>
|
| #include <winreg.h>
|
| #include <process.h>
|
|
|
| #if defined(NSK_PLATFORM) || defined(NA_LINUX)
|
| #include "Global.h"
|
| #endif
|
|
|
| //#include "OMXTypes.h"
|
| #define MAX_IPADDRESS_LEN 100
|
| #define MAX_FILENM_LEN 1024
|
| #define MAX_NETBIOS_NAME_LEN 256
|
| #define MAX_SID_LEN 68
|
| #define MAX_SQL_ID_LEN 128
|
| #define MAX_NODE_CNT 16
|
| #define MAX_ANON_LOGON_DS_LST 2048
|
| #define LOCAL_HOST_IP_ADDRESS "127.0.0.0"
|
|
|
|
|
| // strings used to build RegValues lookup keys
|
| #define MAX_REGKEY_PATH_LEN 1000
|
| #define _CLUSTER_NAME_VAL_NM "Cluster-Name"
|
| #define _IMAGE_PATH_VAL_NM "ImagePath"
|
| #define _BOOT_CONFIG_VAL_NM "Boot-Config"
|
| #define _CLUSTER_KEY "CLUSTER"
|
| #define _NODE_KEY "NODE"
|
| #define _NETBIOS_VAL_NM "NetBiosName"
|
| #define _DNSNM_VAL_NM "DNSName"
|
| #define _ODBC_KEY "ODBC"
|
| #define _VERSION_VAL_NM "Version"
|
| #define _ANCHOR_FILE_VAL_NM "Anchor-File"
|
| #define _AUTOMATIC_START_VAL_NM "AutomaticStart"
|
| #define _FAILOVER_VAL_NM "FailOver"
|
| #define _PRIMARY_VAL_NM "PrimaryNode"
|
| #define _EXTERNAL_IPADDRESS_VAL_NM "ExternalIPAddress"
|
| #define _ODBC_ENABLED4NODE "ODBCEnabled4Node"
|
| #define _IPADDRESS_VAL_NM "IPAddress"
|
| #define _IPPORT_ID_VAL_NM "IpPortId"
|
| // obsoleted Registry Value as of SQL/MX Install, 5/30/98
|
| #define _IPPORT_RANGE_VAL_NM "IpPortRange"
|
| #define _IPPORT_MAX_VAL_NM "IpPortIdMax"
|
| #define _DEF_AVAIL_CNT "DefAvailCnt"
|
| #define _DEF_INIT_CNT "DefInitCnt"
|
| #define _DEF_MAX_CNT "DefMaxCnt"
|
| //#define _DBG_PRESTART_CFG_SVC "DbgPreStartCfgSvc"
|
| //#define _DBG_PRESTART_SQL_SVC "DbgPreStartSQLSvc"
|
| #define _DBG_FLAG "DebugFlag"
|
| #define _EVENT_LEVEL "EventLevel"
|
| // tja 10/15/98
|
| // added to detect location of the SQL system catalog
|
| // so that determination of SQL installation completion
|
| // possible
|
| #define _SQL_KEY "SQL"
|
| #define _SQL_SYSTEM_VOLUME_NM "System-Volume"
|
| #define _DP2_KEY "DP2"
|
| #define _DIRECTORY_VAL_NM "Directory"
|
|
|
|
|
| #define ANON_LOGON_NOT_ALLOWED 0
|
| #define ANON_LOGON_ALLOWED 1
|
| // not RW implies read only access
|
| #define ANON_LOGON_RW_ALLOWED 2
|
|
|
|
|
| typedef struct RGNodeDesc_t {
|
| char IpAddress[MAX_IPADDRESS_LEN + 1];
|
| char NetBiosName[MAX_NETBIOS_NAME_LEN + 1];
|
| char ExternalIpAddress[MAX_IPADDRESS_LEN + 1];
|
| BOOL ODBCEnabled4Node;
|
| } RGNodeDesc_def;
|
|
|
| #define MAX_NODES_PER_CLUSTER 16
|
|
|
|
|
| class RegValues
|
| {
|
| public:
|
|
|
| void SET_BootCfgVal ( char* pNewValue );
|
| void SET_ImagePathVal ( char* pNewValue );
|
| void SET_TandemIdVal ( char* pNewValue );
|
|
|
| BOOL _NODEOn( long NodeNum );
|
| BOOL _NODEOn( long NodeNum , long CPUList );
|
| long _NODEMask( void );
|
| void SET_NODEExternalIpAddr ( long NodeNum
|
| ,char *pODBCIpAddress );
|
| char* _CfgNODEExternalIpAddr ( long NodeNum );
|
| char* _CfgNODENetBiosNm ( long NodeNum );
|
| char* _NodeNm ( long NodeNum );
|
| short _NodeNum ( char* pzNodeNm );
|
| long SET_ODBCCfgVals ();
|
| char* _ODBCCfgAnchorFileNm ( void );
|
| char* _ODBCCfgASIpAddress ( void );
|
| long _ODBCCfgFailOver ( void );
|
| void SET_FailOverDisabled ( void );
|
| void SET_NodeDisabled ( long NodeNum );
|
| long _ODBCCfgPrimaryNode ( void );
|
| long _ODBCCfgASIpPortId ( void );
|
| void SET_ODBCASObjRef ( void );
|
| char * _ODBCASObjRef ( void );
|
| void SET_ODBCCAObjRef ( void );
|
| void SET_ODBCCAObjRef ( char* pzNewObjRefValue );
|
| char * _ODBCCAObjRef ( void );
|
| short _MyNodeNum ( void );
|
| char * _LocalComputerName ( void );
|
| long _ODBCOleCfgSrvrIpPortId ( void );
|
| long _ODBCCfgIpPortRange ( void );
|
| long _ODBCCfgIpPortIdMax ( void );
|
| long _ODBCCfgVersion ( void );
|
| long _ODBCCfgDefInitCnt ( void );
|
| long _ODBCCfgDefMaxCnt ( void );
|
| long _ODBCCfgDefAvailCnt ( void );
|
| char* _CfgNODENm (long NodeNum ) ;
|
| BOOL _CfgODBCEnabled4Node ( long NodeNum );
|
| long _ODBCDbgDetail ( void );
|
| long _ODBCEventLevel (void);
|
| BOOL _bIsPrimary ( void );
|
| char* _SQLSystemVolQualifier ( void );
|
| char* _SQLSystemVolumeNmVal ( void );
|
| char * _ImagePathVal () { return ImagePathVal; };
|
| void _SetIpPortRange( long IpPortRange ) {ODBCCfgIpPortRange=IpPortRange;}
|
| #if defined(NSK_PLATFORM) || defined(NA_LINUX)
|
| long _CPUCnt (char *CPUList, short neoMaxNode);
|
| bool _CPUspawnOn(short& nextCPUspawn, long& cpuNumber, short& segmentIndex, NEO_SEGMENT* neoSegment, short segmentMax);
|
| #endif
|
| RegValues();
|
| ~RegValues();
|
|
|
| private:
|
|
|
| char BootCfgPath[MAX_REGKEY_PATH_LEN + 1] ;
|
| char TandemIdVal[MAX_SID_LEN + 1] ;
|
| char ImagePathVal[MAX_FILENM_LEN + 1];
|
| char ClusterCfgPath[MAX_REGKEY_PATH_LEN + 1];
|
| char ODBCCfgPath[MAX_REGKEY_PATH_LEN + 1] ;
|
| char ODBCCfgAnchorFileNm[MAX_FILENM_LEN + 1];
|
| char ODBCCfgVersion[10];
|
| long ODBCCfgAutomaticStart;
|
| long ODBCCfgFailOver;
|
| long ODBCCfgPrimaryNode;
|
| char ODBCCfgASIpAddress[MAX_IPADDRESS_LEN + 1];
|
| long ODBCCfgASIpPortId ;
|
| char ODBCASObjRef[128];
|
| char LocalComputerName[128];
|
| long ODBCOleCfgSrvrIpPortId;
|
| long ODBCCfgIpPortRange;
|
| long ODBCCfgIpPortIdMax;
|
| long ODBCCfgDefInitCnt;
|
| long ODBCCfgDefMaxCnt;
|
| long ODBCCfgDefAvailCnt;
|
| long ODBCDbgDetail;
|
| long ODBCEventLevel;
|
| long NODECnt;
|
| long NODEMask;
|
| RGNodeDesc_def NodeDescList[MAX_NODE_CNT];
|
| char SQLSystemVolQualifier[MAX_FILENM_LEN + 1];
|
| char SQLSystemVolumeNmVal[MAX_FILENM_LEN + 1]; // Used by tdm_Odbcinit.exe
|
|
|
| long CPUCnt;
|
| char *CPUMask; // In expand, nodes can go upto 256 and 16 CPUs per node
|
| };
|
|
|
| extern long InstantiateRGObject();
|
| extern RegValues *RG;
|
| #endif
|