2011-04-27 12 views
10

Tengo dos servidores con nombres de host comp1 y comp2. También tengo un alias flotante (master) que se asigna dinámicamente a uno de los dos servidores. Estoy sirviendo el mismo applet idéntico de ambos servidores. Los clientes normalmente se conectan al master, pero está perfectamente permitido conectarse a comp1 o comp2 directamente.¿Cuál es el efecto de los alias de nombre de host en el caché de los applets de Java?

Los clientes se quejan de que siempre tienen que esperar a que se cargue el applet (es bastante grande). Pensé que una vez que el cliente descargara los archivos jar necesarios, se almacenarían en caché y no se volverían a cargar. Al principio, pensé que el complemento del cliente no estaba en el caché, pero creo que encontré la causa del problema, aunque no lo entiendo.

  1. cliente se conectan a master (que actualmente está apuntando a comp1) por primera vez. Debe esperar a que se descarguen los tarros. Esto es esperado.
  2. Conecte el cliente al master nuevamente. No tengo que esperar a que se descarguen los frascos. Esto también es un comportamiento esperado/deseado.
  3. Conecte el cliente al comp1. Debe esperar a que se descarguen los tarros. Prefiero que esto no suceda, ya que es el mismo servidor, pero puedo entender por qué, como comp1 aparece para el cliente como un host completamente diferente.
  4. Conectar cliente de nuevo a master. De nuevo, debo esperar a que se descarguen todos los frascos. Esto no es lo que esperaba. Los frascos ya deberían haberse descargado en los pasos 1/2.

Utilizando el panel de control de Java, puedo ver los recursos que están en la caché. Me parece que los recursos están codificados por URL, así que no sé por qué obtengo lo que hago. Parece que los dos nombres de host diferentes para el mismo servidor están estropeando el caché del cliente.

Debo mencionar que el nombre de host master no es solo un alias de DNS. Es un addrress de IP diferente real que comp1/comp2 enlaza/desvincula dinámicamente mientras se ejecuta la aplicación.

¿Puede explicar lo que estoy viendo aquí, o sugerir algunas vías para investigar?

+0

(applets en 2011 .. Geeez ...??) –

+0

@road a Yamburg - lo sé. Es una larga historia ... – wolfcastle

+0

La pregunta es muy interesante. Sospecho que tiene algo que ver con la seguridad. –

Respuesta

1

Avenus para investigar:

Esto bien puede ser una consecuencia del nombre de archivo jar - por ejemplo, si siempre se descarga en% TMP% \ app.jar, entonces app.jar será pisoteado cada vez que visite un servidor.

soluciones posibles:

  • Alias ​​el archivo en los servidores, por lo que puede ser recuperado como master.jar, compN.jar
  • utilizar un 301 o 302 a pista para el navegador que sólo se un frasco de origen se usa (puede que tenga que firmar el frasco debido a las políticas del mismo origen)
Cuestiones relacionadas