Meu caso é o seguinte: Possuo uma aplicação EJB que roda em um servidor com GlassFish, e uma aplicação cliente que acessa estes EJBs. Os EJBs são acessados da seguinte forma:
Properties props = new Properties();
props.put("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.put("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.put("java.naming.provider.url", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
props.put("org.omg.CORBA.ORBInitialHost", "10.200.1.xxx");
props.put("org.omg.CORBA.ORBInitialPort", "3700");
try {
ic = new InitialContext(props);
ServerSessionRemote teste =(ServerSessionRemote) ic.lookup("com.session.ServerSessionRemote");
} catch(Exception ex) {
ex.printStackTrace();
}
Para rodar o cliente foram adicionados as libs javaee.jar e appserv-rt.jar do glasshfish. Desta forma consigo acessar normalmente meus EJBs.
O problema que estou tendo é quando rodo o cliente sem ter iniciado o servidor de aplicação. No momento de dar o lookup, ao invés de a aplicação me retornar imediatamente um erro dizendo que o servidor não esta acessivel, ele fica tentando buscar a referencia do EJB por mais de 1 minuto.
Gostaria de saber como faço para configurar este timeout do lookup ou o numero de tentativas de conexao, pois pelo que percebi o lookup fica tentando acessar varias vezes o EJB.
Preciso saber como configuro esta propriedade pois meu servidor nem sempre estara no ar e não posso deixar que o cliente fique por tanto tempo tentando conexão com o servidor.