@ JoseK: хотя я не пробовал то, что вы описали в своей проблеме, но вот мои мысли: -
И MDB, и Session-бины являются поточно-ориентированными. Это означает, что, скажем, если есть пул из 10 бинов, только 10 запросов будут обрабатываться одновременно. Другие запросы будут поставлены в очередь на свою очередь. Поэтому локальные данные одного запущенного потока не должны мешать другому потоку.
Если вы уверены, что будете использовать локальные EJB-компоненты всегда в будущем, то я не вижу никаких проблем в использовании локальных данных потоков. Потому что вы на самом деле не создаете темы.
Хотя weblogic предоставляет поток из пула потоков, но этот поток выделяется специально для каждого потока запросов, я не думаю, что его локальные данные должны быть повреждены.
Как я уже сказал, я не пробовал сам, что я попробую: -
В слое MDB (ваш первый слой), выполните Thread.getCurrentThread.setName (name)
и в последующих слоях выведите имена потоков, например Thread.getCurrentThread.getName)
Выполнение нескольких запусков с различным размером пула ejb, пула потоков. Присвойте другое имя потока каждому потоку запросов. Попробуйте выполнить несколько запросов одновременно. И посмотри, получишь ли ты когда-нибудь смешанное имя потока.
5. Сказав выше, чтобы упростить задачу и обеспечить дальнейшую поддержку EJB, я бы также передавал интерфейс CallingContext каждому слою.