1

HibernateをDALとして使用するWebサービスがあります-MySqlとInnoDBを使用しています。

(クライアント側でのユーザーエクスペリエンスを向上させるために)Webサービス呼び出しを非常に短くしたいので、いくつかの作業を行うためにmsgキューで2つのスレッドを使用しています。

1つのスレッドがメッセージ内のuserIdを取得し、DBからユーザーをロードして、電子メールアドレスを取得し、に電子メールを送信します。

2番目のスレッドは次のように使用されます:Webサービス呼び出し....いくつかのアクションを実行します。DBにActivityLogを追加します。session.save(log);を実行します。session.commit(); ここで、logIdを使用してメッセージをスレッドに送信します。受信したメッセージ-タイムラインテーブル(userid、logId)に新しいエントリを挿入します。セッションは、メインロジックセッションオブジェクトとは異なるセッションオブジェクトです。

これで問題が発生する必要がありますか?遅延読み込みでは?スレッドでは、commit()の後にメッセージがスレッドに送信されるので?

4

1 に答える 1

2

Webサービスへの同期応答が必要ない場合は、Webサービス->メッセージキューアーキテクチャがかなり標準的です。

Webサービスで、必要なものをデータベースに保存すると、メッセージキューが後でそれを取得します。

別のセッションは問題ではありませんが、これらのスレッドごとに1つの静的セッションがある場合、セッションが肥大化する可能性があります。つまり、オブジェクトがセッションキャッシュに蓄積されます。詳細:http ://suryagaddipati.wordpress.com/2008/02/15/hibernate-rich-clients-and-long-running-sessions/

于 2012-06-20T17:11:38.957 に答える