You are not logged in. This forum allows only logged in users to post. If you want to post in the forum, please log in.
Download
Magazine
Develop
Account
Download
Magazine
Develop
Login
Forgot Account/Password
Create Account
Language
Help
Language
Help
×
Login
Login Name
Password
×
Forgot Account/Password
Category:
Software
People
PersonalForge
Magazine
Wiki
Search
OSDN
>
Find Software
>
Software Development
>
Debuggers
>
lavansutil
>
Forums
>
Open Discussion
>
ClusterStatementの問題点
lavansutil
Description
Project Summary
Developer Dashboard
Web Page
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
History
Downloads
List of Releases
Stats
Source Code
Code Repository list
CVS
View Repository
Ticket
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
Communication
Forums
List of Forums
Help (1)
Open Discussion (12)
Mailing Lists
list of ML
News
Forums:
Open Discussion
(Thread #6259)
Return to Thread list
RSS
ClusterStatementの問題点 (2004-10-26 22:38 by
yuk
#11664)
1.タイムアウト待ち
postgresでテストしたところexecuteQueryをかける直前に
DBを落としても、SQLExceptionが発生するまで90秒ほど必要。ちょっと長いなー。
2.setAutoCommit(false)されている場合、単一のStatement
だけフェイルオーバーしても、そのトランザクション内の以前のStatementを再実行しないと意味がない。しかし以前のStatementはすでにclose()されているかもしれないし、パラメータだけ変更して再実行されているかもしれない。
トランザクション内の以前のsql実行をすべて保持して障害時に再実行するには、トランザクション管理クラスを作って
executeUpdate()が呼ばれたときの接続先・sql・パラメータを再度実行させる必要がある。
とりあえず今は時間がないのでsetAutoCommit(false)してある場合のexecuteUpdate()は、フェイルオーバーしない方向で。
RE: ClusterStatementの問題点 (2004-10-28 13:39 by
yuk
#11683)
タイムアウト待ちの方はOracleだとDBを落とした瞬間に
切り替えが発生するので無問題。
だけど新たにrs.getString()等の時に障害が起きた場合を
想定していなかったことに気づく。これはちゃんと対応しないと
この機能自体の意味がなくなっちゃいそうなので、やるしかないかな。
Reply to
#11664
2.の方も解決 (2004-11-01 22:49 by
yuk
#11728)
setAutoCommit(false)してある場合のexecuteUpdate()
についても、トランザクション開始時点からのすべての
sql文を再実行してフェイルオーバーできるようにした。
Reply to
#11664