dsmInitEx

dsmInitEx 함수 호출은 확장된 검증을 위해 추가 매개변수를 사용하여 API 세션을 시작합니다.

구문

dsInt16_t  dsmInitEx   (dsUint32_t        *dsmHandleP,
                        dsmInitExIn_t     *dsmInitExInP,
                        dsmInitExOut_t    *dsmInitExOutP) ;  

매개변수

dsUint32_t *dsmHandleP (O)
이 초기화 세션을 식별하고 후속 IBM® Storage Protect 호출과 연관시키는 핸들입니다.
dsmInitExIn_t *dsmInitExInP
이 구조에는 다음 입력 매개변수가 포함되어 있습니다.
dsmApiVersion *dsmApiVersionP (I)
이 매개변수는 애플리케이션 클라이언트가 이 세션에 사용 중인 API의 버전을 식별하는 데이터 구조에 대한 포인터입니다. 구조에는 dsmapitd.h 파일에 설정된 네 개의 상수 (DSM_API_VERSION, DSM_API_RELEASE, DSM_API_LEVEL및 DSM_API_SUBLEVEL) 값이 포함되어 있습니다. dsmQueryApiVersionEx를 호출하고 애플리케이션 클라이언트의 API 버전과 사용자의 워크스테이션에 설치된 API 라이브러리의 버전이 호환 가능한지 확인하십시오.
char *clientNodeNameP (I)
이 매개변수는 IBM Storage Protect 세션의 노드에 대한 포인터입니다. 모든 세션은 노드 이름과 연관되어야 합니다. dsmapitd.h 파일의 DSM_MAX_NODE_LENGTH 상수는 노드 이름의 최대 크기를 설정합니다.

노드 이름은 대소문자를 구분하지 않습니다.

이 매개변수가 NULL로 설정되고 passwordaccessprompt로 설정되면 API는 전달된 옵션 문자열로부터 먼저 노드 이름 확보를 시도합니다. 노드 이름이 해당 위치에 없는 경우 API는 구성 파일 또는 옵션 파일로부터 노드 이름 확보를 시도합니다. 노드 이름을 찾으려는 시도가 실패하면 UNIX 또는 Linux® API는 시스템 호스트 이름을 사용하는 반면, 다른 운영 체제의 API는 이를 리턴합니다.DSM_RC_REJECT_ID_UNKNOWN.

이 매개변수가 NULL이고 dsm.opt 파일 (Windows API의 경우) 또는 dsm.sys 파일 (UNIX 또는 Linux API의 경우) 의 passwordaccess 옵션이 generate로 설정된 경우, API는 nodename 옵션 값 또는 시스템 호스트 이름을 사용합니다.

char *clientOwnerNameP (I)
이 매개변수는 IBM Storage Protect 세션의 소유자에 대한 포인터입니다. 운영 체제가 다중 사용자 플랫폼인 경우 소유자 이름 NULL(root 사용자)은 오브젝트 소유자에 관계없이 애플리케이션에 속하는 모든 오브젝트를 백업, 아카이브, 복원 또는 검색할 수 있는 권한을 가집니다.

소유자 이름은 대소문자를 구분합니다.

이 매개변수가 NULL이고 dsm.sys 파일의 passwordaccess 옵션이 generate로 설정되면 API는 로그인 사용자 ID를 사용합니다.

참고: 다중 사용자 플랫폼에서는 소유자 이름이 애플리케이션을 실행 중인 세션의 활성 사용자 ID와 일치할 필요가 없습니다.
char *clientPasswordP (I)
IBM Storage Protect 세션이 실행되는 노드의 비밀번호에 대한 포인터입니다. dsmapitd.h 파일의 DSM_MAX_VERIFIER_LENGTH 상수는 비밀번호에 허용된 최대 크기를 설정합니다.

비밀번호는 대소문자가 구분되지 않습니다.

비밀번호 파일이 먼저 시작되는 경우를 제외하고 passwordaccessgenerate로 설정된 경우 이 매개변수의 값은 무시됩니다.

char *userNameP;
이 노드에 대한 클라이언트 권한이 있는 관리 사용자 이름에 대한 포인터입니다.
char *userPasswordP;
userName 매개변수의 비밀번호에 대한 포인터입니다(값이 제공된 경우).
char *applicationType (I)
IBM Storage Protect 세션을 실행 중인 애플리케이션을 식별합니다. 애플리케이션 클라이언트는 값을 식별합니다.

