sql >> Databasteknik >  >> RDS >> Oracle

Spridning av Oracle-transaktioner mellan C++ och Java

Det finns ett exempel på Laurent Schneiders blogg att använda DBMS_XA-paketet inuti Oracle för att tillåta flera sessioner att fungera i samma transaktion. Så det skulle vara möjligt att ha Java- och C++-sessioner som deltar i samma transaktion utan att behöva någon form av ytterligare koordinator.

Alternativt kan du överväga att använda Workspace Manager. Det var ursprungligen utformat för att stödja extremt långvariga transaktioner (d.v.s. manipulera massor av rumslig data för en föreslagen utveckling). I grund och botten kan du skapa en arbetsyta, som i ditt fall skulle vara ungefär lika med en namngiven transaktion. Både Java- och C++-koden kan komma in i den arbetsytan (från separata sessioner) och båda kan manipulera och överföra data i den arbetsytan. När transaktionen var klar kunde du sedan slå samman arbetsytan till LIVE-arbetsytan, vilket motsvarar att göra en commit i en normal transaktion.

Å andra sidan håller jag starkt med om din initiala bedömning att det mycket troligt är en dålig idé att samordna transaktioner mellan processer ur prestanda, stabilitet, enkelhet och underhållssynpunkt. Å andra sidan kan det mycket väl vara ett legitimt affärskrav beroende på hur C++-koden kommer att avvecklas (dvs om det är möjligt att ersätta kod på ett sådant sätt att transaktioner kan vara antingen uteslutande Java eller uteslutande C++)



  1. MySQL primära nycklar

  2. Anropa lagrad procedur med ADODB i PHP

  3. Oracle omedelbar klientstatus

  4. Hamming avstånd på binära strängar i SQL