Hibernate会话;连接到哪个服务器?使用PostgreSQL JDBC驱动程序与故障转移和pgpool-II

时间:2016-11-14 06:07:38

标签: java postgresql hibernate jdbc pgpool

PostgreSQL文档显示您可以在JDBC字符串中传递多个主机以用于HA设置(页面底部):https://jdbc.postgresql.org/documentation/head/connect.html

我的设置有3个节点,每个节点都运行PostgreSQL服务器。我使用pgpool-II实现了HA。有一个主节点和两个备用数据库。

当我使用以下hibernate属性时,它很有效:

<property name="hibernate.connection.url">jdbc:postgresql://10.200.0.50:5432,10.200.0.51:5432,10.200.52:5432/replicationtest</property>

我的应用程序连接到群集,如果说10.200.0.50已关闭,它将使用其他地址之一。

但我的问题是,使用后:

SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session s = sf.openSession();

如何检查我的会话与之建立连接的JDBC连接字符串中的哪个主机?

代码:

s.doWork(connection -> System.out.println(connection.getMetaData().getURL())); 

给我一​​个包含所有三个节点的原始JDBC字符串。

0 个答案:

没有答案