iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
Software Development

Genero Packages - 可接替4GL的LowCode商業語言系列 第 9

[GAS] 啟動配置檔as.xcf設定詳解

本篇主要在提供 as.xcf 內的一些設定點 (entry) 說明,提供設定時查找。至於哪一條目跟外部系統如何勾稽,我們在後續的專章中提供

在完成GAS的安裝設定後,系統均附標準版的 as.xcf 供參考。

由於 as.xcf 設定上配置較多也較為繁雜,建議以 as.xcf 複製出來進行修改調整。(下列範例,以Genero3.20版本為主,各版本均有細微差異,請比對文件與安裝時路徑上的標準as.xcf進行比對閱讀)

注意:XML格式容易配置失誤,請特別注意原版本備份

As.xcf 可存放於任何路徑,執行時以 -f 參數指定全路徑執行即可。
※ TIPTOP/T100用戶,配置檔通常命名為 as-區域編號.xcf,用以對接不同執行區域,如 as-topprd.xcf

As.xcf採用XML格式,設定的根結點 (root node)為 CONFIGURATION下的APPLICATION_SERVER。並區分下列項目設定:

  • RESOURCE_LIST 設定GAS本體所需要的環境資源訊息,在部分特殊項目區分為WNT(Windows) / UNX (Unix, Linux系列平台),此處配置通常為提供後方設定時可用變數
  • COMPONENT_LIST 對個別的GAS組件進行設定,以便於下方APPLICATION依照id進行調用,通常可配置運行時全域變數、待命數量、啟動與註銷等
  • INTERFACE_TO_CONNECT 指定從連結器(如fasstcgidispatch / isapidispatch)呼叫回GAS/ GRE時配置。每一組獨立啟動的連結器均須有獨立的配置CONNECT以避免衝突,如PORT_OFFSET 指定連結port,ADMIN_PORT 管理用通訊埠等參數。
  • INTERFACE_TO_DVM 可定義連接到下一階的GAS服務器,若僅單階,則定義為127.0.0.1
  • LOG 可配置GAS運行階段LOG產出路徑、紀錄層級
  • MONITOR 系統提供GAS運行數據監控頁面,可透過本段設定指定可閱讀的IP區段
  • APPLICATION_LIST 設定有互動畫面的執行作業環境,包含啟動路徑,程序等設定
  • SERVICE_LIST 設定背景服務、API執行路徑或指定作業

以下分項目進行說明

  1. RESOURCE_LIST 區分平台的狀況下,個別以RESOURCE節點進行參數設定,例如
<RESOURCE Id="res.fglgui" Source="INTERNAL">1</RESOURCE>
<RESOURCE Id="res.gwc-js" Source="INTERNAL">_default</RESOURCE>
<RESOURCE Id="res.gbc" Source="INTERNAL">$(res.gwc-js)</RESOURCE>
  1. COMPONENT_LIST 可以配置 WEB APPLICATION 組件設定,服務組件等。本區段為原則性設定,依照 id 配置好原則後,在下方的APPLICATION_LIST區段可以引用,並作微調修正
    1. WEB_APPLICATION_EXECUTION_COMPONENT 系統提供兩組範例,透過範例可以了解在本區段內可設定FGLDIR,讓GAS的DVM在不同的 Genero FGL版本下運行,也可個別配置 42m 檔案的讀取路徑 (FGLLDPATH) 等

    2. SERVICE_APPLICATION_EXECUTION COMPONENT 與 WEB APP一樣,可設定FGLDIR/GREDIR等Genero套件運作時需要的環境變數 (可以套用 RESOURCE_LIST指定的變數,參考下方範例)

<ENVIRONMENT_VARIABLE Id="FGLDIR">$(res.fgldir)</ENVIRONMENT_VARIABLE>
<ENVIRONMENT_VARIABLE Id="GREDIR">$(res.gredir)</ENVIRONMENT_VARIABLE>
<ENVIRONMENT_VARIABLE Id="PATH">$(res.path)</ENVIRONMENT_VARIABLE>

由於是SERVICE,故此處指定FGLGUI變數是無效的 (控制UI畫面採用TEXT或Graphic),另外可增加待命process數量指定。

<POOL>
    <START>0</START>   <!-- 啟動時自動帶起數量 -->
    <MIN_AVAILABLE>0</MIN_AVAILABLE>     <!--最小保持數量,若此服務被呼叫頻率高,建議保持 1以上 -->
    <MAX_AVAILABLE>1</MAX_AVAILABLE>    <!--最高配置數量,若未配置則以license數為準 -->
</POOL>

本處也可配置訪問控制IP,設定後即採用為正面表列,列上的IP才可使用此資源

<ACCESS_CONTROL> 
        <ALLOW_FROM>127.0.0.1</ALLOW_FROM>
        <ALLOW_FROM>10.</ALLOW_FROM>             <!--支持部分 IP -->
        <ALLOW_FROM>fdbd:2768:c176:1::323a</ALLOW_FROM>   <!-- 支持 IPV6 格式 -->
</ACCESS_CONTROL>
  1. WEB_APPLICATION_TIMEOUT_COMPONENT 設定執行時,client端超過多長時間無回應,視為斷線。範例中提供兩組配置,包含正常運行與debug模式,以提供 APPLICATION_LIST/ SERVICE_LIST調用
