sql >> Database >  >> RDS >> Oracle

Voortplanting van Oracle-transacties tussen C++ en Java

Er is een voorbeeld op de blog van Laurent Schneider van het gebruik van het DBMS_XA-pakket binnen Oracle om meerdere sessies in dezelfde transactie te laten werken. Het zou dus mogelijk zijn om Java- en C++-sessies aan dezelfde transactie te laten deelnemen zonder dat er een extra coördinator nodig is.

Als alternatief kunt u overwegen om Workspace Manager te gebruiken. Dat was oorspronkelijk ontworpen om extreem langlopende transacties te ondersteunen (d.w.z. het manipuleren van veel ruimtelijke gegevens voor een voorgestelde ontwikkeling). In wezen kunt u een werkruimte maken, wat in uw geval ongeveer gelijk zou zijn aan een benoemde transactie. Zowel de Java- als de C++-code kunnen die werkruimte binnenkomen (vanuit afzonderlijke sessies) en beide kunnen gegevens in die werkruimte manipuleren en vastleggen. Wanneer de transactie is voltooid, kunt u de werkruimte samenvoegen met de LIVE-werkruimte, wat gelijk staat aan het uitvoeren van een vastlegging in een normale transactie.

Aan de andere kant ben ik het volledig eens met uw eerste beoordeling dat het coördineren van transacties tussen processen zeer waarschijnlijk een slecht idee is vanuit het oogpunt van prestaties, stabiliteit, eenvoud en onderhoud. Aan de andere kant kan het ook een legitieme zakelijke vereiste zijn, afhankelijk van hoe de C++-code buiten gebruik wordt gesteld (d.w.z. of het mogelijk is om code te vervangen op een zodanige manier dat transacties uitsluitend Java of uitsluitend C++ kunnen zijn)



  1. CakePHP - Efficiënt zoeken in 3 tabellen met JOIN

  2. Een goede gewoonte om gegevens over meerdere databases te verdelen?

  3. De beste manier om een ​​datadictionary te doorzoeken in sql

  4. Verwijder volgnullen uit decimalen in SQL Server