WEB开发网
开发学院软件开发Java 浅析weblogic10 plugin中的DynamicServerList 阅读

浅析weblogic10 plugin中的DynamicServerList

 2009-09-22 00:00:00 来源:WEB开发网   
核心提示: 3:proxy端,回到proxy端,浅析weblogic10 plugin中的DynamicServerList(4),proxy读取managed server的response,将response写回到客户端,检查requestInfo中的dynamicServerList存在,如果存在则说

3:proxy端,

回到proxy端,proxy读取managed server的response,将response写回到客户端。在读取response的时候,它同时会解析inter header的信息。如果发现DynamicServerList为true,而且response的header中包含 X_WEBLOGIC_CLUSTER_LIST、X_WEBLOGIC_CLUSTER_HASH等信息,它会据此更新request info,如下:

HttpClusterServlet.java

 1   public void addResponseHeaders(HttpServletResponse response, String name, String value, Object o) {
 2     RequestInfo ri = (RequestInfo) o;
 3     if (ri.needToUpdateDynamicList() &&
 4         name.equals(ServletResponseImpl.X_WEBLOGIC_CLUSTER_LIST)) {
 5       ri.setDynamicList(value);      
 6       return;
 7     }
 8     if (ri.needToUpdateDynamicList() &&
 9         name.equals(ServletResponseImpl.X_WEBLOGIC_CLUSTER_HASH)) {
10       ri.setDynamicHash(value);
11       return;
12     }
13         
14   }

而requestInfo是一个请求范围的变量,更新它其实无法更新到proxy中的server list。server list的更新发生在一个request结束的时候,就HttpServletRequest.service()的finally块中。在 finally块中,检查requestInfo中的dynamicServerList存在,如果存在则说明后端cluster发生了变化(否则 managed server不会发送X_WEBLOGIC_CLUSTER_LIST信息到proxy端),那么它会将自己手里的serverlist, server hash信息设置为后端返回的值,如下:

上一页  1 2 3 4 5  下一页

Tags:浅析 weblogic plugin

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接