2

テナントごとにデータベース/スキーマを持つマルチテナント サーバーを構築しています。これを行うには、Springs AbstractRoutingDataSource を使用して、テナントに基づいてデータ ソースを切り替えます。

テナントは、サーブレット フィルターの URL のサブ ドメインによって決定されます。このテナントは、スレッド ローカルに格納されます。

スレッドが開始されるまで、これはすべて正常に機能します。たとえば、休止状態の検索でインデックスが再作成されると、多くのスレッドが開始されます。

これらのスレッドの 1 つが接続を取得しようとすると、スレッド ローカルが null を返し、テナントを特定する方法がありません。

4

2 に答える 2

0

テナントを格納するセッション スコープの Spring Bean を使用して修正しました。

サンプルはリンク参照

于 2012-06-27T14:54:10.087 に答える