Выход из узла IIB без ответа MYSQL ODBC satasoruce - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь заставить ODBC работать с IIB 10, но мой узел завершает работу без ответа при вызове state.select. Я считаю, что что-то не так с моей настройкой ODBC. Системный журнал не показывает никаких ошибок, и отладчик падает на state.select

Это мой код:

    try {
     outP = new PrintWriter(new BufferedWriter(new FileWriter("/tmp/myfile.txt", true)));
outP.println("Start");
        MbSQLStatement state = createSQLStatement( "MYSQL", 
            "SET OutputRoot.XMLNS.integer[] = PASSTHRU('SELECT * FROM " + "test" + "');" );

         state.select( inAssembly, newAssembly );

    } catch (Exception e) {
    outP.println(e);
    outP.flush();
    outP.close();
}

Результат: Myfile.txt содержит только текст «Пуск», который никогда не запускается

Мои настройки ODBC

$odbcinst -j
unixODBC 2.3.4

DRIVERS............: /home/ds/iib-10.0.0.13/ie02/etc/odbcinst.ini
SYSTEM DATA SOURCES: /home/ds/iib-10.0.0.13/ie02/etc/odbc.ini
FILE DATA SOURCES..: /home/ds/iib-10.0.0.13/ie02/etc/ODBCDataSources
USER DATA SOURCES..: /home/ds/iib-10.0.0.13/server/ODBC/unixodbc/odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

[MySQL]
Description=MySQL driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc8w.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
TraceFile = /tmp/sql.log

[MYSQL]
Description=MYSQL DB
Driver=MySQL
Database=test
Server=127.0.0.1
Port=3306

1 Ответ

0 голосов
/ 28 января 2019

Попробуйте установить для атрибута setThrowExceptionOnDatabaseError значение true.

state.setThrowExceptionOnDatabaseError(true);

Если во время выполнения этого оператора возникает ошибка базы данных, поведение определяется значением атрибута throwExceptionOnDatabaseError. Если установлено значение true (значение по умолчанию), генерируется исключение, которое может быть перехвачено при запуске в блоке try / catch

(источник)

...