Stworzyłem własną implementację JdbcDirectory, chociaż opierałaby się na JEE6, aby wykorzystać @Singleton
adnotacja. Sam kod nie jest zbyt trywialny, aby wkleić go do posta na StackOverflow i nadal ma kilka ograniczeń. Kluczową częścią jest to, że nie możesz wykonywać wielu operacji na jednej transakcji przy użyciu wielu wątków ze względu na semantykę blokowania bazy danych.
Patrząc na twoją implementację, wygląda na to, że zachowujesz również usunięte „pliki”, prawdopodobnie dlatego, że miałyby one mniejszą fragmentację w magazynie bazy danych, podczas gdy w moim usunąłem sam rekord.
Oznaczyłem wersję, z którą pracuję, która wydaje się wystarczająco stabilna dla moich obciążeń testowych. Zachęcamy do zgłaszania komentarzy lub sugestii na ten temat.