[seam-issues] [JBoss JIRA] (JBSEAM-4528) static pages don't work at all with database down and XA datasource used
Martin Frey (Commented) (JIRA)
jira-events at lists.jboss.org
Tue Dec 20 03:50:10 EST 2011
[ https://issues.jboss.org/browse/JBSEAM-4528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12652216#comment-12652216 ]
Martin Frey commented on JBSEAM-4528:
I ran into the same problem once our database went offline during the day. After some investigation I think the solution lies in the SeamPhaseListener in the handleTransactions...Phase methods. It would be good to define on a page level if a transaction is necessary or not. Like error pages normally do not need one. Since I was not able to just override the functionality in the SeamPhaseListener I went on tweaking the pages.xml a little and at least I got rid of the redirect issue.
So I consider it as a workaround until a proper solution is coming up.
- Create and error.html page (NOT xhtml!)
- Add this into the pages.xml
Probably an other execption class needs to be found to not disturb any other exception handler. I'm playing with this fix now to see if other transaction exceptions would lead to the same redirect or not.
> static pages don't work at all with database down and XA datasource used
> Key: JBSEAM-4528
> URL: https://issues.jboss.org/browse/JBSEAM-4528
> Project: Seam 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.2.0.GA
> Environment: postgres or oracle with postgres or oracle XADatasource. postgres jdbc driver is fine while oracle driver is not
> Reporter: deanhiller
> Priority: Critical
> Attachments: oracleBAD.log, postgres.log
> If this is a hibernate bug, please report hibernate issue and ticket here as other seam users will run into this problem and it looks like a seam framework problem(or at least could be solved in seam but it may be possible to solve in hibernate too and could be solved in each and every driver datasource as well).
> Steps to reproduce
> 1. start up the jboss 5.1.0 with latest seam
> 2. pull your internet connection so the db is gone
> 3. have all your customers go to a static page like /web/error.xhtml
> RESULT: jboss goes to it's knees as users in IE end up in infinite redirects to your server causing more and more load on the server. The drivers talk to the database when they should not be. I have a work around proxy driver for oracle's jdbc driver. I do not however have a fix for oracle's datasource or postgres datasource.
> I imagine someone could write a proxy datasource that would solve this problem for all people, hibernate, seam and all xa drivers. I will attach logs of postgres xa driver and oracle one but basically they are trying to open a connection to database when ANY http request comes in until waiting to see if we actually do any select statements or updates or inserts. For some reason, the postgres driver and oracle driver where fine here...they did not make db requests when an http request came in. The oracle driver however did make a request to the db when commit is called even if no sql was done against the db where postgres driver ignored the commit since no sql was done. I will try to attach files or more comments here. PLEASE if you report a tic in hibernate put it in here for others to find when they hit this issue.
> seam doesn't work when database goes down
> seam infinite redirect on db outage
> database failure causes seam to not work
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues