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 파일을 배포하고 있습니다. 실제로 일어날 수있는 방법이 없다면 알려주십시오.