다음 노드가 이 메시지 플로우에 나타날 경우,
이 노드의 트랜잭션 등록 정보를 설정하십시오. - Compute
- Database
- DataDelete
- DataInsert
- DataUpdate
- Filter
- Mapping
- Warehouse
트랜잭션
등록 정보를 다음 값으로 설정할 수 있습니다.
- 자동
- 노드에서 수행하는 갱신, 삭제 및 추가는 메시지 플로우 처리가 완료될 때
확약되거나 롤백됩니다. 메시지 플로우가 완료되면 모든 변경사항이 확약됩니다. 메시지
플로우가 올바르게 완료되지 않으면 모든 변경사항은 롤백됩니다.
메시지 플로우에 의해 수행되는 모든 처리가 통합되게 하려면 이 값을 선택해야 합니다.
- 확약
- 수행되는 조치는 메시지 플로우가 전개된 시스템에 따라 다릅니다.
동일 외부 데이터베이스에서 노드가 작동하는
동일 메시지 플로우에서
자동 및
확약 트랜잭션성을 사용하는 노드를 혼합하려면 개별 ODBC 연결(메시지 플로우가 완료될 때까지
확약되지 않는 노드에 대한 ODBC 연결과 즉시 확약되는 노드에 대한 ODBC 연결)을 사용해야 합니다. 그렇지 않을 경우,
즉시 확약되는 노드도 선행
자동 노드에서
수행되는 모든 조작을 확약합니다.
주: z/OS가 아닌 다른
플랫폼에서 개별 관계형 데이터베이스는 이 조작 모드를 지원할 수도, 지원하지 않을 수도 있습니다.
둘 이상의 ODBC 연결을 정의하면 데이터베이스 잠금 문제가 발생할 수 있습니다.
특히, 자동 트랜잭션성을 사용하는 노드가 데이터베이스 오브젝트(예:
테이블)를 잠그는 INSERT 또는 UPDATE 등의 조작을 수행하고 후속 노드에서 다른
ODBC 연결을 사용하여 데이터베이스 오브젝트에 액세스하려고 하는 경우
영구 잠금(교착 상태)이 발생합니다.
두 번째 노드는 첫 번째 노드에서 발생한
잠금이 해제될 때까지 대기하지만 첫 번째 노드는 해당 조작을 확약하지 않으며
메시지 플로우가 완료되면 잠금을 해제합니다. 그러나 두 번째 노드는
첫 번째 노드의 데이터베이스 잠금이 해제될 때까지 두 번째 노드가 대기하기 때문에
잠금이 해제되는 상황은 발생하지 않습니다.
브로커를 사용하는 두 조작이
서로 충돌하기 때문에 DBMS 자동 교착 상태 회피 루틴에서 그러한
상황을 감지할 수 없습니다.
이런 종류의 잠금 문제를 피할 수 있는 두 가지
방법이 있습니다.
- 미확약(자동) 조작이 다른 ODBC 연결을 사용하는 후속 조작이 액세스해야 하는
데이터베이스 오브젝트를 잠그지 않도록 메시지 플로우를 설계하십시오.
- 지정된 시간 길이 이후 잠금이 발생하는 시도가 실패하도록
데이터베이스의 잠금 시간 종료 매개변수를 구성하십시오. 잠금 시간 종료로 인해 데이터베이스 조작이
실패하면 정상적인 방법으로 브로커가 핸들링하는 예외가 발생됩니다.
특정 조작에 의해 잠기는 데이터베이스 오브젝트 및
데이터베이스의 잠금 시간 종료 매개변수 구성 방법에 관한 정보는
데이터베이스 제품 문서를 참조하십시오.