Я пытаюсь подключиться к DB2 в своей локальной сети, используя worklight 6.1.0 и запуская запрос выбора для поиска данных, если они существуют. Но я получаю ошибку ниже:
{
"errors": [
"Runtime: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DATABASE_NAME.REGISTRATION, DRIVER=3.58.82.\nPerformed query:\nSELECT * FROM DATABASE_NAME.registration where DATABASE_NAME.registration.Mob_No = ?"
],
"info": [
],
"isSuccessful": false,
"warnings": [
]
}
Моя конфигурация адаптера SQL выглядит следующим образом:
<connectionPolicy xsi:type="sql:SQLConnectionPolicy">
<!-- Example for using a JNDI data source, replace with actual data source name -->
<!-- <dataSourceJNDIName>java:/data-source-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://172.21.11.129:50000/MOBILEDB</url>
<user>db2admin</user>
<password>Newuser123</password>
</dataSourceDefinition>
</connectionPolicy>
И файл js, который имеет процедуру, выглядит так:
var selectStatement1 = "SELECT * FROM DATABASE_NAME.registration where DATABASE_NAME.registration.Mob_No = ?";
var procStmt1 = WL.Server.createSQLStatement(selectStatement1);
function registrationLookup(mobile){
WL.Logger.debug("Inside registrationLookup");
return WL.Server.invokeSQLStatement(
{
preparedStatement : procStmt1,
parameters : [mobile]
}
);
}
Я провел небольшое исследование о подключении DB2 к Worklight и узнал, что мне нужно поместить ниже данные в файл worklight.properties.
wl.db.username=db2admin
wl.db.type=DB2
wl.db.password=Newuser123
wl.db.driver=com.ibm.db2.jcc.DB2Driver
Но после его добавления я не могу развернуть адаптер, и ошибка говорит, что «db2admin» не существует. Поэтому я пропустил этот шаг в контексте текущего вопроса. Но после прохождения ошибки, которую я получаю без добавления этих данных worklight.properties, мне кажется, что «Объект не существует» согласно http://www-01.ibm.com/support/docview.wss?uid=swg21613531 или пользовательская таблица не существует. Любое предложение будет полезно. ПРИМЕЧАНИЕ:
- Мой IP-адрес — 172.21.11.125, откуда я вызываю адаптер для DB2.
- Экземпляр DB2 работает по адресу 172.21.11.129 @ 50000.
- db2jcc_license_cu_9.5.jar и db2jcc_9.5.jar уже добавлены в server/lib. К его имени добавлено «_9.5», которое я удалил из обоих jar-файлов и оставил только db2jcc_license_cu.jar и db2jcc.jar.
DATABASE_NAME
является именем вашей базы данных/схемы? Это не похоже на очень понятное/полезное имя. БД жалуется, что таблицаregistration
не существует (или в любом случае не может ее найти), так что, вероятно, это не проблема пользовательской таблицы. Я недостаточно знаю о Worklight — распространяется ли js среди клиентов? Это может привести к катастрофе, если вы позволите клиентам выполнять произвольные операторы SQL. В противном случае это четко заданный вопрос - я бы хотел, чтобы больше людей предоставили полный текст обнаруженной ошибки, а тем более шаги, которые они пытались... - person Clockwork-Muse   schedule 22.07.2014