dsmSendData
dsmSendData 함수 호출은 버퍼를 통해 데이터의 바이트 스트림을 IBM® Storage Protect 로 전송합니다. 애플리케이션 클라이언트는 서버에 있는 스토리지에 대한 모든 유형의 데이터를 전달할 수 있습니다. 일반적으로 이러한 데이터는 파일 데이터이지만 파일 데이터로 제한되지는 않습니다. 전송하려는 데이터의 바이트 스트림이 큰 경우 dsmSendData 를 여러 번 호출할 수 있습니다.
제한사항: 애플리케이션 클라이언트는 dsmSendData 호출이 리턴될 때까지 dsmSendData 에 지정된 버퍼를 재사용할 수 없습니다.
팁: IBM Storage Protect 가 코드 157 (DSM_RC_WILL_ABORT) 을 리턴하는 경우 dsmEndSendObj 에 대한 호출을 시작한 후 DSM_VOTE_COMMIT를 선택하여 dsmEndTxn 에 대한 호출을 시작하십시오. 그런 다음 애플리케이션은 리턴 코드 2302 (DSM_RC_CHECK_REASON_CODE) 를 수신하고 이유 코드를 다시 애플리케이션 사용자에게 전달합니다. 이를 통해 사용자에게
서버가 트랜잭션을 종료하는 이유를 알립니다.
구문
dsInt16_t dsmSendData (dsUint32_t dsmHandle,
DataBlk *dataBlkPtr); 매개변수
- dsUint32_t dsmHandle (I)
- 이 호출을 이전의 dsmInitEx 호출과 연관시키는 핸들입니다.
- DataBlk *dataBlkPtr (I/O)
- 버퍼 크기와 이 매개변수는 데이터가 전송되어 오는 버퍼에 대한 포인터를 둘 다 포함하는 구조를 가리킵니다. 리턴 시 이 구조에는 실제로 전송되는 바이트 수가 포함되어 있습니다. 유형 정의에 대해서는 API 유형 정의 소스 파일 을 참조하십시오.
리턴 코드
리턴 코드 번호는 괄호 ( ) 안에 표시됩니다.
| 리턴 코드 | 설명 |
|---|---|
| DSM_RC_NO_COMPRESS_MEMORY (154) | 데이터 압축 또는 확장 수행에 사용할 수 있는 메모리가 부족합니다. |
| DSM_RC_COMPRESS_GREW (155) | 압축 중에 원래 데이터에 비해 압축된 데이터의 크기가 증가했습니다. |
| DSM_RC_WILL_ABORT (157) | 알 수 없는 예기치 않은 오류가 발생하여 트랜잭션이 정지되었습니다. |
| DSM_RC_WRONG_VERSION_PARM (2065) | 애플리케이션 클라이언트의 API 버전이 IBM Storage Protect 라이브러리 버전과 다릅니다. |
| DSM_RC_NEEDTO_ENDTXN (2070) | 트랜잭션을 종료해야 합니다. |
| DSM_RC_OBJ_EXCLUDED (2080) | Include-Exclude 목록에서 오브젝트를 제외합니다. |
| DSM_RC_OBJ_NOBCG (2081) | 오브젝트가 백업 사본 그룹을 포함하고 있지 않아 서버에 전송되지 않습니다. |
| DSM_RC_OBJ_NOACG (2082) | 오브젝트가 아카이브 사본 그룹을 포함하고 있지 않아 서버에 전송되지 않습니다. |
| DSM_RC_SENDDATA_WITH_ZERO_SIZE (2107) | 오브젝트는 sizeEstimate가 0바이트인 데이터를 전송할 수 없습니다. |