다음을 통해 공유


MessageQueue.Transactional 속성

정의

큐에서 트랜잭션만 허용하는지 여부를 나타내는 값을 가져옵니다.

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);

설명

트랜잭션 메시징은 여러 관련 메시지를 단일 트랜잭션에 결합하는 것을 의미합니다. 트랜잭션의 일부로 메시지를 보내면 메시지가 순서대로 배달되고, 한 번만 배달되고, 대상 큐에서 성공적으로 검색됩니다.

큐가 트랜잭션인 경우 트랜잭션의 일부로 전송되는 메시지만 허용합니다. 그러나 트랜잭션 및 구문을 명시적으로 사용하지 않고 로컬 트랜잭션 큐에서 비 트랜잭션 BeginCommitAbort 메시지를 보내거나 받을 수 있습니다. 트랜잭션이 아닌 메시지를 트랜잭션 큐로 보내는 경우 이 구성 요소는 직접 형식 이름을 사용하여 원격 컴퓨터에서 큐를 참조하는 경우를 제외하고 단일 메시지 트랜잭션을 만듭니다. 이 경우 메시지를 보낼 때 트랜잭션 컨텍스트를 지정하지 않으면 메시지가 만들어지지 않고 메시지가 배달 못 한 편지 큐로 전송됩니다.

트랜잭션 큐에 비트랜잭션 메시지를 보내는 경우 예외 발생 시 메시지를 롤백할 수 없습니다.

MessageQueueTransaction 는 아파트 인식 스레딩이므로 아파트 상태 STA인 경우 여러 스레드에서 트랜잭션을 사용할 수 없습니다. Visual Basic은 주 스레드STA의 상태를 설정하므로 서브루틴에 Main 적용 MTAThreadAttribute 해야 합니다. 그렇지 않으면 다른 스레드를 사용하여 트랜잭션 메시지를 보내면 예외가 MessageQueueException throw됩니다. 다음 조각을 사용하여 적용 MTAThreadAttribute 합니다.

<System.MTAThreadAttribute>
 public sub Main()

다음 표에서는 이 속성을 다양한 작업 그룹 모드에서 사용할 수 있는지 여부를 보여 줍니다.

작업 그룹 모드 사용 가능
로컬 컴퓨터
로컬 컴퓨터 및 직접 형식 이름
원격 컴퓨터 No
원격 컴퓨터 및 직접 형식 이름 No

적용 대상

추가 정보