Weblogic 中 PostgreSQL 的 XA 连接

Weblogic 中 PostgreSQL 的 XA 连接

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 功能。

相关内容