Что может вызвать неустойчивые РТЫ 12519 (TNS: никакой соответствующий найденный обработчик) ошибки

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
41
задан Mr. Muskrat 4 January 2012 в 16:28
поделиться

1 ответ

Не знайте, будет ли это общим ответом, но после некоторого рытья, вот то, что мы придумали.

ошибка, очевидно, вызывается тем, что слушатель не принимал соединения, но почему мы получим ту ошибку, когда другие тесты могли соединиться прекрасный (мы не могли также соединить проблему через sqlplus)? Ключ к проблеме не был то, что мы не могли соединиться, но что это было неустойчиво

После некоторого расследования, мы нашли, что были некоторые статические данные, созданные во время установки класса, которая сохранит открытые соединения для жизни тестового класса, создавая новые, когда это пошло. Теперь, даже при том, что все средства были правильно высвобождены, когда этот класс вышел из объема (через наконец {} блок, конечно), были некоторые случаи во время выполнения, когда этот класс проглотит все доступные соединения (хорошо, плохое предупреждение практики - это было кодом модульного теста, который соединился непосредственно вместо того, чтобы использовать пул, таким образом, той же проблемы не могло произойти в производстве).

фиксация не должна была делать тот класс статичным и выполненным в установке класса, но вместо этого использовать его в на установку метода и методы разрушения.

Поэтому, если Вы получаете эту ошибку в своих собственных приложениях, хлопните профилировщика на том плохом парне и посмотрите, могла ли у Вас быть утечка соединения. Надежда, которая помогает.

39
ответ дан cynicalman 27 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: