[hibernate-dev] Health check status API

Sanne Grinovero sanne at hibernate.org
Sun Jun 3 17:56:11 EDT 2018


Thanks for all comments!

Agreed to look at MicroProfile and other IO engines.

Sure we don't want to pull in more dependencies, just allow others to
query Hibernate status over a well-defined API. In case this was to
need some Openshift or MicroProfile specifics I'd code that as a new
module, somewhat like providing a working example, which calls into /
boots Hibernate.

I don't like to rely exclusively on the orchestration layer to
try/reboot in a loop as the only mechanism - we need to help with
that.

With a non-trivial amount of inter-dependent services, you'd have the
risk of livelock. Even if it eventually resolves with some lucky
timings, you might end up rebooting the Hibernate SessionFactory -
including the JVM - and several other services. That could easily take
a long time and waste a ton of computing resources if we're not
careful.

Sanne



On 1 June 2018 at 14:57, Gunnar Morling <gunnar at hibernate.org> wrote:
> +1 for looking into the mP health check API.
>
> In fact, I don't even think that Hibernate would have to implement any sort
> of looping itself. Instead, the orchestration layer would check the health
> check endpoint and automatically restart the service if it's not in a
> healthy state. That way, the ordering of start up isn't really an issue, the
> application would be simply restarted as often as needed until the DB is up.
>
> 2018-06-01 15:44 GMT+02:00 Andrej Golovnin <golovnin at gmx.net>:
>>
>> Hi Sanne,
>>
>> whatever you consider to implement in Hibernate ORM/Search/OMG
>> I think you should use/follow the MicroProfile Health spec [1].
>> As far as I know WildFly Swarm supports already this spec.
>>
>> Best regards,
>> Andrej Golovnin
>>
>> [1] https://github.com/eclipse/microprofile-health/
>>
>> > On 31. May 2018, at 18:40, Sanne Grinovero <sanne at hibernate.org> wrote:
>> >
>> > It was suggested to me that Hibernate ORM could help people developing
>> > microservices on Kubernetes / Openshift by making "health checks"
>> > easier.
>> >
>> > In short, how to expose to some management API that we're being able
>> > to connect to the database and do our usual things.
>> >
>> > This could be done by connection pools as well but I suspect there
>> > could be benefits in exposing this information in a unified way at an
>> > higher level API; also on top of using ad-hoc specific connection
>> > APIs, or Dialect specific instructions, I guess we could monitor
>> > timeout exceptions, etc.. happening on the application sessions.
>> >
>> > Wrote some notes on:
>> > - https://hibernate.atlassian.net/browse/HHH-12655
>> >
>> > Probably best to explore this in ORM first, but then Search and OGM
>> > could expose/implement it too for their respective services?
>> >
>> > Or maybe people would prefer to just run a query?
>> >
>> > Thanks,
>> > Sanne
>> > _______________________________________________
>> > hibernate-dev mailing list
>> > hibernate-dev at lists.jboss.org
>> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
>


More information about the hibernate-dev mailing list