2014-09-16 5 views
0

Moqui 프레임 워크 (1.4.1)에서 응용 프로그램을 개발하는 동안 bitronix 트랜잭션 제한 시간과 관련된 실망한 문제가 발생합니다. 이런 일이 발생하는 이유를 이해할 수 없으며 유일한 해결책은 시스템을 다시 시작해야한다는 것입니다.MOQUI에서 Bitronix 트랜잭션 제한 시간 값을 늘릴 수 있습니까?

이 문제를 어떻게 해결할 수 있는지 정말 알고 싶습니다.

예외는 트랜잭션이 시작되고 수행되는 트랜잭션 제한 시간 설정이

Exception screenshot

+0

보고있는 오류 및 관련 동작에 대한 자세한 정보를 제공 할 수 있습니까? 트랜잭션 시간 초과 오류는 항상 발생하며 시간 제한을 늘리거나 tx 구조를 변경하여 해결할 수 있습니다. 시스템 재시작이 필요하다는 것을 결코 알지 못했습니다 ... 그 의미가 무엇인지에 대해 자세히 이야기 해 주시겠습니까? –

+0

내가 얻는 예외에 대한 스크린 샷을 추가했습니다. – adityazoso

답변

0

같다. 이것은 서비스 나 화면과 같은 Moqui 도구 또는 Moqui TransactionFacade 또는 JTA 인터페이스를 직접 사용하는 Java/Groovy/etc 코드를 사용하여 작성된 코드에 있습니다.

기본적으로 화면을 설정하지 않는 한 Moqui 화면은 트랜잭션으로 실행되지 않습니다. @ begin-transaction 속성을 사용하면 트랜잭션이 실행되지 않습니다. 문제는 오래 실행되는 서비스이며, 기본적으로 Moqui 서비스는 트랜잭션에서 실행됩니다. 트랜잭션을 구성하는 서비스에서 서비스. @ transaction-timeout 속성을 사용하여 시간 제한을 설정하십시오. 기본적으로 서비스는 트랜잭션이있는 경우 이미 사용중인 트랜잭션을 사용하므로 트랜잭션이 실제로 시작된 가장 바깥 쪽 서비스에 있어야합니다.

서비스 및 트랜잭션 관리에 대한 자세한 내용은 moqui.org에서 다운로드 할 수있는 Moqui로 애플리케이션 만들기를 참조하십시오.

코드에 또 다른 문제가있을 수 있으며 이는 브라우저 요청에 대한 소켓 시간 초과입니다 (스크린 샷의 로그에서도 마찬가지입니다). 이 문제를 해결하는 방법에는 몇 가지가 있지만 브라우저가 시간 초과되는 것처럼 쉽게 제어 할 수없는 것도 있습니다. 좋은 UI의 경우 사용자가 앉아서 30 ~ 60 초를 기다리는 것이 가장 바람직합니다. 백그라운드에서 실행되도록 코드를 변경하고 필요한 경우 화면에 무언가를 추가하여 작업의 상태 및/또는 진행 상황을 모니터링하십시오.

+0

그래서이 예외가 다시 발생하지 않도록하기 위해 필 요한 모범 사례는 무엇입니까? 모든 서비스에 대해 새로운 거래를해야합니까? 부하가 증가하면 나중에 시스템에 문제가 있습니까? – adityazoso

+0

보편적 인 모범 사례는 아니므로, 현재 수행중인 작업에 따라 달라 지므로 자세한 내용이 필요합니다. 당신이 무엇을하려고하는지 모른 채 일반적인 권장 사항은 ... 내 배경에 ... 백그라운드 작업을 사용하는 것과 같습니다. 모든 서비스에 대해 새로운 트랜잭션을 수행하는 것은 나쁜 생각입니다. 트랜잭션은 타이밍이나 다른 유형의 오류 전달이 아닌 원자 적 (모두 실패 또는 함께 성공)으로하려는 것에 따라 구조화되어야합니다. –