我有两个完全相同配置运行的keycloak节点。我尝试使用JDBC_PING
进行服务发现,但是节点未将任何内容写入数据库。 initialize_sql
正在工作。如果该表不存在,但没有触发插入,则节点将创建该表。日志中也没有错误消息。
Keycloak版本:4.5.0.FINAL
我运行以下命令来启动节点:
bin/standalone.sh --server-config=standalone-ha.xml -b 0.0.0.0
<jdbc-protocol type="JDBC_PING" data-source="KeycloakDS">
<property name="initialize_sql">
CREATE TABLE IF NOT EXISTS JGROUPSPING (
own_addr varchar(200) NOT NULL,
cluster_name varchar(200) NOT NULL,
ping_data BYTEA,
constraint PK_JGROUPSPING PRIMARY KEY (own_addr, cluster_name)
)
</property>
<property name="insert_single_sql">
INSERT INTO JGROUPSPING (own_addr, cluster_name, ping_data) values (?, ?, ?)
</property>
<property name="delete_single_sql">
DELETE FROM JGROUPSPING WHERE own_addr=? AND cluster_name=?
</property>
<property name="select_all_pingdata_sql">
SELECT ping_data FROM JGROUPSPING WHERE cluster_name=?
</property>
</jdbc-protocol>
我在tcp-stack
内添加了此协议,并将tcp堆栈设置为默认值:
<channels default="ee">
<channel name="ee" stack="tcp" cluster="ejb"/>
</channels>
有什么想法吗?