2012-03-07 1 views
0

우리는 EJB3를 사용하는 응용 프로그램을 가지고 있으며 모든 이점을 누리고 있습니다.EJB 3 사용 - 언제 불필요한가요? 성능을 저하시킬 수 있습니까?

어쨌든 시스템에 외부 도구를 추가하여 몇 가지 다른 EJB에서 선택한 메소드를 호출 할 수 있습니다.

JPA를 사용하기위한 세션을 initazlize해야하지만, 각 호출에 대해 EJB를 가져 오는 호출이 적기 때문에 구현 클래스에서 직접 호출하는 대신 성능을 저하시킬 수 있습니까?

이 경우 EJB를 사용하고 구현 클래스에서 필요한 메소드를 직접 호출하지 않아도되는 이점은 무엇입니까?

감사합니다. 만 stateless를 사용하는 경우 각 클라이언트에 대해 하나 개의 인스턴스 ... - 당신이 stateful 콩을 사용하고 (시간당) 클라이언트의 수천을하지 않는 한 .. 성능이 저하 않을거야 EJB의를 호출하는 외부 도구를 추가

+0

나는 당신의 질문을 이해할 수 없다. 구체적으로? – Alex

답변

0

존재하지 않을 모든 클라이언트에 대한 하나의 인스턴스 (여기서는 감소 없음) ...

다른 데이터베이스가 아닌 한 외부 응용 프로그램에는 JPA을 사용하면 안됩니다. 동일한 데이터베이스를 사용하는 경우 ejb methtods (당신이 가지고있는 또 다른 이유) ...

+0

그래, 우리는 몇 EJB가 있다고 할 수 있습니다 : EJB는 EJB 프레임 워크 공용 클래스 도구 를 사용하여 순서 에 다음 EJB의 각 방법을 호출 우리가 외부 도구를 쓸 수 있습니다 C EJB의 B EJB { EJB A a; EJB B b; EJB C c; 공공 결과 runMethods {} } 또는 우리가 명시 적으로 IMPL 클래스의 메소드를 호출하여 구현할 수 있습니다 공용 클래스 도구 { AImpl의 A = 새 ..; BImpl b = new ..; CImpl c = new ..; 공개 결과 runMethods { a.run(); b.run(); ... } } 도구를 실행할 때마다 주입이 실행되지 않아 성능이 저하됩니다. 이 경우 EJB의 이점은 무엇입니까? – cchaoss

+0

no. 그것은 성능을 떨어 뜨리지 않을 것입니다 ... 그것은 같은 jvm에서 실행되는 것과 같습니다 ... EJB의 이점은 모듈성입니다 .. 예를 들어 서버에 ejb가 있고 다른 서버에 또 하나 있습니다 .. 둘 다 연결할 수 있지만 다른 기계를 사용할 것입니다 .. – Alex

+0

내 런은 모두 로컬 일뿐입니다. 이점은 무엇입니까? 아마 임 플렉스를 직접 실행하는 것이 비록 내가 anylookup을하지 않고 인스턴트 초기화를 사용하는 것과 같은 jvm 일지라도 더 좋을 것이라고 생각합니다. – cchaoss

관련 문제