<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>http://wiki.netsitech.com/index.php?action=history&amp;feed=atom&amp;title=Programmazione%3AJava%2FJTA</id>
	<title>Programmazione:Java/JTA - Cronologia</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.netsitech.com/index.php?action=history&amp;feed=atom&amp;title=Programmazione%3AJava%2FJTA"/>
	<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Programmazione:Java/JTA&amp;action=history"/>
	<updated>2026-05-04T18:37:05Z</updated>
	<subtitle>Cronologia della pagina su questo sito</subtitle>
	<generator>MediaWiki 1.34.4</generator>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Programmazione:Java/JTA&amp;diff=13568&amp;oldid=prev</id>
		<title>Luca.romagnoli il 13:45, 4 gen 2022</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Programmazione:Java/JTA&amp;diff=13568&amp;oldid=prev"/>
		<updated>2022-01-04T13:45:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;it&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Versione meno recente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Versione delle 13:45, 4 gen 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Riga 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;= &amp;lt;span style=&amp;quot;color&lt;/del&gt;: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;#000000;&amp;quot;&amp;gt;&lt;/del&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;span style=&amp;quot;font-family: Arial, sans-serif;&amp;quot;&amp;gt;&lt;/del&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;span style&lt;/del&gt;=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;font-size: large;&amp;quot;&amp;gt;&lt;/del&gt;Transazioni Java (JTA)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; &lt;/del&gt;=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Programmazione&lt;/ins&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Java|&lt;/ins&gt;&amp;lt;&amp;lt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Back to Java]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Transazioni Java (JTA)=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Con '''transazione''' si intende una unità logica di elaborazione composta da una sequenza di operazioni che devono terminare tutte con successo o fallimento.&amp;lt;br&amp;gt;In J2EE esistono 2 tipi di transazioni: quelle gestite direttamente dal container EJB dell'applicazione ('''Container-managed Transaction''') oppure quelle applicative ('''Bean-managed Transaction'''). L'approccio &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/del&gt;CMT&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/del&gt;, rispetto al secondo approccio, semplifica lo sviluppo e la gestione delle transazioni, poiché tutte le operazioni di begin, commit o rollback verranno svincolate dal codice e delegate al container, utilizzando delle annotazioni Java.&amp;lt;br&amp;gt;A tal proposito, esistono &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;6 attributi&amp;lt;/span&amp;gt; che specificano il modo in cui la transazione deve essere gestita:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Con '''transazione''' si intende una unità logica di elaborazione composta da una sequenza di operazioni che devono terminare tutte con successo o fallimento.&amp;lt;br&amp;gt;In J2EE esistono 2 tipi di transazioni: quelle gestite direttamente dal container EJB dell'applicazione ('''Container-managed Transaction''') oppure quelle applicative ('''Bean-managed Transaction'''). L'approccio CMT, rispetto al secondo approccio, semplifica lo sviluppo e la gestione delle transazioni, poiché tutte le operazioni di begin, commit o rollback verranno svincolate dal codice e delegate al container, utilizzando delle annotazioni Java.&amp;lt;br&amp;gt;A tal proposito, esistono &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;6 attributi&amp;lt;/span&amp;gt; che specificano il modo in cui la transazione deve essere gestita:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Required: '''è l'attributo implicito per le transazioni di tipo CMT. Il metodo annotato verrà sempre eseguito in transazione. Il container si aggancerà alla transazione del chiamante, se presente, altrimenti ne aprirà una nuova&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Required: '''è l'attributo implicito per le transazioni di tipo CMT. Il metodo annotato verrà sempre eseguito in transazione. Il container si aggancerà alla transazione del chiamante, se presente, altrimenti ne aprirà una nuova&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''RequiresNew: '''il metodo annotato verrà sempre eseguito in una nuova transazione, indipendentemente dalla transazione (eventuale) del chiamante&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''RequiresNew: '''il metodo annotato verrà sempre eseguito in una nuova transazione, indipendentemente dalla transazione (eventuale) del chiamante&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''NotSupported: '''il metodo annotato verrà sempre eseguito fuori transazione. Il container sospende l'eventuale transazione del chiamante prima di eseguire il metodo annotato. Al completamento di quest'ultimo, il container riprenderà la transazione del chiamante&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''NotSupported: '''il metodo annotato verrà sempre eseguito fuori transazione. Il container sospende l'eventuale transazione del chiamante prima di eseguire il metodo annotato. Al completamento di quest'ultimo, il container riprenderà la transazione del chiamante&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Supports: '''il metodo annotato verrà eseguito in transazione o meno a seconda dell'esecuzione (transazionale o meno) del chiamante: se il chiamante esegue in transazione, il container si aggancerà ad essa, altrimenti, al pari del chiamante, il metodo invocato verrà eseguito fuori transazione&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Supports: '''il metodo annotato verrà eseguito in transazione o meno a seconda dell'esecuzione (transazionale o meno) del chiamante: se il chiamante esegue in transazione, il container si aggancerà ad essa, altrimenti, al pari del chiamante, il metodo invocato verrà eseguito fuori transazione&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Mandatory: '''il metodo annotato è forzato ad eseguire in transazione. Se il chiamante non è associato ad alcuna transazione, verrà sollevata una TransactionRequiredException&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Mandatory: '''il metodo annotato è forzato ad eseguire in transazione. Se il chiamante non è associato ad alcuna transazione, verrà sollevata una TransactionRequiredException&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Never: '''il metodo annotato è forzato ad eseguire fuori transazione. Se il chiamante è in transazione, verrà sollevata una RemoteException&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*'''Never: '''il metodo annotato è forzato ad eseguire fuori transazione. Se il chiamante è in transazione, verrà sollevata una RemoteException&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Luca.romagnoli</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.netsitech.com/index.php?title=Programmazione:Java/JTA&amp;diff=13567&amp;oldid=prev</id>
		<title>Luca.romagnoli: Creata pagina con &quot;= &lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Transazioni Java (JTA)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; =  Con '''transazione...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.netsitech.com/index.php?title=Programmazione:Java/JTA&amp;diff=13567&amp;oldid=prev"/>
		<updated>2022-01-04T13:32:57Z</updated>

		<summary type="html">&lt;p&gt;Creata pagina con &amp;quot;= &amp;lt;span style=&amp;quot;color: #000000;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-family: Arial, sans-serif;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: large;&amp;quot;&amp;gt;Transazioni Java (JTA)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; =  Con &amp;#039;&amp;#039;&amp;#039;transazione...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= &amp;lt;span style=&amp;quot;color: #000000;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-family: Arial, sans-serif;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: large;&amp;quot;&amp;gt;Transazioni Java (JTA)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
Con '''transazione''' si intende una unità logica di elaborazione composta da una sequenza di operazioni che devono terminare tutte con successo o fallimento.&amp;lt;br&amp;gt;In J2EE esistono 2 tipi di transazioni: quelle gestite direttamente dal container EJB dell'applicazione ('''Container-managed Transaction''') oppure quelle applicative ('''Bean-managed Transaction'''). L'approccio '''CMT''', rispetto al secondo approccio, semplifica lo sviluppo e la gestione delle transazioni, poiché tutte le operazioni di begin, commit o rollback verranno svincolate dal codice e delegate al container, utilizzando delle annotazioni Java.&amp;lt;br&amp;gt;A tal proposito, esistono &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;6 attributi&amp;lt;/span&amp;gt; che specificano il modo in cui la transazione deve essere gestita:&lt;br /&gt;
*'''Required: '''è l'attributo implicito per le transazioni di tipo CMT. Il metodo annotato verrà sempre eseguito in transazione. Il container si aggancerà alla transazione del chiamante, se presente, altrimenti ne aprirà una nuova&lt;br /&gt;
*'''RequiresNew: '''il metodo annotato verrà sempre eseguito in una nuova transazione, indipendentemente dalla transazione (eventuale) del chiamante&lt;br /&gt;
*'''NotSupported: '''il metodo annotato verrà sempre eseguito fuori transazione. Il container sospende l'eventuale transazione del chiamante prima di eseguire il metodo annotato. Al completamento di quest'ultimo, il container riprenderà la transazione del chiamante&lt;br /&gt;
*'''Supports: '''il metodo annotato verrà eseguito in transazione o meno a seconda dell'esecuzione (transazionale o meno) del chiamante: se il chiamante esegue in transazione, il container si aggancerà ad essa, altrimenti, al pari del chiamante, il metodo invocato verrà eseguito fuori transazione&lt;br /&gt;
*'''Mandatory: '''il metodo annotato è forzato ad eseguire in transazione. Se il chiamante non è associato ad alcuna transazione, verrà sollevata una TransactionRequiredException&lt;br /&gt;
*'''Never: '''il metodo annotato è forzato ad eseguire fuori transazione. Se il chiamante è in transazione, verrà sollevata una RemoteException&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dall'uso delle transazioni ne conseguono 2 aspetti, uno funzionale e uno tecnico. Quello funzionale, relativo al rollback delle operazioni, e quello tecnico, relativo alla gestione delle risorse.&lt;br /&gt;
&lt;br /&gt;
Vediamo un esempio, prendendo due metodi generici '''A '''e '''B''':&lt;br /&gt;
*'''A''' esegue un'operazione di inserimento sulla tabella 'Pippo' e successivamente invoca B.&amp;lt;span style=&amp;quot;font-family: Arial, sans-serif;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: small;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
*'''B''' esegue un'operazione di aggiornamento sulla tabella 'Pluto'.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: rgb(35, 111, 161);&amp;quot;&amp;gt;Caso in cui A esegua in transazione (T1):&amp;lt;/span&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;Required&amp;lt;/span&amp;gt;, viene agganciato a T1. Le risorse 'Pippo' e 'Pluto' saranno accessibili solo al termine della transazione T1. Se l'aggiornamento va in errore, verrà eseguito il rollback dell'inserimento, siccome entrambi sono sotto stessa transazione T1.&amp;lt;/span&amp;gt;&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;RequiresNew&amp;lt;/span&amp;gt;, viene aperta una nuova transazione T2. La tabella 'Pluto' sarà accessibile al termine della transazione T2. La tabella 'Pippo' sarà accessibile al termine della transazione T1. Se l'aggiornamento va in errore, non verrà eseguito il rollback dell'inserimento, siccome operano in transazioni separate.&amp;lt;/span&amp;gt;&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;NotSupported&amp;lt;/span&amp;gt;, esegue fuori transazione. La tabella 'Pluto' sarà accessibile al termine dell'operazione di aggiornamento. La tabella 'Pippo' sarà accessibile al termine della transazione T1. Se l'aggiornamento va in errore, non verrà eseguito il rollback dell'inserimento, siccome l'aggiornamento è eseguito in ambito non transazionale.&amp;lt;/span&amp;gt;&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;Supports&amp;lt;/span&amp;gt;, viene agganciato a T1. Le risorse 'Pippo' e 'Pluto' saranno accessibili solo al termine della transazione T1. Se l'aggiornamento va in errore, verrà eseguito il rollback dell'inserimento, siccome entrambi sono sotto stessa transazione T1.&amp;lt;/span&amp;gt;&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;Mandatory&amp;lt;/span&amp;gt;, viene agganciato a T1. Le risorse 'Pippo' e 'Pluto' saranno accessibili solo al termine della transazione T1. Se l'aggiornamento va in errore, verrà eseguito il rollback dell'inserimento, siccome entrambi sono sotto stessa transazione T1.&amp;lt;/span&amp;gt;&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;Never&amp;lt;/span&amp;gt;, viene sollevata una RemoteException. Le risorse 'Pippo' e 'Pluto' saranno accessibili. Verrà eseguito il rollback dell'inserimento&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;span style=&amp;quot;color: rgb(35, 111, 161);&amp;quot;&amp;gt;Caso in cui A non esegua in transazione:&amp;lt;/span&amp;gt;'''&lt;br /&gt;
#Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;Required&amp;lt;/span&amp;gt;, viene aperta una nuova transazione T1. La tabella 'Pippo' sarà accessibile al termine dell'operazione di inserimento. La tabella 'Pluto' sarà accessibile al termine della transazione T1. Se l'aggiornamento va in errore, non verrà eseguito il rollback dell'inserimento, siccome quest'ultimo è eseguito in ambito non transazionale.&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;RequiresNew&amp;lt;/span&amp;gt;, viene aperta una nuova transazione T1. La tabella 'Pippo' sarà accessibile al termine dell'operazione di inserimento. La tabella 'Pluto' sarà accessibile al termine della transazione T1. Se l'aggiornamento va in errore, non verrà eseguito il rollback dell'inserimento, siccome quest'ultimo è eseguito in ambito non transazionale.&amp;lt;/span&amp;gt;&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;NotSupported&amp;lt;/span&amp;gt;, esegue fuori transazione. La tabella 'Pippo' sarà accessibile al termine dell'operazione di inserimento. La tabella 'Pluto' sarà accessibile al termine dell'operazione di aggiornamento. Se l'aggiornamento va in errore, non verrà eseguito il rollback dell'inserimento, siccome le operazioni sono eseguite in ambito non transazionale.&amp;lt;/span&amp;gt;&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;Supports&amp;lt;/span&amp;gt;, esegue anch'esso fuori transazione. La tabella 'Pippo' sarà accessibile al termine dell'operazione di inserimento. La tabella 'Pluto' sarà accessibile al termine dell'operazione di aggiornamento. Se l'aggiornamento va in errore, non verrà eseguito il rollback dell'inserimento, siccome le operazioni sono eseguite in ambito non transazionale.&amp;lt;/span&amp;gt;&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;Mandatory&amp;lt;/span&amp;gt;, viene sollevata una TransactionRequiredException. Le risorse 'Pippo' e 'Pluto' saranno accessibili. Non verrà eseguito il rollback dell'inserimento, siccome l'operazione è eseguita in ambito non transazionale.&amp;lt;/span&amp;gt;&lt;br /&gt;
#&amp;lt;span style=&amp;quot;color: rgb(0, 0, 0);&amp;quot;&amp;gt;Se B è annotato come &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;Never&amp;lt;/span&amp;gt;, esegue fuori transazione. La tabella 'Pippo' sarà accessibile al termine dell'operazione di inserimento. La tabella 'Pluto' sarà accessibile al termine dell'operazione di aggiornamento. Se l'aggiornamento va in errore, non verrà eseguito il rollback dell'inserimento, siccome le operazioni sono eseguite in ambito non transazionale.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: rgb(35, 111, 161); text-decoration: underline;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luca.romagnoli</name></author>
		
	</entry>
</feed>