55.9. 트랜잭션 지원
55.9.1. BAPI 트랜잭션 모델 링크 복사링크가 클립보드에 복사되었습니다!
SAP 구성 요소는 SAP와의 아웃바운드 통신을 위해 BAPI 트랜잭션 모델을 지원합니다. 전송됨 옵션이 true
로 설정된 URL이 있는 대상 끝점은 끝점의 아웃바운드 연결에서 상태 저장 세션을 시작하고 교환에 Camel Synchronization 오브젝트를 등록합니다. 이 동기화 오브젝트는 BAPI 서비스 메서드 BAPI_TRANSACTION_COMMIT
를 호출하고 메시지 교환 처리가 완료되면 상태 저장 세션을 종료합니다. 메시지 교환의 처리가 실패하면 동기화 오브젝트는 BAPI 서버 메서드 BAPI_TRANSACTION_ROLLBACK
을 호출하고 상태 저장 세션을 종료합니다.
55.9.2. RFC 트랜잭션 모델 링크 복사링크가 클립보드에 복사되었습니다!
tRFC 프로토콜은 고유한 트랜잭션 식별자(TID)로 각 트랜잭션 요청을 식별하여 AT-MOST-ONCE 전달 및 처리 보증을 수행합니다. TID는 프로토콜에 전송되는 각 요청과 함께 제공됩니다. tRFC 프로토콜을 사용하는 전송 애플리케이션은 요청을 보낼 때 고유한 TID로 요청의 각 인스턴스를 식별해야 합니다. 애플리케이션은 지정된 TID를 사용하여 요청을 여러 번 보낼 수 있지만, 프로토콜을 통해 요청이 수신 시스템에서 한 번 전달 및 처리됩니다. 애플리케이션은 요청을 보낼 때 통신 또는 시스템 오류가 발생할 때 지정된 TID로 요청을 재전송하도록 선택할 수 있으므로 수신 시스템에서 해당 요청이 전달 및 처리되었는지 여부에 대한 확신이 있습니다. 통신 오류가 발생할 때 요청을 다시 전송하면 tRFC 프로토콜을 사용하는 클라이언트 애플리케이션이 요청에 대해 EXACTLY-ONCE 전달 및 처리 보장을 보장할 수 있습니다.
55.9.3. 어떤 거래 모델을 사용할 수 있습니까? 링크 복사링크가 클립보드에 복사되었습니다!
BAPI 트랜잭션은 애플리케이션 수준 트랜잭션으로, ACID가 SAP 데이터베이스의 BAPI 방법 또는 RFC 함수에 의해 수행되는 지속적 데이터 변경에 대한 보장을 보장합니다. RFC 트랜잭션은 통신 트랜잭션으로, 전달 보장(AT-MOST-ONCE, EXACTLY-ONCE, EXACTLY-ONCE-IN-ORDER)을 BAPI 방법 및/또는 RFC 함수에 대한 요청 시 부과하는 것입니다.
55.9.4. 트랜잭션 RFC 대상 끝점 링크 복사링크가 클립보드에 복사되었습니다!
다음 대상 끝점은 RFC 트랜잭션을 지원합니다.
-
sap-trfc-destination
-
sap-qrfc-destination
하나의 Camel 경로에는 여러 트랜잭션 RFC 대상 끝점이 포함될 수 있으며, 여러 RFC 대상으로 메시지를 전송하고 동일한 RFC 대상에 메시지를 여러 번 전송할 수 있습니다. 즉 Camel SAP 구성 요소는 경로를 통과한 각 Exchange
오브젝트에 대해 많은 트랜잭션 ID(TID)를 추적해야 합니다. 이제 경로 처리가 실패하고 다시 시도해야 하는 경우 상황이 매우 복잡해집니다. RFC 트랜잭션 의미 체계는 경로를 통한 각 RFC 대상이 처음 사용된 것과 동일한 TID(및 각 대상의 TID가 서로 다른 위치)를 사용하여 호출해야 합니다. 즉, Camel SAP 구성 요소는 경로를 따라 어떤 TID가 사용된 TID를 추적하고 이러한 정보를 저장하여 TID를 올바른 순서로 재생할 수 있도록 해야 합니다.
기본적으로 Camel은 교환이 경로의 위치를 알 수 있는 메커니즘을 제공하지 않습니다. 이러한 메커니즘을 제공하려면 Camel 런타임에
CurrentProcessorDefinitionInterceptStrategy
인터셉터를 설치해야 합니다. Camel SAP 구성 요소가 경로에서 TID를 추적하려면 Camel 런타임에 이 인터셉터를 설치해야 합니다.
55.9.5. 트랜잭션 RFC 서버 끝점 링크 복사링크가 클립보드에 복사되었습니다!
다음 서버 끝점에서 RFC 트랜잭션을 지원합니다.
-
sap-trfc-server
Camel 교환 처리 요청에 대한 처리 오류가 발생하면 Camel은 표준 오류 처리 메커니즘을 통해 처리 오류를 처리합니다. 교환을 통해 오류를 호출자에게 다시 전달하도록 Camel 경로 처리가 구성된 경우, 교환을 시작한 SAP 서버 끝점에서 오류를 기록하고 SAP 시스템에 오류에 대한 알림을 받습니다. 그런 다음 송신 SAP 시스템에서 동일한 TID로 다른 트랜잭션 요청을 전송하여 요청을 다시 처리할 수 있습니다.