Hibernate, Spring, Sessions and Threads

asked 2006-08-22 13:48:08 +0800

admin gravatar image admin
18691 1 10 130
ZK Team

Orignial message at:

By: hlellelid


I am very new to ZK, and am working on integrating an existing Spring+Hibernate framework with the ZK UI. I have read the Small Talk and HOWTO related to integrating Hibernate + ZK (+Spring), but haven't yet been able to answer this question for myself.

The problem I am encountering is that in our application the Hibernate Session that is being bound to the thread by an OpenSessionInViewFilter object is not available to all of the ZK processes that serve that request. (At least, this is my analysis so far.) I'm assuming that this is because ZK handles events in separate threads, so the onCreate() event for a ZK component might be part of the same request, but won't have access to that Filter-bound Hibernate Session.

What I'm wondering is where is the correct/best place to store these "per-request"
objects like the Hibernate Session. All threads that handle a single request need access to that object, but clearly it cannot be shared with threads that are handling other requests. Is this something that the Execution interface was designed to address?

Thanks in advance -

delete flag offensive retag edit

2 Replies

Sort by ยป oldest newest

answered 2006-08-24 02:12:04 +0800

admin gravatar image admin
18691 1 10 130
ZK Team

Orignial message at:

By: henrichen

Yes, event is handled in seperate thread.
As for per-request object, you can store and retrieve it with
Execution.setAttribute() and Execution.getAttribute().


You can get current Execution with static methods Executions.getCurrent()

link publish delete flag offensive edit

answered 2006-09-22 14:05:47 +0800

admin gravatar image admin
18691 1 10 130
ZK Team

Orignial message at:

By: henrichen

Since ZK version 2006/9/21 Freshly. Please add following listener in your application's WEB-INF/zk.xml and you can use Spring's OpenSessionInViewFilter(or
Interceptor) as usual.

It bridge the ThreadLocal resources to event thread automatically so now the ThreadLocal pattern should works.

<description>Spring TransactionSynchronizationManager handler</description> <listener-class>org.zkoss.zkplus.spring.SpringTransactionSynchronizationListene

link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools




Asked: 2006-08-22 13:48:08 +0800

Seen: 351 times

Last updated: Sep 20

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More