blob: 9b8cf82c6f43b620cc9a73f8d25416ad1799532a [file] [log] [blame]
/**********************************************************************
// @@@ 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