Top Description Fields Constructors Methods
org.eclipse.persistence.descriptors.partitioning

public Class RoundRobinPartitioningPolicy

extends ReplicationPartitioningPolicy
Class Inheritance
Imports
java.util.ArrayList, .List, org.eclipse.persistence.exceptions.QueryException, org.eclipse.persistence.internal.databaseaccess.Accessor, org.eclipse.persistence.internal.sessions.AbstractRecord, .AbstractSession, org.eclipse.persistence.queries.DatabaseQuery, org.eclipse.persistence.sessions.server.ClientSession, .ServerSession

PUBLIC: RoundRobinPartitioningPolicy sends requests in a round robin fashion to the set of connection pools. It is for load-balancing read queries across a cluster of database machines. It requires that the full database be replicated on each machine, so does not support partitioning. The data should either be read-only, or writes should be replicated on the database.
Author
James Sutherland
Since
EclipseLink 2.2

Field Summary

Modifier and TypeField and Description
protected volatile int
protected boolean
Inherited from org.eclipse.persistence.descriptors.partitioning.ReplicationPartitioningPolicy:
connectionPools

Constructor Summary

AccessConstructor and Description
public
public
RoundRobinPartitioningPolicy(boolean replicateWrites)

public
public

Method Summary

Modifier and TypeMethod and Description
public List<Accessor>
getConnectionsForQuery(AbstractSession session, DatabaseQuery query, AbstractRecord arguments)

Overrides org.eclipse.persistence.descriptors.partitioning.ReplicationPartitioningPolicy.getConnectionsForQuery.

INTERNAL: Get a connection from one of the pools in a round robin rotation fashion.
public boolean
getReplicateWrites()

PUBLIC: Return if write queries should be replicated.

public Accessor
nextAccessor(ServerSession session, DatabaseQuery query)

INTERNAL: Return the next connection accessor.

public int
nextIndex()

INTERNAL: Return the next pool index to use.

public void
setReplicateWrites(boolean replicateWrites)

PUBLIC: Set if write queries should be replicated.

Inherited from org.eclipse.persistence.descriptors.partitioning.ReplicationPartitioningPolicy:
addConnectionPoolgetConnectionPoolsinitializesetConnectionPools

Field Detail

currentIndexback to summary
protected volatile int currentIndex
replicateWritesback to summary
protected boolean replicateWrites

Constructor Detail

RoundRobinPartitioningPolicyback to summary
public RoundRobinPartitioningPolicy()
RoundRobinPartitioningPolicyback to summary
public RoundRobinPartitioningPolicy(boolean replicateWrites)
RoundRobinPartitioningPolicyback to summary
public RoundRobinPartitioningPolicy(String... pools)
RoundRobinPartitioningPolicyback to summary
public RoundRobinPartitioningPolicy(List<String> pools)

Method Detail

getConnectionsForQueryback to summary
public List<Accessor> getConnectionsForQuery(AbstractSession session, DatabaseQuery query, AbstractRecord arguments)

Overrides org.eclipse.persistence.descriptors.partitioning.ReplicationPartitioningPolicy.getConnectionsForQuery.

INTERNAL: Get a connection from one of the pools in a round robin rotation fashion.

Annotations
@Override
getReplicateWritesback to summary
public boolean getReplicateWrites()

PUBLIC: Return if write queries should be replicated. This allows for a set of database to be written to and kept in synch, and have reads load-balanced across the databases.

nextAccessorback to summary
public Accessor nextAccessor(ServerSession session, DatabaseQuery query)

INTERNAL: Return the next connection accessor.

nextIndexback to summary
public int nextIndex()

INTERNAL: Return the next pool index to use.

setReplicateWritesback to summary
public void setReplicateWrites(boolean replicateWrites)

PUBLIC: Set if write queries should be replicated. This allows for a set of database to be written to and kept in synch, and have reads load-balanced across the databases.