]
David Lloyd commented on WFLY-10258:
------------------------------------
Even if you did this you are still stuck with the problem that not every XAR would know
how to sort itself with respect to other XARs. There's just no getting around that
this is not the correct mechanism to use for this problem.
Prevent enlisting additional resources on EJB caller side in case of
server side @RequiresNew
---------------------------------------------------------------------------------------------
Key: WFLY-10258
URL:
https://issues.jboss.org/browse/WFLY-10258
Project: WildFly
Issue Type: Bug
Components: EJB, Transactions
Affects Versions: 12.0.0.Final
Reporter: Jörg Bäsner
Priority: Major
Labels: downstream_dependency
Scenario:
- server-1 (intermediary)
-- Running standalone profile
-- Has a remote-outbound-connection pointing at server-2 through server-2's public IP
address
-- Intermediary bean need to lookup the Target bean in server-2 and also inject the
{{TransactionManager}}
-- Intermediary bean need to enlist a _dummy_ XAResource
- server-2 (target)
-- disable {{JBOSS-LOCAL-USER}} auth
-- Target bean needs to be annotated with {{@REQUIRES_NEW}} (important)
- Standalone EJB client invokes an intermediary bean server-1, which as a result invokes
target bean on server-2.
The _dummy_ XAResource should log in the {{commit}} method whether one-phase optimization
is being used like:
{code}
@Override
public void commit(Xid arg0, boolean onePhaseOptim) throws XAException {
logger.info("-- Committing in the client resource. One-phase optimisation
is: " + onePhaseOptim + " --"
+ (onePhaseOptim ? "" : " -> TWO-PHASE COMMIT
!!!"));
}
{code}
In this scenario it is expected that the one-phase optimization is being used!