new InitialContext 조심()
클라이언트를 할 때 서버 연결을 발견하고 데이터베이스를 검색한 다음 결과 집합을 되돌려줍니다.매번 실행할 때, 처음에는 항상 더 많은 시간을 들여야 하고, 이후에는 매번 조작 시간이 매우 빨라진다.그동안 많은 방법을 찾았지만 통하지 않았다.처음에는 Ejb 서버가 서비스를 구축하는 데 시간을 소모하는 줄 알았는데, 나중에는 옳지 않다고 생각했다. 왜냐하면 Jboss가 시작할 때 이미 서비스를 시작했기 때문이다.일주일 동안의 조사를 통해 원래는 new Initial Context () 가 많은 시간을 소모했기 때문이었고, 이후의 룩업 () 방법도 일정한 시간을 소모할 수 있다는 것을 발견하였다.그 중에서 네트워크 상태가 좋은 경우 new Initial Context () 방법은 100밀리초에서 200밀리초 사이, lookup () 는 10밀리초에서 30밀리초 사이가 걸린다.따라서 코드를 최적화하기로 결정하고 EJB Home Factory 도구 클래스를 만들었습니다. 예를 들어 모드를 사용했습니다. 여러분의 가르침을 환영합니다.다음은 클래스 코드입니다.
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.cithinc.util.Tool;
public class EJBHomeFactory {
private static EJBHomeFactory instance;
private InitialContext context;
private EJBHomeFactory() throws NamingException {
context = Tool.getInitialContext();
}
public static EJBHomeFactory getInstance() throws NamingException {
if (instance == null) {
instance = new EJBHomeFactory();
}
return instance;
}
public Object lookup(String jndiName) throws NamingException {
Object obj = new Object();
obj = context.lookup(jndiName);
return obj;
}
}
여기서 Tool.java의 파일 내용은 다음과 같습니다.
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Tool {
@SuppressWarnings("unchecked")
public static InitialContext getInitialContext() throws NamingException {
Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
environment.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");
environment.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099");
return new InitialContext(environment);
}
}
그리고 이렇게 호출합니다.
EJBHomeFactory f = EJBHomeFactory.getInstance();
Object o = f.lookup(remote);
이렇게 하면 상하문 실례를 한 번만 초기화하고 대량의 시간을 절약할 수 있다.
여러분의 가르침을 환영합니다.이 문서도 참조할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
개인 FLEX 지식 라이브러리 작업 노트[size=large]1、 이 방법은 TileWindows 팝업 창에 있습니다. TitleWindows의 maxWidth와 maxHeight를 지정하지 않으면 최대 값이 화면 전체에 깔립니다. 페이지의minHeigh...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.