2011-04-25 4 views
0

glassfish v2를 사용하고 있지만 Tomcat에서 같은 문제가 발생했습니다. 서버가 시작되면glassfish/tomcat Java 서버로드 클래스 한 번

, 내가 볼 :

sudo jmap -histo:live 14127 | grep KVStore 
6222:    1    24 xxx.xxx.KVStore 

사용의 잠시 후, 나는 얻을 :

sudo jmap -histo:live 14127 | grep KVStore 
7240:    1    24 xxx.xxx.KVStore 
7360:    1    24 xxx.xxx.KVStore 

나는이 밖으로 방법 글래스 피쉬 스케일 함께 할 수있는 뭔가가 같은데요 동안 , 이것은 메모리 저장소 클래스로 KVStore를 사용하기 때문에 실제로 문제가됩니다.

그것은 정적 해시 테이블과 getter 및 setter와 싱글 톤 클래스입니다 : 이제

class KVStore 
    public static KVStore kvstore; 
    public Hashtable hash; 

문제, 즉 하나 개의 클래스입니다. 내가 가게에 전화를 걸고 서블릿으로 가면 나는 그 물건을 잘 받는다. 그러나 두 클래스 또는 KVStore를 사용하면 서블릿이 둘 사이에서 번갈아 가며 호출이 연속적으로 이루어지면 올바르게 반환되지 않습니다.

이제 개체를 메모리에 저장해야합니다. 이 클래스를 강제로 한 번만로드 할 수 있습니까? 또는 전역 적으로 액세스 가능한 해시 테이블을 만드시겠습니까?

마지막으로 한 가지, jruby warbled war 파일을 배포하고 있습니다. 실제로 일어날 수있는 방법이 없다면 알려주십시오.

답변

0

좋아, fml. 당신의 warble.rb에

config.webxml.jruby.min.runtimes = 1 
config.webxml.jruby.max.runtimes = 1 

좋은 호출 : 대부분의 경우 당신이 원하는.