다음을 통해 공유


Ops 어댑터 구현 세부 정보

어댑터를 수정하거나 프로그래밍 방식으로 구성할 때 Ops 어댑터의 다음 측면을 이해하고 있으면 유용합니다.

참고

Ops 어댑터는 어댑터 프레임워크를 사용하여 빌드됩니다. 프레임워크를 사용하여 어댑터를 빌드하는 방법에 대한 자세한 내용은 사용자 지정 어댑터 개발을 참조하세요.

일괄 처리

어댑터는 각 메시지가 별도로 처리되도록 한 번에 한 메시지씩 처리하며, 롤백 작업은 한 번에 한 주문에 대해서만 수행됩니다. 이와 같이 어댑터는 메시지를 한 번에 하나씩 처리하지만 이 과정에서 크기가 1인 일괄 처리를 사용합니다. 따라서 어댑터가 메시지를 일괄 처리하도록 쉽게 수정할 수 있습니다.

트랜잭션 처리

어댑터는 Microsoft .NET Framework System.Transactions 시설에서 제공하는 트랜잭션 기능을 사용합니다. 어댑터는 새 CommittableTransaction을 만들고 TransactionScope와 함께 사용합니다. 어댑터는 이 트랜잭션의 컨텍스트 내에서 InitializeExecute 메서드를 호출합니다. 호출된 어셈블리의 코드는 Transaction.Current 정적 메서드를 사용하여 트랜잭션 컨텍스트를 가져와 트랜잭션에 참여할 수 있습니다. 샘플 오류 핸들러는 이 기능을 사용하지 않습니다. System.Transactions에 대한 자세한 내용은 .NET Framework 클래스 라이브러리 버전의 "System.Transactions 네임스페이스"를 참조하세요.

오류 보고서 외의 데이터 처리

솔루션에서 어댑터는 새 오류 보고 기능을 통해 제공되는 오류 보고서 메시지를 처리합니다. 그러나 Execute 메서드는 바이트 배열을 유일한 인수로 사용하므로 Execute 메서드에 전달할 수 있는 값을 구체적으로 제한하는 것은 없습니다.

프로그래밍 방식으로 포트를 만들 때 어댑터 사용

코드에서 포트를 만들 때 어댑터를 지정할 수 있습니다. 다음 표는 사용자 지정 속성 이름 및 이러한 속성이 표시 이름에 해당하는 방식을 보여 줍니다.

송신 사용자 지정 속성 이름 표시 이름
DotNetAssemblyStrongName DotNetAssemblyStrongName
DotNetClassName DotNetClassName
InitializationData InitializationData
TransportLocationUri 해당 사항 없음

모든 속성은 문자열 값입니다. TransportLocationUri 속성의 값은 어셈블리 이름과 클래스 이름에서 생성합니다. URI에는 자리 표시자가 해당 사용자 지정 속성의 값으로 대체되는 OPS://< DotNetAssemblyStrongName>/<DotNetClassName> 값이 있습니다.

코드에서 포트를 만드는 방법에 대한 자세한 내용은 MSMQ 수신 위치를 만들고 코드에서 포트 보내기를 참조하세요.

참고 항목

Ops 어댑터