Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Propagacja transakcji Oracle między C++ a Java

Jest przykład na blogu Laurenta Schneidera korzystania z pakietu DBMS_XA wewnątrz Oracle, aby zezwolić na działanie wielu sesji w tej samej transakcji. Byłoby więc możliwe, aby sesje Java i C++ uczestniczyły w tej samej transakcji bez potrzeby jakiegokolwiek dodatkowego koordynatora.

Alternatywnie możesz rozważyć użycie programu Workspace Manager. Zostało to pierwotnie zaprojektowane do obsługi wyjątkowo długotrwałych transakcji (tj. manipulowania dużą ilością danych przestrzennych dla proponowanego rozwoju). Zasadniczo możesz stworzyć obszar roboczy, który w twoim przypadku byłby mniej więcej odpowiednikiem nazwanej transakcji. Zarówno kod Java, jak i C++ mogą wejść do tego obszaru roboczego (z oddzielnych sesji) i oba mogą manipulować i zatwierdzać dane w tym obszarze roboczym. Po zakończeniu transakcji można było scalić obszar roboczy z obszarem roboczym LIVE, co jest równoznaczne z wykonaniem zatwierdzenia w normalnej transakcji.

Z drugiej strony, zdecydowanie zgadzam się z twoją początkową oceną, że koordynowanie transakcji między procesami najprawdopodobniej będzie złym pomysłem z punktu widzenia wydajności, stabilności, prostoty i konserwacji. Z drugiej strony może to być uzasadnione wymaganie biznesowe w zależności od tego, w jaki sposób kod C++ zostanie wycofany (tj. czy możliwe jest zastąpienie kodu w taki sposób, aby transakcje mogły być wyłącznie Javą lub wyłącznie C++)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WSO2 API Manager:chpasswd.sh nie działa podczas korzystania z zewnętrznej bazy danych

  2. Oracle 10g:Wyodrębnij dane (wybierz) z XML (typ CLOB)

  3. Sterownik JDBC dla Oracle 10G XE

  4. Usuń wiersz podrzędny i nadrzędny za pomocą jednego skryptu SQL

  5. Jaka jest alternatywa MySQL dla funkcji NEXT_DAY Oracle?