private static void disassociateRemoteTxIfPossible(AbstractInvocationContext context) { AbstractTransaction transaction = context.getTransaction(); if (transaction instanceof RemoteTransaction) { RemoteTransaction remote = (RemoteTransaction) transaction; if (!remote.tryClearLocation()) { Logs.TXN.tracef("Could not disassociate remote transaction (already in-use or completed) from %s", remote.getLocation()); } } }
private void setupStickinessIfRequired(AbstractInvocationContext context, boolean propagate, AbstractTransaction transaction) { ConcurrentMap<Application, URI> applications = null; if (transaction instanceof RemoteTransaction) { final URI location = ((RemoteTransaction) transaction).getLocation(); // we can only route this request to one place; do not load-balance if (location != null) { context.setDestination(location); setupSessionAffinitiesIfNeeded(context); } } else if (transaction instanceof LocalTransaction && propagate){ applications = getOrCreateApplicationMap(transaction); URI destination = getApplicationAssociation(applications, context); if (destination != null) { context.setDestination(destination); setupSessionAffinitiesIfNeeded(context); } else { if (applications.size() > 0) { context.putAttachment(PREFERRED_DESTINATIONS, applications.values()); } context.putAttachment(APPLICATIONS, applications); } } }
private static void disassociateRemoteTxIfPossible(AbstractInvocationContext context) { AbstractTransaction transaction = context.getTransaction(); if (transaction instanceof RemoteTransaction) { RemoteTransaction remote = (RemoteTransaction) transaction; if (!remote.tryClearLocation()) { Logs.TXN.tracef("Could not disassociate remote transaction (already in-use or completed) from %s", remote.getLocation()); } } }
private static void disassociateRemoteTxIfPossible(AbstractInvocationContext context) { AbstractTransaction transaction = context.getTransaction(); if (transaction instanceof RemoteTransaction) { RemoteTransaction remote = (RemoteTransaction) transaction; if (!remote.tryClearLocation()) { Logs.TXN.tracef("Could not disassociate remote transaction (already in-use or completed) from %s", remote.getLocation()); } } }
private void setupStickinessIfRequired(AbstractInvocationContext context, boolean propagate, AbstractTransaction transaction) { ConcurrentMap<Application, URI> applications = null; if (transaction instanceof RemoteTransaction) { final URI location = ((RemoteTransaction) transaction).getLocation(); // we can only route this request to one place; do not load-balance if (location != null) { context.setDestination(location); setupSessionAffinitiesIfNeeded(context); } } else if (transaction instanceof LocalTransaction && propagate){ applications = getOrCreateApplicationMap(transaction); URI destination = getApplicationAssociation(applications, context); if (destination != null) { context.setDestination(destination); setupSessionAffinitiesIfNeeded(context); } else { if (applications.size() > 0) { context.putAttachment(PREFERRED_DESTINATIONS, applications.values()); } context.putAttachment(APPLICATIONS, applications); } } }
private void setupStickinessIfRequired(AbstractInvocationContext context, boolean propagate, AbstractTransaction transaction) { ConcurrentMap<Application, URI> applications = null; if (transaction instanceof RemoteTransaction) { final URI location = ((RemoteTransaction) transaction).getLocation(); // we can only route this request to one place; do not load-balance if (location != null) { context.setDestination(location); setupSessionAffinitiesIfNeeded(context); } } else if (transaction instanceof LocalTransaction && propagate){ applications = getOrCreateApplicationMap(transaction); URI destination = getApplicationAssociation(applications, context); if (destination != null) { context.setDestination(destination); setupSessionAffinitiesIfNeeded(context); } else { if (applications.size() > 0) { context.putAttachment(PREFERRED_DESTINATIONS, applications.values()); } context.putAttachment(APPLICATIONS, applications); } } }