Oracle
 sql >> база данни >  >> RDS >> Oracle

Разпространение на Oracle транзакции между C++ и Java

Има пример в блога на Лоран Шнайдер за използване на пакета DBMS_XA в Oracle, за да се позволи на множество сесии да работят в една и съща транзакция. Така че би било възможно да имате Java и C++ сесии, участващи в една и съща транзакция, без да е необходим допълнителен координатор.

Като алтернатива можете да обмислите използването на Workspace Manager. Първоначално това беше проектирано да поддържа изключително дълготрайни транзакции (т.е. манипулиране на много пространствени данни за предложено развитие). По същество можете да създадете работно пространство, което във вашия случай би било приблизително еквивалентно на транзакция с име. Както Java, така и C++ кодът могат да влязат в това работно пространство (от отделни сесии) и двата могат да манипулират и предават данни в това работно пространство. Когато транзакцията приключи, можете да обедините работното пространство с работното пространство LIVE, което е еквивалентно на извършване на ангажимент в нормална транзакция.

От друга страна, силно бих се съгласил с първоначалната ви оценка, че координирането на транзакции между процеси е много вероятно да бъде лоша идея от гледна точка на производителност, стабилност, простота и поддръжка. От друга страна, това може да е законно бизнес изискване в зависимост от това как C++ кодът ще бъде оттеглен (т.е. дали е възможно да се замени код по такъв начин, че транзакциите да могат да бъдат или изключително Java, или изключително 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. Oracle третира празен низ като NULL проблем за Java / JPA програмист

  2. Има ли начин за подобряване на MERGE заявка?

  3. избиране на запис от oracle

  4. Процедура за решаване без параметри

  5. SQLDeveloper поддържа ли изпълнение на скриптове?