Ik vraag me af hoe jullie omgaan met deadlocks en met name op client/server omgevingen omdat je hier dus veel resources hebt, en vaak ook veel threads.
Sommige omgevingen zoals EJB zorgen voor de concurrency control voor jou, dus je hoeft zelf niet op deadlocks te letten. Sommige omgevingen die kunnen deadlocks in het systeem detecteren, dus dan kan je een client om zijn kop geven en zeggen dat hij een roll-back moet doen. Eventueel kan je ook een timer aan een operatie zetten, en als de tijd overschreden is, dan geef je de client ook op zijn kop. Dit zijn dus allemaal een beetje noodoplossingen, want je sluit niet uit dat clients op hun kop krijgen.
Je hebt verder wel de wereld aan patterns, maar ik vraag me of zo`n systeem dan niet veel te complex gaat worden om te onderhouden. Tenslotte verstaan veel developers onder concurrency control over alhet woordje synchronized voor te plakken.
Mijn vraag is dus hoe jullie omgaan met concurrency control problematiek op complexe thread omgevingen zoals bv client/server omgevingen.
ps:
met clients bedoel ik een thread.
Sommige omgevingen zoals EJB zorgen voor de concurrency control voor jou, dus je hoeft zelf niet op deadlocks te letten. Sommige omgevingen die kunnen deadlocks in het systeem detecteren, dus dan kan je een client om zijn kop geven en zeggen dat hij een roll-back moet doen. Eventueel kan je ook een timer aan een operatie zetten, en als de tijd overschreden is, dan geef je de client ook op zijn kop. Dit zijn dus allemaal een beetje noodoplossingen, want je sluit niet uit dat clients op hun kop krijgen.
Je hebt verder wel de wereld aan patterns, maar ik vraag me of zo`n systeem dan niet veel te complex gaat worden om te onderhouden. Tenslotte verstaan veel developers onder concurrency control over alhet woordje synchronized voor te plakken.
Mijn vraag is dus hoe jullie omgaan met concurrency control problematiek op complexe thread omgevingen zoals bv client/server omgevingen.
ps:
met clients bedoel ik een thread.