DB2异常:无法创建PoolableConnectionFactory SQLCODE=-142,
我在MobileFirst Platform 6.3中一直存在以下错误: 运行时:org.apache.commons.dbcp.SQLNestedException:无法创建 PoolableConnectionFactory(DB2SQL错误:SQLCODE=-142, SQLSTATE=42612,SQLERRMC=null,DRIVER=4.19.26) 这是我的适配器代码:DB2异常:无法创建PoolableConnectionFactory SQLCODE=-142,,db2,ibm-mobilefirst,mobilefirst-adapters,Db2,Ibm Mobilefirst,Mobilefirst Adapters,我在MobileFirst Platform 6.3中一直存在以下错误: 运行时:org.apache.commons.dbcp.SQLNestedException:无法创建 PoolableConnectionFactory(DB2SQL错误:SQLCODE=-142, SQLSTATE=42612,SQLERRMC=null,DRIVER=4.19.26) 这是我的适配器代码: var test2 = WL.Server.createSQLStatement("SELECT *
var test2 = WL.Server.createSQLStatement("SELECT * FROM WSDIWC.WBPTRR1");
function getCEID(cnum) {
return WL.Server.invokeSQLStatement({
preparedStatement : test2,
parameters : []
});
}
和适配器XML:
<connectivity>
<connectionPolicy xsi:type="sql:SQLConnectionPolicy">
<!-- Example for using a JNDI data source, replace with actual data source
name -->
<!-- <dataSourceJNDIName>${training-jndi-name}</dataSourceJNDIName> -->
<!-- Example for using MySQL connector, do not forget to put the MySQL
connector library in the project's lib folder -->
<dataSourceDefinition>
<driverClass>com.ibm.db2.jcc.DB2Driver</driverClass>
<url>jdbc:db2://***</url>
<user>**</user>
<password>**</password>
</dataSourceDefinition>
</connectionPolicy>
</connectivity>
com.ibm.db2.jcc.DB2Driver
jdbc:db2://***
**
**
我已删除url、用户和密码。
希望你能帮助我澄清当前的问题
我已经知道sql不被接受,因为它只是一个简单的查询。我还研究了z/OSDB2,发现它有相同的错误代码sqlcode=-142 当你说这是一个“简单的查询”时: -142
不支持SQL语句 解释 检测到数据库不支持的SQL语句。 该语句可能对其他IBM®关系数据库有效 产品或它可能在其他上下文中有效。例如 可以使用诸如value和SIGNAL或RESIGNAL SQLSTATE之类的语句 仅在某些上下文中,例如在触发器体或SQL中 程序 系统动作
无法处理该语句 程序员响应
更改SQL语句的语法或从中删除该语句 节目
您应该查看DB2SQL指南,了解如何实现您想要实现的目标,如果需要进一步的帮助,还应该在问题中对此进行解释。例如,您确定“WSDIWC.wbptr1”确实可用吗?我在MobileFirst 6.3中遇到了与大型机DB2的JDBC连接相同的问题。与DB2LUW的连接工作正常。似乎默认池validationQuery对DB2LUW有效,但对DB2z/OS无效 您可以通过在Liberty profile
server.xml
中进行数据源配置来解决此错误。从Eclipse服务器视图中,展开MobileFirst Development Server并编辑服务器配置。在那里添加驱动程序和数据源;例如:
<library id="db2jcc">
<fileset dir="whereever" includes="db2jcc4.jar db2jcc_license_cisuz.jar"/>
</library>
<dataSource id="db2" jndiName="jdbc/db2">
<jdbcDriver libraryRef="db2jcc"/>
<properties.db2.jcc databaseName="mydb" portNumber="5021"
serverName="myserver" user="myuser" password="mypw" />
</dataSource>
在server.xml(相对于适配器xml)中配置数据源的一个好处是,您可以访问所有数据源、JDBC和JCC属性。因此,如果连接池给您带来其他问题,您可以对其进行自定义或切换到另一种数据源类型,例如
type=“javax.sql.DataSource”
它可以在DataStudio中工作。我已经检查了十几次了。我所有的查询工作都在DataStudio中进行。我的另一个团队也尝试了,但他们得到了相同的错误消息。谢谢你的帮助。
<dataSourceJNDIName>jdbc/db2</dataSourceJNDIName>