What I did was do all the MDB work inside a thread I ran inside the MDB. Something like this:
...
public void onMessage(msg) {
Runnable r = new MyRMIAdaptorProcessingElement(msg);
Thread t = new Thread(r);
t.start();
t.join();
// get anything I need from my r instance
}
This way whatever it is that the RMIAdaptor does, it does not do it to the MDB thread, but to the one I created. Worked ok in my case.
Good luck.