Ops 어댑터 구현 세부 정보
어댑터를 수정하거나 프로그래밍 방식으로 구성할 때 Ops 어댑터의 다음 측면을 이해하고 있으면 유용합니다.
참고
Ops 어댑터는 어댑터 프레임워크를 사용하여 빌드됩니다. 프레임워크를 사용하여 어댑터를 빌드하는 방법에 대한 자세한 내용은 사용자 지정 어댑터 개발을 참조하세요.
일괄 처리
어댑터는 각 메시지가 별도로 처리되도록 한 번에 한 메시지씩 처리하며, 롤백 작업은 한 번에 한 주문에 대해서만 수행됩니다. 이와 같이 어댑터는 메시지를 한 번에 하나씩 처리하지만 이 과정에서 크기가 1인 일괄 처리를 사용합니다. 따라서 어댑터가 메시지를 일괄 처리하도록 쉽게 수정할 수 있습니다.
트랜잭션 처리
어댑터는 Microsoft .NET Framework System.Transactions 시설에서 제공하는 트랜잭션 기능을 사용합니다. 어댑터는 새 CommittableTransaction을 만들고 TransactionScope와 함께 사용합니다. 어댑터는 이 트랜잭션의 컨텍스트 내에서 Initialize 및 Execute 메서드를 호출합니다. 호출된 어셈블리의 코드는 Transaction.Current 정적 메서드를 사용하여 트랜잭션 컨텍스트를 가져와 트랜잭션에 참여할 수 있습니다. 샘플 오류 핸들러는 이 기능을 사용하지 않습니다. System.Transactions에 대한 자세한 내용은 .NET Framework 클래스 라이브러리 버전의 "System.Transactions 네임스페이스"를 참조하세요.
오류 보고서 외의 데이터 처리
솔루션에서 어댑터는 새 오류 보고 기능을 통해 제공되는 오류 보고서 메시지를 처리합니다. 그러나 Execute 메서드는 바이트 배열을 유일한 인수로 사용하므로 Execute 메서드에 전달할 수 있는 값을 구체적으로 제한하는 것은 없습니다.
프로그래밍 방식으로 포트를 만들 때 어댑터 사용
코드에서 포트를 만들 때 어댑터를 지정할 수 있습니다. 다음 표는 사용자 지정 속성 이름 및 이러한 속성이 표시 이름에 해당하는 방식을 보여 줍니다.
송신 사용자 지정 속성 이름 | 표시 이름 |
---|---|
DotNetAssemblyStrongName | DotNetAssemblyStrongName |
DotNetClassName | DotNetClassName |
InitializationData | InitializationData |
TransportLocationUri | 해당 사항 없음 |
모든 속성은 문자열 값입니다. TransportLocationUri 속성의 값은 어셈블리 이름과 클래스 이름에서 생성합니다. URI에는 자리 표시자가 해당 사용자 지정 속성의 값으로 대체되는 OPS://< DotNetAssemblyStrongName>/<DotNetClassName> 값이 있습니다.
코드에서 포트를 만드는 방법에 대한 자세한 내용은 MSMQ 수신 위치를 만들고 코드에서 포트 보내기를 참조하세요.