2015-01-06 2 views
1

я храню, имеющий следующую ошибку в MobileFirst Platform 6.3:исключением DB2: Невозможно создать PoolableConnectionFactory SQLCODE = -142,

Runtime: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (DB2 SQL Error: 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> 

У меня есть адрес, имя пользователя и пароль. Надеюсь, вы поможете мне разъяснить текущую проблему.

Я уже знаю, что sql не принят, поскольку это простой запрос.
Я также изучаю z/OS DB2, что он имеет такой же код ошибки sqlcode = -142. http://answers.splunk.com/answers/117024/splunk-db-connect-db2.html

ответ

0

В то время как вы говорите, что это «простой запрос», the exception error code mentions the following:

-142
THE SQL STATEMENT IS NOT SUPPORTED

Explanation

An SQL statement was detected that is not supported by the database. The statement might be valid for other IBM® relational database products or it might be valid in another context. For example, statements such as VALUES and SIGNAL or RESIGNAL SQLSTATE can be used only in certain contexts, such as in a trigger body or in an SQL Procedure.

System action
The statement cannot be processed.

Programmer response
Change the syntax of the SQL statement or remove the statement from the program.

Вы должны пересмотреть принципы SQL DB2 для того, как добиться того, чего вы хотите достичь, а также объяснить, что в вопросе если вы хотите получить дополнительную помощь. Например, вы уверены, что «WSDIWC.WBPTRR1» действительно доступен?

+0

Работает в информационной студии. Я проверил его дюжину раз. Весь мой запрос работает в студии данных. Моя другая команда тоже попробовала, но у них такое же сообщение об ошибке. Спасибо за вашу помощь . – user3634916

0

Я столкнулся с этой же проблемой при подключении JDBC к мейнфрейму DB2 в MobileFirst 6.3. Соединения с DB2 LUW отлично работали. Похоже, что validationQuery для пула по умолчанию действителен для DB2 LUW, но не для DB2 z/OS.

Вы можете обойти ошибку, выполнив настройку источника данных в профиле Liberty 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> 

Затем ссылаться на него в вашем адаптере XML под connectionPolicy:

<dataSourceJNDIName>jdbc/db2</dataSourceJNDIName> 

Преимущество настройки источников данных в server.xml (по сравнению с адаптером XML) является у вас есть доступ ко всем данным источника, JDBC и JCC. Поэтому, если пул соединений дает вам другие проблемы, вы можете настроить его или переключиться на другой тип источника данных, например type="javax.sql.DataSource".

Смежные вопросы