如何在 EJB 3 中设置每个方法的隔离级别

发布于 2024-07-14 00:01:33 字数 177 浏览 16 评论 0 原文

是否可以为给定的 EJB 3 方法调用设置数据库隔离级别(即可串行化、可重复读取等)?

据我所知,EJB 规范并未涵盖这一点,因此有关如何以 JBoss 或 Glassfish 特定方式执行此操作的详细信息将非常有用。

我开始觉得这是不可能的,你只能为每个连接池设置它,这显然不是一个理想的解决方案。

Is it possible to set the database isolation level (ie Serializable, repeatable-read etc) for a given EJB 3 method call?

I understand that this is not covered by the EJB Spec, so details of how to do it on either a JBoss or Glassfish specific manner would be great.

I'm starting to get the impression it's not possible and that you can only set it per Connection Pool which is clearly by no means an ideal solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

土豪我们做朋友吧 2024-07-21 00:01:33

这确实没有被规范涵盖,但可以在支持时通过应用程序服务器特定的部署描述符进行配置。 例如,WebLogic 就是这样做的,您可以在 weblogic-ejb-jar.xml

示例

<事务隔离> 
    <隔离级别>... 
    <方法> 
        <描述>... 
        ... 
        <方法-intf>... 
        <方法名称>... 
        <方法参数>... 
     
   
  

我不知道 JBoss 或 GlassFish 是否有等效项(我无法访问 SupportWLDDInContainers 页面查找 GlassFish 的答案)。

作为替代方案,您是否尝试使用 Connection#setTransactionIsolation(int) 在给定的 EJB 方法中使用 ie 以编程方式配置隔离?

This is indeed not covered by the spec and but can be configured through application server specific deployment descriptors when supported. WebLogic does for example and you can specify transaction isolation at the method level in the weblogic-ejb-jar.xml:

Example

<transaction-isolation>
  <isolation-level>...</isolation-level>
  <method>
      <description>...</description>
      <ejb-name>...</ejb-name>
      <method-intf>...</method-intf>
      <method-name>...</method-name>
      <method-params>...</method-params>
  </method>
</transaction-isolation>

I don't know if JBoss or GlassFish have an equivalent (I couldn't access the SupportWLDDInContainers page to find an answer for GlassFish).

As an alternative, did you try to use Connection#setTransactionIsolation(int) inside a given EJB method using i.e. configuring isolation programmatically?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文