OpenClinica 使用者手冊/多例項
一個 Web 伺服器可以配置為為多個 OpenClinica 例項提供服務。或者,多個 Tomcat 伺服器 可以設定在給定的 Web 伺服器上。
可能設定另一個例項的最簡單方法是複製現有例項。
您可以從頭部署新例項,方法類似於部署簡單的 OpenClinica 例項。請注意,本文件中的連結適用於 OpenClinica Linux 文件,類似部分可以在 OpenClinica Windows 文件 中找到。
- 您需要建立一個名稱不同的資料庫(只建立資料庫,不建立新角色),例如“newtrial”(按照 OpenClinica 安裝指南的第 9.1.7 節)。
- 複製 OpenClinica war 檔案(如 第 9.1.8 節 所示)作為“newtrial.war”(手冊的下一節提到了 Web 服務,但我沒有使用過)。啟動 Tomcat(如果它沒有在執行)以部署“newtrial”資料夾和資料庫結構。
您可以透過更新 datainfo.properties 檔案來分離不同例項的日誌檔案,該檔案位於
${catalina.home}/webapps/${WEBAPP.lower}/WEB-INF/classes/datainfo.properties
更新 log.dir 行以將日誌放在單獨的目錄中
log.dir=${catalina.home}/logs/newtrial/newtrial
重新啟動 Tomcat 中的例項(或 Tomcat 本身)以使這些更改生效。
要正確停止 OpenClinica 的例項,您需要完全停止 Tomcat。完全停止 Tomcat 後,您可以不受限制地移動檔案和更新資料庫。當前版本的 OpenClinica (3.1.2) 不會在 Tomcat Manager 中停止例項後清理自身(例如,https://:8080/manager/html)。執行 多個 Tomcat 伺服器 的一個好處是,每個伺服器上的例項數量減少了,因此,如果需要透過停止 Tomcat 來停止例項,受影響的例項數量也會減少。
應該權衡設定多個 Tomcat 伺服器(優點:每個例項都是獨立的;缺點:資源消耗增加 - Tomcat 使用的記憶體)和每個伺服器上服務的例項數量(優點:共享資源使用;缺點:依賴於單個 Tomcat 例項)的優缺點。
如果未調整 Tomcat 的配置(增加 MaxPermSize 設定),執行多個例項會導致 Tomcat 出現記憶體不足。 OpenClinica 的 Linux 文件 指出
"MaxPermSize 值取決於您要部署的 war 檔案的數量。Web war 需要 180m 的 PermGen,而 ws war 需要 90m 的 PermGen 記憶體設定。"(Windows 文件 有類似說明)
PermGen(永久代)記憶體與常規(堆)記憶體(即 Linux 中的 Xmx 設定和 Windows 中的“最大池大小”設定)是分開分配的 [1]。因此,如果您的伺服器記憶體不多,您可能需要減少分配給堆的記憶體,以便可以增加分配給永久代的記憶體。這可以透過減少 Xmx 設定(在 Linux 中)或“最大池大小”設定(在 Windows 中)並將 MaxPermSize 設定增加等量來實現。
您可以將現有使用者密碼複製到新例項(以便他們可以在新例項中重複使用其密碼)。這可以透過將該使用者在“user-account”表中的“passwd”欄位的值(實際上是密碼的 SHA1 雜湊值)從舊例項複製到新例項來實現。如果使用者以前從未登入過(例如,您剛剛建立了帳戶),您可以將 passwd_timestamp 設定為當前日期(就好像使用者剛剛設定了密碼一樣)。
這與單個例項的效果類似,因為單個使用者名稱和密碼可以訪問多個研究(但透過不同的 URL)。有一個額外的負擔,即如果密碼更改,則可能需要在所有例項上重新設定密碼。
重複使用密碼通常是不好的,特別是如果它們在不同的安全機制下用於不同的目的,例如銀行帳戶密碼重複用於不安全的 OpenClinica 例項,或者即時 OpenClinica 例項密碼重複用於不安全的公共 OpenClinica 例項。