0

Java サーバー用の REST API を実装しています。API を通じて取得されるリソースの 1 つは、実際に C++ DCOM オブジェクトを作成し、その値を反映することです。私が使用している Java to COM ブリッジは J-Integra です。

問題は、後続の REST 呼び出しのためにその DCOM オブジェクトを存続させる必要があることですが、オブジェクトはその Java 参照が存続している限り存続します。これは、せいぜい REST セッションが期限切れになるまでです。

不要になるまで DCOM オブジェクトを存続させるにはどうすればよいですか? 今まで考えていたのは、DCOM オブジェクトを開始してその参照を保持する EJB を使用することだけでした。私は EJB の専門家ではありませんが、a) やり過ぎの解決策であると思います。b) EJB がサーバーによってキャッシュ (パッシベート?) され、その時点で DCOM 参照が失われる可能性があります。

助言がありますか?

ありがとうインバー

4

2 に答える 2

2

不要になるまで DCOM オブジェクトを存続させるにはどうすればよいですか?

それは、オブジェクトが不要になることが何を意味するかによると思います。使い終わったときはどうやってわかりますか?

これらの DCOM インスタンスはサイト全体に適用されますか、それとも特定のユーザーのみに適用されますか? サイト全体の場合、これらのリクエストを受信して​​いるリソースがそのオブジェクトへの参照を保持することは可能ですか? そうでない場合は、これらのオブジェクトを管理するためのYet Another Layerが必要になる可能性があります。

REST に使用しているフレームワークは何ですか?


詳細情報は次のとおりです。DCOM オブジェクトは一連のタスクを非同期で実行しています。そのため、Java サーバーからのメインの呼び出しはすぐに返されますが、DCOM オブジェクトは実行を続けます。残念ながら、それはかなり古いオブジェクトであり、その実装やインターフェイスを制御することはできません。変更することはできません。DCOM オブジェクトには COM イベントさえありません。完了したかどうかを知る唯一の方法は、特定のメソッド (getStatus) を使用してポーリングすることです。これは REST の概念を壊すため、REST API 実装からポーリングしたくありません。DCOM オブジェクトの実行にかかる時間を事前に知る方法がないため、セッションをそれほど長く維持することはできません。

基本的に、操作を開始するために REST 呼び出しを使用したいのですが、操作がいつ終了するか、またはその状態は気にしませんか? もしそうなら、DCOM操作を開始するスレッドを開始し、操作が完了したと見なされるまでステータスをポーリングしてから、DCOM操作を破棄できますか?

于 2009-02-05T23:43:09.783 に答える
0

COM+ に登録されたコンポーネントを配置すると、そのコンポーネントは存続します。このリンクで詳細を確認してください。

于 2009-02-15T23:23:38.537 に答える