前回、約 20 年前に GetAllEntriesByKey を使用して、トラブルが発生した話をしました。これがきっかけでトラブルを引き寄せたのかもしれませんが、またしても、ビューの検索でトラブルが発生しました。
今回は、GetDocumentByKey に起因する問題でした。トラブル内容をまとめますので、みなさまもお気を付けください...
発生した問題
まずは、問題の原因からです。Google で検索した結果、すでに不具合情報(Defect Article)が上がっておりました。
Domino Designer 64ビット版で設計を保存すると、Notes 32ビット版では GetDocumentByKey が正しく動作しない
発生条件としては次の通りです。
- 32 ビットと 64 ビットの Notes が混在する環境で発生
- 64 ビットで保存し、32 ビットで実行すると発生
- GetDocumentByKey の検索キーに配列を指定した場合に発生
- 11.0.1 FP9、12.0.2 FP3 以降の 32 ビット版では発生しない
発生状況
私がサポートしている環境は、一般ユーザは Notes 11 を使用中です。現在バージョンアップを計画中で、検証のため私の PC には 14.5 が入っています。私の PC だけが 64 ビット版ということです。
私が開発作業をすればするほど、正常に動作しない DB が増え、傷口が広がるというトラップでした...
現象としては、GetDocumentByKey の検索キーが配列ときに発生する現象のため、頻度は低めだったのは幸いでした。それでも、いくつかの症状に見舞われました。
「ビューを検索して、ヒットしなかったら文書を新規作成する」という処理では、かったぱしから新規作成されていました。また、申請番号を管理する機能において、管理文書が取得できず、初期番号が付与され、番号が重複する現象が出ました。
特に後者は後続の業務に番号を使用していたので、システムだけでなく、業務部門にも訂正作業が発生し、大きな影響がありました。
まとめ
最初に掲載した不具合情報は 2025年5月29日 の掲載でした。最新情報ではありませんが、注意喚起のため記事にしました。Notes / Domino 11 がサポート切れになったこともあり、これからバージョンアップする方もいるかと思います。移行期間中は、32 ビットと 64 ビットの混在環境になりますので、この現象にご注意ください。
本件の対策は、32 ビットで LotusScript コンパイルすることです。[すべての LotusScript をリコンパイル]でも回避できます。開発者のマシンを最後にバージョンアップ(64 ビット化)するのは非現実的ですので、32 ビットでコンパイルしてから運用 DB に反映することをリリース手順に入れた方がいいかもしれませんね。
私のような被害者がにとりでも減ることを祈っております...
0 件のコメント:
コメントを投稿