我有一个与数据库通信的Web服务(model-layer
)。该模块负责保存和检索数据以及管理事务。她也定义了许多BL。其他隔离的Web模块使用此服务来保存和检索所需的数据。
现在model-layer
正在成为瓶颈。我需要改变架构。
我想将Hibernate Entity类和BL移动到他们受尊敬的Web模块。因此每个Web模块将与同一个数据库进行通信。但我不希望在每个模块上维护分布式连接池和事务。
我知道应该有一种方法可以为所有分布式Web模块使用单个连接池。但我需要一个专业的意见,我该怎么做。
我不想使用Spring
框架,该框架已被组织拒绝解决。
现在我正在尝试通过在LDAP上保存连接的序列化对象来找到解决方案,并且所有模块都将使用该连接池。现在,我正在摸不着头脑,想知道我是否朝着正确的方向前进。
请指导我改正路径。如果春天是唯一的选择,那么请告诉我。我会试着说服我的公司。
答案 0 :(得分:0)
我想我找到了答案。
我在一台JBoss服务器上使用了共享数据源 (*-ds.xml)
。
数据源文件如下
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/wc-mysql</jndi-name>
<connection-url>jdbc:mysql://MyPC-IP:3306/DB</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>xUser</user-name>
<password>xXxXx</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<use-java-context>false</use-java-context>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
此DS可供在不同位置运行的所有JBoss服务器使用。
要确保<use-java-context>false</use-java-context>
能够公开提供DS,以便您自己进行安全握手,这是一回事。