Vor Kurzem hat das Projekt die Umgebung gewechselt und Weblogic durch Tomcat ersetzt. Ich habe die dabei aufgetretenen Probleme aufgezeichnet. Mit JTA in Tomcat können Sie Atomikos in Tomcat bereitstellen und die von Tomcat unterstützte Datenquelle verwenden. Sie können es auch im Projekt konfigurieren und Spring verwenden, um die Datenquelle, den Verbindungspool, den Transaktionsmanager usw. zu konfigurieren. Die beiden Methoden haben ihre eigenen Merkmale. Dieser Artikel stellt nur die Integration von Tomcat und Atomikos vor. Nach der Integration kann Tomcat der Außenwelt einen JTA-Transaktionsmanager und eine Datenquelle bereitstellen. Bevor wir Atomikos verwendeten, verwendeten wir auch JOTM, aber unter hohen Parallelitätsbedingungen versagte JOTM häufig und wir mussten aufgeben. Durch Tests stellten wir fest, dass Atomikos eine gute Leistung und Stabilität aufwies. Wir haben die neueste Version 4.04 von Atomikos verwendet. Das Jar-Paket kann aus der Maven-Konfigurationsbibliothek bezogen werden. Die Linkadresse lautet: http://mvnrepository.com/artifact/com.atomikos Wenn Sie Hibernate nicht verwenden, umfassen die erforderlichen Pakete: atomikos-util.jar, jta.jar, Transaktionen.jar, Transaktionen-API.jar, Transaktionen-jdbc.jar, Transaktionen-jta.jar Integrationspaket: atomikos-integration-extension-3.7.2.jar Denken Sie daran, den Datenbanktreiber Schritt 1: Kopieren Sie diese JARs in das Lib-Verzeichnis von Tomcat. Um Tomcat mit Atomikos zu integrieren, benötigen Sie außerdem ein Integrationspaket. Dieses Integrationspaket enthält zwei Klassen. Sie können die Implementierung selbst nachschlagen oder das offizielle Jar-Paket verwenden. Das neueste ist atomikos-integration-extension-3.7.2.jar Schritt 2: Fügen Sie einen Listener in tomcat/config/server.xml hinzu
Schritt 3: Fügen Sie Datenquellen und zugehörige Transaktionsmanager in tomcat/config/context.xml hinzu. Das Folgende ist ein Referenzbeispiel. Ändern Sie die Parameter nach Bedarf. <Ressourcenname="jdbc/DS_MYSQL" auth="Behälter" Typ="com.atomikos.jdbc.AtomikosDataSourceBean" einzigartigerRessourcenname="jdbc/DS_MYSQL" xaDataSourceClassName="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" xaProperties.databaseName="db_test" xaProperties.serverName="localhost" xaProperties.port="3306" xaProperties.Benutzer="Stamm" xaProperties.password="Stamm" maxPoolSize="200" xaProperties.url="jdbc:mysql://localhost:3306/db_test?characterEncoding=UTF8" Fabrik="com.atomikos.tomcat.EnhancedTomcatAtomikosBeanFactory" /> <Ressourcenname="Benutzertransaktion" auth="Behälter" Typ="javax.transaction.UserTransaction" /> <Transaktionsfabrik="com.atomikos.icatch.jta.UserTransactionFactory" /> Schritt 4: Fügen Sie eine jta.properties-Datei im Verzeichnis tomcat/lib hinzu und legen Sie die transaktionsbezogenen Parameter von Atomikos fest. Andernfalls werden die Standardkonfigurationsparameter verwendet. Einige gleichzeitige Transaktionszahlen (standardmäßig 50) und Timeouts müssen angepasst werden. Einige Parameterkonfigurationen in der Datei sind unten aufgeführt. Parametererklärungen finden Sie in der offiziellen Dokumentation: https://www.atomikos.com/Documentation/JtaProperties Fügen Sie diese Leitungskonfiguration hinzu com.atomikos.icatch.service=com.atomikos.icatch.standalone.UserTransactionServiceFactory Die Standardwerte der Parameter in Atomikos sind in transaction.jar, transaction-default.properties definiert: Wenn Sie interessiert sind, können Sie es selbst nachsehen Nach der Konfiguration der oben genannten vier Schritte ist die Integration von Tomcat abgeschlossen. Spring kann im Projekt verwendet werden, um die Datenquelle und den Transaktionsmanager zu verknüpfen. Die Referenzkonfiguration lautet wie folgt: <!-- Konfigurationsinformationen der JNDI-Vorlage, die für die Verbindung mit dem Anwendungsserver verwendet werden --> <bean class="org.springframework.jndi.JndiTemplate" id="jndiTemplate" /> <bean class="org.springframework.jndi.JndiObjectFactoryBean" id="Datenquelle"> <Eigenschaftsname="jndiName"> <Wert>java:comp/env/jdbc/DS_MYSQL</Wert> </Eigenschaft> <Eigenschaftsname="jndiTemplate"> <ref bean="jndiTemplate"/> </Eigenschaft> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <Eigenschaftsname="Datenquelle"> <ref bean="Datenquelle" /> </Eigenschaft> </bean> <!--Benutzertransaktionsobjekt--> <bean class="org.springframework.jndi.JndiObjectFactoryBean" id="BenutzerTransaktion"> <!--class="org.springframework.transaction.jta.WebLogicJtaTransactionManager">--> <Eigenschaftsname="jndiName"> <Wert>java:comp/UserTransaction</Wert> </Eigenschaft> <Eigenschaftsname="jndiTemplate"> <ref bean="jndiTemplate"/> </Eigenschaft> </bean> <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="schließen"> <Eigenschaftsname="forceShutdown" Wert="false" /> </bean> <!-- Annotationsbasierten deklarativen Transaktionsmanager konfigurieren --> <bean id="TransaktionsManager" Klasse="org.springframework.Transaction.jta.JtaTransactionManager"> <Eigenschaftsname="Benutzertransaktion" ref="Benutzertransaktion" /> <Eigenschaftsname="TransaktionsManager" ref="atomikosTransactionManager" /> </bean> <tx:annotation-driven transaction-manager="TransaktionsManager" /> Die folgende Konfiguration wird in meinem Projekt verwendet: Es wird empfohlen, in conf.xml zu konfigurieren
auth="Behälter" Typ="com.atomikos.jdbc.nonxa.AtomikosNonXADataSourceBean" einzigartigerRessourcenname="jdbc/DS_MYSQL" TreiberKlassenname="com.mysql.jdbc.Driver" maxPoolSize="200" url="jdbc:mysql://localhost:3306/db_test?characterEncoding=UTF8" Benutzer="root" Passwort="root" Fabrik="com.atomikos.tomcat.EnhancedTomcatAtomikosBeanFactory" /> **Fallgrube-Rekord** **Da es hier einen Transaktionsmanager TransactionManager gibt, kann UserTransaction nicht über diesen Typ abgerufen werden. Nach dem Debuggen wird festgestellt, dass diese Klasse nicht gefunden wird** **Ändern Sie es zu type="com.atomikos.icatch.jta.userTransactionImp", um UserTransaction erfolgreich abzurufen,** <Ressourcenname="Benutzertransaktion" auth="Behälter" Typ="com.atomikos.icatch.jta.userTransactionImp"/> <Transaktionsfabrik="com.atomikos.icatch.jta.UserTransactionFactory" /> https://blog.csdn.net/xuyu_yt/article/details/77905553?locationNum=14%20fps=1 Dies ist das Ende dieses Artikels über die Kombination von Tomcat und Atomikos zur Implementierung von JTA. Weitere relevante Inhalte zur Implementierung von JTA durch Atomikos finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Lösen Sie das Problem des MySql8.0-Prüfungsfehlers der Transaktionsisolationsebene
>>: Detaillierte Erklärung zur Verwendung von CSS3 RGB und RGBA (transparente Farbe)
Code kopieren Der Code lautet wie folgt: <meta...
Inhaltsverzeichnis Vorwort: Ergebnis: 1. Polymeri...
Hintergrund Während der Entwicklung benötigen wir...
Link zum Download der ZIP-Datei auf der offiziell...
Inhaltsverzeichnis 2 Lösungen für den Dateiupload...
Lassen Sie uns keine weitere Zeit verschwenden un...
Inhaltsverzeichnis Vorwort Fügen Sie Sudo-Schreib...
Laden Sie zuerst das komprimierte Nacos-Paket von...
MySQL Replikationsfilter dynamisch ändern Lassen ...
Hier ist eine Lösung für das Problem, dass der Ra...
Wenn wir wissen, welche For-Schleife oder welcher...
Vorwort Aufgrund von Bandbreitenbeschränkungen un...
Vorwort Im aktuellen JavaScript gibt es kein Konz...
Unter Linux gibt es zwei Arten von Dateiverbindun...
Vorwort Die Methode „reduce()“ erhält eine Funkti...