У меня есть пакетный процесс Java, который публикует обработку сообщений в MQ. MDB, связанный с очередью, обрабатывает сообщение. Каждое сообщение будет иметь 10 записей. Мне нужно обновить таблицу базы данных, чтобы отслеживать обработанные записи, успешные и сбои. В каждой партии будет только одна строка в таблице. Таким образом, проблема в том, что, поскольку несколько экземпляров MDB пытаются обновить, мы сталкиваемся с проблемами параллелизма. Мы попробовали и с блокировкой на уровне строк. Но проблема все еще существует.
Я ищу решение, в котором я могу отслеживать счетчик на стороне Java, а затем выполнить одно обновление после достижения определенного порога. Допустим, было опубликовано 500 сообщений. Каждое сообщение обрабатывает 10 записей. MDB должен обновить этот счетчик после обработки всех записей в этом сообщении. После этого счетчик создаст поток (если порог достигнут), который обновит базу данных.
Пожалуйста, дайте мне знать, какие варианты доступны для меня.
Сервер приложений - WAS 5.6, DB2 9.1 в Z / OS. Доступ к DB2 осуществляется через SP.
Спасибо!