1

我使用 ant 脚本创建了 JDBC 连接池。

<target name="create-cmifs-connpool">
    <wlconfig username="${user}" password="${password}" url="${wls.url}">
        <query domain="${domain.name}" type="Server" name="${servername}" property="x" />
        <create type="JDBCConnectionPool" name="cmifsDBPool">
            <set attribute="CapacityIncrement" value="1"/>
            <set attribute="DriverName" value="oracle.jdbc.OracleDriver"/>
            <set attribute="InitialCapacity" value="1"/>
            <set attribute="MaxCapacity" value="10"/>
            <set attribute="Password" value="${env.DB_PWD}"/>
            <set attribute="Properties" value="user=${env.DB_USER}"/>
            <set attribute="RefreshMinutes" value="0"/>
            <set attribute="ShrinkPeriodMinutes" value="15"/>
            <set attribute="ShrinkingEnabled" value="true"/>
            <set attribute="TestConnectionsOnRelease" value="false"/>
            <set attribute="TestConnectionsOnReserve" value="false"/>
            <set attribute="TestTableName" value="DUAL"/>
            <set attribute="URL" value="jdbc:oracle:thin:@${env.MACHINE}:1521:NOTXE"/>
            <set attribute="Targets" value="${x}" />
        </create>

        <create type="JDBCDataSource" name="cmifsDBDS" >
            <set attribute="JNDIName" value="jdbc/cmifsDBDS"/>
            <set attribute="PoolName" value="cmifsDBPool"/>
            <set attribute="Targets" value="${x}" />
        </create>

    </wlconfig>
</target>

一切正常,直到我尝试从数据库中检索一个数组。我收到以下错误:

java.lang.ClassCastException: weblogic.jdbc.wrapper.Array_oracle_sql_ARRAY cannot be cast to oracle.sql.ARRAY

我在这个链接中得到了这个问题的解决方案,它说连接池的 Wrap Data Types 应该设置为 false。这解决了问题。但是当我尝试将属性添加到我的 ant 脚本时

<set attribute="WrapTypes" value="false"/>

它不起作用。我收到以下错误:

Error invoking MBean command: java.lang.IllegalArgumentException: Property Name and value not valid for the MBean. Value false for parameter[WrapTypes].java.lang.IllegalArgumentException: Unable to find the attribute: WrapTypes in the attribute list of the class: JDBCConnectionPool

如何解决这个问题呢?

4

1 回答 1

0

在这种情况下,您似乎使用通用接口和脚本执行器不理解供应商特定的标志。尝试使用具体类型。可能 weblogic.jdbc.common.internal.ConnectionPool 会帮助你。

于 2013-08-20T09:08:10.343 回答