Ciao a tutti

Avrei da sottoporvi un problema un po' ostico per me

lo scenario è questo:
ho un servizio che è continuamente in ascolto su una socket su cui vengono spediti messaggi xml.
Il mio problema è il seguente: ogni xml che ricevo dovrei poi persisterlo sul db e mandarlo anche su una coda jms scodata da un mdb che poi esegue della logica di controllo. Siccome il mio servizio è sempre in ascolto sono costretto ad usare i thread per effettuare tutte le operazioni richieste onde evitare di effettuare le operazioni in un unico thread e rallentare il servizio, rischiando di perdermi qualche xml.
Il problema che a me serve che i messaggi in coda e sul db vengano mandati secondo una precisa sequenza dettata dal timestamp, cosa non garantita se utilizzo più thread. Come posso fare per garantirmi la perfetta sequenzialita' dei messaggi senza però rallentare il mio ascoltatore e quindi rischiare di perdermi i messaggi?

Spero di essere stato chiaro grazie a tutti