|
GigaSpaces XAP 7.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IJSpace
Notice: since 7.0 this API is internal and might be subject to changes in future versions.
Use GigaSpace
instead.
This interface represents the application view of a GigaSpace instance. It is implemented by all the Space Proxies (Embedded, Remote and Cluster).
When client receives a proxy to the space from the Lookup Service (see
SpaceFinder
, this proxy implements this interface, and therefore may
be casted to this interface if specific GigaSpaces methods (such as
IServerAdmin.clean()
) are required.
Since this interface extends the JavaSpace
interface, standard
JavaSpaces methods may be invoked without downcasting.
Scenario B: Fetching a POJO from the space using methods read(), readMultiple(),
readIfExists(), take(), takeMultiple(), takeIfExists() etc:
1. When the POJO has no key property declared, it then will be returned without any UID. It
means that only read() and write() operations can be executed on the POJO and
NOT an update().
2. When the POJO has a key property declared, it then will
be returned with the source value of the property but without the generated
UID. The POJO can not approach the UID which was generated by the space. 3.
The POJO has a property which declared as a key and auto generate - The space
returns the POJO with the generated UID into the property.
GigaSpace
,
IJSpaceContainer
,
SpaceFinder
Field Summary |
---|
Fields inherited from interface net.jini.space.JavaSpace |
---|
NO_WAIT |
Method Summary | |
---|---|
void |
clear(net.jini.core.entry.Entry template,
net.jini.core.transaction.Transaction txn)
Removes the entries that match the specified template and the specified transaction from this space. |
int |
count(net.jini.core.entry.Entry tmpl,
net.jini.core.transaction.Transaction txn)
Count any matching entry from the space, visible under the specified transaction. |
int |
count(net.jini.core.entry.Entry tmpl,
net.jini.core.transaction.Transaction txn,
int modifiers)
Count (according to the modifiers ) any matching entry from
the space, visible under the specified transaction. |
net.jini.core.event.EventRegistration |
notify(net.jini.core.entry.Entry template,
net.jini.core.transaction.Transaction txn,
net.jini.core.event.RemoteEventListener listener,
long lease,
MarshalledObject handback,
int notifyType)
Deprecated. Use EventSessionFactory instead. |
net.jini.core.event.EventRegistration |
notify(Object template,
net.jini.core.transaction.Transaction txn,
net.jini.core.event.RemoteEventListener listener,
long lease,
MarshalledObject handback)
Deprecated. Use EventSessionFactory instead. |
net.jini.core.entry.Entry |
read(net.jini.core.entry.Entry tmpl,
net.jini.core.transaction.Transaction txn,
long timeout,
int modifiers)
Read (according to the modifiers ) any matching entry from
the space, blocking until one exists. |
net.jini.core.entry.Entry |
readIfExists(net.jini.core.entry.Entry tmpl,
net.jini.core.transaction.Transaction txn,
long timeout,
int modifiers)
Read (according to the modifiers ) any matching entry from
the space, returning null if there currently is none. |
net.jini.core.entry.Entry[] |
readMultiple(net.jini.core.entry.Entry tmpl,
net.jini.core.transaction.Transaction txn,
int limit)
Read any matching entries from the space. |
net.jini.core.entry.Entry[] |
readMultiple(net.jini.core.entry.Entry tmpl,
net.jini.core.transaction.Transaction txn,
int limit,
int modifiers)
Read (according to the modifiers ) any matching entries
from the space. |
Object[] |
replace(net.jini.core.entry.Entry template,
net.jini.core.entry.Entry newEntry,
net.jini.core.transaction.Transaction txn,
long lease)
Deprecated. use instead: update(Entry, Transaction, long, long, int) |
net.jini.core.entry.Entry[] |
takeMultiple(net.jini.core.entry.Entry template,
net.jini.core.transaction.Transaction txn,
int limit)
Takes all the entries matching the specified template from this space. |
net.jini.core.entry.Entry[] |
takeMultiple(net.jini.core.entry.Entry template,
net.jini.core.transaction.Transaction txn,
int maxEntries,
int modifiers)
Takes all the entries matching the specified template from this space. |
net.jini.core.entry.Entry |
update(net.jini.core.entry.Entry updatedEntry,
net.jini.core.transaction.Transaction transaction,
long lease,
long timeout)
Equivalent to calling update(Entry, Transaction, long, long, int) with
modifiers (if any) set by IProxyAdmin.setUpdateModifiers(int) . |
net.jini.core.entry.Entry |
update(net.jini.core.entry.Entry updatedEntry,
net.jini.core.transaction.Transaction transaction,
long lease,
long timeout,
int updateModifiers)
Equivalent to calling IPojoSpace.update(Object, Transaction, long, long, int) by use of
a cast from Entry to Object. see it also as a reference to further semantics of this method. |
Object[] |
updateMultiple(net.jini.core.entry.Entry[] entries,
net.jini.core.transaction.Transaction transaction,
long[] leases)
Equivalent to calling updateMultiple(Entry[], Transaction, long[], int) with
modifiers (if any) set by IProxyAdmin.setUpdateModifiers(int) . |
Object[] |
updateMultiple(net.jini.core.entry.Entry[] entries,
net.jini.core.transaction.Transaction transaction,
long[] leases,
int updateModifiers)
Equivalent to calling IPojoSpace.updateMultiple(Object[], Transaction, long[], int) by use of an
array of Object[] constructed as new Entry[]. see it also as a reference
to further semantics of this method. |
net.jini.core.lease.Lease[] |
writeMultiple(net.jini.core.entry.Entry[] entries,
net.jini.core.transaction.Transaction txn,
long lease)
Writes the specified entries to this space. |
Methods inherited from interface net.jini.space.JavaSpace |
---|
notify, read, readIfExists, snapshot, take, takeIfExists, write |
Methods inherited from interface com.gigaspaces.client.IPojoSpace |
---|
clear, count, count, getProxyAdmin, getServerAdmin, read, read, readIfExists, readIfExists, readMultiple, readMultiple, snapshot, take, takeIfExists, takeMultiple, takeMultiple, update, update, updateMultiple, updateMultiple, write, write, writeMultiple, writeMultiple |
Methods inherited from interface com.gigaspaces.client.IProxyAdmin |
---|
getFinderURL, getReadModifiers, getUpdateModifiers, isFifo, isNOWriteLeaseMode, isOptimisticLockingEnabled, isSecured, isStartedWithinGSC, setDefaultTransaction, setFifo, setNOWriteLeaseMode, setOptimisticLocking, setReadModifiers, setSecurityContext, setUpdateModifiers |
Methods inherited from interface com.gigaspaces.client.IServerAdmin |
---|
clean, dropClass, getAdmin, getContainer, getName, getReferentUuid, getStubHandler, getURL, isEmbedded, ping |
Method Detail |
---|
int count(net.jini.core.entry.Entry tmpl, net.jini.core.transaction.Transaction txn) throws net.jini.core.entry.UnusableEntryException, net.jini.core.transaction.TransactionException, RemoteException
tmpl
- The template used for matching. Matching is done against
tmpl
with null
fields being
wildcards ("match anything") other fields being values ("match
exactly on the serialized form").txn
- The transaction (if any) under which to work.
net.jini.core.entry.UnusableEntryException
- if any serialized field of the object being
read cannot be deserialized for any reason
net.jini.core.transaction.TransactionException
- if a transaction error occurs
RemoteException
- if a communication error occursint count(net.jini.core.entry.Entry tmpl, net.jini.core.transaction.Transaction txn, int modifiers) throws net.jini.core.entry.UnusableEntryException, net.jini.core.transaction.TransactionException, RemoteException
modifiers
) any matching entry from
the space, visible under the specified transaction.
Overloads count(Entry, Transaction)
by adding a
modifiers parameter. Equivalent when called with the default
modifier - ReadModifiers.REPEATABLE_READ
. Modifiers are used
to define the behavior of a read operation.
tmpl
- The template used for matching. Matching is done against
tmpl
with null
fields being
wildcards ("match anything") other fields being values ("match
exactly on the serialized form").txn
- The transaction (if any) under which to work.modifiers
- one or a union of ReadModifiers
.
net.jini.core.entry.UnusableEntryException
- if any serialized field of the object being
read cannot be deserialized for any reason
net.jini.core.transaction.TransactionException
- if a transaction error occurs
RemoteException
- if a communication error occursnet.jini.core.entry.Entry read(net.jini.core.entry.Entry tmpl, net.jini.core.transaction.Transaction txn, long timeout, int modifiers) throws net.jini.core.entry.UnusableEntryException, net.jini.core.transaction.TransactionException, InterruptedException, RemoteException
modifiers
) any matching entry from
the space, blocking until one exists. Return null if the
timeout expires.
Overloads JavaSpace.read(Entry, Transaction, long)
by adding a
modifiers parameter. Equivalent when called with the default
modifier - ReadModifiers.REPEATABLE_READ
. Modifiers are used
to define the behavior of a read operation.
tmpl
- The template used for matching. Matching is done against
tmpl
with null
fields being
wildcards ("match anything") other fields being values ("match
exactly on the serialized form").txn
- The transaction (if any) under which to work.timeout
- How long the client is willing to wait for a
transactionally proper matching entry. A timeout of
JavaSpace.NO_WAIT
means to wait no time at all; this is
equivalent to a wait of zero.modifiers
- one or a union of ReadModifiers
.
net.jini.core.entry.UnusableEntryException
- if any serialized field of the entry being
read cannot be deserialized for any reason
net.jini.core.transaction.TransactionException
- if a transaction error occurs
InterruptedException
- if the thread in which the read occurs is
interrupted
RemoteException
- if a communication error occursJavaSpace.read(Entry, Transaction, long)
net.jini.core.entry.Entry readIfExists(net.jini.core.entry.Entry tmpl, net.jini.core.transaction.Transaction txn, long timeout, int modifiers) throws net.jini.core.entry.UnusableEntryException, net.jini.core.transaction.TransactionException, InterruptedException, RemoteException
modifiers
) any matching entry from
the space, returning null if there currently is none. Matching
and timeouts are done as in read, except that blocking in this
call is done only if necessary to wait for transactional state to settle.
Overloads JavaSpace.readIfExists(Entry, Transaction, long)
by
adding a modifiers parameter. Equivalent when called with the
default modifier - ReadModifiers.REPEATABLE_READ
. Modifiers
are used to define the behavior of a read operation.
tmpl
- The template used for matching. Matching is done against
tmpl
with null
fields being
wildcards ("match anything") other fields being values ("match
exactly on the serialized form").txn
- The transaction (if any) under which to work.timeout
- How long the client is willing to wait for a
transactionally proper matching entry. A timeout of
JavaSpace.NO_WAIT
means to wait no time at all; this is
equivalent to a wait of zero.modifiers
- one or a union of ReadModifiers
.
net.jini.core.entry.UnusableEntryException
- if any serialized field of the entry being
read cannot be deserialized for any reason
net.jini.core.transaction.TransactionException
- if a transaction error occurs
InterruptedException
- if the thread in which the read occurs is
interrupted
RemoteException
- if a communication error occursJavaSpace.readIfExists(Entry, Transaction, long)
,
read(Entry, Transaction, long, int)
net.jini.core.entry.Entry[] readMultiple(net.jini.core.entry.Entry tmpl, net.jini.core.transaction.Transaction txn, int limit) throws net.jini.core.transaction.TransactionException, net.jini.core.entry.UnusableEntryException, RemoteException
JavaSpace.NO_WAIT
). Returns an
array with matches bound by limit. Returns an
empty array if no match was found.
Note: Each matching entry has to be explicitly cast.
Entry[] results = ijspace.readMultiple( new MyEntry(), (Transaction)null, Integer.MAX_VALUE );
for (int i=0; i<results.length; i++)
{
System.out.println( (MyEntry)results[i]) );
}
tmpl
- The template used for matching. Matching is done against
tmpl
with null
fields being
wildcards ("match anything") other fields being values ("match
exactly on the serialized form").txn
- The transaction (if any) under which to work.limit
- a limit on the number of entries to be returned. Use
Integer.MAX_VALUE
for the uppermost limit.
net.jini.core.entry.UnusableEntryException
- if any serialized field of the object being
read cannot be deserialized for any reason
net.jini.core.transaction.TransactionException
- if a transaction error occurs
RemoteException
- if a communication error occursnet.jini.core.entry.Entry[] readMultiple(net.jini.core.entry.Entry tmpl, net.jini.core.transaction.Transaction txn, int limit, int modifiers) throws net.jini.core.transaction.TransactionException, net.jini.core.entry.UnusableEntryException, RemoteException
modifiers
) any matching entries
from the space. Matching is done as in read without timeout (JavaSpace.NO_WAIT
).
Returns an array with matches bound by limit.
Returns an empty array if no match was found.
Overloads readMultiple(Entry, Transaction, int)
by adding a
modifiers parameter. Equivalent when called with the default
modifier - ReadModifiers.REPEATABLE_READ
. Modifiers are used
to define the behavior of a read operation.
tmpl
- The template used for matching. Matching is done against
tmpl
with null
fields being
wildcards ("match anything") other fields being values ("match
exactly on the serialized form").txn
- The transaction (if any) under which to work.limit
- a limit on the number of entries to be returned. Use
Integer.MAX_VALUE
for the uppermost limit.modifiers
- one or a union of ReadModifiers
.
net.jini.core.entry.UnusableEntryException
- if any serialized field of the object being
read cannot be deserialized for any reason
net.jini.core.transaction.TransactionException
- if a transaction error occurs
RemoteException
- if a communication error occursreadMultiple(Entry, Transaction, int)
@Deprecated Object[] replace(net.jini.core.entry.Entry template, net.jini.core.entry.Entry newEntry, net.jini.core.transaction.Transaction txn, long lease) throws net.jini.core.transaction.TransactionException, net.jini.core.entry.UnusableEntryException, RemoteException
update(Entry, Transaction, long, long, int)
IJSpace aSpace = (IJSpace)
The replace method is not atomic (unless used with transaction) which means that the former call equals to:SpaceFinder.find("jini://lookup-host/container-name/space-name")
; Message tmpl = new Message("Hello World"); Message msg = new Message("Goodbye World"); Object[] result = aSpace.replace(tmpl, msg, null, Lease.FOREVER); Message old = (Message)result[0]; long msgLease = ((Lease)result[1]).getExpiration();Message old = (Message)aSpace.take(tmpl, null,
JavaSpace.NO_WAIT
); Lease lease = aSpace.write(msg, null,Lease.FOREVER
);
template
- the template to use for matching.newEntry
- the value of the new entry.txn
- the transaction under which to perform the operation.lease
- the lease time of the new entry
null
is returned.
net.jini.core.transaction.TransactionException
- if a transaction error occurs
net.jini.core.entry.UnusableEntryException
- if any serialized field of the entry being read cannot be deserialized for any reason
RemoteException
- if a communication error occurs
IllegalArgumentException
- if the lease time requested is not Lease.ANY and is negativeupdate(Entry, Transaction, long, long, int)
@Deprecated net.jini.core.event.EventRegistration notify(Object template, net.jini.core.transaction.Transaction txn, net.jini.core.event.RemoteEventListener listener, long lease, MarshalledObject handback) throws net.jini.core.transaction.TransactionException, RemoteException
EventSessionFactory
instead.
template
- The template used for matching. Matching is done using a
template with null fields resulting in wildcards ("match anything") other
fields resulting in values ("match exactly on the serialized form").txn
- The transaction (if any) under which to work.listener
- The remote event listener to notify.lease
- the requested lease time, in millisecondshandback
- An object to send to the listener as part of the
event notification
net.jini.core.transaction.TransactionException
RemoteException
void clear(net.jini.core.entry.Entry template, net.jini.core.transaction.Transaction txn) throws RemoteException, net.jini.core.transaction.TransactionException, net.jini.core.entry.UnusableEntryException
IJSpace aSpace = (IJSpace)
If the clear operation conducted without transaction (null as value) it will clear all entries that are not under transaction. Therefor entries under transaction would not be removed from the space. The clear operation supports inheritance, therefor template class matching objects and its sub classes matching objects are part of the candidates population to be removed from the space. You can in fact clean all space objects (that are not under transaction) by calling:SpaceFinder.find("jini://lookup-host/container-name/space-name")
; Entry multiTmpl = new Message(); aSpace.clear(multiTmpl, null);space.clear( null, null)
. Notice: The clear operation does not remove notify templates i.e. registration for notifications.
template
- the template to use for matching.txn
- the transaction under which to perform the operation.
net.jini.core.transaction.TransactionException
- if a transaction error occurs
net.jini.core.entry.UnusableEntryException
- if any serialized field of the entry being read cannot be deserialized for any reason
RemoteException
- if a communication error occursIServerAdmin.clean()
@Deprecated net.jini.core.event.EventRegistration notify(net.jini.core.entry.Entry template, net.jini.core.transaction.Transaction txn, net.jini.core.event.RemoteEventListener listener, long lease, MarshalledObject handback, int notifyType) throws net.jini.core.transaction.TransactionException, RemoteException
EventSessionFactory
instead.
JavaSpace.notify()
method.NOTIFY_ALL
,
or use specific types:
Available Notify types:
NotifyModifiers.NOTIFY_WRITE
NotifyModifiers.NOTIFY_UPDATE
NotifyModifiers.NOTIFY_TAKE
NotifyModifiers.NOTIFY_LEASE_EXPIRATION
NotifyModifiers.NOTIFY_ALL
IJSpace aSpace = (IJSpace)SpaceFinder.find("jini://lookup-host/container-name/space-name")
;
Entry template = new Message();
EventRegistration eventReg = aSpace.notify( template, null, this, Lease.FOREVER, null, NotifyModifiers.NOTIFY_ALL);
System.out.println("Notification registered. Registration id: "
+ eventReg.getID() + " ; Sequence number: "
+ eventReg.getSequenceNumber());
Note: the RemoteEventListner identifier has been passed as this
, indicating
that the current class implements RemoteEventListener. notify
method. You could then obtain
the entry that triggered the event e.g.:
void notify(RemoteEvent theEvent) {
...
EntryArrivedRemoteEvent
arrivedRemoteEvent = (EntryArrivedRemoteEvent)theEvent;
Entry entry = arrivedRemoteEvent.getEntry();
int notifyType = arrivedRemoteEvent.getNotifyType();
...
}
template
- The template used for matching. Matching is
done against template
with null
fields being wildcards ("match anything") other
fields being values ("match exactly on the
serialized form").txn
- The transaction (if any) under which to work.listener
- The remote event listener to notify.lease
- the requested lease time, in millisecondshandback
- An object to send to the listener as part of the
event notification.notifyType
- Notify type.
net.jini.core.transaction.TransactionException
- if a transaction error occurs
RemoteException
- if a communication error occurs
IllegalArgumentException
- if the lease time requested
is not Lease.ANY and is negativeJavaSpace.read(Entry, Transaction, long)
,
NotifyModifiers
,
NotifyDelegator
net.jini.core.entry.Entry[] takeMultiple(net.jini.core.entry.Entry template, net.jini.core.transaction.Transaction txn, int limit) throws net.jini.core.transaction.TransactionException, net.jini.core.entry.UnusableEntryException, RemoteException
IJSpace aSpace = (IJSpace)SpaceFinder.find("jini://lookup-host/container-name/space-name")
;
Entry
multiTmpl = new Message();
Entry[] results = aSpace.takeMultiple( multiTmpl, null, Integer.MAX_VALUE );
for (int i=0; i<results.length; i++)
{
System.out.println("Taken-Multiple: "+((Message)results[i]).content);
}
template
- the template to use for matching.txn
- the transaction under which to perform the operation.limit
- a limit on the number of entries to be taken. Use
Integer.MAX_VALUE
for the maximum value.
net.jini.core.transaction.TransactionException
- if a transaction error occurs
net.jini.core.entry.UnusableEntryException
- if any serialized field of the entry being read cannot be deserialized for any reason
RemoteException
- if a communication error occursnet.jini.core.entry.Entry[] takeMultiple(net.jini.core.entry.Entry template, net.jini.core.transaction.Transaction txn, int maxEntries, int modifiers) throws net.jini.core.transaction.TransactionException, net.jini.core.entry.UnusableEntryException, RemoteException
IJSpace aSpace = (IJSpace)SpaceFinder.find("jini://lookup-host/container-name/space-name")
;
Entry
multiTmpl = new Message();
Entry[] results = aSpace.takeMultiple( multiTmpl, null, Integer.MAX_VALUE );
for (int i=0; i<results.length; i++)
{
System.out.println("Taken-Multiple: "+((Message)results[i]).content);
}
template
- the template to use for matching.txn
- the transaction under which to perform the operation.maxEntries
- a limit on the number of entries to be taken. Use
Integer.MAX_VALUE
for the maximum value.modifiers
- one of [ReadModifiers.THROW_PARTIAL_FAILURE
, ReadModifiers.REPEATABLE_READ
]
net.jini.core.transaction.TransactionException
- if a transaction error occurs
net.jini.core.entry.UnusableEntryException
- if any serialized field of the entry being read cannot be deserialized for any reason
RemoteException
- if a communication error occursnet.jini.core.entry.Entry update(net.jini.core.entry.Entry updatedEntry, net.jini.core.transaction.Transaction transaction, long lease, long timeout) throws net.jini.core.transaction.TransactionException, net.jini.core.entry.UnusableEntryException, RemoteException, InterruptedException
update(Entry, Transaction, long, long, int)
with
modifiers (if any) set by IProxyAdmin.setUpdateModifiers(int)
.
updatedEntry
- the new value of the entry, must contain the UID.transaction
- The transaction under which to perform the operation.lease
- The lease time of the updated entry, 0 means retain the original leasetimeout
- "IfExists" timeout
update(Entry, Transaction, long, long, int)
according to
the set UpdateModifiers
. (see IProxyAdmin.setUpdateModifiers(int)
net.jini.core.transaction.TransactionException
- if a transaction error occurs
net.jini.core.entry.UnusableEntryException
- if any serialized field of the entry being read cannot be deserialized for any reason
RemoteException
- if a communication error occurs
InterruptedException
- if the thread in which the read occurs is interrupted
IllegalArgumentException
- if the lease time requested
is not Lease.ANY and is negativeupdate(Entry, Transaction, long, long, int)
,
UpdateModifiers
,
IProxyAdmin.setUpdateModifiers(int)
Object[] updateMultiple(net.jini.core.entry.Entry[] entries, net.jini.core.transaction.Transaction transaction, long[] leases) throws net.jini.core.entry.UnusableEntryException, net.jini.core.transaction.TransactionException, RemoteException
updateMultiple(Entry[], Transaction, long[], int)
with
modifiers (if any) set by IProxyAdmin.setUpdateModifiers(int)
.
entries
- the array of entries containing the new values ,
each entry must contain its UID.transaction
- The transaction under which to perform the operation.leases
- The lease time of the updated entries, 0 means retain the original lease
updateMultiple(Entry[], Transaction, long[], int)
according to
the set UpdateModifiers
. (see IProxyAdmin.setUpdateModifiers(int)
net.jini.core.transaction.TransactionException
- if a transaction error occurs
net.jini.core.entry.UnusableEntryException
- if any serialized field of the entry being read cannot be deserialized for any reason
RemoteException
- if a communication error occursObject[] updateMultiple(net.jini.core.entry.Entry[] entries, net.jini.core.transaction.Transaction transaction, long[] leases, int updateModifiers) throws net.jini.core.entry.UnusableEntryException, net.jini.core.transaction.TransactionException, RemoteException
IPojoSpace.updateMultiple(Object[], Transaction, long[], int)
by use of an
array of Object[] constructed as new Entry[]. see it also as a reference
to further semantics of this method.
Object[] entries = new Entry[length];
Lease[] leases = new Lease[length];
for (int i=0; i<length; i++)
{
entries[i] = new Message("hello-"+i);
leases[i] = Lease.FOREVER;
}
Object[] results = aSpace.updateMultiple(entries, null, leases, UpdateModifiers.UPDATE_ONLY
);
entries
- the array of entries containing the new values ,
each entry must contain its UID.transaction
- The transaction under which to perform the operation.leases
- The lease time of the updated entries, 0 means retain the original leaseupdateModifiers
- operation modifiers, values from UpdateModifiers
null
- if timeout occurred after waiting for a transactional proper matching entry
UpdateModifiers.UPDATE_OR_WRITE
modifier is applied,
null
- if write was successful,
net.jini.core.transaction.TransactionException
- if a transaction error occurs
net.jini.core.entry.UnusableEntryException
- if any serialized field of the entry being read cannot be deserialized for any reason
RemoteException
- if a communication error occursnet.jini.core.lease.Lease[] writeMultiple(net.jini.core.entry.Entry[] entries, net.jini.core.transaction.Transaction txn, long lease) throws net.jini.core.transaction.TransactionException, RemoteException
IJSpace aSpace = (IJSpace)SpaceFinder.find("jini://lookup-host/container-name/space-name")
;
Entry
[] entries = new Entry[100];
for (int i=0; i<entries.length; i++)
{
entries[i] = new Message("Hello World -"+i);
}
aSpace.writeMultiple( entries, null, Lease.FOREVER );
entries
- the entries to write.txn
- the transaction object, if any, under which to perform the writelease
- the requested lease time, in milliseconds
Lease
on a successful write, or null
if performed with NoWriteLease attribute.
net.jini.core.transaction.TransactionException
- if a transaction error occurs
RemoteException
- is never thrown for backward only
IllegalArgumentException
- if the lease time requested
is not Lease.ANY and is negative, the entries array is empty or null.
InterruptedException
- if the thread in which the write occurs is interrupted
com.j_spaces.core.multiple.write.WriteMultiplePartialFailureException
- that point out which entries failed and what is the cause,
relevant in case of partial failure (can contains runtime and typed exceptions)net.jini.core.entry.Entry update(net.jini.core.entry.Entry updatedEntry, net.jini.core.transaction.Transaction transaction, long lease, long timeout, int updateModifiers) throws net.jini.core.transaction.TransactionException, net.jini.core.entry.UnusableEntryException, RemoteException, InterruptedException
IPojoSpace.update(Object, Transaction, long, long, int)
by use of
a cast from Entry to Object. see it also as a reference to further semantics of this method.
updatedEntry
- The new value of the entry, where matching is done by UID.transaction
- The transaction (if any) under which to work.lease
- The requested lease time of the updated entry, in milliseconds; 0 means retain the original lease.timeout
- How long the client is willing to wait for a transactionally proper matching entry. A timeout of NO_WAIT means to wait no time at all; this is equivalent to a wait of zero.updateModifiers
- operation modifiers, values from UpdateModifiers
null
- if timeout occurred after waiting for a transactional proper matching entry.
UpdateModifiers.UPDATE_OR_WRITE
modifier is applied,
null
- if write was successful,
EntryNotInSpaceException
- if an entry with such a UID doesn't exits in the space
OperationTimeoutException
- if timeout expires (when used
with UpdateModifiers.UPDATE_OR_WRITE
modifier)
net.jini.core.transaction.TransactionException
- if a transaction error occurs
net.jini.core.entry.UnusableEntryException
- if any serialized field of the entry being read cannot be deserialized for any reason
or EntryNotInSpaceException
is throw when the UId is not exists in the space
RemoteException
- if a communication error occurs
InterruptedException
- if the thread in which the read occurs is interrupted
IllegalArgumentException
- if the lease time requested
is not Lease.ANY and is negativeIPojoSpace.update(Object, Transaction, long, long, int)
,
UpdateModifiers
,
IProxyAdmin.setUpdateModifiers(int)
|
GigaSpaces XAP 7.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |