2010-02-10 3 views
2

제목에서 알 수 있듯이 OSGI + Spring DM에 문제가 있습니다.OSGI + Spring-DM 교차 번들 종속성 교착 상태

내 프로젝트 디자인에서 나는 서비스 svB를 필요로하고 번들 서비스 svA를 가지고있는 번들 A를 가지고있다. 번들 B는 svA가 필요하고 svB를 내 보냅니다 (다른 것들 중에서도). 두 번들이 다른 쪽이 온라인 상태가되기를 기다리고 있기 때문에 이것은 교착 상태의 원인이되는 것 같습니다. 스프링 DM과 같은 교착 상태가 가능한가? 이것에 대한 해결책이 있습니까?

답변

4

이것은 Spring-DM의 문제처럼 들리지는 않는다. A는 B에 의존하고 B는 A에 의존하기 때문에 아무도 어떤 작업을 할 수 없다. 이 문제를 해결하려면 디자인을 변경하고 A 또는 B 중 하나를 다른 하나없이 시작할 수 있어야합니다. 한편, 다른 하나는 게으른 로딩 로직을 내장해야합니다 (이것이 당신의 직업이 될 것입니다). 다른 하나가 온라인 상태가되면 시작 시퀀스를 계속 진행하십시오. 은 OSGi 선언적 서비스와

, 당신은 서비스에 대한 종속성을 선언하지만 그것은 시작하려고하는 시점에서 결석 할 수 있도록 할 수 있습니다 (이 카디널리티 옵션을 사용하여이 작업을 수행.)

+0

이 정확히이었다 밝혀 어제이 문제를 어떻게 해결했는지. 나는 여기에 해결책을 게시 할 것이지만 당신은 나를 때렸다. 어쨌든 고마워! =) –