- partial refresh vs partial execution:XPages 的 JSF 六階段,為什麼只刷一塊卻整頁重算
你在 XPages 按一個按鈕,結果一個八竿子打不著的欄位驗證器跳出來擋你——因為預設情況下,整頁都跑了一輪 JSF 生命週期,不只你按的那塊。XPages 有兩個各自獨立的「partial」旋鈕:partial refresh(refreshMode/refreshId)管的是 client 端回傳哪塊 HTML,partial execution(execMode/execId)管的才是 server 端跑哪些元件的生命週期。這篇用 JSF 六階段講清楚兩者差別、為什麼只做 partial refresh 整頁還是在 server 重算,以及 partial execution 怎麼把 server 工作縮到一塊。
2026.10.01 - NotesThread:在 Domino 開背景執行緒的規矩——每條 thread 要 init、要自己的 session
在 Java 裡想開一條背景執行緒去跑 Domino 的 local 呼叫,直接 new Thread 是不行的——會拿不到 Notes 執行環境。要嘛繼承 NotesThread 覆寫 runNotes()、要嘛實作 Runnable 交給 NotesThread、要嘛自己在頭尾呼叫 sinitThread()/stermThread()。而且每條 thread 要有自己的 Session、自己 recycle,不能跨執行緒共用。這篇整理 NotesThread 的三種寫法、sinitThread/stermThread 的配對規則、每執行緒一個 session 的鐵律,以及背景執行緒裡拿不到 sessionAsSigner 的現實。
2026.09.30 - @Command vs @PostedCommand:為什麼你的公式沒照順序跑
你在按鈕公式裡先算欄位、再叫一個 @Command 執行 UI 動作,結果動作先跑、算式後跑,順序全亂。原因是:@Command 大致照你寫的順序跑,但 @PostedCommand 一律排到「所有 @function 都跑完」之後才執行——寫在最前面的 @PostedCommand 反而最後動。更坑的是,有些 @Command 本身就被延後(行為像 @PostedCommand)。這篇用官方的執行順序規則講清楚兩者差別、哪些 @Command 天生 deferred,以及什麼時候該用哪個。
2026.09.29 - sessionAsSigner:XPages 用簽章者身分提權,簽章算誰、會踩什麼雷
XPages 給你三個全域 session:session 是當前使用者、sessionAsSigner 是 XPage 的簽章者、sessionAsSignerWithFullAccess 是簽章者再加 full access。用它讓使用者做他 ACL 上做不到的事(寫受限 DB、繞 Readers)很方便,但「簽章者到底算誰」是逐個 design element 算的——script library 用它自己的簽章者,不是 XPage 的,混簽就提權不一致。這篇講三個 session 的身分差別、簽章者怎麼認定,以及 setConvertMime、full access 那幾個會咬人的雷。
2026.09.28 - XPages 四個 scope:各活多久、該放什麼、什麼會爆
XPages 有 requestScope/viewScope/sessionScope/applicationScope 四個 scope,壽命從「一個請求」到「整個應用」差很多。挑錯 scope,值會莫名消失或跨使用者互相汙染;而最會咬人的是——scope 會被序列化寫到磁碟,把 NotesDocument、NotesView 或 SSJS function 塞進去,遲早噴 NotSerializableException。這篇講清楚四個 scope 各活多久、名稱怎麼由窄到寬解析、什麼能放什麼不能放,以及該存 UNID/view 名而不是物件本身。
2026.09.27 - MakeNotesFaster webinar 筆記:Notes 慢多半是設定、不是老筆電——ODS、cache.ndk 迷思與一張週一清單
panagenda 的 Christoph Adler 在 MakeNotesFaster webinar 上,把 Windows 上 HCL Notes 14.5.1 FP1 客戶端的效能拆成兩個決定:跑對版本、設對設定。這篇記下對管理者最有用的幾點——一個真實客戶的慘烈數字、ODS 為什麼每次開檔都在偷時間、cache.ndk 該不該定期刪(他直接打破迷思)、資料目錄別放網路碟、防毒排除清單的三個陷阱,以及他收尾那張『週一早上檢查清單』。
2026.09.26 - dircat 的雙重身份:你以為它只在建通訊錄目錄,Domino 12 起它還兼了授權稽核
在 show tasks 看到 dircat(Directory Cataloger),多數人想到的是「通訊錄目錄」——把多個 Domino Directory 聚合成一份好查的目錄。那是它的本業。但從 Domino 12 起,這支 task 悄悄兼了第二份差:把各 server 的 entitlement 資料聚合到 entitlements.nsf,屬於授權合規稽核,跟通訊錄毫無關係。這篇講 dircat 的本業(condensed vs extended 目錄、DIRCAT5.NTF 別選成 CATALOG.NTF)、它 Domino 12 起的隱藏第二身份,以及一支 task 兩個職責會怎麼咬人。
2026.09.25 - 誰是 domain administration server?Domino 一個 ACL 設定,牽動 entitlement 聚合、CertMgr 與 AdminP
一台 additional server 冷啟動後每 5 秒噴一次「Error connecting to server…」,逐台想連 domain 內每台 server。追到最後,兇手不是 entitlement 設定,而是一個把它悄悄變成「domain administration server」的 ACL 設定。這篇講 Domino 裡「管理伺服器」到底有幾個意思、domain admin 身份由誰決定、又暗地牽動了哪些機制(entitlement 跨-domain 聚合、CertMgr、AdminP),以及怎麼把這些混在一起的職責拆開。
2026.09.24 - 把 Domino IQ RAG 接上遠端模型:certstore 信任、API Key、HTTPS 端點怎麼設
Domino 14.5.1 FP1 讓 RAG 多了 Remote 模式——站上 FP1 總覽那篇已經介紹過「改了什麼」。這篇不重講,只補實際接線的那一段:Remote mode 設定文件怎麼填、HTTPS-only 端點與 API Key、以及最容易踩的一關——遠端 AI server 的信任根要加進 certstore.nsf,而不是 DRAPI 那條路吃的 JVM truststore。
2026.09.23