MessageQueue.Transactional 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
큐가 트랜잭션만 허용하는지 여부를 나타내는 값을 가져옵니다.
public:
property bool Transactional { bool get(); };
[System.Messaging.MessagingDescription("MQ_Transactional")]
public bool Transactional { get; }
[<System.Messaging.MessagingDescription("MQ_Transactional")>]
member this.Transactional : bool
Public ReadOnly Property Transactional As Boolean
속성 값
큐가 트랜잭션의 일부로서 전달된 메시지만 허용하면 true
이고, 그렇지 않으면 false
입니다.
- 특성
예외
메시지 큐 메서드에 액세스하는 동안 오류가 발생한 경우
예제
다음 코드 예제에서는 메시지 큐의 Transactional 속성 값을 표시합니다.
// Display the value of the queue's Transactional property.
Console.WriteLine("MessageQueue.Transactional: {0}",
queue.Transactional);
설명
트랜잭션 메시징은 여러 관련 메시지를 단일 트랜잭션으로 결합하는 것을 의미합니다. 트랜잭션의 일부로 메시지를 보내면 메시지가 순서대로 배달되고, 한 번만 배달되고, 대상 큐에서 성공적으로 검색됩니다.
큐가 트랜잭션인 경우 트랜잭션의 일부로 전송되는 메시지만 허용합니다. 그러나 트랜잭션 , 및 Abort 구문을 명시적으로 사용하지 않고 로컬 트랜잭션 큐에서 비 트랜잭션 BeginCommit메시지를 보내거나 받을 수 있습니다. 트랜잭션이 아닌 메시지를 트랜잭션 큐로 보내는 경우 이 구성 요소는 직접 형식 이름을 사용하여 원격 컴퓨터에서 큐를 참조하는 경우를 제외하고 단일 메시지 트랜잭션을 만듭니다. 이 경우 메시지를 보낼 때 트랜잭션 컨텍스트를 지정하지 않으면 해당 컨텍스트가 만들어지지 않고 메시지가 배달 못 한 편지 큐로 전송됩니다.
트랜잭션 큐에 트랜잭션이 아닌 메시지를 보내는 경우 예외 발생 시 메시지를 롤백할 수 없습니다.
MessageQueueTransaction 스레딩 아파트를 인식 하며 따라서 아파트 상태가 STA
, 트랜잭션이 여러 스레드를 사용할 수 없습니다. 에 주 스레드의 상태를 설정 하는 Visual Basic STA
이므로 적용 해야 합니다는 MTAThreadAttribute 에 Main
서브루틴입니다. 그렇지 않으면 다른 스레드를 사용하여 트랜잭션 메시지를 전달할 때 MessageQueueException 예외가 throw됩니다. 적용 된 MTAThreadAttribute 다음 조각을 사용 하 여 합니다.
<System.MTAThreadAttribute>
public sub Main()
다음 표에서는 이 속성을 다양한 작업 그룹 모드에서 사용할 수 있는지 여부를 보여 줍니다.
작업 그룹 모드 | 사용 가능 |
---|---|
수집 | Yes |
로컬 컴퓨터 및 직접 형식 이름 | Yes |
원격 컴퓨터 | No |
원격 컴퓨터 및 직접 형식 이름 | No |
적용 대상
추가 정보
.NET