星期三, 2月 15, 2017

Building dynatrace easyTravel from Source (Windows)

上次談過在 Linux 平台上由原始碼重建 easyTravel,美中不足的是 B2B 後台不包含在內。為了讓這個主題更完整,花了近一週的時間摸索建置程序,除了幾個小蟲,還升級到 .NET 4 + Cassini 4,艱辛之路在此留下歷程:
  1. 在 Windows Server 2016 或 Win10 上,先安裝 .NET Framework 3.5。
  2. 安裝 Visual Studio 2015 Community with Updates,一切依預設值即可,裝完後沒有一定要 Launch(希望不用註冊也能撐久點)。
  3. 從官網下載 2.0.0.2542 版的原始碼,假設解壓到 D:\easyTravel-src-2542 目錄下。
  4. 下載安裝 Java SE 7,並設 JAVA_HOME 環境變數。
  5. 下載解壓 Ant 1.9.x,並設 PATH 指到 bin 目錄。
  6. 修改 D:\easyTravel-src-2542\commons-demo\resources\easyTravel.properties,version.buildnumber=2542。
  7. 修改 D:\easyTravel-src-2542\commons-demo\resources\easyTravelConfig.properties,cassini20/UltiDevCassinWebServer2 改為 cassiniDev4/CassiniDev4-console(共有兩處)。
  8. 修改 D:\easyTravel-src-2542\Launcher\src\com\dynatrace\easytravel\launcher\procedures\B2BFrontendProcedure.java,在 if(CONFIG.b2bFrontendServer.contains("cassini")) 條件符合時:
  9. 修改 D:\easyTravel-src-2542\Launcher\src\com\dynatrace\easytravel\launcher\procedures\PaymentBackendProcedure.java,在 if(CONFIG.paymentBackendServer.contains("cassini")) 條件符合時:
  10. 修改 D:\easyTravel-src-2542\dotNET45\build.xml,新增這一行:<property name="dotnet.framework.path" location="C:\Program Files (x86)\MSBuild\14.0\Bin" />。
  11. 切換到 D:\easyTravel-src-2542\Distribution 目錄下,執行 ant。
  12. 切換到 D:\easyTravel-src-2542\dotNET45 目錄下,執行 ant。
  13. 從別處取得同版本的 CreditCardAuthorization64.exe,複製到 D:\easyTravel-src-2542\Distribution\dist 目錄下。
  14. 修改 D:\easyTravel-src-2542\Distribution\dist\startDistributed.cmd,set-this-property 改為機器名稱(可用 hostname 指令取得);..\jre\bin\java 改為 "%JAVA_HOME%"\jre\bin\java,再執行。
  15. 在管理介面關閉所有測試流量,再啟動 Production 群組的 Standard 情境,應該沒有錯誤,而且前後台都能運作。

星期五, 2月 03, 2017

Modern.IE backup

雖然 Modern.IE 有許多實用的虛擬機映像,不過久了也會撤。幸好這裡可能保存得時間比較長。