Я работаю над автономным многопоточным приложением, где я использую простой JMS API для отправки и получения сообщений синхронно с использованием механизма P2P. При запуске нескольких потоков исключение генерируется при получении данных с использованием объекта-потребителя (один потребительский объект на поток), говорящий о закрытии исключения IllegalStateException: Session. Я попытался сделать это двумя способами.Как использовать Java JMS-сеанс в многопоточном приложении?
1) Создал соединения и объекты сеанса в одноэлементном классе и использовал эти объекты при отправке и приеме сообщений. Синхронизируйте фрагмент кода, который отправляет и принимает сообщения.
2) Создал класс SessionPool (singleton), где он создает 5 сеансов. Поскольку мое приложение ограничено количеством пулов потоков 20, и каждый поток извлекает сеанс из сеанса и возвращает сессию после получения сообщения. Это отлично работало для 5 потоков, а позже выбрано исключение, говорящее, что сеанс закрыт.
Пожалуйста, помогите мне в том, как эффективно использовать объекты сеанса без создания одного сеанса в одном потоке.
показать нам код :) – WeMakeSoftware