*/
public Object invoke(Invocation invocation)
throws Exception
{
// We are going to go through a Remote invocation, switch to a Marshalled Invocation
MarshalledInvocation mi = new MarshalledInvocation(invocation);
// Set the transaction propagation context
// @todo: MOVE TO TRANSACTION
mi.setTransactionPropagationContext(getTransactionPropagationContext());
// RMI seems to make a connection per invocation.
// If too many clients are making an invocation
// at same time, ConnectionExceptions happen
for (int i = 0; i < MAX_RETRIES; i++)