public UUID createUuidFromString(final String name) { UUID candidate = UUID.fromString(name); return cacheIfNecessary(candidate); }
@Override public void visitMessageInstances(MessageInstanceHandler handler) throws StoreException { checkMessageStoreOpen(); try(Connection conn = newAutoCommitConnection()) { CachingUUIDFactory uuidFactory = new CachingUUIDFactory(); try (Statement stmt = conn.createStatement()) { try (ResultSet rs = stmt.executeQuery("SELECT queue_id, message_id FROM " + getQueueEntryTableName() + " ORDER BY queue_id, message_id")) { while (rs.next()) { String id = rs.getString(1); long messageId = rs.getLong(2); UUID queueId = uuidFactory.createUuidFromString(id); if (!handler.handle(new JDBCEnqueueRecord(queueId, messageId))) { break; } } } } } catch (SQLException e) { throw new StoreException("Error encountered when visiting message instances", e); } }
CachingUUIDFactory uuidFactory = new CachingUUIDFactory();
private static Transaction.EnqueueRecord[] readEnqueueRecords(final CachingUUIDFactory uuidFactory, TupleInput input) { Transaction.EnqueueRecord[] records = new Transaction.EnqueueRecord[input.readInt()]; for(int i = 0; i < records.length; i++) { UUID queueId = uuidFactory.createUuidFromBits(input.readLong(), input.readLong()); records[i] = new EnqueueRecordImpl(queueId, input.readLong()); } return records; }
CachingUUIDFactory uuidFactory = new CachingUUIDFactory(); try (PreparedStatement stmt = conn.prepareStatement("SELECT queue_id, message_id FROM " + getQueueEntryTableName() UUID uuid = uuidFactory.createUuidFromString(id); if (!handler.handle(new JDBCEnqueueRecord(uuid, messageId)))
value.setPartial(0, 0, true); CachingUUIDFactory uuidFactory = new CachingUUIDFactory(); QueueEntryBinding.objectToEntry(new QueueEntryKey(queue.getId(), 0L), key);
private static Transaction.DequeueRecord[] readDequeueRecords(final CachingUUIDFactory uuidFactory, TupleInput input) { Transaction.DequeueRecord[] records = new Transaction.DequeueRecord[input.readInt()]; for(int i = 0; i < records.length; i++) { UUID queueId = uuidFactory.createUuidFromBits(input.readLong(), input.readLong()); records[i] = new DequeueRecordImpl(queueId, input.readLong()); } return records; }
CachingUUIDFactory uuidFactory = new CachingUUIDFactory(); List<RecordImpl> enqueues = new ArrayList<>(); List<RecordImpl> dequeues = new ArrayList<>(); UUID queueId = uuidFactory.createUuidFromString(rs.getString(2)); long messageId = rs.getLong(3);
@Override public void visitDistributedTransactions(final DistributedTransactionHandler handler) throws StoreException { checkMessageStoreOpen(); try(Cursor cursor = getXidDb().openCursor(null, null)) { CachingUUIDFactory uuidFactory = new CachingUUIDFactory(); DatabaseEntry key = new DatabaseEntry(); XidBinding keyBinding = XidBinding.getInstance(); DatabaseEntry value = new DatabaseEntry(); while (cursor.getNext(key, value, LockMode.READ_UNCOMMITTED) == OperationStatus.SUCCESS) { Xid xid = keyBinding.entryToObject(key); PreparedTransaction preparedTransaction = PreparedTransactionBinding.entryToObject(uuidFactory, value); if (!handler.handle(new BDBStoredXidRecord(xid.getFormat(), xid.getGlobalId(), xid.getBranchId()), preparedTransaction.getEnqueues(), preparedTransaction.getDequeues())) { break; } } } catch (RuntimeException e) { throw getEnvironmentFacade().handleDatabaseException("Cannot recover distributed transactions", e); } }
public static QueueEntryKey entryToObject(final CachingUUIDFactory uuidFactory, DatabaseEntry entry) { byte[] data = entry.getData(); int offset = entry.getOffset(); UUID queueId = uuidFactory.createUuidFromBits(readUnsignedLong(data, offset) ^ 0x8000000000000000L, readUnsignedLong(data, offset + 8) ^ 0x8000000000000000L); long messageId = readUnsignedLong(data,offset+16)^ 0x8000000000000000L; return new QueueEntryKey(queueId, messageId); }
public UUID createUuidFromBits(final long mostSigBits, final long leastSigBits) { UUID candidate = new UUID(mostSigBits, leastSigBits); return cacheIfNecessary(candidate); }