Cuando un cliente hace una llamada a un servicio jax-ws, este crea un hilo para atenderlo. En ese hilo atiende la petición, genera los resultados y los devuelve. Luego el hilo termina.
Si el generar los resultados es algo costoso y hay muchos clientes pidiendo cosas simultáneamente, es posible que haya varios hilos trabajando a la vez, uno por cliente. jax-ws por defecto pone un límite de 5 hilos, lo que quiere decir que se puede atender a muchos clientes, los que hagan falta, pero sólo 5 a la vez.
Si necesitamos incrementar este límite, el código java para hacerlo es
server = HttpServer.create(new InetSocketAddress(ws_port), 5);ExecutorService threads = Executors.newFixedThreadPool(100);server.setExecutor(threads);server.start();
Endpoint endpoint = Endpoint.create(unServicio);HttpContext context = server.createContext("/gddi/elServicio");endpoint.publish(context);
Con esto podría haber 100 clientes siendo atendidos simultáneamente. El 5 que aparece en la primera línea es el número de clientes máximo en espera de conexión, no siendo atendidos (equivalente al parámetro de listen() en las llamadas de sockets en C).
- chuidiang's blog
- Login to post comments
