我使用 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
如何解决这个问题呢?