API 애플리케이션 클라이언트가 서버에 대한 세션을 시작할 때마다 클라이언트의 애플리케이션 유형(또는 운영 체제)이 서버에서 업데이트됩니다. 값은 서버의 platform 필드에 입력됩니다. 값에 운영 체제 ID를 사용해 보십시오. 최대 문자열 길이는 DSM_MAX_PLATFORM_LENGTH 상수로 정의되어 있습니다.

애플리케이션 유형의 현재 값을 보려면 dsmQuerySessInfo를 호출하십시오.

char *configfile (I)
API 구성 파일의 완전한 이름이 포함된 문자열을 가리킵니다. API 구성 파일에 지정된 옵션은 클라이언트 옵션 파일에 있는 스펙을 겹쳐씁니다. 옵션 파일은 IBM Storage Protect (클라이언트 또는 API) 가 설치될 때 정의됩니다.
char *options (I)
다음과 같은 사용자 옵션을 포함할 수 있는 문자열을 가리킵니다.
  • Compressalways
  • Servername (UNIX및 Linux 시스템 전용)
  • TCPServeraddr(UNIX 시스템에는 해당 없음)
  • Fromnode
  • Fromowner
  • Passwordaccess

애플리케이션 클라이언트는 옵션 목록을 사용하여 구성 파일이 설정하는 이러한 옵션의 값을 겹쳐쓸 수 있습니다.

옵션은 다음 형식입니다.

  1. 옵션 목록에 지정된 각 옵션은 대시(-)로 시작하며 그 뒤에 옵션 키워드가 표시됩니다.
  2. 그런 다음 키워드 뒤에 등호(=)와 옵션 매개변수가 순서대로 표시됩니다.
  3. 옵션 매개변수에 공백이 포함되어 있는 경우 작은 따옴표 또는 큰 따옴표로 매개변수를 묶으십시오.
  4. 둘 이상의 옵션이 지정된 경우 공백으로 옵션을 분리하십시오.

옵션이 NULL인 경우 모든 옵션에 대한 값은 사용자 옵션 파일 또는 API 구성 파일로부터 가져옵니다.

dirDelimiter
파일 공간, 상위 레벨 또는 하위 레벨 이름의 접두어에 지정되는 디렉토리 구분 기호입니다. 애플리케이션이 시스템 기본값을 겹쳐쓰는 경우에만 dirDelimiter 매개변수를 지정해야 합니다. UNIX 또는 Linux 환경에서 기본값은 슬래시 (/) 입니다. Windows 환경에서 기본값은 백슬래시 (\) 입니다.
useUnicode
유니코드 사용 가능 여부를 나타내는 Boolean 플래그입니다. UNIX및 Windows 시스템 간에 크로스 플랫폼 상호 운용성을 확보하려면 useUnicode 플래그가 false 여야 합니다.
bCrossPlatform
UNIX및 Windows 시스템 간에 플랫폼 간 상호 운용성을 확보하기 위해 설정해야 하는 부울 플래그 (bTrue) 입니다. bCrossPlatform 플래그가 설정되면 API는 파일 공간이 유니코드가 아니고 애플리케이션이 유니코드를 사용하지 않도록 해줍니다. 유니코드를 사용하는 Windows 애플리케이션은 유니코드가 아닌 인코딩을 사용하는 애플리케이션과 호환 가능하지 않습니다. bCrossPlatform 플래그는 유니코드를 사용하는 Windows 애플리케이션에는 설정되어서는 안됩니다.
UseTsmBuffers
버퍼 사본 제거 사용 여부를 나타냅니다.
numTsmBuffers
useTsmBuffers=bTrue인 경우 버퍼 수입니다.
bEncryptKeyEnabled
애플리케이션 관리 키를 사용한 암호화가 사용되는지 여부를 나타냅니다.
encryptionPasswordP
암호화 비밀번호입니다.
제한사항: encryptkey=save인 경우 암호화 키가 있으면 encryptionPasswordP 에 지정된 값이 무시됩니다.
dsmAppVersion *appVersionP (I)
이 매개변수는 API 세션을 시작하는 애플리케이션의 버전 정보를 식별하는 데이터 구조에 대한 포인터입니다. 구조에는 tsmapitd.h 파일에 설정된 네 개의 상수 값(applicationVersion, applicationRelease, applicationLevel, applicationSubLevel)이 포함됩니다.
dsmInitExOut_t *dsmInitExOut P
이 구조에는 출력 매개변수가 포함되어 있습니다.
dsUint32_t *dsmHandle (0)
초기화 세션을 식별하여 후속 API 호출과 연관시키는 핸들입니다.
infoRC
리턴 코드에 대한 추가 정보입니다. 함수 리턴 코드와 infoRC 값 둘 모두를 확인하십시오. infoRC 값 DSM_RC_REJECT_LASTSESS_CANCELED (69), IBM Storage Protect 는 관리자가 마지막 세션을 취소했음을 표시합니다.

