@@ -67,41 +67,65 @@ def print_error(self, arg, comment=''):
67
67
68
68
def check_total (self ):
69
69
conn , cur = self .connect ()
70
+ i = 0
70
71
71
72
while self .run .value :
73
+ i += 1
74
+
72
75
event_id = self .history .register_start ('total' )
73
76
77
+ if not conn .closed :
78
+ try :
79
+ conn = psycopg2 .connect (self .connstr )
80
+ cur = conn .cursor ()
81
+ except :
82
+ self .history .register_finish (event_id , 'CantConnect' )
83
+ next
84
+
85
+ amount = 1
86
+ from_uid = random .randrange (1 , self .accounts + 1 )
87
+ to_uid = random .randrange (1 , self .accounts + 1 )
88
+
74
89
try :
75
90
cur .execute ('select sum(amount) from bank_test' )
76
91
res = cur .fetchone ()
77
92
if res [0 ] != 0 :
78
93
print ("Isolation error, total = %d" % (res [0 ],))
79
94
raise BaseException
95
+ except BaseException :
96
+ raise BaseException
80
97
except psycopg2 .InterfaceError :
81
- conn , cur = self .connect (reconnect = True )
82
- except :
83
- self .print_error (sys .exc_info (),'3' )
84
- self .history .register_finish (event_id , 'rollback' )
85
- else :
98
+ self .history .register_finish (event_id , 'InterfaceError' )
99
+ except :
100
+ self .history .register_finish (event_id , 'OtherError' )
101
+ else :
86
102
self .history .register_finish (event_id , 'commit' )
87
103
88
104
cur .close ()
89
105
conn .close ()
90
106
91
107
def transfer_money (self ):
92
- #conn = psycopg2.connect(self.connstr)
93
- #cur = conn.cursor()
94
108
conn , cur = self .connect ()
95
109
96
110
i = 0
111
+
97
112
while self .run .value :
98
113
i += 1
114
+
115
+ event_id = self .history .register_start ('transfer' )
116
+
117
+ if not conn .closed :
118
+ try :
119
+ conn = psycopg2 .connect (self .connstr )
120
+ cur = conn .cursor ()
121
+ except :
122
+ self .history .register_finish (event_id , 'CantConnect' )
123
+ next
124
+
99
125
amount = 1
100
126
from_uid = random .randrange (1 , self .accounts + 1 )
101
127
to_uid = random .randrange (1 , self .accounts + 1 )
102
128
103
- event_id = self .history .register_start ('transfer' )
104
-
105
129
try :
106
130
cur .execute ('''update bank_test
107
131
set amount = amount - %s
@@ -111,14 +135,13 @@ def transfer_money(self):
111
135
set amount = amount + %s
112
136
where uid = %s''' ,
113
137
(amount , to_uid ))
114
-
115
138
conn .commit ()
139
+
116
140
except psycopg2 .InterfaceError :
117
- conn , cur = self .connect (reconnect = True )
118
- except :
119
- self .print_error (sys .exc_info (),'1' )
120
- self .history .register_finish (event_id , 'rollback' )
121
- else :
141
+ self .history .register_finish (event_id , 'InterfaceError' )
142
+ except :
143
+ self .history .register_finish (event_id , 'OtherError' )
144
+ else :
122
145
self .history .register_finish (event_id , 'commit' )
123
146
124
147
cur .close ()
0 commit comments