new InitialContext 조심()

2427 단어 작업jbossejbF#
최근 업무 때문에 Ejb3를 배우기 시작했는데 답답한 일이 생겼습니다. 작은 요약을 하겠습니다. new Initial Context () 를 조심하세요.
 
클라이언트를 할 때 서버 연결을 발견하고 데이터베이스를 검색한 다음 결과 집합을 되돌려줍니다.매번 실행할 때, 처음에는 항상 더 많은 시간을 들여야 하고, 이후에는 매번 조작 시간이 매우 빨라진다.그동안 많은 방법을 찾았지만 통하지 않았다.처음에는 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);

 
이렇게 하면 상하문 실례를 한 번만 초기화하고 대량의 시간을 절약할 수 있다.
여러분의 가르침을 환영합니다.이 문서도 참조할 수 있습니다.

좋은 웹페이지 즐겨찾기