HRESULT IResourceManager::Enlist(ITransaction *pTransaction, ITransactionResourceAsync *pRes, GUID *pUOW, LONG *pisoLevel, ITransactionEnlistmentAsync **ppEnlist);
Cette Application Program Interface (API) est utilisée par le moniteur transactionnel pour piloter le gestionnaire de ressources.
Le pilotage du gestionnaire de ressources s'effectue via l'interface pRes. Quand une de ses méthodes est terminée, il faut le signaler au moniteur transactionnel par l'usage de l'interface ppEnlist.
En sortie, l'identifiant de la transaction est rangé dans pUOW et son niveau d'isolement dans pisoLevel.
Pour Up ! Object Management System, la déclaration d'une transaction s'effectue via IUpsOms::ResourceManagerEnlist qui appelle IResourceManager::Enlist.
Le résultat est S_OK en cas de succès.
#include <transact.h>
#include <txdtc.h>
#include <xolehlp.h>
static IResourceManager *pIResourceManager;
static ITransaction *pITransaction;
static ITransactionResourceAsync *pITransactionResourceAsync;
static GUID IdentifiantTransaction;
static LONG NiveauIsolement;
static ITransactionEnlistmentASync *pITransactionEnlistmentASync;
...
if (pIResourceManager->Enlist(pTransaction, pITransactionResourceAsync, &IdentifiantTransaction, &NiveauIsolement,
&pITransactionEnlistmentASync)!=S_OK)
{
...
}
...
pITransactionEnlistmentASync->AddRef();