Многопоточность в Java - PullRequest
1 голос
/ 11 мая 2010

Я работаю с ядром Java и IBM Websphere MQ 6.0.У нас есть отдельный модуль, скажем, DBcomponent, который обращается к базе данных и извлекает набор результатов на основе запроса времени выполнения.Запрос передается в приложение через среду обмена сообщениями MQ.У нас настроен триггер для очереди, который вызывает DBComponent всякий раз, когда сообщение доступно в очереди.DBComponent принимает сообщение, создает запрос и возвращает набор результатов в другую очередь.В этом общем процессе мы используем log4j для записи операторов в файл журнала для аудита.

Соединение подключается к базе данных с помощью пула Apache.Я пытаюсь проверить, правильно ли регистрируются сообщения журнала с помощью примера программы.Программа помещает входящее сообщение в очередь и проверяет журналы в файле журнала.Ожидается, что вызов метода триггера завершится до того, как я попытаюсь проверить наличие сообщения в файле журнала, но каждый раз, когда моя программа для проверки сообщения журнала выполняется, сначала приводит моя проверка к ошибке.

Даже если я введу Thread.sleep(time), это не решит проблему.Как я могу сделать так, чтобы мой метод выполнялся в ожидании завершения операции триггера?

Любое предложение будет полезным.

Ответы [ 2 ]

1 голос
/ 11 мая 2010

Я предлагаю вам пойти и прочитать о примитивах параллелизма, которые предлагает вам Java. http://tutorials.jenkov.com/java-concurrency/index.html, по-видимому, охватывает основы, в частности главу «Сигнализация потоков».

0 голосов
/ 11 мая 2010

Я бы рекомендовал не полагаться на log4j (или любые функции ведения журнала) даже в простой тестовой программе.

Запустите тестирование так, как вы этого ожидаете, поместив операторы отладки / трассировки в журнал по своему усмотрению (будьте либеральны, log4j очень быстр!) Затем, когда это будет сделано, проверьте журнал самостоятельно.

Writing log parsing will only complicate your goals.

Напишите свой тест, просмотрите результат, просмотрите логи. Если вы хотите автоматизированное тестирование, подумайте о настройке функционального тестирования. Вы можете настроить тесты бесплатно с помощью Selenium. (http://seleniumhq.org/) Нет необходимости писать свой собственный материал для функционального тестирования / разбора, когда есть простая настройка, простота в использовании, простая настройка фреймворков!: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...