powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Java Stored Procedure - долгий первый запуск
9 сообщений из 9, страница 1 из 1
Java Stored Procedure - долгий первый запуск
    #40120588
pbda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, есть Oracle 11g, в ём Java 1.6. Написана хранимая процедура на Java, которая на всех объектах внедрения работает быстро, кроме одного. На этом объекте ее первый вызов в каждой новой сессии вызывает задержку до 1 минуты. А потом она летает. Отчего возникает эта задержка и как бы её устранить?
...
Рейтинг: 0 / 0
Java Stored Procedure - долгий первый запуск
    #40120590
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка в 47-й строке.
...
Рейтинг: 0 / 0
Java Stored Procedure - долгий первый запуск
    #40120591
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pbda,

Проверьте, вдруг в нем при запуске используется обращение к сайту, а dns не настроен
...
Рейтинг: 0 / 0
Java Stored Procedure - долгий первый запуск
    #40120595
pbda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Lejnin,

Посмотрел источник, там вообще работа с сетью не идёт, функция просто запускает внешний процесс

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
public static void executeCommand2(
        java.lang.String command,  // command
        java.lang.String arg1,     // arguments
        java.lang.String arg2,
        java.lang.String arg3,
        java.lang.String arg4,
        java.lang.String arg5,
        java.lang.String arg6,
        java.lang.String arg7,
        java.lang.String arg8,
        java.lang.String arg9,
        java.lang.String arg10,
        java.lang.String arg11,
        java.lang.String arg12,
        java.lang.Integer[] exitCode, 
        CLOB[] stdOut, 
        CLOB[] stdErr
     ) throws Throwable {
        ProcessBuilder processBuilder = null;
        final StringBuilder sbOut = new StringBuilder();
        final StringBuilder sbErr = new StringBuilder();
        
        List list = new ArrayList(); 
        if (command != null) list.add(command);
        if (arg1  != null) list.add(arg1);
        if (arg2  != null) list.add(arg2);
        if (arg3  != null) list.add(arg3);
        if (arg4  != null) list.add(arg4);
        if (arg5  != null) list.add(arg5);
        if (arg6  != null) list.add(arg6);
        if (arg7  != null) list.add(arg7);
        if (arg8  != null) list.add(arg8);
        if (arg9  != null) list.add(arg9);
        if (arg10 != null) list.add(arg10);
        if (arg11 != null) list.add(arg11);
        if (arg12 != null) list.add(arg12);
        
        processBuilder = new ProcessBuilder();
        processBuilder.command(list);
        processBuilder.redirectErrorStream(false);
        
        final Process pr = processBuilder.start();

        // Reading stdout
        BufferedReader processOutputReader = null;
        try {
            processOutputReader = new BufferedReader(new InputStreamReader(pr.getInputStream()));
            String readLine;
            while ((readLine = processOutputReader.readLine()) != null) {
                sbOut.append(readLine + "\r\n");
            }
        } finally {
            try {
                processOutputReader.close();
            } catch (Exception ex) {}
        }

        // Reading stderr
        BufferedReader processErrReader = null;
        try {
            processErrReader = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
            String readLine;
            while ((readLine = processErrReader.readLine()) != null) {
                sbErr.append(readLine + "\r\n");
            }
        } finally {
            try {
                processErrReader.close();
            } catch (Exception ex) {}
        }

        int ec = pr.waitFor();

        if (stdOut[0] != null)
            stdOut[0].setString(1, sbOut.toString());
        if (stdErr[0] != null)
            stdErr[0].setString(1, sbErr.toString());
        exitCode[0] = ec;
    }
...
Рейтинг: 0 / 0
Java Stored Procedure - долгий первый запуск
    #40120600
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pbda
Vadim Lejnin,
Посмотрел источник, там вообще работа с сетью не идёт, функция просто запускает внешний процесс

А во внешнем процессе "при запуске используется обращение к сайту, а dns не настроен".
...
Рейтинг: 0 / 0
Java Stored Procedure - долгий первый запуск
    #40120602
pbda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus,

отличная гипотеза, пойду проверять
...
Рейтинг: 0 / 0
Java Stored Procedure - долгий первый запуск
    #40120654
Фотография stdio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А потом еще кто-то про log4j говорит, что в нём уязвимости.
...
Рейтинг: 0 / 0
Java Stored Procedure - долгий первый запуск
    #40120692
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
pbda,

натравите dtrace или systemtap и смотрите что там творится целую минуту... Хотя возможно будет даже достаточно вручную oradebug short_stack многократно повызывать-посмотреть
...
Рейтинг: 0 / 0
Java Stored Procedure - долгий первый запуск
    #40120851
pbda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stdio, в теории да, ужос, но на практике на каждый запускаемый процесс надо сперва раздать гранты, от sys-а. Так шо все под контролем
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Java Stored Procedure - долгий первый запуск
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]