Test com/sun/jini/test/impl/outrigger/leasing/UseTxnMgrSpaceLeaseTest.td complains because a JavaSpace lets it go on using a Transaction for writes after the Transaction's lease has expired.

The JavaSpace implementation, com.sun.jini.outrigger.OutriggerServerImpl joins and caches the Transaction the first time it is asked to do an operation with it. It does not repeat the join, or any other Transaction operation, when doing another write for a Transaction is has already joined, so it does not find out about the Transaction's lease termination.

I have tentatively reached the conclusion that the Outrigger implementation is reasonable. If the JavaSpace caller wants to know whether the transaction is still active, the caller can itself do a getState() test. There is no reason to force the equivalent of a getState() at each JavaSpace write for the transaction.

In normal use, the caller will issue a limited number of operations associated with the transaction, and then do a commit or abort. The lease should be long enough that there is a high probability of finishing those operations within the lease time. At the time of the commit or abort, it will get an UnknownTransactionException if the transaction has been discarded due to lease expiration. The caller cannot be sure the operations will take effect until a successful commit.

I think the failing test requires something that is neither specified nor logically necessary, and propose deleting it from the test program.

Any opinions?

Patricia

Reply via email to