332
332
TransactionContext *trans= &session.transaction.stmt;
333
ResourceContext& resource_context= *session.getResourceContext(monitored, 0);
333
ResourceContext& resource_context= session.getResourceContext(*monitored, 0);
335
335
if (resource_context.isStarted())
336
336
return; /* already registered, return */
365
365
TransactionContext *trans= &session.transaction.stmt;
366
ResourceContext& resource_context= *session.getResourceContext(monitored, 0);
366
ResourceContext& resource_context= session.getResourceContext(*monitored, 0);
368
368
if (resource_context.isStarted())
369
369
return; /* already registered, return */
384
384
plugin::TransactionalStorageEngine *engine)
386
386
TransactionContext *trans= &session.transaction.all;
387
ResourceContext *resource_context= session.getResourceContext(monitored, 1);
387
ResourceContext& resource_context= session.getResourceContext(*monitored, 1);
389
if (resource_context->isStarted())
389
if (resource_context.isStarted())
390
390
return; /* already registered, return */
392
392
session.server_status|= SERVER_STATUS_IN_TRANS;
394
trans->registerResource(resource_context);
394
trans->registerResource(&resource_context);
396
396
assert(monitored->participatesInSqlTransaction());
397
397
assert(not monitored->participatesInXaTransaction());
399
resource_context->setMonitored(monitored);
400
resource_context->setTransactionalStorageEngine(engine);
399
resource_context.setMonitored(monitored);
400
resource_context.setTransactionalStorageEngine(engine);
401
401
trans->no_2pc|= true;
403
403
if (session.transaction.xid_state.xid.is_null())
404
404
session.transaction.xid_state.xid.set(session.getQueryId());
406
406
/* Only true if user is executing a BEGIN WORK/START TRANSACTION */
407
if (! session.getResourceContext(monitored, 0)->isStarted())
407
if (not session.getResourceContext(*monitored, 0).isStarted())
408
408
registerResourceForStatement(session, monitored, engine);
414
414
plugin::XaResourceManager *resource_manager)
416
416
TransactionContext *trans= &session.transaction.all;
417
ResourceContext *resource_context= session.getResourceContext(monitored, 1);
417
ResourceContext& resource_context= session.getResourceContext(*monitored, 1);
419
if (resource_context->isStarted())
419
if (resource_context.isStarted())
420
420
return; /* already registered, return */
422
422
session.server_status|= SERVER_STATUS_IN_TRANS;
424
trans->registerResource(resource_context);
424
trans->registerResource(&resource_context);
426
426
assert(monitored->participatesInSqlTransaction());
428
resource_context->setMonitored(monitored);
429
resource_context->setXaResourceManager(resource_manager);
430
resource_context->setTransactionalStorageEngine(engine);
428
resource_context.setMonitored(monitored);
429
resource_context.setXaResourceManager(resource_manager);
430
resource_context.setTransactionalStorageEngine(engine);
431
431
trans->no_2pc|= true;
433
433
if (session.transaction.xid_state.xid.is_null())
436
436
engine->startTransaction(&session, START_TRANS_NO_OPTIONS);
438
438
/* Only true if user is executing a BEGIN WORK/START TRANSACTION */
439
if (! session.getResourceContext(monitored, 0)->isStarted())
439
if (! session.getResourceContext(*monitored, 0).isStarted())
440
440
registerResourceForStatement(session, monitored, engine, resource_manager);