<WEB_APPLICATION_TIMEOUT_COMPONENT Id="cpn.wa.timeout.sample">
  <USER_AGENT>300</USER_AGENT>
  <!-- client超過這個秒數未向服務器發出包含ping的任何訊息,視為斷線。USER_AGENT需要參考客戶現況配置,若配置時間過長,則操作人採不正常關閉方式時,license不會被釋放,此時容易造成 License浪費。配置時間過短,則在網路回應較差時,容易造成作業異常中止。預設值為 300秒。 -->
  <REQUEST_RESULT>60</REQUEST_RESULT>
  <!-- 此設定在指定當服務器超過配置60秒未回應時,顯示警告訊息 -->
  <DVM_AVAILABLE>10</DVM_AVAILABLE>
  <!-- 此配置在設定當GAS接獲啟動訊息,到DVM確認接手的最大延遲秒數。預設值10秒。若啟動的 script 須調整執行一些耗時的作業時,配置應視情況放寬,以避免啟動時異常 -->
</WEB_APPLICATION_TIMEOUT_COMPONENT>
  1. AUTO_LOGOUT_COMPONENT 配置當用戶閒置超過指定時數時,要執行的作業
    30
    auto-logout-allowed.sh

  2. UA_OUTPUT_COMPONENT 配置應用作業執行時元素,也可引用上方已設定的環境。可在此處指定使用GBC路徑
    mygbc

  3. SERVICE_APPLICATION_TIMEOUT_COMPONENT 配置服務超過多久視為斷線

<DVM_AVAILABLE>10</DVM_AVAILABLE>   <!-- 與APPLICATION相同,設定 client端多長未回應秒數時,視為斷線 -->
KEEP_ALIVE>360</KEEP_ALIVE>   <!-- 配置斷線後,GAS端段硬的窗口存留時間,若較頻繁被呼叫時,可配置較長時間 -->
<REQUEST_RESULT>60</REQUEST_RESULT>
  1. INTERFACE_TO_CONNECT 設定連結器 (如 fastcgidispatch) 與GAS本體的溝通參數,通常關注項目如下:
      <TCP_BASE_PORT>$(res.ic.base.port)</TCP_BASE_PORT>
      <!-- 設定GAS對外通訊使用的基底,並非實際使用 port,所以一般均維持在預設值 6300,實際使用port = base+offset ,也就是 6300+94 = port 6394為實際使用 -->
      <TCP_PORT_OFFSET>$(res.ic.port.offset)</TCP_PORT_OFFSET>  
<!-- 實際使用通訊埠的偏移值,T100 從 topprd到toppth分別對應94,95,96,97,另外保留 70 給web service運用 -->
      <TCP_ADMIN_PORT>$(res.ic.admin.port)</TCP_ADMIN_PORT>
<!-- 本條目由 Genero GAS 3.10版本開始增加,3.20版本後改為強制需要。主要在配置管理GAS介面時所需要使用的通訊埠,T100 從 topprd到toppth分別對應6999,7999,8999,9999,另外保留 5999 給web service運用 -->
      <GBC_LOOKUP_PATH>$(res.path.gbc.user);$(res.gbc.deployment);$(res.fgldir)/web_utilities/gbc</GBC_LOOKUP_PATH>
      <!-- 設定預設的GBC Genero Browser Client安裝路徑,若使用GASadmin 自動配置功能,則通常配置於 gbc.deployment 路徑,本設定可以直接以絕對路徑方式填寫,或使用RESOURCE變數 -->
  1. APPLICATION_LIST GAS對外提供主要WEB APPLICATION設定,id 即為應用程式識別碼,如下方範例,為繼承 defaultwa 而來的gwc-demo,故組合後,可取得 WEB APPLICATION的路徑即為 http://服務器IP:6394/ua/r/gwc-demo 其中 6394來自於INTERFACE_TO_CONNECT的6300(base)+94(offset) 而 /ua/r 為預設的wa 模式路徑,再加上自己的 id 設定,即可由 GAS 轉換為執行在 PATH 區段中指定的 MODULE 作業
 <APPLICATION Id="gwc-demo" Parent="defaultwa">
     <EXECUTION>
        <PATH>$(res.path.fgldir.demo)</PATH>
        <MODULE>demo.42m</MODULE>
      </EXECUTION>
  </APPLICATION>

若應用程式有傳遞參數的需求 (使用 ?arg= 進行參數傳入) ,則將上述 EXECUTION替換為 ,即可啟用傳入參數功能。若參數為固定值,則應改為使用 在 xcf 檔中設定。
注:Genero GAS 3.20 支援DELEGATE設定與 single sign on 相關,留待後續說明

  1. SERVICE_LIST GAS主要對外提供服務設定。
<GROUP Id="admin">$(res.path.idp.services)</GROUP>
<GROUP Id="svms">$(res.path.svms.services)</GROUP>

其他未介紹的區塊,均可以查看對應的線上文件,基本較少進行異動調整。由於XML格式較為繁複,仍建議在修改前先進行備份。完成修改後須記得停止 (或 kill fastcgidispatch / httpdstandalone 服務,參考前篇重啟),並重新執行。目前 GAS 並未提供 reload 配置的功能。

參考資料
https://4js.com/online_documentation/fjs-gas-manual-html/#gas-topics/c_gas_asref_element_listing.html


上一篇
[GAS] GBC上運作的Hello world!
下一篇
[FGL] OPEN WINDOW WITH 畫面檔
系列文
Genero Packages - 可接替4GL的LowCode商業語言32

尚未有邦友留言

立即登入留言