Получает текущую (активную) транзакцию.

Синтаксис

Get-Transaction [<CommonParameters>]

Описание

Командлет Get-Transaction возвращает объект, представляющий текущую транзакцию в сеансе.

Этот командлет никогда не возвращает более одного объекта, поскольку в каждый момент времени может быть активной только одна транзакция. При запуске одной или нескольких независимых транзакций (с помощью параметра Independent командлета Start-Transaction) активной транзакцией является последняя запущенная транзакция; именно эту транзакцию возвращает командлет Get-Transaction.

После отката или фиксации всех активных транзакций командлет Get-Transaction отображает транзакцию, которая являлась последней активной транзакцией в сеансе.

Командлет Get-Transaction входит в набор командлетов, поддерживающих обработку транзакций в Windows PowerShell. Дополнительные сведения см. в разделе about_Transactions.

Параметры

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

Нет

Передать объекты этому командлету по конвейеру невозможно.

Выходные данные

System.Management.Automation.PSTransaction

Командлет Get-Transaction возвращает объект, представляющий текущую транзакцию.

Пример 1

C:\PS>start-transaction

C:\PS> get-transaction 

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

Описание
-----------
Эта команда с помощью командлета Get-Transaction получает текущую транзакцию.






Пример 2

C:\PS>get-transaction | get-member

Name               MemberType Definition
----               ---------- ----------
Dispose            Method     System.Void Dispose(), System.Void Dispose(Boolean disposing)
Equals             Method     System.Boolean Equals(Object obj)
GetHashCode        Method     System.Int32 GetHashCode()
GetType            Method     System.Type GetType()
ToString           Method     System.String ToString()
IsCommitted        Property   System.Boolean IsCommitted {get;}
IsRolledBack       Property   System.Boolean IsRolledBack {get;}
RollbackPreference Property   System.Management.Automation.RollbackSeverity RollbackPreference {get;}
SubscriberCount    Property   System.Int32 SubscriberCount {get;set;}

Описание
-----------
Эта команда с помощью командлета Get-Member отображает свойства и методы объекта транзакции.






Пример 3

C:\PS>cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction
HKLM:\SOFTWARE> Undo-Transaction
HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ----------
Error                0                 RolledBack

Описание
-----------
Эта команда отображает значения свойств объекта транзакции, откат которой был выполнен.






Пример 4

C:\PS>cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction
HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ---------
Error                1                 Committed

Описание
-----------
Эта команда отображает значения свойств объекта транзакции, которая была зафиксирована.






Пример 5

C:\PS>cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction

HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany2 -UseTransaction

HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                2                 Active

HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active


HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ---------
Error                1                 Committed

Описание
-----------
В этом примере показано, что происходит с объектом транзакции при запуске транзакции во время выполнения другой транзакции. Обычно такая ситуация возникает, если в скрипте, осуществляющем запуск транзакции, содержится функция или вызов скрипта, включающего другую завершенную транзакцию.

Если в команде Start-Transaction не задан параметр Independent, команда Start-Transaction не создает новую транзакцию. Вместо этого она добавляет второго подписчика в исходную транзакцию. 

Первая команда Start-Transaction запускает транзакцию. Команда New-Item с параметром UseTransaction является частью транзакции.

Вторая команда Start-Transaction добавляет подписчика в транзакцию. Следующая команда New-Item также является частью транзакции.

Первая команда Get-Transaction отображает транзакцию с несколькими подписчиками. Обратите внимание, что количество подписчиков равно 2.

Первая команда Complete-Transaction не фиксирует транзакцию, но сокращает количество подписчиков до 1.

Вторая команда Complete-Transaction фиксирует транзакцию.






Пример 6

C:\PS>HKLM:\SOFTWARE> Start-Transaction

HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   IsRolledBack   IsCommitted
------------------   ---------------   ------------   -----------
Error                1                 False          False

HKLM:\SOFTWARE> Start-Transaction -Independent
HKLM:\SOFTWARE> Get-Transaction

RollbackPreference   SubscriberCount   IsRolledBack   IsCommitted
------------------   ---------------   ------------   -----------
Error                1                 False          False

HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

Описание
-----------
В этом примере показано, что происходит с объектом транзакции при запуске независимой транзакции во время выполнения другой транзакции.

Первая команда Start-Transaction запускает транзакцию. Команда New-Item с параметром UseTransaction является частью транзакции.

Вторая команда Start-Transaction добавляет подписчика в транзакцию. Следующая команда New-Item также является частью транзакции.

Первая команда Get-Transaction отображает транзакцию с несколькими подписчиками. Обратите внимание, что количество подписчиков равно 2.

Первая команда Complete-Transaction сокращает количество подписчиков до 1, но не фиксирует транзакцию.

Вторая команда Complete-Transaction фиксирует транзакцию.






См. также




Содержание