Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подключение к серверу AS/400, Ошибка при запуске программы 
V
    Опции темы
Zhenyusya
  Дата 1.9.2011, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 14.8.2008
Где: Барнаул

Репутация: нет
Всего: нет



Пытаюсь соединиться с сервером AS/400 для сверки страхового номера и анкетных данных человека.
Код

    private static final String LIBRARY = "PREGNLIB";
    private static final String PROGRAM = "PRCHDBL";
    private static final int RECORD_SIZE = 308;
.................................................................................
        AS400 as400 = null;
        Record newRecord = null;
        try {
            // создаем объект as400 и инициализируем его
            as400 = new AS400(server);
            as400.setPassword(password);
            as400.setUserId(username);
            // создаем команду
            ProgramCall call = new ProgramCall(as400);
            String program = QSYSObjectPathName.toPath(LIBRARY, PROGRAM, "PGM");
            call.setProgram(program);
            // конвертор строк в byte[] и обратно
            AS400Text txtConvertor = new AS400Text(RECORD_SIZE);
            // создаем параметр
            ProgramParameter[] parameters = new ProgramParameter[1];
            parameters[0] = new ProgramParameter(RECORD_SIZE);
            parameters[0].setInputData(txtConvertor.toBytes(input));
            call.setParameterList(parameters);
            // запуск
            if (call.run()) {
                // процедура отработала успешно, возвращаем результат
                String result = txtConvertor.toObject(parameters[0].getOutputData()).toString();
                newRecord = unpack(result);
            } else {
                newRecord = new Record();
                // процедура вызвала ошибку, пытаемся считать все сообщения 
                AS400Message[] messages = call.getMessageList();
                StringBuilder reportBuilder = new StringBuilder();
                for (AS400Message m : messages) {
                    reportBuilder.append(m.getText());
                    reportBuilder.append("\n");
                }
                String report = reportBuilder.toString().trim();
                newRecord.setErrorCode(report);
            }
        } catch (Exception ex) {
            if (newRecord == null) newRecord = new Record();
            newRecord.setErrorCode(ex.getMessage());
        }
        if (as400 != null) as400.disconnectService(AS400.COMMAND);

Но в итоге процедура вызывает ошибку 
Application error. *N unmonitored by *N at statement *N, instruction X'4000'
Подскажите, пожалуйста, в чем может быть дело??
PM MAIL ICQ   Вверх
Skipy
Дата 1.9.2011, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 4
Всего: 16



В чем угодно. Программа на AS/400 вылетела с ошибкой.

P.S. Вы действительно думаете, что тут все сплошь знатоки работы с AS/400 через Java? Сколько человек тут вообще слышали это название, как Вы думаете?


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
Zhenyusya
Дата 2.9.2011, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 14.8.2008
Где: Барнаул

Репутация: нет
Всего: нет



Я просто надеялась, что хоть кто-нибудь знает... Наивно, да?
Ну да ладно, проблему решила, оказалось что в программу неправильной длины параметр передавала.
PM MAIL ICQ   Вверх
Skipy
Дата 2.9.2011, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 487
Регистрация: 24.8.2006
Где: Москва, Россия

Репутация: 4
Всего: 16



Цитата(Zhenyusya @ 2.9.2011,  10:29)
Я просто надеялась, что хоть кто-нибудь знает... Наивно, да?

В общем-то да. Я такое слово знаю чисто случайно - в 1999-м немного писал под AS/400 на Cobol/400. И было это не в России. Тут с такой машиной ни разу не встречался за 14 лет профессиональной деятельности.


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0798 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.