[jbossts-issues] [JBoss JIRA] (JBTM-1447) Create WebserviceFeature for TXBridge
Paul Robinson (JIRA)
jira-events at lists.jboss.org
Mon Feb 25 05:51:56 EST 2013
[ https://issues.jboss.org/browse/JBTM-1447?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12756403#comment-12756403 ]
Paul Robinson commented on JBTM-1447:
We should create a Jira issue to profile the overhead of bridging JTA to WS-AT, where the server side doesn't enlist any participants. This will happen when default propagation is enabled and the client is running a JTA. This is very common if the client is an EJB. The main issue is likely to be the additional disk sync for the unused WS-AT subordinate transaction.
We could probably detect the unused WS-AT transaction is a client response handler. We may then be able to de-list the WS-AT transaction or make it vote read-only. We need to investigate what imposes the lowest overhead.
> Create WebserviceFeature for TXBridge
> Key: JBTM-1447
> URL: https://issues.jboss.org/browse/JBTM-1447
> Project: JBoss Transaction Manager
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: TxBridge
> Reporter: Paul Robinson
> Assignee: Gytis Trikleris
> Fix For: 5.0.0.M2
> Original Estimate: 1 day
> Time Spent: 2 hours
> Remaining Estimate: 1 day, 4 hours
> h2. Create:
> * JTAOverWSATFeature
> * Configuration option on the XTS Subsytem (defaultContextPropagation)
> h2. Semantics:
> h4. JTAOverWSATFeature absent, defaultContextPropagation disabled
> This is the current OOTB experience for EAP 5&6. No handlers are activated automatically. The developer has to add them manually for all ports. When the developer does add the handlers, the MustUnderstand attribute of the WS-TX context is set to true.
> h4. JTAOverWSATFeature absent, defaultContextPropagation enabled (Default OOTB)
> All Web service requests that are made in the context of a JTA transaction will be bridged to WS-AT and the WS-AT context added to the request soap header. MustUnderstand is set to false.
> h4. JTAOverWSATFeature enabled, defaultContextPropagation disabled
> All Web service requests, for this port, that are made in the context of a JTA transaction will be bridged to WS-AT and the WS-AT context added to the request soap header. MustUnderstand is set to true.
> h5. JTAOverWSATFeature disabled, defaultContextPropagation enabled
> All Web service requests, for this port, don't bridge JTA.
> h2. Implementation
> The XTS Subsystem reads its config on boot. It carries out one of the following actions depending on what it finds:
> # <defaultContextPropagation enabled=”true” /> (default OOTB config)
> Add the Bridge handler initialized to be enabled by default then do [JBTM-986] after. Ensure that the Bridge handler is invoked before the WSTX handler.
> # <defaultContextPropagation enabled=”false” />
> Add the Bridge handler initialized to be disabled by default then do [JBTM-986] after. Ensure that the Bridge handler is invoked before the WSTX handler.
> # Config absent.
> Error. Fail config parse.
> h5. Bridge handler
> Two handlers that delegate to the existing TXBridge handler:
> # Disabled by default. Only invokes the TXBridge handler if the JTAOverWSATFeature is present and enabled.
> # Enabled by default. Always invokes the TXBridge handler unless the JTAOverWSATFeature is present and disabled.
> If the bridge detects the JTAOverWSATFeature, but no WSTXFeature, it adds the WSTXFeature to the invocation context (setting WSTXFeature.enabled = JTAOverWSATFeature.enabled). This is needed by the WSTX handler and prevents the developer from having to add both.
> h5. Backwards compatibility
> Existing applications (written before this feature was released) will be specifying Handler chains manually via the binding provider. Therefore we need to tolerate the situation where these handlers are added twice. Once for by this feature and again by the developer.
> In particular the handlers added by this feature and [JBTM-986] should do nothing if the com.arjuna.mw.wst11.client.JaxWSHeaderContextProcessor handler is already in the handler chain. We could achieve this by adding this handler in the post handler chain. We could then look for an existing WSTX header and do nothing if we find it. This is just a suggestion, there may be a better way to achieve this behaviour.
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jbossts-issues