, , , ,

Таймаут при вызове bpel-процесса

среда, 18 марта 2009 г. Оставить комментарий

При вызове сервиса в Oracle BPEL cтолкнулся с такой ошибкой "java.lang.IllegalStateException: Cannot call setRollbackOnly() current thread is NOT associated with a transaction".

Ошибку также можно найти в логе по следующему пути:
"SOA_Oracle_Home\opmn\logs\".
Смотрим файл лога для контейнера в котором крутиться BPEL.

Поиск по документации привел к следующему решению.
A.1.1 Setting Properties for BPEL Processes to Successfully Complete and Catch Exception Errors

Следует обратить внимание не следующие особенности:
1. Параметр transaction-timeout в файле "SOA_Oracle_Home\j2ee\home\config\transaction-manager.xml".
1.1. На самом деле необходимо изменять файл, который повлияет на контейнер в котором крутиться bpel, т.е. правильный путь будет "SOA_Oracle_Home\j2ee\КОНТЕЙНЕР_ГДЕ_КРУТИТЬСЯ_BPEL\config\transaction-manager.xml"
1.2. Для исталяции одинокого Oracle BPEL Process Manager файл надо искать здесь "SOA_Oracle_Home\bpel\system\appserver\oc4j\j2ee\home\config".
2. Параметр transaction-timeout в файле "SOA_Oracle_Home\j2ee\home\application-deployments\orabpel\ejb_ob_engine\orion-ejb-jar.xml".
2.1. Также надо искать по другому пути.
"SOA_Oracle_Home\j2ee\КОНТЕЙНЕР_ГДЕ_КРУТИТЬСЯ_BPEL\application-deployments\orabpel\ejb_ob_engine\orion-ejb-jar.xml".
2.2. Обязательно поменять параметр во всем файле, он встречается несколько раз, для каждого бина.
3. Параметр syncMaxWaitTime в "SOA_Oracle_Home\bpel\domains\domain_name\config\domain.xml"
3.1. Не забываем поменять параметр для каждого домена.

Перестартовываем Application Server.

Иногда при длительном ожидании ответа от bpel-процесса, можно поймать ошибку "500 Server Error". В данном случае ругается Apache.
Что бы увеличить таймаут ожидания, находим параметр Timeout в файле "SOA_Oracle_Home\Apache\Apache\conf\httpd.conf" и увеличиваем значение. Перестартовываем Apache.

0 коммент. »

Оставьте Ваш комментарий