Я пытаюсь обработать загрузку данных, когда я пытаюсь асинхронно публиковать сообщения через PeopleSoft через Integration Broker в Application Engine. Весь смысл в том, чтобы иметь возможность отправлять несколько сообщений и потреблять их в одном узле. Прежде чем отправлять сообщения, я сохраняю данные в таблице (скажем, T1), чтобы сохранить все значения полей в файле загрузки.
При потреблении я пытаюсь представить каждое сообщение интерфейсу компонентов, и исключения регистрируются в той же таблице T1. Допустим, для каждой транзакции мы помечаем поле таблицы (скажем, Processed_flag = 'Y').
Мне нужен механизм, в котором я мог бы просто ждать завершения всех асинхронных сообщений. Я думаю проверить таблицу T1, если в таблице T1 есть какие-либо строки, где Processed_flag равен «N», просто заставьте поток спать на большее время. Пока все сообщения не обработаны, держите его в спящем режиме и не позволяйте движку приложения завершить работу.
Единственное преимущество, которое я могу получить, это то, что мне не нужно ждать нескольких экземпляров одновременно или не нужно делать синхронный вызов. Вся идея состоит в том, чтобы использовать компонент для разных транзакций (как если бы его использовали, скажем, 100 человек -> 100 транзакций).
Если эти 100 транзакций не будут завершены, мы позаботимся о том, чтобы таблица T1 хранила записи о том, что происходит и отключается. Если что-то не так, он может регистрировать исключения, перехваченные CI.
Любые комментарии по этому подходу будут оценены. Заранее спасибо!