0

我在 Single Application Server ( Jboss 4.2.3) 中有 2 个数据源的 JNDI 设置。

如何识别哪个用户请求命中来自哪个数据库连接?如何根据用户请求设置 Db 连接。我需要为用户提供一次数据库连接。即我想在我的应用程序中使用动态数据源。我使用纯 JDBC 连接

4

1 回答 1

0

您正在构建一个多租户应用程序。

  • 因此,您需要用户和数据源之间的另一个映射(例如在 DB 表中)。基于该映射选择数据源。

  • 用户应针对您的应用程序进行身份验证,以便您可以调用request.getRemoteUser(). 使用它在映射表中查找数据源名称。

  • 现在您有了数据源的名称。数据源绑定在 JNDI 中,每个数据源都有一个唯一的名称。

在您的应用程序中,您可以按名称查找数据源:

final DataSource ds = (DataSource) ic.lookup("java:/jdbc/x1");
final Connection conn = ds.getConnection();
try {
  // Do something with connection
} finally {
  conn.close();
}

所以在你的情况下,你有两个名字,比如java:/jdbc/x1and java:/jdbc/x2

您在定义数据源的同一位置定义 JNDI 名称。

于 2013-08-29T14:04:36.830 回答