Enviar búsqueda
Cargar
Professional Open Source Session Per Request Strategy
•
Descargar como PPT, PDF
•
0 recomendaciones
•
236 vistas
Título mejorado por IA
T
thirumuru2012
Seguir
Tecnología
Educación
Denunciar
Compartir
Denunciar
Compartir
1 de 14
Descargar ahora
Recomendados
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
marckhouzam
7494611
7494611
Luis Daniel Abelaira Huertos
11 transitive persistence and filters
11 transitive persistence and filters
thirumuru2012
The new ehcache 2.0 and hibernate spi
The new ehcache 2.0 and hibernate spi
Cyril Lakech
09 transactions new1
09 transactions new1
thirumuru2012
09 transactions new
09 transactions new
thirumuru2012
13 caching latest
13 caching latest
thirumuru2012
04 dataaccess
04 dataaccess
thirumuru2012
Recomendados
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
Reverse, Multi-Process and Non-Stop Debugging come to the CDT
marckhouzam
7494611
7494611
Luis Daniel Abelaira Huertos
11 transitive persistence and filters
11 transitive persistence and filters
thirumuru2012
The new ehcache 2.0 and hibernate spi
The new ehcache 2.0 and hibernate spi
Cyril Lakech
09 transactions new1
09 transactions new1
thirumuru2012
09 transactions new
09 transactions new
thirumuru2012
13 caching latest
13 caching latest
thirumuru2012
04 dataaccess
04 dataaccess
thirumuru2012
01 persistence and domain modeling
01 persistence and domain modeling
thirumuru2012
02 hibernateintroduction
02 hibernateintroduction
thirumuru2012
Spring & hibernate
Spring & hibernate
Santosh Kumar Kar
12 global fetching strategies
12 global fetching strategies
thirumuru2012
14 hql
14 hql
thirumuru2012
Hibernate complete Training
Hibernate complete Training
sourabh aggarwal
Hibernate3 q&a
Hibernate3 q&a
Faruk Molla
1-introduction to ejb
1-introduction to ejb
ashishkirpan
jsf2 Notes
jsf2 Notes
Rajiv Gupta
Module 3: Working with Jazz Source Control
Module 3: Working with Jazz Source Control
IBM Rational software
UNIT 4.pptx
UNIT 4.pptx
OmkarKamble76
06 association of value types
06 association of value types
thirumuru2012
Free EJB Tutorial | VirtualNuggets
Free EJB Tutorial | VirtualNuggets
Virtual Nuggets
Hibernate Interview Questions | Edureka
Hibernate Interview Questions | Edureka
Edureka!
Managing enterprise with PowerShell remoting
Managing enterprise with PowerShell remoting
Concentrated Technology
159747608 a-training-report-on
159747608 a-training-report-on
homeworkping7
Jboss Tutorial Basics
Jboss Tutorial Basics
Anandraj Kulkarni
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
Oracle
15 jpa
15 jpa
thirumuru2012
Sanboxed Solutions SharePoint 2010
Sanboxed Solutions SharePoint 2010
Salman Ghani
15 jpa introduction
15 jpa introduction
thirumuru2012
14 criteria api
14 criteria api
thirumuru2012
Más contenido relacionado
Similar a Professional Open Source Session Per Request Strategy
01 persistence and domain modeling
01 persistence and domain modeling
thirumuru2012
02 hibernateintroduction
02 hibernateintroduction
thirumuru2012
Spring & hibernate
Spring & hibernate
Santosh Kumar Kar
12 global fetching strategies
12 global fetching strategies
thirumuru2012
14 hql
14 hql
thirumuru2012
Hibernate complete Training
Hibernate complete Training
sourabh aggarwal
Hibernate3 q&a
Hibernate3 q&a
Faruk Molla
1-introduction to ejb
1-introduction to ejb
ashishkirpan
jsf2 Notes
jsf2 Notes
Rajiv Gupta
Module 3: Working with Jazz Source Control
Module 3: Working with Jazz Source Control
IBM Rational software
UNIT 4.pptx
UNIT 4.pptx
OmkarKamble76
06 association of value types
06 association of value types
thirumuru2012
Free EJB Tutorial | VirtualNuggets
Free EJB Tutorial | VirtualNuggets
Virtual Nuggets
Hibernate Interview Questions | Edureka
Hibernate Interview Questions | Edureka
Edureka!
Managing enterprise with PowerShell remoting
Managing enterprise with PowerShell remoting
Concentrated Technology
159747608 a-training-report-on
159747608 a-training-report-on
homeworkping7
Jboss Tutorial Basics
Jboss Tutorial Basics
Anandraj Kulkarni
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
Oracle
15 jpa
15 jpa
thirumuru2012
Sanboxed Solutions SharePoint 2010
Sanboxed Solutions SharePoint 2010
Salman Ghani
Similar a Professional Open Source Session Per Request Strategy
(20)
01 persistence and domain modeling
01 persistence and domain modeling
02 hibernateintroduction
02 hibernateintroduction
Spring & hibernate
Spring & hibernate
12 global fetching strategies
12 global fetching strategies
14 hql
14 hql
Hibernate complete Training
Hibernate complete Training
Hibernate3 q&a
Hibernate3 q&a
1-introduction to ejb
1-introduction to ejb
jsf2 Notes
jsf2 Notes
Module 3: Working with Jazz Source Control
Module 3: Working with Jazz Source Control
UNIT 4.pptx
UNIT 4.pptx
06 association of value types
06 association of value types
Free EJB Tutorial | VirtualNuggets
Free EJB Tutorial | VirtualNuggets
Hibernate Interview Questions | Edureka
Hibernate Interview Questions | Edureka
Managing enterprise with PowerShell remoting
Managing enterprise with PowerShell remoting
159747608 a-training-report-on
159747608 a-training-report-on
Jboss Tutorial Basics
Jboss Tutorial Basics
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
15 jpa
15 jpa
Sanboxed Solutions SharePoint 2010
Sanboxed Solutions SharePoint 2010
Más de thirumuru2012
15 jpa introduction
15 jpa introduction
thirumuru2012
14 criteria api
14 criteria api
thirumuru2012
12 hibernate int&cache
12 hibernate int&cache
thirumuru2012
07 association of entities
07 association of entities
thirumuru2012
05 inheritance
05 inheritance
thirumuru2012
15 jpaql
15 jpaql
thirumuru2012
Más de thirumuru2012
(6)
15 jpa introduction
15 jpa introduction
14 criteria api
14 criteria api
12 hibernate int&cache
12 hibernate int&cache
07 association of entities
07 association of entities
05 inheritance
05 inheritance
15 jpaql
15 jpaql
Último
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Igalia
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Último
(20)
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Professional Open Source Session Per Request Strategy
1.
Professional Open Source™
Conversations © JBoss, Inc. 2003, 2004. 07/17/04 1
2.
Session Per Request
Professional Open Source™ The scope of the persistence context is often the same scope as the database transaction. This is also known as session-per- request . See the example in conversation project © JBoss, Inc. 2003, 2004. 2
3.
What is Conversation
? Professional Open Source™ Conversations are units of work that span user think-time. © JBoss, Inc. 2003, 2004. 3
4.
Propagation through thread-local
Professional Open Source™ If sessionFactory.getCurrentSession() is called for the first time in the current Java thread, a new Session is opened and returned—you get a fresh persistence context. You can immediately begin a database transaction on this new Session, with the Hibernate Transaction interface All the data-access code that calls getCurrentSession() on the global shared SessionFactory gets access to the same current Session—if it’s called in the same thread. The unit of work completes when the Transaction is committed (or rolled back). Hibernate also flushes and closes the current Session and its persistence context if you commit or roll back the transaction. U should not close the session explicitly. © JBoss, Inc. 2003, 2004. 4
5.
Binding session to
thread Professional Open Source™ Internally, Hibernate binds the current Session to the currently running Java thread. In the Hibernate community, this is also known as the ThreadLocal Session pattern. You have to enable this binding in your Hibernate configuration by setting as follows : hibernate.current_session_context_class = thread. © JBoss, Inc. 2003, 2004. 5
6.
Propagation with JTA
Professional Open Source™ The current Session is bound automatically to the current JTA system transaction. When the transaction completes, either through commit or rollback, the persistence context is flushed and the internally bound current Session is closed. You have to enable this binding in your Hibernate configuration by setting as follows : hibernate.current_session_context_class = jta © JBoss, Inc. 2003, 2004. 6
7.
Conversations with detached
objects Professional Open Source™ Let us assume a conversation that has two steps: The first step loads an object, and the second step makes changes to the loaded object persistent. © JBoss, Inc. 2003, 2004. 7
8.
How is isolation
guaranteed in this strategy ? Professional Open Source™ Isolation is guaranteed with optimistic locking. So, U need to enable Hibernate’s automatic versioning for all persistent classes. © JBoss, Inc. 2003, 2004. 8
9.
How can u
make the conversation atomic? Professional Open Source™ One solution is to not flush the persistence contexts on commit—that is, to set a FlushMode.MANUAL on a Session that isn’t supposed to persist modifications Another option is to use compensation actions that undo any step that made permanent changes, and to call the appropriate compensation actions when the user aborts the conversation. But this requires a lot of work from the application developer © JBoss, Inc. 2003, 2004. 9
10.
Extending a Session
for a conversation Professional Open Source™ The Hibernate Session has an internal persistence context. You can implement a conversation that doesn’t involve detached objects by extending the persistence context to span the whole conversation. This is known as the session-per-conversation strategy, as shown below : © JBoss, Inc. 2003, 2004. 10
11.
Extending a Session
for a conversation Professional Open Source™ A new Session and persistence context are opened at the beginning of a conversation. The Session is automatically disconnected from the underlying JDBC Connection as soon as you commit the database transaction. You can now hold on to this disconnected Session and its internal persistence context during user think-time. As soon as the user continues in the conversation and executes the next step, you reconnect the Session to a fresh JDBC Connection by beginning a second database transaction. Any object that has been loaded in this conversation is in persistent state: It’s never detached. Hence, all modifications you made to any persistent object are flushed to the database as soon as you call flush() on the Session. © JBoss, Inc. 2003, 2004. 11
12.
Delaying insertion until
flush-time Professional Open Source™ The save() method on the Session requires that the new database identifier of the saved instance must be returned. So, the identifier value has to be generated when the save() method is called. This is no problem with most identifier generator strategies; for example, Hibernate can call a sequence, do the in-memory increment, or ask the hilo generator for a new value. Hibernate doesn’t have to execute an SQL INSERT to return the identifier value on save() and assign it to the now-persistent instance. The exceptions are identifier-generation strategies that are triggered after the INSERT occurs. One of them is identity, the other is select; both require that a row is inserted first. If you map a persistent class with these identifier generators, an immediate INSERT is executed when you call save()! So, we should avoid these identifier generation strategies .If we use, we have to write the compensation actions when we rollback the conversation . © JBoss, Inc. 2003, 2004. 12
13.
How to rollback
a conversation ??? Professional Open Source™ As we have enabled FlushMode.MANUAL , the changes made to the persistent objects will not cause any DML statements until we flush the session . Simply close the session with out flushing it. So, the changes made to the persistent objects in this session will not be propagated to the database. © JBoss, Inc. 2003, 2004. 13
14.
Managing the current
Session Professional Open Source™ You have to enable the following setting : hibernate.current_session_context_class = managed. The Hibernate built-in implementation you just enabled is called managed because it delegates the responsibility for managing the scope, the start and end of the current Session, to you. You manage the scope of the Session with three static methods: public class ManagedSessionContext implements CurrentSessionContext { public static Session bind(Session session) { ... } public static Session unbind(SessionFactory factory) { ... } public static boolean hasBind(SessionFactory factory) { ... } } U must write ur own interceptor or filter for this . See the example…. © JBoss, Inc. 2003, 2004. 14
Descargar ahora