Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Java в Oracle DB не перечитывает конфигурационный файл / 4 сообщений из 4, страница 1 из 1
09.06.2021, 15:36
    #40076651
saneka_shrek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java в Oracle DB не перечитывает конфигурационный файл
Добрый день!

в БД Оракл 19 есть java-класс, который ссылается на конфигурационный файл .properties в каталоге ОС.
При внесении изменений в этот конфигурационный файл поведение метода класса меняется неизвестным для меня образом.
Изменения не применяются очень долго или применяются сразу.

Подскажите, какой механизм работы? Как управлять этим?


java-класс был загружен в БД утилитой loadjava в виде скомпилированного jar-файла.
...
Рейтинг: 0 / 0
09.06.2021, 16:22
    #40076671
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java в Oracle DB не перечитывает конфигурационный файл
saneka_shrek

Подскажите, какой механизм работы?

Спросить у автора java-класса.
Или декомпилировать и попытаться разобраться самому по декомпилированной версии, что и как там происходить.

saneka_shrek

Изменения не применяются очень долго или применяются сразу.
...
Как управлять этим?

Семь бед - один reset
...
Рейтинг: 0 / 0
09.06.2021, 16:45
    #40076679
saneka_shrek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java в Oracle DB не перечитывает конфигурационный файл
Leonid Kudryavtsev,

я склонялся к тому что это особенности СУБД. так как JVM встроена в СУБД, и она даже использует область PGA.
Возможно после вызова функции она кешируется и обновление произойдет только по какому то внутреннему триггеру

код класса могу предоставить

код класса
Код: 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.
80.
81.
82.
83.
import org.apache.kafka.clients.CommonClientConfigs;
import org.apache.kafka.clients.producer.Callback;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata;
import org.apache.kafka.common.config.SaslConfigs;

import java.io.*;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;

public class KafkaProducerCustom {
    private static Properties props;
    private static KafkaProducer kafkaProducer;
    private final static String propFileName = "/u01/app/oracle/kafka/kafka.properties";
    private final static StringWriter errors = new StringWriter();


    static {
        try {

            FileInputStream fis = new FileInputStream(propFileName);
            if (fis != null) {
                props = new Properties();
                props.load(fis);
                props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_SSL");
                props.put(SaslConfigs.SASL_MECHANISM, "PLAIN");
				// остальные строки получения значений из файла конфига убрал
                kafkaProducer = new KafkaProducer(props);
                fis.close();
            } else {
                props = null;
                kafkaProducer = null;
            }
        } catch (Exception e) {
            e.printStackTrace(new PrintWriter(errors));
        }
    }

    public static String sendMessage(Object topicName, Object value) {

        final StringWriter errors = new StringWriter();

        Integer partition = props.getProperty("partition") == null ? null : Integer.valueOf(props.getProperty("partition"));

        ProducerRecord<Object, Object> record = partition == null ?
                new ProducerRecord<Object, Object>((String) topicName, value) :
                new ProducerRecord<Object, Object>((String) topicName, partition, value);

        try {
            kafkaProducer.send(record, new Callback() {
                @Override
                public void onCompletion(RecordMetadata recordMetadata, Exception e) {
                    if (enablelogger){
                        LOGGER.info("onCompletion() inside");
                    }
                    if (enablelogger && recordMetadata != null){
                        LOGGER.info("Logging the response");
                        LOGGER.info("Successfully received the details as: " +
                                "   Topic: " + recordMetadata.topic() +
                                "   Partition: " + recordMetadata.partition() +
                                "   Offset: " + recordMetadata.offset() +
                                "   Timestamp: " + new Date(new Timestamp(recordMetadata.timestamp()).getTime()));
                    }
                }
            }).get();

    
        } catch (Exception e) {
            e.printStackTrace(new PrintWriter(errors));
            return errors.toString();
        }
        return "";
    }

    public static void main(String[] args) {
        System.out.println(KafkaProducerCustom.sendMessage("", ""));
    }
}





reset чего вы имеете ввиду? БД перезагрузить?
...
Рейтинг: 0 / 0
09.06.2021, 17:28
    #40076694
stdio
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java в Oracle DB не перечитывает конфигурационный файл
saneka_shrek
Leonid Kudryavtsev,

я склонялся к тому что это особенности СУБД. так как JVM встроена в СУБД, и она даже использует область PGA.
Возможно после вызова функции она кешируется и обновление произойдет только по какому то внутреннему триггеру
Горе от ума.
Кто кешируется? Область PGA?
Какому внутреннему триггеру? Это что такое?

Сделай тестовый пример и обратись в техподдержку.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Java в Oracle DB не перечитывает конфигурационный файл / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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