/ / Ako môžem sledovať transakcie databázy v mojej multi-threaded, EJB2 JBoss aplikácii? - java, oracle, jboss, zablokovanie databázy

Ako môžem sledovať transakcie databázy v mojej multi-threaded, EJB2 JBoss aplikácii? - java, Oracle, jboss, zablokovanie databázy

Stretol som sa s reprodukovateľnou záležitosťou Oraclev mojej žiadosti. Počiatočné vyšetrovanie kódu nezasiahlo žiadnu zjavnú príčinu, a preto by som chcel znovu vytvoriť situáciu pri prihlasovaní SQL bežiaceho a čo je najdôležitejšie, transakcie, ktoré sa vyskytujú v rámci.

Začal som pridávať svoje vlastné ladenie vyhlásenie, alezdá sa mi to, že opäť vymýšľam koleso a už som sa ukázal ako náchylný k chybám (spočiatku som chýbal, že jedna z mojich EJB metód bola definovaná ako "RequiresNew")

Existujú nástroje, ktoré to urobia? Pozrel som sa na:

  • log4jdbc, ale z dokumentov nie je jasné, že som to videl zaznamená samostatné transakcie a nepodporuje to zdroje údajov, takže potrebujem pracovať okolo toho.

  • jdbcslog - tiež nie je jasné, či by sa log transakcie

Alebo mám nejaký jasnejší spôsob, ako to urobiť?

odpovede:

0 pre odpoveď č. 1

Riešenie podobného prípadu niekoľkokrát. Je to veľmi ťažké nájsť riešenie v komplikovanej aplikácii len pri registrácii vašich relácií (Oracle zabije jednu z týchto relácií, jedna je zabitá a druhá žije šťastne)

Najlepším riešením je požiadať o DBA (alebo ak máteprístup k vašej oracle inštalácii, môžete google a potom si ich sami, to nie je komplikované) pre sledovacie súbory (tento súbor je spomenutý s výnimkou usmrtených relácie, tak vyhľadajte vo vašom výstražnom denníku), tam bude zablokovaný graf. len textový súbor sledovania pre DEADLOCK)

Stačí sa pozrieť na presné informácie, ako sa pozrieť do súboru sledovania. LINK