[jboss-jira] [JBoss JIRA] (WFLY-10258) Prevent enlisting additional resources on EJB caller side in case of server side @RequiresNew
David Lloyd (JIRA)
issues at jboss.org
Thu Apr 19 10:41:00 EDT 2018
[ https://issues.jboss.org/browse/WFLY-10258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13563753#comment-13563753 ]
David Lloyd edited comment on WFLY-10258 at 4/19/18 10:40 AM:
--------------------------------------------------------------
[~ochaloup] Hmm good points. I wonder if there's some way we could improve it though. What if we proactively delisted the resource with TMSUCCESS before prepare begins? Will the TM still try to include it in commit processing?
More generally: is there a way to indicate that a resource _will_ return {{XA_RDONLY}} when prepare is called, ahead of time? It seems like {{XAResource.end()}} should have had a supported return value where the resource could indicate that it hadn't done anything.
was (Author: dmlloyd):
[~ochaloup] Hmm good points. I wonder if there's some way we could improve it though. What if we proactively delisted the resource with TMSUCCESS before prepare begins? Will the TM still try to include it in commit processing?
> 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
>
> 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!
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the jboss-jira
mailing list