리턴 코드

리턴 코드 번호는 괄호 ( ) 안에 표시됩니다.

표 1. dsmInitEx 의 리턴 코드
리턴 코드 설명
DSM_RC_ABORT_SYSTEM_ERROR (1) IBM Storage Protect 서버가 시스템 오류를 발견하고 클라이언트에 알렸습니다.
DSM_RC_REJECT_VERIFIER_EXPIRED (52) 비밀번호가 만료되었으므로 업데이트해야 합니다. 다음 호출은 이 호출에 대해 리턴된 핸들이 포함된 dsmChangePW여야 합니다.
DSM_RC_REJECT_ID_UNKNOWN (53) 노드 이름을 찾을 수 없습니다.
DSM_RC_TA_COMM_DOWN (103) 통신 링크가 작동 중지되었습니다.
DSM_RC_AUTH_FAILURE (137) 인증에 실패했습니다.
DSM_RC_NO_STARTING_DELIMITER (148) 패턴에 시작 구분 기호가 없습니다.
DSM_RC_NEEDED_DIR_DELIMITER (149) 디렉토리 구분 기호는 match directories 메타 문자열(...) 바로 앞과 뒤에 필요하지만 찾을 수 없습니다.
DSM_RC_NO_PASS_FILE (168) 비밀번호 파일을 사용할 수 없습니다.
DSM_RC_UNMATCHED_QUOTE (177) 일치하지 않는 따옴표가 옵션 문자열에 있습니다.
DSM_RC_NLS_CANT_OPEN_TXT (0610) 메시지 텍스트 파일을 열 수 없습니다.
DSM_RC_INVALID_OPT (2013) 옵션 문자열의 항목이 올바르지 않습니다.
DSM_RC_INVALID_DS_HANDLE (2014) DSM 핸들이 올바르지 않습니다.
DSM_RC_NO_OWNER_REQD (2032) passwordaccessgenerate로 설정된 경우 소유자 매개변수는 NULL이어야 합니다.
DSM_RC_NO_NODE_REQD (2033) 노드 매개변수는 passwordaccess가 생성하도록 설정된 경우 NULL이어야 합니다.
DSM_RC_WRONG_VERSION (2064) 애플리케이션 클라이언트의 API 버전이 IBM Storage Protect 버전보다 높은 값을 갖습니다.
DSM_RC_PASSWD_TOOLONG (2103) 지정된 비밀번호가 너무 깁니다.
DSM_RC_NO_OPT_FILE (2220) 구성 파일을 찾을 수 없습니다.
DSM_RC_INVALID_KEYWORD (2221) 옵션 문자열에 지정된 키워드가 올바르지 않습니다.
DSM_RC_PATTERN_TOO_COMPLEX (2222) Include-Exclude 패턴이 너무 복잡하여 IBM Storage Protect에서 해석할 수 없습니다.
DSM_RC_NO_CLOSING_BRACKET (2223) 패턴에 종료 대괄호가 없습니다.
DSM_RC_INVALID_SERVER (2225) 다중 사용자 환경에 대해 시스템 구성 파일에서 서버를 찾을 수 없습니다.
DSM_RC_NO_HOST_ADDR (2226) 호스트에 연결하기 위한 정보가 충분하지 않습니다.
DSM_RC_MACHINE_SAME (2227) 옵션 파일에 정의된 노드 이름은 시스템 호스트 이름과 같을 수 없습니다.
DSM_RC_NO_API_CONFIGFILE (2228) 구성 파일을 열 수 없습니다.
DSM_RC_NO_INCLEXCL_FILE (2229) Include-Exclude 파일을 찾을 수 없습니다.
DSM_RC_NO_SYS_OR_INCLEXCL (2230) dsm.sys 또는 include-exclude 파일을 찾을 수 없습니다.