Gemfire JavaDocs_test
Class FunctionService
- java.lang.Object
-
- org.apache.geode.cache.execute.FunctionService
-
public class FunctionService extends java.lang.Object
Provides the entry point into execution of user defined Functions.Function execution provides a means to route application behaviour to data or more generically to peers in a
DistributedSystem
or servers in aPool
.- Since:
- GemFire 6.0
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
FunctionService(org.apache.geode.internal.cache.execute.FunctionExecutionService functionExecutionService)
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Function
getFunction(java.lang.String functionId)
Returns theFunction
defined by the functionId, returns null if no function is found for the specified functionIdstatic java.util.Map<java.lang.String,Function>
getRegisteredFunctions()
Returns all locally registered functionsstatic boolean
isRegistered(java.lang.String functionId)
Returns true if the function is registered to FunctionServicestatic Execution
onMember(java.lang.String... groups)
Returns anExecution
object that can be used to execute a data independent function on one member of each group provided.static Execution
onMember(DistributedMember distributedMember)
Returns anExecution
object that can be used to execute a data independent function on aDistributedMember
.static Execution
onMembers(java.lang.String... groups)
Returns anExecution
object that can be used to execute a data independent function on all peer members.static Execution
onMembers(java.util.Set<DistributedMember> distributedMembers)
Returns anExecution
object that can be used to execute a data independent function on the set ofDistributedMember
s.static Execution
onRegion(Region region)
static Execution
onServer(Pool pool)
static Execution
onServer(RegionService regionService)
Returns anExecution
object that can be used to execute a data independent function on a server that the given cache is connected to.static Execution
onServers(Pool pool)
static Execution
onServers(RegionService regionService)
Returns anExecution
object that can be used to execute a data independent function on all the servers that the given cache is connected to.static void
registerFunction(Function function)
static void
unregisterFunction(java.lang.String functionId)
-
-
-
Method Detail
-
onRegion
public static Execution onRegion(Region region)
Returns anExecution
object that can be used to execute a data dependent function on the specified Region.
When invoked from a GemFire client, the method returns an Execution instance that sends a message to one of the connected servers as specified by thePool
for the region.
Depending on the filters setup on theExecution
, the function is executed on all GemFire members that define the data region, or a subset of members.Execution.withFilter(Set)
). For DistributedRegions with DataPolicy.NORMAL, it throws UnsupportedOperationException. For DistributedRegions with DataPolicy.EMPTY, execute the function on any random member which has DataPolicy.REPLICATE
. For DistributedRegions with DataPolicy.REPLICATE, execute the function locally. For Regions with DataPolicy.PARTITION, it executes on members where the data resides as specified by the filter.- Parameters:
region
- theRegion
on which the returnedExecution
will execute functions- Returns:
- an
Execution
object that can be used to execute a data dependent function on the specifiedRegion
- Throws:
FunctionException
- if the region passed in is null- Since:
- GemFire 6.0
-
onServer
public static Execution onServer(Pool pool)
Returns anExecution
object that can be used to execute a data independent function on a server in the providedPool
.If the server goes down while dispatching or executing the function, an Exception will be thrown.
- Parameters:
pool
- from which to chose a server for execution- Returns:
- an
Execution
object that can be used to execute a data independent function on a server in the providedPool
- Throws:
FunctionException
- if Pool instance passed in is null- Since:
- GemFire 6.0
-
onServers
public static Execution onServers(Pool pool)
Returns anExecution
object that can be used to execute a data independent function on all the servers in the providedPool
. If one of the servers goes down while dispatching or executing the function on the server, an Exception will be thrown.- Parameters:
pool
- the set of servers to execute the function- Returns:
- an
Execution
object that can be used to execute a data independent function on all the servers in the providedPool
- Throws:
FunctionException
- if Pool instance passed in is null- Since:
- GemFire 6.0
-
onServer
public static Execution onServer(RegionService regionService)
Returns anExecution
object that can be used to execute a data independent function on a server that the given cache is connected to.If the server goes down while dispatching or executing the function, an Exception will be thrown.
- Parameters:
regionService
- obtained fromClientCacheFactory.create()
orClientCache.createAuthenticatedView(Properties)
.- Returns:
- an
Execution
object that can be used to execute a data independent function on a server that the given cache is connected to - Throws:
FunctionException
- if cache is null, is not on a client, or it does not have a default pool- Since:
- GemFire 6.5
-
onServers
public static Execution onServers(RegionService regionService)
Returns anExecution
object that can be used to execute a data independent function on all the servers that the given cache is connected to. If one of the servers goes down while dispatching or executing the function on the server, an Exception will be thrown.- Parameters:
regionService
- obtained fromClientCacheFactory.create()
orClientCache.createAuthenticatedView(Properties)
.- Returns:
- an
Execution
object that can be used to execute a data independent function on all the servers that the given cache is connected to - Throws:
FunctionException
- if cache is null, is not on a client, or it does not have a default pool- Since:
- GemFire 6.5
-
onMember
public static Execution onMember(DistributedMember distributedMember)
Returns anExecution
object that can be used to execute a data independent function on aDistributedMember
. If the member is not found, executing the function will throw an Exception. If the member goes down while dispatching or executing the function on the member, an Exception will be thrown.- Parameters:
distributedMember
- defines a member in the distributed system- Returns:
- an
Execution
object that can be used to execute a data independent function on aDistributedMember
- Throws:
FunctionException
- if distributedMember is null- Since:
- GemFire 7.0
-
onMembers
public static Execution onMembers(java.lang.String... groups)
Returns anExecution
object that can be used to execute a data independent function on all peer members. If the optional groups parameter is provided, function is executed on all members that belong to the provided groups.If one of the members goes down while dispatching or executing the function on the member, an Exception will be thrown.
- Parameters:
groups
- optional list of GemFire configuration property "groups" (seegroups
) on which to execute the function. Function will be executed on all members of each group- Returns:
- an
Execution
object that can be used to execute a data independent function on all peer members - Throws:
FunctionException
- if no members are found belonging to the provided groups- Since:
- GemFire 7.0
-
onMembers
public static Execution onMembers(java.util.Set<DistributedMember> distributedMembers)
Returns anExecution
object that can be used to execute a data independent function on the set ofDistributedMember
s. If one of the members goes down while dispatching or executing the function, an Exception will be thrown.- Parameters:
distributedMembers
- set of distributed members on whichFunction
to be executed- Returns:
- an
Execution
object that can be used to execute a data independent function on the set ofDistributedMember
s provided - Throws:
FunctionException
- if distributedMembers is null- Since:
- GemFire 7.0
-
onMember
public static Execution onMember(java.lang.String... groups)
Returns anExecution
object that can be used to execute a data independent function on one member of each group provided.- Parameters:
groups
- list of GemFire configuration property "groups" (seegroups
) on which to execute the function. Function will be executed on one member of each group- Returns:
- an
Execution
object that can be used to execute a data independent function on one member of each group provided - Throws:
FunctionException
- if no members are found belonging to the provided groups- Since:
- GemFire 7.0
-
getFunction
public static Function getFunction(java.lang.String functionId)
Returns theFunction
defined by the functionId, returns null if no function is found for the specified functionId- Parameters:
functionId
- a functionId- Returns:
- the
Function
defined by the functionId or null if no function is found for the specified functionId - Throws:
FunctionException
- if functionID passed is null- Since:
- GemFire 6.0
-
registerFunction
public static void registerFunction(Function function)
Registers the givenFunction
with theFunctionService
usingFunction.getId()
.Registering a function allows execution of the function using
Execution.execute(String)
. Every member that could execute a function using itsFunction.getId()
should register the function.- Parameters:
function
- theFunction
to register- Throws:
FunctionException
- if function instance passed is null or Function.getId() returns null- Since:
- GemFire 6.0
-
unregisterFunction
public static void unregisterFunction(java.lang.String functionId)
- Parameters:
functionId
- the ID of the function- Throws:
FunctionException
- if function instance passed is null or Function.getId() returns null- Since:
- GemFire 6.0
-
isRegistered
public static boolean isRegistered(java.lang.String functionId)
Returns true if the function is registered to FunctionService- Parameters:
functionId
- the ID of the function- Returns:
- whether the function is registered to FunctionService
- Throws:
FunctionException
- if function instance passed is null or Function.getId() returns null- Since:
- GemFire 6.0
-
getRegisteredFunctions
public static java.util.Map<java.lang.String,Function> getRegisteredFunctions()
Returns all locally registered functions- Returns:
- A view of registered functions as a Map of
Function.getId()
toFunction
- Since:
- GemFire 6.0
-
-