0

私はJavaベースのLotusDomino電子メールクライアントアプリケーションを開発しました。lotus.domino.Sessionオブジェクトをセッション管理のためにhttpsession.setAttributeに保存しています。アプリケーションを2つの異なるサーバーにデプロイし、2つのサーバー間の負荷分散とセッションレプリケーションを管理することにしました。

lotus.domino.Sessionがシリアル化されていないため、lotus.domino.Sessionの複製中に問題が発生します。

親切に助けてください

ありがとう

4

2 に答える 2

1

私の知る限り、あなたは運が悪いです。

Domino オブジェクト (つまり、lotus.domino パッケージ内のもの) は、メモリ リークを避けるためにガベージ コレクションが必要な C API オブジェクトへのリンクを格納します。結果として、Domino オブジェクトがシリアライズされると、そのオブジェクトが格納された要求の最後で有害になります。これは、その C オブジェクト リンクがその要求の最後で自動的に再利用されるためです。

于 2012-08-20T10:32:36.160 に答える
0

Leyrer が言うように、Domino オブジェクトには保存できない C-API バックエンド コンポーネントがあるため、Domino オブジェクトをシリアライズすることはできません。

また、Session オブジェクトは、接続プーリング用に設計されたこともありません。そのため、シリアル化をスキップしても、他の問題が発生する可能性があります。

達成しようとしていることに応じて、セッションとその他のオブジェクトを再作成するために必要な参照だけを使用して、独自のシリアル化可能なオブジェクトを作成できます。

于 2012-08-20T22:19:34.937 に答える