| /********************************************************************** |
| // @@@ 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 @@@ |
| **********************************************************************/ |
| /**************************************************************************
|
| **************************************************************************/
|
| //
|
| // MODULE: ASSOCSVC.IDL
|
| //
|
| // PURPOSE: Describes the ODBC ASSOCIATION services (AS).
|
| //
|
| // Modification History
|
| //
|
| // Rewrote all the method definitions since old definitions were not applicable
|
| // with the new approach
|
| //
|
| #ifndef ASSOCSVC_H_
|
| #define ASSOCSVC_H_
|
|
|
| #include "odbcCommon.idl"
|
| #include "odbcsrvrcommon.idl"
|
|
|
| typedef struct DATASOURCE_STATUS_t
|
| {
|
| SQL_IDENTIFIER_def DSName;
|
| DS_AUTOMATION_def DSAutomation;
|
| short defaultFlag;
|
| long DSState;
|
| long MaxSrvrCnt;
|
| long InitSrvrCnt;
|
| long AvailSrvrCnt;
|
| long StartAheadCnt;
|
| long CurrentSrvrRegistered;
|
| long CurrentSrvrConnected;
|
| TIME_def StateChangeTime;
|
| } DATASOURCE_STATUS_def;
|
|
|
| typedef struct SRVR_STATUS_t
|
| {
|
| long srvrType;
|
| IDL_OBJECT_def srvrObjRef;
|
| short nodeId;
|
| unsigned long srvrProcessId;
|
| SQL_IDENTIFIER_def DSName;
|
| char processName[MAX_PROCESS_NAME_LEN];
|
| long srvrState;
|
| char computerName[MAX_COMPUTERNAME_LENGTH*4+1];
|
| unsigned long clientProcessId;
|
| string userName;
|
| string windowText;
|
| DIALOGUE_ID_def dialogueId;
|
| TIME_def lastUpdatedTime;
|
| VERSION_def srvrVersion;
|
| } SRVR_STATUS_def;
|
|
|
| typedef struct AS_CFG_STATUS_t
|
| {
|
| short ASNodeId;
|
| long ASProcessId;
|
| long ASSrvrState;
|
| char ASProcessName[MAX_PROCESS_NAME_LEN];
|
| IDL_OBJECT_def ASSrvrObjRef;
|
| TIME_def ASLastUpdatedTime;
|
| VERSION_def ASVersion;
|
| short CfgNodeId;
|
| long CfgProcessId;
|
| long CfgSrvrState;
|
| char CfgProcessName[MAX_PROCESS_NAME_LEN];
|
| IDL_OBJECT_def CfgSrvrObjRef;
|
| TIME_def CfgLastUpdatedTime;
|
| VERSION_def CfgVersion;
|
| } AS_CFG_STATUS_def;
|
|
|
| typedef sequence<DATASOURCE_STATUS_def> DATASOURCE_STATUS_LIST_def;
|
|
|
| typedef sequence<SRVR_STATUS_def> SRVR_STATUS_LIST_def;
|
|
|
| module odbcas {
|
|
|
| #define AS_uuid ((UUID_def) "9101c0ac-e07a-11d0-a543-0060b01ad6ae")
|
|
|
| // note clusterNm is unused but defined in the hopes that the
|
| // cluster will have its own identify
|
|
|
| interface ASSvc
|
| {
|
| exception ASParamError {string ErrorText;};
|
| exception ASTimeout {string ErrorText;};
|
| exception ASNoSrvrHdl {};
|
| exception ASRejectRegistry{string ErrorText;};
|
| exception ASRegistryFailed{};
|
| exception ASTryAgain{};
|
| exception ASStateChangeError{string ErrorText;};
|
| exception SQLError {ERROR_DESC_LIST_def errorList;};
|
| exception PortNotAvailable {};
|
| exception DSNotFound {};
|
| exception DSAlreadyStopped {};
|
| exception DSAlreadyStarted {} ;
|
| exception DSStateChangeError {};
|
| exception ProcessStopError {};
|
| exception ASNotAvailable {string ErrorText;};
|
| exception DSNotAvailable {string ErrorText;};
|
| exception SrvrNotFound {};
|
| exception SrvrInUseByAnotherClient{};
|
| exception InvalidUser{};
|
| exception SrvrCreateError{};
|
| exception CfgSrvrFailed{};
|
| exception LogonUserFailure{long errorCode;};
|
| exception TraceAlreadyEnabled {};
|
| exception TraceAlreadyDisabled {} ;
|
| exception TraceEnableError {};
|
| exception TraceDisableError {};
|
|
|
| void RegProcess (
|
| in VERSION_def intfVersion,
|
| in long srvrType,
|
| in IDL_OBJECT_def srvrObjRef,
|
| in PROCESS_ID_def nskProcessInfo,
|
| out SRVR_CONTEXT_def srvrContext)
|
| raises (ASParamError,
|
| ASTimeout,
|
| ASRegistryFailed,
|
| ASRejectRegistry);
|
|
|
| // RetryCount will determine if the connection request is coming from the
|
| // same client or it is a new client, to decide if the association server need
|
| // to start a new server when needed.
|
| // datasource is the datasource to which the client is connected.
|
| void GetObjRefHdl(
|
| in CONNECTION_CONTEXT_def inContext,
|
| in USER_DESC_def userDesc,
|
| in long srvrType,
|
| in short retryCount,
|
| out IDL_OBJECT_def srvrObjRef,
|
| out DIALOGUE_ID_def dialogueId,
|
| out SQL_IDENTIFIER_def dataSource,
|
| out USER_SID_def userSid,
|
| out VERSION_LIST_def versionList,
|
| out long isoMapping,
|
| out short srvrNodeId,
|
| out short srvrProcessId,
|
| out long long timestamp)
|
| raises (ASParamError,
|
| ASTimeout,
|
| ASNoSrvrHdl,
|
| ASTryAgain,
|
| ASNotAvailable,
|
| DSNotAvailable,
|
| PortNotAvailable,
|
| InvalidUser,
|
| LogonUserFailure);
|
|
|
| void UpdateSrvrState (
|
| in long srvrType,
|
| in IDL_OBJECT_def srvrObjRef,
|
| in long srvrState,
|
| in long userID,
|
| in char userSID[MAX_TEXT_SID_LEN+1],
|
| out long TraceType,
|
| out long StatisticsType,
|
| out long ContextType,
|
| out SRVR_CONTEXT_def srvrContext)
|
| raises (ASParamError,
|
| ASTimeout,
|
| ASStateChangeError);
|
|
|
| void SrvrMonitorCall(in long srvrType,
|
| in IDL_OBJECT_def srvrObjRef,
|
| in long DSId);
|
|
|
| void StartAS (out ERROR_DESC_LIST_def sqlWarning)
|
| raises (ASParamError, DSAlreadyStarted, DSStateChangeError, PortNotAvailable,
|
| SQLError, ASTryAgain, SrvrCreateError, CfgSrvrFailed);
|
|
|
| void StopAS (in long StopType,
|
| in string ReasonText)
|
| raises (ASParamError, DSStateChangeError, ProcessStopError);
|
|
|
| void StartDS(in SQL_IDENTIFIER_def DSName,
|
| out ERROR_DESC_LIST_def sqlWarning)
|
| raises (ASParamError, DSNotFound, DSAlreadyStarted, DSStateChangeError, PortNotAvailable,
|
| SQLError, SrvrCreateError);
|
|
|
| void StopDS(in SQL_IDENTIFIER_def DSName,
|
| in long StopType,
|
| in string ReasonText)
|
| raises (ASParamError, DSNotFound, DSAlreadyStopped, DSStateChangeError, ProcessStopError);
|
|
|
| void StatusAS(out AS_CFG_STATUS_def AsCfgStatus);
|
|
|
| void StatusDS (in SQL_IDENTIFIER_def DSName,
|
| out DATASOURCE_STATUS_def DSStatus)
|
| raises (ASParamError, DSNotFound);
|
|
|
| void StatusDSDetail (in SQL_IDENTIFIER_def DSName,
|
| out SRVR_STATUS_LIST_def srvrListStatus)
|
| raises (ASParamError, DSNotFound, ASNotAvailable, DSNotAvailable);
|
|
|
| void StatusSrvrAll (out SRVR_STATUS_LIST_def srvrListStatus)
|
| raises (ASParamError, ASNotAvailable);
|
|
|
| void StopSrvr(in DIALOGUE_ID_def dialogueId,
|
| in long srvrType,
|
| in IDL_OBJECT_def srvrObjRef,
|
| in long StopType)
|
| raises (ASParamError, ASNotAvailable, SrvrNotFound, SrvrInUseByAnotherClient, ProcessStopError);
|
|
|
| void StatusDSAll (out DATASOURCE_STATUS_LIST_def DSListStatus)
|
| raises (ASParamError);
|
|
|
| // Initially thought this method should be 'DoIDie'
|
| // wanted an optimistic method name. 'ShouldILive' Still didn't sound right
|
| // and hence 'WouldLikeToLive'
|
|
|
| void WouldLikeToLive (in long srvrType,
|
| in IDL_OBJECT_def srvrObjRef,
|
| out long lifePermit)
|
| raises (ASParamError);
|
|
|
| // for testing AS
|
|
|
| void SetTestPoint(
|
| in DIALOGUE_ID_def dialogueId,
|
| in short TestPoint,
|
| in unsigned long Operation)
|
| raises (ASParamError);
|
|
|
| void ClearTestPoint(
|
| in DIALOGUE_ID_def dialogueId,
|
| in short TestPoint,
|
| in unsigned short Operation)
|
| raises (ASParamError);
|
|
|
| void DataSourceConfigChanged ( in IDL_OBJECT_def dataSourceName,
|
| in long dataSourceOperation, in long dataSourceOperationValue)
|
| raises (ASParamError);
|
|
|
| //
|
| // General Parameter Interface
|
| //
|
| void GeneralParam(
|
| in GEN_ParamList_def paramList)
|
| raises (ASParamError);
|
|
|
| void EnableTrace(in SQL_IDENTIFIER_def DSName, in DIALOGUE_ID_def dialogueId, in IDL_OBJECT_def srvrObjRef, in long traceType)
|
| raises (ASParamError, DSNotFound, DSAlreadyStopped, TraceAlreadyEnabled, TraceEnableError);
|
|
|
| void DisableTrace(in SQL_IDENTIFIER_def DSName, in DIALOGUE_ID_def dialogueId, in IDL_OBJECT_def srvrObjRef, in long traceType)
|
| raises (ASParamError, DSNotFound, DSAlreadyStopped, TraceAlreadyDisabled, TraceDisableError);
|
|
|
| void GetVersionAS(out VPROC_def ASVersion);
|
|
|
| }; // end of interface ASSvc
|
|
|
| };
|
| #endif
|