【问题标题】:weblogic 12 / using plain jdbc connectionweblogic 12 / 使用纯 jdbc 连接
【发布时间】:2014-05-12 12:49:23
【问题描述】:

我有一个 WebApp,用户使用数据库凭据登录,后端使用用户凭据在生产数据库上运行预制报告。在这种特殊情况下,公司政策不允许技术用户。

由于数据源绑定到一个用户,我使用普通的 JDBC 连接

java.sql.Connection c = DriverManager.getConnection(aUrl, aUsername, aPassword);

这可行,但这是在应用程序服务器中实现此目的的首选方式吗?不知何故,这似乎不对。

【问题讨论】:

标签: jdbc weblogic weblogic12c


【解决方案1】:

一旦用户并发达到某个阈值,这种方式将使您的数据库耗尽可用的打开连接和结果集(打开游标)。

执行此操作的常用方法是为具有适当授权的特定用户定义一个数据库连接池。这个连接池应该有一些让你的 DBA 感觉舒服的配置设置,并且应该将它的打开连接保持在你的数据库可以接受的阈值内,这样你就不会在并发过多的情况下遇到问题(你不应该访问数据库假设有 250 个并发用户的问题,这很可能会发生在您在帖子中描述的方法上)。

实现这一点的方法是向您的数据库人员提供合理的论据,以便根据以下方面正确审查公司对数据库用户的政策

  • 健壮性:初始实施肯定会使您的数据库因前数百个并发用户而崩溃 - 这是不可能的,但可以肯定
  • 性能:连接池的性能总是优于最初的想法,因为打开新连接是一项非常昂贵的操作
  • 易于监控和管理:技术用户可以让您的 DBA 立即了解并更好地做出决策(例如,表空间大小等),以处理从 Java 应用程序服务器传入其数据库的正在运行的查询
  • 安全性:实际上谁可以订购哪个报告的问题是一个业务逻辑问题,应该委托给上层 - 一旦解决了这个问题,就让 java 应用程序订购它的报告

祝你好运!

【讨论】:

  • 谢谢,但是与大型跨国金融机构的安全大神讨论
  • 我比你想象的更理解和支持你 :) 如果你有这样的感觉,把你的子弹留给值得一战的战斗,然后记住要说教和同情......祝你好运反正!!
猜你喜欢
  • 1970-01-01
  • 2013-05-13
  • 2019-04-18
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 2020-11-10
  • 2012-12-13
  • 2016-09-13
相关资源
最近更新 更多