![](/img/trans.png)
[英]Synchronize batch applications deployed on different servers to process file by one server only
[英]Two glassfish applications deployed with one war file, operating on different databases
我有一個Netbeans項目,從中建立一個.war文件。 我現在在我的glassfish服務器上部署該war文件的兩個實例,每個實例具有不同的上下文根,例如mydomain.com/abc
和mydomain.com/def
這工作正常,但是它們仍在同一數據庫上運行,因為我在persistence.xml
和glassfish-resources.xml
聲明了持久性單元。
我的glassfish-resources.xml
文件:
...
<jdbc-resource enabled="true"
jndi-name="jdbc/abc"
object-type="user"
pool-name="abcPool">
<description/>
</jdbc-resource>
<jdbc-connection-pool
...
name="abcPool"
...
<property name="URL" value="jdbc:mysql://localhost:3306/abc"/>
...
</jdbc-connection-pool>
我的persistence.xml
文件:
...
<persistence-unit name="abcPU" transaction-type="JTA">
<jta-data-source>jdbc/abc</jta-data-source>
...
</persistence-unit>
...
有人對在兩個不同的數據庫上運行的一個war文件有兩個實例有解決方案嗎?
是否有辦法將不同的glassfish-resources.xml
和persistence.xml
上傳到每個應用程序,以覆蓋打包的應用程序?
部署應用程序后,如果可以的話,可以在glassfish域管理控制台中更改模塊描述符。
如果需要glassfish域管理控制台的屏幕截圖,請在評論中寫下,我將添加它們。
先感謝您!
我認為最簡單的方法是擁有兩個不同的版本。
基本上,您可以創建兩個不同的.war文件。 每個文件中都有一個不同的persistence.xml文件。 一個指向JDBC資源ABC,另一個指向JDBS資源DEF。
gradle + Jenkins等構建工具可能會為此提供支持。
如果您搜索如何創建具有不同配置的內部版本以測試生產系統,則會發現許多有關類似任務的信息。 這是非常常見的任務。
這可能是您要尋找的內容的起點: 在Gradle中創建多個具有不同依賴項的.WAR文件
在服務器級別設置兩個指向不同數據庫的數據源,然后轉到應用程序實例並修改指向特定數據源的資源引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.