Frage

Ich habe zuvor Hibernate 3.2 und BoneCP verwendet, habe aber gerade ein Upgrade auf Hibernate 4.3.5 und den Hikari-Verbindungspool durchgeführt, um meine Java-Anwendung mit meiner Oracle-Datenbank zu verbinden.Ich setze v$session.program auf den gewünschten Programmnamen und füge ihn der Ruhezustandskonfiguration hinzu.

Ich habe meine eigene Hibernate-Konfigurationsklasse erstellt, die das erweitert Configuration Von Hibernate bereitgestellte Klasse.

public class MyConfiguration extends Configuration {
    private static final long serialVersionUID = 1L;

    public MyConfiguration() { }

    public MyConfiguration(SettingsFactory settingsFactory) {
        super(settingsFactory);
    }

    @Override
    public SessionFactory buildSessionFactory() throws HibernateException {
        ServiceRegistry registry = new StandardServiceRegistryBuilder()
        .applySettings(getProperties()).build();
        return new MySessionFactory(super.buildSessionFactory(registry));
    }
}

Der MySessionFactory ist ein benutzerdefinierter Wrapper für die SessionFactory, der durch Reflektion mit dem Feld persistenceContext des SessionImpl etwas Wunderbares bewirkt (das sollte jedoch das Problem sein, da es auch vor dem Upgrade funktionierte).

Dann rufe ich an

Document configDocument = loadHibernateConfigruationDocument();
MyConfiguration conf = new MyConfiguration();
conf.configure(configDocument);
conf.buildSessionFactory();

Wenn ich jedoch zur Datenbank gehe (während die Anwendung ausgeführt wird) und eine Abfrage durchführe

SELECT MACHINE, PROGRAM, USERNAME, count(*) as COUNT FROM v$session GROUP BY MACHINE, PROGRAM, USERNAME;

Ich kann das Programm, das ich gerade gestartet habe, nicht finden.Irgendwelche Ideen, was ich falsch mache?

War es hilfreich?

Lösung

Ich habe die Lösung gefunden.Ich habe gerade hinzugefügt hibernate.hikari.dataSource.v$session.programUnd hibernate.hikari.dataSource.v$session.username zu meiner Konfiguration und alles hat gut funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top