sql >> Databáze >  >> RDS >> Oracle

Šíření transakcí Oracle mezi C++ a Java

příklad je na blogu Laurenta Schneidera použití balíčku DBMS_XA uvnitř Oracle, aby bylo umožněno více relací pracovat ve stejné transakci. Bylo by tedy možné, aby se relace Java a C++ účastnily stejné transakce, aniž by bylo potřeba jakéhokoli dalšího koordinátora.

Případně můžete zvážit použití Workspace Manager. To bylo původně navrženo tak, aby podporovalo extrémně dlouhodobé transakce (tj. manipulace s mnoha prostorovými daty pro navrhovaný vývoj). V podstatě můžete vytvořit pracovní prostor, který by ve vašem případě byl zhruba ekvivalentní pojmenované transakci. Jak kód Java, tak kód C++ mohl vstoupit do tohoto pracovního prostoru (z oddělených relací) a oba mohly manipulovat a odevzdávat data v tomto pracovním prostoru. Když byla transakce dokončena, můžete sloučit pracovní prostor s pracovním prostorem LIVE, což je ekvivalentní provedení potvrzení v normální transakci.

Na druhou stranu bych rozhodně souhlasil s vaším počátečním hodnocením, že koordinace transakcí mezi procesy je velmi pravděpodobně špatný nápad z hlediska výkonu, stability, jednoduchosti a údržby. Na druhou stranu to může být legitimní obchodní požadavek v závislosti na tom, jak bude kód C++ vyřazen (tj. zda je možné nahradit kód takovým způsobem, že transakce mohou být buď výhradně Java, nebo výhradně C++)



  1. jak zkopírovat data ze souboru do PostgreSQL pomocí JDBC?

  2. Souhrnná funkce za daný časový interval

  3. ROLLBACK TRUNCATE v SQL Server

  4. High Sierra + Python + chyba Postgresql:Neplatná instrukce:4