我有一个J2EE Web应用程序,用于上传文件,然后由数据库过程处理。因为我们不希望Web应用程序必须等待数据库过程完成,它将在另一个线程中执行。应该通过ServiceLocator查找数据源的jndi名称吗?
在独立线程中运行的进程需要获取并关闭自己的连接。 Web应用程序通常使用ServiceLocator查找数据源jndi名称,该ServiceLocator从应用程序上下文中查找它(jndi名称的查找键被定义为类常量),但对于使用ServiceLocator查找jndi名称的单独线程失败。为了解决这个问题,我们使用jndi名称作为类常量,以便线程可以直接查找数据源。
这意味着对数据源的JNDI名称现在是固定的应用程序,我们可以简单地通过修改web.xml不再部署在同一个容器,但不同的数据源相同的应用程序。
什么是行业最佳实践? jndi的名字应该是可配置的还是可以修复它的应用程序?是否有人实现了一个可配置的数据源jndi名称解决方案,它既可以在web应用程序中使用,也可以在容器中的其他线程中使用?