java rmi 多个功能_java-在多线程RMI体系结构中使用JPA

我正在为不同的Java客户端设计基于RMI的数据服务服务器.客户端使用RMI远程执行CRUD操作,我计划将JPA用于服务器的ORM.

据我所知,一些RMI要求实现是线程安全的,因此我打算使用@PersistenceContext注入EntityManager.我有两个问题.

> spring是否使EntityManager注入的线程安全,还是应该注入EntityManagerFactory并在必要时调用createEntityManager?

>当保证方法代码是线程安全的时,我仍然必须确保同步吗?

根据RMI规范

>远程请求进入后,立即被编组到请求对象中

封装了方法调用.此请求对象,是

实现RemoteCall接口的类,具有对套接字输出的引用

流.这意味着,尽管RMI共享套接字,但套接字仅用于一个

一次远程方法调用.

>从套接字接收到请求的线程将找到所需的远程对象

方法调用,找到与该远程对象关联的框架,然后调用

该框架的dispatch()方法.调度方法具有以下签名:

> public void dispatch(java.rmi.Remote obj,

java.rmi.server.RemoteCall调用,整数

opnum,长哈希)引发java.lang.Exception

>框架的dispatch()方法在服务器上调用正确的方法.这是

您编写的代码实际在哪里执行.

>服务器方法返回一个值,该值最终会通过

接收原始请求的套接字.

我认为流程定义表明可以在RMI环境中创建许多单独的代码调用堆栈.因此,RMI要求代码必须是线程安全的,对吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值