ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> JSP技术
分布式对话服务器的管理(5)
  远程访问Mnemosyne



  下面我们来讨论在servlet服务器上访问远程Mnemosyne的方法。要在无需特定服务器在线的情况下加载一个包含对话信息的Mnemosyne,需要创建一个FailoverHandler的实例,FailoverHandler利用JDK 1.3中的Proxy API处理对话服务器当机的问题。FailoverHandler把一个代表访问远程对话服务器的RMI URL的字符串数组作为参数,然后,从Proxy类中获取Mnemosyne实例。下面的SessionManager类中的initializeMnemosyne()方法可以显示出这一切是如何完成的:





public static void initializeMnemosyne(String[] rmiURLs)

{

// 设置当机服务器的处理程序

FailoverHandler fh = new FailoverHandler(null, rmiURLs);



// 得到Mnemosyne. 的一个实例

_Mnemosyne =

(Mnemosyne)Proxy.newProxyInstance(Mnemosyne.class.getClassLoader(),

new Class[] { Mnemosyne.class },

fh );

}







  如果用Proxy类获取Mnemosyne的实例,所有的方法调用必须通过FailoverHandler的 invoke()方法进行。当有方法访问Mnemosyne时,FailoverHandler将试着调用该方法访问一个远程对象。如果方法调用失败(例如服务器关机),FailoverHandler将从提供给构造器的URL清单中再取得下一个URL,这样就会无缝地转向下一个对话服务器。





// 建立远程加载类的URL清单

public FailoverHandler(Remote delegate, String[] delegateURLS)

{

this.delegateURLS = delegateURLS;



// 如果这个URL无效,则获取下一个有效的URL

try {

this.delegate =

((delegate == null)?getNextValidDelegate():delegate);

} catch (RemoteException ex) {

// 如果发生远程意外错误,则该URL不能使用,向调用者发送一个 //IllegalArgumentException事件

throw new IllegalArgumentException("Remote URLs could not "

+ "be found");

}



}



public Object invoke(Object proxy,

Method method,

Object[] arguments)

throws Throwable

{

while(true)

{

try

{

file:// 尝试对获得的最后一个URL调用被调用的方法

return method.invoke(delegate, arguments);

}

catch(InvocationTargetException invocationTargetException)

{

file://如果获得的URL无效,则取下一个URL

try

{

throw invocationTargetException.getTargetException();

}

catch(RemoteException remoteException)

{

delegate = getNextValidDelegate();

}

}

}

}



file://从构造器中的URL清单中获得下一个URL

protected Remote getNextValidDelegate() throws RemoteException

{

for(int i = 0; i < delegateURLS.length;i++)

{

try

{

return Naming.lookup(delegateURLS[i]);

}

catch(Exception exception)

{

}

}



throw new RemoteException("All lookup failed");

}





  当使用FailoverHandler对象时,从一个对话服务器向另一个对话服务器的转换对于调用Mnemosyne的任何用户端机器都是透明的。
 
 
本站关键词:
|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页||东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页||东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页||东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页||东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页||东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页||东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页||东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页||东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页||东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|东莞产品包装设计|东莞海报设计|东莞PHP主机|东莞动态空间|东莞动态网页|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有