私はHibernat 4に基づいてマルチテナントアプリケーションを開発しています。 私は別のデータベースソリューションを使用しています。 データベースプロバイダーとしてMysqlを使用します。 新しいテナントごとに、mysqlに新しいデータベースを追加します。 アプリケーションサーバーを再起動せずに、新しいテナントをアプリケーションに追加したいと考えています。 DriverManagerDataSourceを使用して、テナントごとに新しいデータソースを作成しますが、このクラスは本番環境では使用できません。どのクラスを使うべきですか? 私はappserverにデータソースを追加し、JNDIdatasourceを使用することを考えていましたが、問題は新しいテナントごとにアプリケーションサーバーを再起動する必要があることです。 appserverを再起動せずにデータソースを追加する方法はありますか?マルチテナントアプリケーションのデータソース
4
A
答えて
2
あなたの質問に直接答えを与えるために、JMXを介してアプリケーションコンテキストを公開し、プログラムで修正することができます。この問題は、変更が一時的なものになること、つまりサーバーを再起動しても変更が保持されないことにあります。
もう1つの方法は、(xmlを使用していると仮定して)基礎となるxmlファイルをプログラムで変更し、アプリケーションコンテキストでrefresh()を呼び出すことです。たとえば、あなたがデータソースのプレースホルダとVelocityテンプレートを作成することができます。
<beans>
...
#foreach ($datasource in $datasources)
$datasource
#end
...
</beans>
あなたはその後、その後、更新されたデータソース-のcontext.xml
を生成することになる速度にすべての必要なデータソースのリストを渡しますしかし、他のユーザーが指摘しているように、これは実際には良いアイデアではないので、分割や別の方法で行く方が良い
関連する問題
- 1. MVC3マルチテナントアプリケーション
- 2. マルチテナントアプリケーション - DB
- 3. MVC3 - マルチテナントアプリケーション
- 4. facebookredirect.axdマルチテナントアプリケーション
- 5. SaaSマルチテナントアプリケーションのジャンプスタート
- 6. Reactのマルチテナントアプリケーション
- 7. マルチテナントアプリケーションのカスタムヘッダー
- 8. マルチテナントアプリケーションでのB2Bアクセス
- 9. マルチテナントアプリケーションのAzure DocumentDBユーザー
- 10. 口座のリンク - マルチテナントアプリケーション
- 11. マルチテナントアプリケーションとエンティティフレームワーク
- 12. マルチテナントアプリケーション - SSL証明書
- 13. Rails 3のDBセパレーションのマルチテナントアプリケーション
- 14. マルチテナントアプリケーションのSSL証明書
- 15. シンプルなsymfonyの2マルチテナントアプリケーション
- 16. マルチテナントアプリケーションの異なる翻訳
- 17. ASP.NET MVCマルチテナントアプリケーションの質問
- 18. Azure ADマルチテナントアプリケーションのログイン用のカスタムブランディング
- 19. マルチテナントアプリケーションのドロップダウンリストを設定する
- 20. マルチテナントアプリケーションの認可宝石ですか?
- 21. Docusignインテグレーション - マルチテナントアプリケーション用の単一インテグレーションキー
- 22. Azure AD B2Cアプリケーションをマルチテナントアプリケーションにする
- 23. Propel ORMを使用したマルチテナントアプリケーション
- 24. AzureのAD SSOマルチテナントアプリケーション/ AD FSクレームプロバイダーの問題
- 25. ASP.NET MVCでプラグインベースのアーキテクチャを使用したマルチテナントアプリケーションの開発
- 26. Syncfusionスケジューラのデータソース
- 27. ダイナミックテーブルビューのデータソース
- 28. VS2005:SSRSのデータソース
- 29. DataGridViewComboBoxCellデータソースの空
- 30. Infor Saleslogixのデータソース
これはあなたを助けるでしょう:http://blog.springsource.org/2007/01/23/dynamic -datasource-routing/ –
一般的には良い設計ではありません新しいユーザー/テナントなどごとにデータベースを作成してください。パーティション化された単一のデータベースを使用することを考えてみてください。http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html – samlewis