2023/03/20

日本語のグループ名はサポート外と再認識した話

ノーツサーバに日本語のグループを作成し、メールを送信した場合の挙動に関して、過去の経験の記録も兼ねて整理します。

はじめに言っておきたいことは、ドミノディレクトリでは、全角文字のグループはそもそもサポート外です。以下はその前提でご参照ください。

この記事を読んで、日本語グループは動くんだ!と判断しないでくださいね。

事の発端

ある時、クライアントとサーバを 9 に上げた時でした。全ノーツユーザ(約1500名)にアナウンスするため全ユーザが所属するグループを宛先に選択しメール送信すると、『フィールドが大きすぎる(32K)、またはビューの列と選択式が大きすぎます。』とエラーが発生し送信できない現象が発生しました。

現在は、クライアントとサーバとも 11 なのですが、送信できない症状は継続しています。発生するエラーは、『エントリを追加するとテキストリストが 64K を超えてしまいます。エントリを追加できません。』と少し変化はしましたが、相変わらずです。

この日本語のグループは、ノーツ全社導入時点から存在し、ノーツではない人事システムから全従業員の所属をもとに自動生成していました。

現象発生以前のサーバはR4.5、R4.6、R5、6.0、8.5、クライアントは、R4.5、R4.6、6.0と推移していました。

このような環境において一度も今回のような現象は発生しませんでした。

そんな事情もあり、途中からこの環境を担当した私は、日本語グループ名は、問題なく動くと思い込んでおりました...

症状と挙動の確認

さて、今回の現象と Notes/Domino の挙動を整理しましょう。

まず、正常な動作です。メールを送信すると、メールがサーバの mail.box に転送されます。このタイミングで、グループが展開されるようです。

同様のグループを半角英数だけで作成した環境で、Router タスクを止め送信したところ、あて先が展開された10通強のメールが mail.box に作成されました。この処理が、32K や 64K の制限を回避しているのだと思われます。

続いて、日本語グループの場合です。

メール送信ボタンを押すとクライアント上にエラーメッセージが表示され、サーバの mail.box には1通もメールが届きません。

この症状からクライアント上でグループが展開され、送信前にエラーが発生したと判断できます。

勝手な想像ですが、グループがドミノディレクトリに存在するかのチェックでは”ない”と判定され、個人アドレス帳を含めたクライアントでのグループ展開のタイミングで、サーバ上のグループを展開しちゃったと考えています。

同じ”グループを展開する”という処理でも、機能により少し挙動が違うようです。ちなみに、ACL設定でも日本語グループを使用していますが、こちらは Domino 9 でも Domino 11 でも正常に動作しています。

Notes/Domino では、内部的な文字の管理は、LMBCS(Lotus Multi Byte Character Set)というもので管理されています。日本語の全角文字列は、日本語を示す 0x10 + Shift-JIS の 3 バイトで構成されます。(私にはできませんが)Notes API を使ったアプリを開発する場合、この LMBCS の変換が甘いと、正常に動かないんだそうです。

身近に確認できるのは、@SetEnvironment で日本語を出力したときですね。notes.iniをメモ帳で開くと、各文字の前に”・”のごみがつきます。これが 0x10 で、残りの 2 バイトが Shift-JIS なので読める文字で表示されることになります。

今回の現象は、Notes クライアントのアップデートの過程で、グループ展開のコードの更新があり、LMBCS の処理が一部省略されたのではないかと想定します。

もちろん、そもそもサポート外なので、”バグ”ではないのですが...

蛇足の思い出話

ということで、今回は日本語グループの話でした。

繰り返しますが、”日本語グループはサポート外”なので、ご使用は避けてください。たとえ、今は大丈夫でも、将来何が起こるかわかりません。

そういえば、R4.6 ぐらいまでの Notes 黎明期のころいろんな環境がありました。

DJXはなかったので公開アドレス帳に姓名に漢字を入力してユーザ名を発行したり、DBファイル名を”サンプル.nsf”としたり、フィールド名を全角文字で書いたり...

知ってか知らずかは別にして、それでもそれなりに動いていました。サポートしていないと言いながら動くのが、ノーツのすごいところといえますね。

はるか昔、五反田のロータス社で DJX に関する説明会?ベンダーの意見集約?の機会がありました。この時に、日本語グループの要望を出しておけばよかったと悔やまれます。

0 件のコメント:

コメントを投稿