0

私は、 EJBを使用して政府のプロジェクトに取り組んできました。EJB のデプロイ中にサーバーの問題がいくつか見つかりました。私のプロジェクトで働いている人々は、RequestHandler と DAO の間から EJB を削除し、RequestHandler から DAO メソッドを直接呼び出すことを考えました。

この問題に関する私の議論は、それ自体が EJB としてベース フレームワークを持っているプロジェクトから EJB を削除することをどのように考えることができるかということです !!!

展開中にパフォーマンスを向上させるために必要な正しいソリューションについてお知らせください。また、速度とパフォーマンスを向上させる他の方法についてもお知らせください。

4

4 に答える 4

1

私は、EJB を削除することでパフォーマンスが劇的に改善されたいくつかのプロジェクトに取り組みました。

私にとって、EJB を使用することは、パフォーマンスを心配することではなく、生産性と生成するソリューションの品質を向上させることです。通常、パフォーマンスは大きな問題ではありませんが、パフォーマンスが問題になる場合は、ハードウェアを投入して、以前よりも低コストのクラウド/分散ソリューションを使用できます。つまり、開発に多くの時間を費やすよりも安価になる可能性があります。

于 2012-03-05T12:29:59.280 に答える
1

リモート EJB 呼び出しを実行しているか、ローカル EJB 呼び出しを実行しているかを確認してください。プロジェクト内でリモート呼び出しを行うと、パフォーマンスの問題が発生する可能性があります (論理的にローカルで作業している場合)。

于 2012-03-05T12:23:40.527 に答える
0

情報を提供せずに質問に答えるのは不可能です。ただし、ejb サービスを何にも使用しない場合は、それらを削除することもできます。そもそも ejb を介して dao を呼び出す理由が CMT を利用するためである可能性は低いため、ejb を使用しない場合は、別の方法でトランザクションを処理する必要があります。

一般的に、私のアドバイスは、答えを探し始める前に、質問/問題が実際に何であるかを理解しようとすることです.

于 2012-03-05T14:09:29.507 に答える
0

話しているEJBによって異なります。

セッション Bean : 持っていてもいなくても、パフォーマンスにはほとんど影響しません。

エンティティ Bean : エンティティ Bean は、パフォーマンスに劇的な影響を与える可能性があります。create、delete、または update 呼び出し ( C R UD ) で複雑なトランザクションを処理している状況でそれらを使用します。何千ものレコードを返すクエリ (C R UD) を呼び出しているだけの状況では、純粋な JDBC に切り替えることがあります。

最近の多くの JPA/EJB コンテナーは非常にスマートであるため、パフォーマンスの問題をデータベース レベルに委任できる可能性があります。

例: 10000 個の顧客オブジェクトを返し、各顧客が複数の住所を持っている場合、EJB レイヤーで顧客オブジェクトと住所オブジェクトを結合できます。これは、データベース レベルで結合を作成し、EJB コンテナーが十分にスマートであれば、データをビューとして返すのと同じくらい高速かもしれません。

于 2014-11-19T09:27:13.733 に答える