WebLogic RMI 编程(二)

通过 T3 协议使用 WebLogic RMI

以下部分提供有关通过 T3 协议使用 WebLogic RMI的信息。

 


WebLogic Server 中的 RMI 通信

WebLogic Server 中的 RMI 通信使用 T3 协议在 WebLogic Server 和其他 Java 程序(包括客户端及其他 WebLogic Server 实例)间传输数据。服务器实例将跟踪所连接的每个 Java 虚拟机(Java Virtual Machine,简称 JVM),并创建单个 T3 连接以承担 JVM 的所有流量。请参阅“管理控制台联机帮助”中的配置 T3 协议

例如,如果 Java 客户端访问 WebLogic Server 上的企业 Bean 和 JDBC 连接缓冲池,那么 WebLogic Server JVM 和客户端 JVM 之间就会建立起单个网络连接。因为 T3 协议能在单个连接上隐性地多路复用数据包,所以可以编写 EJB 和 JDBC 服务,就好像这些服务单独使用了专用网络连接。

 


确定连接的可用性

具有有效 T3 连接的任意两个 Java 程序(例如两个服务器实例,或者一个服务器实例和一个 Java 客户端)都使用定期的点对点“心跳”来通知和确定连续可用性。每个端点定期向对等方发布“心跳”,同样也通过连续接收对等方的心跳,确定对等方是否仍然可用。

  • 服务器实例的心跳发布频率由心跳间隔确定,默认情况下,心跳间隔是 60 秒。
  • 在等候缺少的心跳次数达到一定数量后,服务器实例将认定对等方不可用。次数由心跳时间段确定,默认次数为 4 次。因此,每个服务器实例最多等待 240 秒或 4 分钟,若在此期间没有收到对等方的消息(心跳或其他通信),服务器实例将认定对等方不可用。
  • 建议您不要更改超时默认值。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于weblogic rmi编程的案例,以下是一个简单的示例: 服务端代码: ``` import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.rmi.PortableRemoteObject; import weblogic.jndi.WLInitialContextFactory; public class RmiServer { public static void main(String[] args) throws NamingException { String contextFactory = "weblogic.jndi.WLInitialContextFactory"; String port = "7001"; String serverUrl = "t3://localhost:" + port; String jndiName = "MyService"; Context context = new InitialContext(); context.addToEnvironment(Context.INITIAL_CONTEXT_FACTORY, contextFactory); context.addToEnvironment(Context.PROVIDER_URL, serverUrl); MyServiceImpl serviceImpl = new MyServiceImpl(); context.rebind(jndiName, serviceImpl); System.out.println("Service started successfully..."); } } ``` 客户端代码: ``` import java.rmi.RemoteException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import weblogic.jndi.WLInitialContextFactory; public class RmiClient { public static void main(String[] args) throws NamingException, RemoteException { String contextFactory = "weblogic.jndi.WLInitialContextFactory"; String port = "7001"; String serverUrl = "t3://localhost:" + port; String jndiName = "MyService"; Context context = new InitialContext(); context.addToEnvironment(Context.INITIAL_CONTEXT_FACTORY, contextFactory); context.addToEnvironment(Context.PROVIDER_URL, serverUrl); MyService myService = (MyService) PortableRemoteObject.narrow( context.lookup(jndiName), MyService.class ); System.out.println(myService.sayHello("WebLogic RMI")); } } ``` MyServiceImpl.java: ``` import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class MyServiceImpl extends UnicastRemoteObject implements MyService { protected MyServiceImpl() throws RemoteException { super(); } @Override public String sayHello(String name) throws RemoteException { return "Hello, " + name; } } ``` MyService.java: ``` import java.rmi.Remote; import java.rmi.RemoteException; public interface MyService extends Remote { public String sayHello(String name) throws RemoteException; } ``` 这是一个基本的 WebLogic RMI 编程示例。 服务器将一个实现MyService接口的远程对象公开给客户端,然后客户端通过JNDI查找当前正在运行的服务器上的对象。客户端然后调用该对象的方法,并使用返回结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值