PostgreSQL 支持 XA 事务。我需要在我的 WebLogic 12.1.3.0.0 中使用它们。
当我尝试在管理控制台中为此创建一个新的通用数据源时,我可以选择“PostgreSQL”,但在下一页中我被警告该驱动程序与 XA 不兼容。
我可以提供postgresql-9.1-902.jdbc4.jar其中包含 XA 驱动程序:org.postgresql.xa.PGXADataSource。
但是我没有找到可以配置 WebLogic 来使用此功能的地方。
我可以在特定连接中配置驱动程序类名,所以我尝试了,但找不到该类。如果我将 jar 放在 lib 目录中,可以找到该类,但连接失败。此外,我不确定 WebLogic 在这种情况下是否会使用 Postgres 的 XA 功能。
答案1
您可以通过向文件中添加新元素来解决此问题$WL_HOME/wlserver/服务器/lib/jdbcdrivers.xml
但我不确定“UrlHelperClassname”的值。
<Driver
Database="PostgreSQL - for XA"
Vendor="PostgreSQL"
Type="Type 4"
DatabaseVersion="9.1"
ForXA="true"
ClassName="org.postgresql.xa.PGXADataSource"
URLHelperClassname="weblogic.jdbc.utils.PostgreSQLJDBC4DriverURLHelper"
TestSql="SELECT 1">
<Attribute Name="DbmsName" Required="true" InURL="false"/>
<Attribute Name="DbmsHost" Required="true" InURL="true"/>
<Attribute Name="DbmsPort" Required="true" InURL="true" DefaultValue="5432"/>
<Attribute Name="DbmsUsername" Required="true" InURL="false"/>
<Attribute Name="DbmsPassword" Required="true" InURL="false"/>
</Driver>
然后你需要将 postgres jar 放入$WL_HOME/用户项目/域/base_domain/lib/。
重新启动 WebLogic 后,您可以选择“PostgreSQL - for XA”作为数据库类型。您必须输入
不过,属性区域中的“databaseName=YOUR_DATABASE_NAME”是用户附加的。也许可以优化,但这基本上是可行的,应该会促使 WebLogic 使用 XA 功能。