/** * @return int unique id per request */ public function getUniqueRequestId() { if (!is_null(self::$uniqueRequestId)) { return self::$uniqueRequestId; } $dcId = kDataCenterMgr::getCurrentDcId(); for ($i = 0; $i < 10; ++$i) { $requestId = $dcId . '_' . kString::generateStringId(); $exists = AuditTrailPeer::retrieveByRequestId($requestId); if (!$exists) { self::$uniqueRequestId = $requestId; return self::$uniqueRequestId; } } throw new kAuditTrailException('Unable to generate unique id', kAuditTrailException::UNIQUE_ID_NOT_GENERATED); }