我想创建一个不了解其运行环境的应用程序。 特定于环境的配置我想留给glassfish的配置。
所以例如我有一个'指向'jta数据源的persistence.xml
<jta-data-source>jdbc/DB_PRODUCTSUPPLIER</jta-data-source>
在glassfish中,此数据源配置为“指向”连接池。 此连接池配置为连接到数据库。
我希望有一种机制,以便我可以为生产和接受环境定义这些资源,而无需更改jndi名称。因为这意味着我的应用程序可以识别环境。
我需要为此创建两个域吗?或者我需要两个完全独立的玻璃鱼装置?
答案 0 :(得分:0)
执行此操作的一种方法是使用群集功能(GF 2.1默认安装通常是开发人员模式,因此您必须启用群集,默认情况下GF 3.1群集似乎已启用。)
作为群集的一部分,您可以创建不参与群集的独立实例。每个实例都可以拥有自己的配置。这些实例共享资源部分下的所有内容,每个实例在系统属性中可以有单独的值,最重要的是这些是单独的端口号。
所以一个使用场景是你的accept / beta环境将在它自己的实例上运行不同的端口(默认为38080,38181等,假设你正在做一个http应用程序)。以这种方式运行时,新实例将在单独的JVM中运行。使用GF 2.1,您需要了解如何管理节点代理。使用GF 3.1,您不必担心这一点。
部署应用程序时,必须选择目标,称为目标,这样您就可以在一个实例上拥有一个accept / beta版本,在另一个实例上拥有一个生产版本。
这就是我使用当前的GF 2.1非群集设置运行beta部署的方法,它运行良好。