£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyʦ•ꎅȮFÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~芩ÊǍí`ÔÑ©ú뙵'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶êםӼ㞪éUWŸÈË%DÒÕ¬ï‘]/Åcx ‰ï2ß]ä6G[]S£Ôϯrs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ ¯¹ægƒÛowЍø^d™ý½ßB7áyMä9ÜÖUã !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --TEST-- Retryable writes: non-write command methods do not include transaction IDs --SKIPIF-- --FILE-- getCommand(); $hasTransactionId = isset($command->lsid) && isset($command->txnNumber); printf("%s command includes transaction ID: %s\n", $event->getCommandName(), $hasTransactionId ? 'yes' : 'no'); } public function commandSucceeded(MongoDB\Driver\Monitoring\CommandSucceededEvent $event): void { } public function commandFailed(MongoDB\Driver\Monitoring\CommandFailedEvent $event): void { } } $observer = new TransactionIdObserver; MongoDB\Driver\Monitoring\addSubscriber($observer); $manager = create_test_manager(); $command = new MongoDB\Driver\Command([ 'findAndModify' => COLLECTION_NAME, 'query' => ['x' => 1], 'update' => ['$inc' => ['x' => 1]], ]); echo "Testing Manager::executeCommand()\n"; $manager->executeCommand(DATABASE_NAME, $command); echo "\nTesting Manager::executeReadCommand()\n"; $manager->executeReadCommand(DATABASE_NAME, $command); echo "\nTesting Manager::executeReadWriteCommand()\n"; $manager->executeReadWriteCommand(DATABASE_NAME, $command); echo "\nTesting Manager::executeWriteCommand()\n"; $manager->executeWriteCommand(DATABASE_NAME, $command); MongoDB\Driver\Monitoring\removeSubscriber($observer); ?> ===DONE=== --EXPECT-- Testing Manager::executeCommand() findAndModify command includes transaction ID: no Testing Manager::executeReadCommand() findAndModify command includes transaction ID: no Testing Manager::executeReadWriteCommand() findAndModify command includes transaction ID: yes Testing Manager::executeWriteCommand() findAndModify command includes transaction ID: yes ===DONE===