DB2异常:无法创建PoolableConnectionFactory SQLCODE=-142,

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 *

我在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 * 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>