Я пытаюсь подключиться к AS400 DB
из вычислительного узла Java, но получаю ошибки. Вы могли бы посоветовать.
Мой сценарий тестирования:
Мой поток брокера запускается каждые 9 секунд для запуска строки выбора и удаления в
AS400 DB
Подключитесь к
AS400 DB
с помощьюJDBC_TransactionType.MB_TRANSACTION_AUTO
.try {// установить соединение с сервером AS400 if (conn == null) try {conn = getJDBCType4Connection ("AS400db", JDBC_TransactionType.MB_TRANSACTION_AUTO); strSelectStoredProcName = (Строка) getUserDefinedAttribute ("SelectStoredProcName"); результат = новый CDBItaly_CoreSelectCustomerDetails (). retrievePPWICustomerDetails (conn, strSelectStoredProcName);
} catch (SQLException e) { //store any error code and description in the environment tree. mbElement.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "ErrorCode", CDBItalyErrorCodes.CDB_ITALY_0001.toString()); mbElement.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "ErrorDesc", CDBItalyErrorCodes.CDB_ITALY_0001.getErrorDescription()); catchTerminal.propagate(assembly); }
} catch (исключение e) {}
Получите строки из ResultSet один раз и получите правильные результаты - ОК
Удалите все строки из таблицы с помощью rs.DeleterOW, что означает, что ResultSet не должен возвращать в следующий раз ничего.
Попробуйте получить еще раз (теперь он должен вернуть 0 строк). Но он возвращает те же строки, что и на шаге 2, даже если таблица базы данных пуста.
Если я перезапущу поток брокера, он снова будет работать нормально.
Теперь, если я изменю код следующим образом:
try {
//get connection to the AS400 server
if (conn == null) {
conn = getJDBCType4Connection("AS400db",JDBC_TransactionType.MB_TRANSACTION_AUTO);
}
try {
strSelectStoredProcName = (String)getUserDefinedAttribute("SelectStoredProcName");
result = new CDBItaly_CoreSelectCustomerDetails().retrievePPWICustomerDetails(conn, strSelectStoredProcName);
} catch (SQLException e) {
//store any error code and description in the environment tree.
mbElement.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "ErrorCode", CDBItalyErrorCodes.CDB_ITALY_0001.toString());
mbElement.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "ErrorDesc", CDBItalyErrorCodes.CDB_ITALY_0001.getErrorDescription());
catchTerminal.propagate(assembly);
} catch(Exception e){}
Я получаю сообщение об ошибке: java.sql.SQLException
соединение не существует