public void setDeadLetterAddress(final String deadLetterAddress) throws Exception { checkStarted(); clearIO(); try { AddressSettings addressSettings = addressSettingsRepository.getMatch(address); if (deadLetterAddress != null) { addressSettings.setDeadLetterAddress(new SimpleString(deadLetterAddress)); } } finally { blockOnIO(); } }
public String getDeadLetterAddress() { checkStarted(); clearIO(); try { AddressSettings addressSettings = addressSettingsRepository.getMatch(address); if (addressSettings != null && addressSettings.getDeadLetterAddress() != null) { return addressSettings.getDeadLetterAddress().toString(); } return null; } finally { blockOnIO(); } }
public void setExpiryAddress(final String expiryAddress) throws Exception { checkStarted(); clearIO(); try { AddressSettings addressSettings = addressSettingsRepository.getMatch(address); SimpleString sExpiryAddress = new SimpleString(expiryAddress); if (expiryAddress != null) { addressSettings.setExpiryAddress(sExpiryAddress); } queue.setExpiryAddress(sExpiryAddress); } finally { blockOnIO(); } }
public static void main(final String arg[]) { if (arg.length != 2) { System.err.println("Usage: PrintPages <page folder> <journal folder>"); System.exit(-1); } try { PageCursorsInfo cursorACKs = PrintPages.loadCursorACKs(arg[1]); Set<Long> pgTXs = cursorACKs.getPgTXs(); ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1); final ExecutorService executor = Executors.newFixedThreadPool(10); ExecutorFactory execfactory = new ExecutorFactory() { public Executor getExecutor() { return executor; } }; final StorageManager sm = new NullStorageManager(); PagingStoreFactory pageStoreFactory = new PagingStoreFactoryNIO(sm, arg[0], 1000l, scheduled, execfactory, false, null); HierarchicalRepository<AddressSettings> addressSettingsRepository = new HierarchicalObjectRepository<AddressSettings>(); addressSettingsRepository.setDefault(new AddressSettings()); PagingManager manager = new PagingManagerImpl(pageStoreFactory, addressSettingsRepository); manager.start(); SimpleString stores[] = manager.getStoreNames(); for (SimpleString store : stores) { PagingStore pgStore = manager.getPageStore(store); String folder = null; if (pgStore != null) { folder = pgStore.getFolder(); } System.out.println( "####################################################################################################"); System.out.println("Exploring store " + store + " folder = " + folder); int pgid = (int) pgStore.getFirstPage(); for (int pg = 0; pg < pgStore.getNumberOfPages(); pg++) { System.out.println("******* Page " + pgid); Page page = pgStore.createPage(pgid); page.open(); List<PagedMessage> msgs = page.read(sm); page.close(); int msgID = 0; for (PagedMessage msg : msgs) { msg.initMessage(sm); System.out.print( "pg=" + pgid + ", msg=" + msgID + ",pgTX=" + msg.getTransactionID() + ",userMessageID=" + (msg.getMessage().getUserID() != null ? msg.getMessage().getUserID() : "") + ", msg=" + msg.getMessage()); System.out.print(",Queues = "); long q[] = msg.getQueueIDs(); for (int i = 0; i < q.length; i++) { System.out.print(q[i]); PagePosition posCheck = new PagePositionImpl(pgid, msgID); boolean acked = false; Set<PagePosition> positions = cursorACKs.getCursorRecords().get(q[i]); if (positions != null) { acked = positions.contains(posCheck); } if (acked) { System.out.print(" (ACK)"); } if (cursorACKs.getCompletePages(q[i]).contains(Long.valueOf(pgid))) { System.out.println(" (PG-COMPLETE)"); } if (i + 1 < q.length) { System.out.print(","); } } if (msg.getTransactionID() >= 0 && !pgTXs.contains(msg.getTransactionID())) { System.out.print(", **PG_TX_NOT_FOUND**"); } System.out.println(); msgID++; } pgid++; } } } catch (Exception e) { e.printStackTrace(); } }
private PagingStore newStore(final SimpleString address) throws Exception { return pagingStoreFactory.newStore( address, addressSettingsRepository.getMatch(address.toString())); }