#1 You could configure your load balancer to use the available endpoints for testing which is the master and routing write requests to it. (general docs. http://docs.neo4j.org/chunked/milestone/ha.html) concrete docs for the endpoint: http://docs.neo4j.org/chunked/milestone/ha-rest-info.html See the last part of this blog post for some config advice (example for AWS): http://maxdemarzi.com/2012/12/14/setting-up-a-neo4j-cluster-on-amazon/
#2 You can also within the extension check the current database if it's the master and then accept write operations, otherwise just accept read operations and return a 301 redirect to the master URL. http://components.neo4j.org/neo4j-ha/stable/apidocs/org/neo4j/kernel/ha/HighlyAvailableGraphDatabase.html#isMaster() To construct the URL probably look into the JMX info that's available: http://docs.neo4j.org/chunked/milestone/jmx-mxbeans.html#jmx-high-availability If you need more info check the code of the HA-MBean on how it acquires its information. HTH Michael Am 21.01.2014 um 12:54 schrieb Ramesh Yakkala <ramesh.yakk...@gmail.com>: > Hi Michael, > > May I know how to configure the master could take write operations and slave > should to read operations. > > Thanks, > Ramesh Yakkala. > > On Tuesday, January 21, 2014 4:38:23 PM UTC+5:30, Michael Hunger wrote: > We don't recommend to run write transaction on the slaves just on the master. > As each transaction on the slave will grab a global cluster lock to sync the > tx with the master and only after the master tx commits the slave tx also > commits. > > Rather write on the master and use push_factor and pull_interval to > distribute the changes across the cluster. > > Cheers > > Michael > > Am 21.01.2014 um 07:04 schrieb Ramesh Yakkala <ramesh....@gmail.com>: > >> Hi, >> >> I have setup the neo4j HA environment using the neo4j-enterprise-1.9.5 >> enterprise trailer version in the local machine with three instances >> master,slave1,slave2 with 128MB to 256MB of JVM ram memory. >> >> Deployed unmanaged server extension of my application on each instance. >> >> I have observed that there is low performance of processing speed on slaves >> compared to master server instance. >> >> And some times on slaves failing the transactions to process.Here I am >> giving the different error messages. >> =============================================================================== >> org.neo4j.graphdb.TransactionFailureException: Unable to commit transaction >> at >> org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:143) >> at >> com.pokitdok.ohp.mappings.delegator.DefaultDelegator.createTransactionRootNode(DefaultDelegator.java:312) >> at >> com.pokitdok.ohp.mappings.delegator.DefaultDelegator.persistX12EnvolpeData(DefaultDelegator.java:112) >> at >> com.pokitdok.ohp.mappings.handler.JsonXsdNeo4jHandler.persistX12Envelope(JsonXsdNeo4jHandler.java:143) >> at >> com.pokitdok.ohp.restservice.PersistService.storeX12File(PersistService.java:328) >> at >> com.pokitdok.ohp.restservice.PersistService.persistX12Folder(PersistService.java:165) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >> ======================================================================================== >> >> 2014-01-20 11:34:48.182+0000 DEBUG [o.n.k.h.c.s.MasterClient18]: >> ResourcePool create resource ([id: 0x37074f62, /127.0.0.1:62366 => >> /127.0.0.1:6001], DynamicChannelBuffer(ridx=0, widx=0, cap=256), >> java.nio.HeapByteBuffer[pos=0 lim=1048576 cap=1048576]) >> 2014-01-20 11:34:49.245+0000 ERROR [o.n.k.i.t.TxManager]: setting TM not OK >> javax.transaction.xa.XAException: null >> at >> org.neo4j.kernel.impl.transaction.TransactionImpl.doCommit(TransactionImpl.java:576) >> [neo4j-kernel-1.9.5.jar:1.9.5] >> at >> org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:394) >> [neo4j-kernel-1.9.5.jar:1.9.5] >> at >> org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:344) >> [neo4j-kernel-1.9.5.jar:1.9.5] >> at >> org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:134) >> [neo4j-kernel-1.9.5.jar:1.9.5] >> at >> org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:127) >> [neo4j-kernel-1.9.5.jar:1.9.5] >> at >> com.pokitdok.ohp.mappings.delegator.DefaultDelegator.createTransactionRootNode(DefaultDelegator.java:312) >> [neo4jlayer-0.0.1-SNAPSHOT-jar-with-depe >> >> =================================================================================================================================== >> org.neo4j.graphdb.TransactionFailureException: Could not get current >> transaction. >> at >> org.neo4j.kernel.impl.transaction.RagManager.getCurrentTransaction(RagManager.java:320) >> at >> org.neo4j.kernel.impl.transaction.RWLock.acquireWriteLock(RWLock.java:336) >> at >> org.neo4j.kernel.impl.transaction.LockManagerImpl.getWriteLock(LockManagerImpl.java:170) >> at >> org.neo4j.kernel.impl.transaction.LockManagerImpl.getWriteLock(LockManagerImpl.java:135) >> at >> org.neo4j.kernel.ha.lock.SlaveLockManager.getWriteLock(SlaveLockManager.java:158) >> at >> org.neo4j.kernel.impl.core.WritableTransactionState.acquireWriteLock(WritableTransactionState.java:268) >> at >> org.neo4j.kernel.impl.core.NodeManager.createNode(NodeManager.java:196) >> at >> org.neo4j.kernel.InternalAbstractGraphDatabase.createNode(InternalAbstractGraphDatabase.java:949) >> at >> com.pokitdok.ohp.datastore.neo4j.NeoDBAccess.createNode(NeoDBAccess.java:187) >> at >> com.pokitdok.ohp.mappings.delegator.DefaultDelegator.createEntityNode(DefaultDelegator.java:546) >> at >> com.pokitdok.ohp.mappings.delegator.DefaultDelegator.createNode(DefaultDelegator.java:523) >> at >> com.pokitdok.ohp.mappings.x12271.Xsd271Delegator.persistLoop2000C(Xsd271Delegator.java:388) >> at >> com.pokitdok.ohp.mappings.x12271.Xsd271Delegator.persistLoop2000B(Xsd271Delegator.java:301) >> at >> com.pokitdok.ohp.mappings.x12271.Xsd271Delegator.persist271Data(Xsd271Delegator.java:246) >> at >> com.pokitdok.ohp.mappings.delegator.DefaultDelegator.persistx12271(DefaultDelegator.java:359) >> at >> com.pokitdok.ohp.mappings.delegator.DefaultDelegator.createTransactionRootNode(DefaultDelegator.java:254) >> at >> com.pokitdok.ohp.mappings.delegator.DefaultDelegator.persistX12EnvolpeData(DefaultDelegator.java:112) >> at >> com.pokitdok.ohp.mappings.handler.JsonXsdNeo4jHandler.persistX12Envelope(JsonXsdNeo4jHandler.java:143) >> at >> com.pokitdok.ohp.restservice.PersistService.storeX12File(PersistService.java:328) >> at >> com.pokitdok.ohp.restservice.PersistService.persistX12Folder(PersistService.java:165) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >> ============================================================================================ >> >> >> Please let me know how to resolve the issue. >> >> Thanks, >> Ramesh Yakkala. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Neo4j" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to neo4j+un...@googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> <neo4j-wrapper.conf><log.rar><neo4j.properties><neo4j-server.properties><neo4j1.error><neo4j2.error><neo4j3.error> > > > -- > You received this message because you are subscribed to the Google Groups > "Neo4j" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to neo4j+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to neo4j+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.