EJB3.1中的@Asynchronous是否在异步方法完成时关闭/释放连接

EJB3.1中的@Asynchronous是否在异步方法完成时关闭/释放连接,asynchronous,jakarta-ee,connection-pooling,ejb-3.1,Asynchronous,Jakarta Ee,Connection Pooling,Ejb 3.1,在EJB3.1中,我们用@Asynchronous注释了一个方法,并使用Future.get获取结果 问题是,当我们执行future.get()时,连接池中的数据库连接和异步方法中使用的资源是否已释放?有可能是:)否则使用@Asynchronous会由于资源不足而快速导致应用程序崩溃 无论如何,由于资源是使用Java ee中的线程本地存储存储的,并且@Asynchronous将执行延迟到专用线程,因此在那里使用的资源(包括JCA连接,以及数据库连接)也专用于@Asynchronous方法执行(不

在EJB3.1中,我们用@Asynchronous注释了一个方法,并使用Future.get获取结果


问题是,当我们执行future.get()时,连接池中的数据库连接和异步方法中使用的资源是否已释放?

有可能是:)否则使用@Asynchronous会由于资源不足而快速导致应用程序崩溃


无论如何,由于资源是使用Java ee中的线程本地存储存储的,并且@Asynchronous将执行延迟到专用线程,因此在那里使用的资源(包括JCA连接,以及数据库连接)也专用于@Asynchronous方法执行(不是从调用线程继承的)(

它们有可能是:)否则使用@Asynchronous会很快导致应用程序因资源不足而崩溃


无论如何,由于资源是使用Java ee中的线程本地存储存储的,并且@Asynchronous将执行延迟到专用线程,因此在那里使用的资源(包括JCA连接,以及数据库连接)也专用于@Asynchronous方法执行(不是从调用线程继承的).

根据所用应用程序服务器的配置连接池策略关闭数据库连接

在讨论会话bean和容器管理的事务时,连接在被调用业务方法的事务范围的末尾返回


由于带有
@Asynchronous
注释的会话bean不支持事务传播(例如,请参阅EJB 3.2 spec 4.5.3),因此,如果使用
REQUIRED
REQUIRES\u new
配置该方法,则每次调用业务方法时都会创建一个新事务。因此,此事务作用域以被调用的业务方法返回结束。

根据所用应用程序服务器的配置连接池策略关闭数据库连接

在讨论会话bean和容器管理的事务时,连接在被调用业务方法的事务范围的末尾返回


由于带有
@Asynchronous
注释的会话bean不支持事务传播(例如,请参阅EJB 3.2 spec 4.5.3),因此,如果使用
REQUIRED
REQUIRES\u new
配置该方法,则每次调用业务方法时都会创建一个新事务。因此,此事务范围以被调用的业务方法返回结束。

Yes。我们在多用户环境中看到应用程序在生产中崩溃。感谢您的回复。这个问题没有得到回答。它会关闭连接吗?它不会关闭连接,它会将连接释放到数据源连接池您可能对@Asynchonous线程池大小和数据库连接池大小存在问题。线程池大小配置特定于您的应用程序服务器提供程序。感谢您的回复。我们在多用户环境中看到应用程序在生产中崩溃。感谢您的回复。这个问题没有得到回答。它会关闭连接吗?它不会关闭连接,它会将连接释放到数据源连接池您可能对@Asynchonous线程池大小和数据库连接池大小存在问题。线程池大小配置特定于您的应用程序服务器提供商感谢Gab的回复您需要显示一些代码,否则无法说出。您需要显示一些代码,否则无法说出。