LotusScript のBackend クラスと Notes Javaクラスはよく似ている

2008年11月05日 00:39

 今日は、Notes Javaクラスについて話そうと思います。サポートとしては、Notes Javaクラスの仕組みを理解しようと思ったのであれば一度は以下の文章を読んでほしいです。

Lotus Notes/Domino における Java 実行環境とその問題判別について (#729912)

ここで仕組みの部分でよく理解してほしいのは、Notes Javaクラス、COM、LotusScriptが並列に並んで、Lotus Script Backengine を経由してNotesのNativeオブジェクトにアクセスしていることです。
 これがタイトルでも書いている通り、「Notes JavaクラスとLotusScript Backengine クラスはよく似ている」と言う事です。DIIOP接続などJARファイルを使っていると忘れがちですが、これらの処理は全てnlsxbe.dll (WindowsでのDLL名)を使用してNotesに接続している、と言う点では同じなのです。

もう1つ重要な点は、Notes Javaクラスも LotusScriptも直接Nativeオブジェクトを介してアクセスしているわけではない点です。これらの処理は共通のインターフェースを使用しているのでほぼ同等の結果を得ることが出来る反面、どちらもLSXBEの制限に縛られますし、同じ問題に遭遇する可能性があります。

 例えばHTTPタスクの場合は、このようなインターフェースを介さず直接Nativeオブジェクトにアクセスします。だからNotes JavaクラスとLotusScriptの機能拡張は同時に行われる事が多いのですが(8.0からの未読文書へのアクセスなど)、これとWebアクセスの拡張はお互いに独立なのです。

このような仕組みを理解する事ははサポートのシーンでも重要になります。
Notes Javaクラスの問題は、LotusScciptでも問題になる事が多いので、調査の際にはこの視点を最大限に生かす必要があるのです。

1. 一般的に再現環境の構築や試行は、Javaのリモートアクセスアプリケーション > Java エージェント > LotusScript の順で容易になる。繰り返しテストが必要な場合には、LotusScript で再現させる事も大事

2. LotusScriptの問題はほとんどLSXBEの問題である可能性が高いが、JavaエージェントではJVMの問題が起因であることがある。LotusScriptで問題が再現出来ないことが分かると、JVM の問題、メモリの使用状況、コーディングの問題などを疑う必要が出てくる。(Javaの recycle()の問題などはこの典型ではないかと思います。)

3. Javaアプリケーションの問題調査を行うときには、LotusScriptでの問題発生事例についても、ヒットしている可能性を考慮する必要がある


アプリケーション開発者の視点で考えると、たとえば 、Javaでコードを書いている人にしてみれば、「どのような条件で問題が起きるか」と言う事には詳細について知りたいと思うのではないかと思うのですが、1. のように「同じ問題がLotusScriptでも起きるかどうか?」と言うのは何の役にも立たない情報なので多くの場合興味を持っていないことが多いのではないかと思うので、これはサポート固有の視点ではないかと思います。
 もちろん条件を絞る事によって十分な情報が得られる事も多いので、自分自身このような観点での調査までするのは限られたケースだけです。

なんか今日は堅い話になってしまったので、明日はアプリ開発には役に立たないかもしれないけど、「DIIOPとか聞くとNotes開発者なのにJava使わないといけなくなりそうで怖いんだけど、どんなものなのかは知りたいから触ってみたい」と言う人向けの簡単DIIOPテストコードを紹介します。
繰り返しますが、リモートアクセス用の本格的アプリ開発には何の役にも立たないと思います。 。


コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://hnagasim.blog8.fc2.com/tb.php/8-12e69a1e
    この記事へのトラックバック


    最新記事