Search in sources :

Example 6 with StoreId

use of org.neo4j.kernel.impl.nioneo.store.StoreId in project graphdb by neo4j-attic.

the class MasterUtil method packResponse.

public static <T> Response<T> packResponse(GraphDatabaseService graphDb, SlaveContext context, T response, Predicate<Long> filter) {
    List<Triplet<String, Long, TxExtractor>> stream = new ArrayList<Triplet<String, Long, TxExtractor>>();
    Set<String> resourceNames = new HashSet<String>();
    XaDataSourceManager dsManager = ((AbstractGraphDatabase) graphDb).getConfig().getTxModule().getXaDataSourceManager();
    for (Pair<String, Long> txEntry : context.lastAppliedTransactions()) {
        String resourceName = txEntry.first();
        final XaDataSource dataSource = dsManager.getXaDataSource(resourceName);
        if (dataSource == null) {
            throw new RuntimeException("No data source '" + resourceName + "' found");
        }
        resourceNames.add(resourceName);
        long masterLastTx = dataSource.getLastCommittedTxId();
        for (long txId = txEntry.other() + 1; txId <= masterLastTx; txId++) {
            if (filter.accept(txId)) {
                final long tx = txId;
                TxExtractor extractor = new TxExtractor() {

                    @Override
                    public ReadableByteChannel extract() {
                        try {
                            return dataSource.getCommittedTransaction(tx);
                        } catch (IOException e) {
                            throw new RuntimeException(e);
                        }
                    }

                    @Override
                    public void extract(LogBuffer buffer) {
                        try {
                            dataSource.getCommittedTransaction(tx, buffer);
                        } catch (IOException e) {
                            throw new RuntimeException(e);
                        }
                    }
                };
                stream.add(Triplet.of(resourceName, txId, extractor));
            }
        }
    }
    StoreId storeId = ((NeoStoreXaDataSource) dsManager.getXaDataSource(Config.DEFAULT_DATA_SOURCE_NAME)).getStoreId();
    return new Response<T>(response, storeId, TransactionStream.create(resourceNames, stream));
}
Also used : XaDataSourceManager(org.neo4j.kernel.impl.transaction.XaDataSourceManager) Triplet(org.neo4j.helpers.Triplet) ArrayList(java.util.ArrayList) IOException(java.io.IOException) NeoStoreXaDataSource(org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource) XaDataSource(org.neo4j.kernel.impl.transaction.xaframework.XaDataSource) LogBuffer(org.neo4j.kernel.impl.transaction.xaframework.LogBuffer) StoreId(org.neo4j.kernel.impl.nioneo.store.StoreId) NeoStoreXaDataSource(org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource) AbstractGraphDatabase(org.neo4j.kernel.AbstractGraphDatabase) HashSet(java.util.HashSet)

Example 7 with StoreId

use of org.neo4j.kernel.impl.nioneo.store.StoreId in project graphdb by neo4j-attic.

the class TestCommunication method doBefore.

@Before
public void doBefore() {
    storeIdToUse = new StoreId();
    new File(PATH).mkdirs();
}
Also used : StoreId(org.neo4j.kernel.impl.nioneo.store.StoreId) File(java.io.File) Before(org.junit.Before)

Example 8 with StoreId

use of org.neo4j.kernel.impl.nioneo.store.StoreId in project graphdb by neo4j-attic.

the class TestCommunication method makeSureClientStoreIdsMustMatch.

@Test
public void makeSureClientStoreIdsMustMatch() throws Exception {
    MadeUpImplementation serverImplementation = new MadeUpImplementation(storeIdToUse);
    MadeUpServer server = new MadeUpServer(serverImplementation, PORT);
    MadeUpClient client = new MadeUpClient(PORT, new StoreId(10, 10));
    try {
        client.multiply(1, 2);
        fail();
    } catch (ComException e) {
    // Good
    } finally {
        client.shutdown();
        server.shutdown();
    }
}
Also used : StoreId(org.neo4j.kernel.impl.nioneo.store.StoreId) Test(org.junit.Test)

Aggregations

StoreId (org.neo4j.kernel.impl.nioneo.store.StoreId)8 IOException (java.io.IOException)3 File (java.io.File)2 Test (org.junit.Test)2 NeoStoreXaDataSource (org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource)2 XaDataSource (org.neo4j.kernel.impl.transaction.xaframework.XaDataSource)2 UnknownHostException (java.net.UnknownHostException)1 ByteBuffer (java.nio.ByteBuffer)1 ClosedChannelException (java.nio.channels.ClosedChannelException)1 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 ChannelBuffer (org.jboss.netty.buffer.ChannelBuffer)1 Channel (org.jboss.netty.channel.Channel)1 BlockingReadHandler (org.jboss.netty.handler.queue.BlockingReadHandler)1 Before (org.junit.Before)1 ComException (org.neo4j.com.ComException)1 Triplet (org.neo4j.helpers.Triplet)1 AbstractGraphDatabase (org.neo4j.kernel.AbstractGraphDatabase)1 BranchedDataException (org.neo4j.kernel.ha.BranchedDataException)1 Master (org.neo4j.kernel.ha.Master)1