0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 export TESTNAME="test087_tmsrv"
0037
0038 PWD=`pwd`
0039 if [ `echo $PWD | grep $TESTNAME ` ]; then
0040
0041 echo > /dev/null
0042 else
0043
0044 pushd .
0045 echo "Doing cd"
0046 cd $TESTNAME
0047 fi;
0048
0049
0050
0051
0052 source ./funcs.sh
0053
0054
0055
0056
0057 buildprograms "";
0058
0059
0060
0061
0062 echo ""
0063 echo "************************************************************************"
0064 echo "Commit OK case ..."
0065 echo "************************************************************************"
0066
0067 cat << EOF > lib1.rets
0068 xa_open_entry:0:1:0
0069 xa_close_entry:0:1:0
0070 xa_start_entry:0:1:0
0071 xa_end_entry:0:1:0
0072 xa_rollback_entry:0:1:0
0073 xa_prepare_entry:0:1:0
0074 xa_commit_entry:0:1:0
0075 xa_recover_entry:0:1:0
0076 xa_forget_entry:0:1:0
0077 xa_complete_entry:0:1:0
0078 xa_open_entry:0:1:0
0079 xa_close_entry:0:1:0
0080 xa_start_entry:0:1:0
0081 EOF
0082
0083 cat << EOF > lib2.rets
0084 xa_open_entry:0:1:0
0085 xa_close_entry:0:1:0
0086 xa_start_entry:0:1:0
0087 xa_end_entry:0:1:0
0088 xa_rollback_entry:0:1:0
0089 xa_prepare_entry:0:1:0
0090 xa_commit_entry:0:1:0
0091 xa_recover_entry:0:1:0
0092 xa_forget_entry:0:1:0
0093 xa_complete_entry:0:1:0
0094 xa_open_entry:0:1:0
0095 xa_close_entry:0:1:0
0096 xa_start_entry:0:1:0
0097 EOF
0098
0099
0100 xadmin start -y || go_out 1
0101
0102 NDRX_CCTAG="RM1" ./atmiclt87
0103 RET=$?
0104
0105 if [ "X$RET" != "X0" ]; then
0106 echo "Build atmiclt87 failed"
0107 go_out 1
0108 fi
0109
0110
0111 verify_ulog "RM1" "xa_prepare" "1";
0112 verify_ulog "RM1" "xa_commit" "1";
0113 verify_ulog "RM1" "xa_rollback" "0";
0114 verify_ulog "RM1" "xa_forget" "0";
0115 verify_logfiles "log1" "0"
0116
0117 verify_ulog "RM1" "xa_end" "3";
0118
0119 verify_ulog "RM2" "xa_prepare" "1";
0120 verify_ulog "RM2" "xa_commit" "1";
0121 verify_ulog "RM2" "xa_rollback" "0";
0122 verify_ulog "RM2" "xa_forget" "0";
0123 verify_logfiles "log2" "0"
0124
0125
0126
0127
0128
0129 echo ""
0130 echo "************************************************************************"
0131 echo "Rollback at join failure"
0132 echo "************************************************************************"
0133
0134
0135
0136
0137
0138 cat << EOF > lib1.rets
0139 xa_open_entry:0:1:0
0140 xa_close_entry:0:1:0
0141 xa_start_entry:0:1:-4
0142 xa_end_entry:0:1:0
0143 xa_rollback_entry:0:1:0
0144 xa_prepare_entry:0:1:0
0145 xa_commit_entry:0:1:0
0146 xa_recover_entry:0:1:0
0147 xa_forget_entry:0:1:0
0148 xa_complete_entry:0:1:0
0149 xa_open_entry:0:1:0
0150 xa_close_entry:0:1:0
0151 xa_start_entry:0:1:0
0152 EOF
0153
0154 cat << EOF > lib2.rets
0155 xa_open_entry:0:1:0
0156 xa_close_entry:0:1:0
0157 xa_start_entry:0:1:0
0158 xa_end_entry:0:1:0
0159 xa_rollback_entry:0:1:0
0160 xa_prepare_entry:0:1:0
0161 xa_commit_entry:0:1:0
0162 xa_recover_entry:0:1:0
0163 xa_forget_entry:0:1:0
0164 xa_complete_entry:0:1:0
0165 xa_open_entry:0:1:0
0166 xa_close_entry:0:1:0
0167 xa_start_entry:0:1:0
0168 EOF
0169
0170 xadmin sreload -y
0171 clean_ulog;
0172
0173
0174
0175
0176 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
0177 RET=$?
0178
0179 echo "[$ERR]"
0180
0181 if [ "X$RET" == "X0" ]; then
0182 echo "atmiclt87 must fail"
0183 go_out 1
0184 fi
0185
0186 if [[ $ERR != *"TPESYSTEM"* ]]; then
0187 echo "Expected TPESYSTEM"
0188 go_out 1
0189 fi
0190
0191
0192 verify_ulog "RM1" "xa_prepare" "0";
0193 verify_ulog "RM1" "xa_commit" "0";
0194 verify_ulog "RM1" "xa_rollback" "1";
0195 verify_ulog "RM1" "xa_forget" "0";
0196 verify_logfiles "log1" "0"
0197
0198 verify_ulog "RM1" "xa_end" "2";
0199
0200 verify_ulog "RM2" "xa_prepare" "0";
0201 verify_ulog "RM2" "xa_commit" "0";
0202 verify_ulog "RM2" "xa_rollback" "1";
0203 verify_ulog "RM2" "xa_forget" "0";
0204 verify_logfiles "log2" "0"
0205
0206 echo ""
0207 echo "************************************************************************"
0208 echo "Commit OK read only ..."
0209 echo "************************************************************************"
0210
0211 cat << EOF > lib1.rets
0212 xa_open_entry:0:1:0
0213 xa_close_entry:0:1:0
0214 xa_start_entry:0:1:0
0215 xa_end_entry:0:1:0
0216 xa_rollback_entry:0:1:0
0217 xa_prepare_entry:0:1:0
0218 xa_commit_entry:0:1:0
0219 xa_recover_entry:0:1:0
0220 xa_forget_entry:0:1:0
0221 xa_complete_entry:0:1:0
0222 xa_open_entry:0:1:0
0223 xa_close_entry:0:1:0
0224 xa_start_entry:0:1:0
0225 EOF
0226
0227 cat << EOF > lib2.rets
0228 xa_open_entry:0:1:0
0229 xa_close_entry:0:1:0
0230 xa_start_entry:0:1:0
0231 xa_end_entry:0:1:0
0232 xa_rollback_entry:0:1:0
0233 xa_prepare_entry:3:1:0
0234 xa_commit_entry:0:1:0
0235 xa_recover_entry:0:1:0
0236 xa_forget_entry:0:1:0
0237 xa_complete_entry:0:1:0
0238 xa_open_entry:0:1:0
0239 xa_close_entry:0:1:0
0240 xa_start_entry:0:1:0
0241 EOF
0242
0243 xadmin sreload -y
0244 clean_ulog;
0245
0246 NDRX_CCTAG="RM1" ./atmiclt87
0247 RET=$?
0248
0249 if [ "X$RET" != "X0" ]; then
0250 echo "Build atmiclt87 failed"
0251 go_out 1
0252 fi
0253
0254
0255 verify_ulog "RM1" "xa_prepare" "1";
0256 verify_ulog "RM1" "xa_commit" "1";
0257 verify_ulog "RM1" "xa_rollback" "0";
0258 verify_ulog "RM1" "xa_forget" "0";
0259 verify_logfiles "log1" "0"
0260
0261 verify_ulog "RM2" "xa_prepare" "1";
0262 verify_ulog "RM2" "xa_commit" "0";
0263 verify_ulog "RM2" "xa_rollback" "0";
0264 verify_ulog "RM2" "xa_forget" "0";
0265 verify_logfiles "log2" "0"
0266
0267
0268
0269 echo "Checking XA_RDONLY log levels..."
0270 have_output 'grep "NDRX:5:" tmsrv_lib2.log | grep "Failed to prepare local transaction"'
0271 have_output 'grep "NDRX:5:" tmsrv_lib2.log | grep "xa_prepare_entry - fail: 3" | grep "xa.c"'
0272 have_output 'grep "NDRX:5:" tmsrv_lib2.log | grep "ndrx_TPset_error_fmt_rsn: 16 (TPERMERR) reason: 3"'
0273
0274
0275 echo ""
0276 echo "************************************************************************"
0277 echo "Commit OK read only ... (first RO)"
0278 echo "************************************************************************"
0279
0280 cat << EOF > lib1.rets
0281 xa_open_entry:0:1:0
0282 xa_close_entry:0:1:0
0283 xa_start_entry:0:1:0
0284 xa_end_entry:0:1:0
0285 xa_rollback_entry:0:1:0
0286 xa_prepare_entry:3:1:0
0287 xa_commit_entry:0:1:0
0288 xa_recover_entry:0:1:0
0289 xa_forget_entry:0:1:0
0290 xa_complete_entry:0:1:0
0291 xa_open_entry:0:1:0
0292 xa_close_entry:0:1:0
0293 xa_start_entry:0:1:0
0294 EOF
0295
0296 cat << EOF > lib2.rets
0297 xa_open_entry:0:1:0
0298 xa_close_entry:0:1:0
0299 xa_start_entry:0:1:0
0300 xa_end_entry:0:1:0
0301 xa_rollback_entry:0:1:0
0302 xa_prepare_entry:0:1:0
0303 xa_commit_entry:0:1:0
0304 xa_recover_entry:0:1:0
0305 xa_forget_entry:0:1:0
0306 xa_complete_entry:0:1:0
0307 xa_open_entry:0:1:0
0308 xa_close_entry:0:1:0
0309 xa_start_entry:0:1:0
0310 EOF
0311
0312 xadmin sreload -y
0313 clean_ulog;
0314
0315 NDRX_CCTAG="RM1" ./atmiclt87
0316 RET=$?
0317
0318 if [ "X$RET" != "X0" ]; then
0319 echo "Build atmiclt87 failed"
0320 go_out 1
0321 fi
0322
0323
0324
0325 verify_ulog "RM1" "xa_prepare" "1";
0326 verify_ulog "RM1" "xa_commit" "0";
0327 verify_ulog "RM1" "xa_rollback" "0";
0328 verify_ulog "RM1" "xa_forget" "0";
0329 verify_logfiles "log1" "0"
0330
0331
0332 verify_ulog "RM2" "xa_prepare" "1";
0333 verify_ulog "RM2" "xa_commit" "1";
0334 verify_ulog "RM2" "xa_rollback" "0";
0335 verify_ulog "RM2" "xa_forget" "0";
0336 verify_logfiles "log2" "0"
0337
0338 echo ""
0339 echo "************************************************************************"
0340 echo "Commit OK read only ... (both)"
0341 echo "************************************************************************"
0342
0343 cat << EOF > lib1.rets
0344 xa_open_entry:0:1:0
0345 xa_close_entry:0:1:0
0346 xa_start_entry:0:1:0
0347 xa_end_entry:0:1:0
0348 xa_rollback_entry:0:1:0
0349 xa_prepare_entry:3:1:0
0350 xa_commit_entry:0:1:0
0351 xa_recover_entry:0:1:0
0352 xa_forget_entry:0:1:0
0353 xa_complete_entry:0:1:0
0354 xa_open_entry:0:1:0
0355 xa_close_entry:0:1:0
0356 xa_start_entry:0:1:0
0357 EOF
0358
0359 cat << EOF > lib2.rets
0360 xa_open_entry:0:1:0
0361 xa_close_entry:0:1:0
0362 xa_start_entry:0:1:0
0363 xa_end_entry:0:1:0
0364 xa_rollback_entry:0:1:0
0365 xa_prepare_entry:3:1:0
0366 xa_commit_entry:0:1:0
0367 xa_recover_entry:0:1:0
0368 xa_forget_entry:0:1:0
0369 xa_complete_entry:0:1:0
0370 xa_open_entry:0:1:0
0371 xa_close_entry:0:1:0
0372 xa_start_entry:0:1:0
0373 EOF
0374
0375 xadmin sreload -y
0376 clean_ulog;
0377
0378 NDRX_CCTAG="RM1" ./atmiclt87
0379 RET=$?
0380
0381 if [ "X$RET" != "X0" ]; then
0382 echo "Build atmiclt87 failed"
0383 go_out 1
0384 fi
0385
0386
0387 verify_ulog "RM1" "xa_prepare" "1";
0388 verify_ulog "RM1" "xa_commit" "0";
0389 verify_ulog "RM1" "xa_rollback" "0";
0390 verify_ulog "RM1" "xa_forget" "0";
0391 verify_logfiles "log1" "0"
0392
0393 verify_ulog "RM2" "xa_prepare" "1";
0394 verify_ulog "RM2" "xa_commit" "0";
0395 verify_ulog "RM2" "xa_rollback" "0";
0396 verify_ulog "RM2" "xa_forget" "0";
0397 verify_logfiles "log2" "0"
0398
0399
0400 echo ""
0401 echo "************************************************************************"
0402 echo "Commit fail read only + aborted"
0403 echo "************************************************************************"
0404
0405 cat << EOF > lib1.rets
0406 xa_open_entry:0:1:0
0407 xa_close_entry:0:1:0
0408 xa_start_entry:0:1:0
0409 xa_end_entry:0:1:0
0410 xa_rollback_entry:0:1:0
0411 xa_prepare_entry:3:1:0
0412 xa_commit_entry:0:1:0
0413 xa_recover_entry:0:1:0
0414 xa_forget_entry:0:1:0
0415 xa_complete_entry:0:1:0
0416 xa_open_entry:0:1:0
0417 xa_close_entry:0:1:0
0418 xa_start_entry:0:1:0
0419 EOF
0420
0421 cat << EOF > lib2.rets
0422 xa_open_entry:0:1:0
0423 xa_close_entry:0:1:0
0424 xa_start_entry:0:1:0
0425 xa_end_entry:0:1:0
0426 xa_rollback_entry:0:1:0
0427 xa_prepare_entry:-4:1:0
0428 xa_commit_entry:0:1:0
0429 xa_recover_entry:0:1:0
0430 xa_forget_entry:0:1:0
0431 xa_complete_entry:0:1:0
0432 xa_open_entry:0:1:0
0433 xa_close_entry:0:1:0
0434 xa_start_entry:0:1:0
0435 EOF
0436
0437 xadmin sreload -y
0438 clean_ulog;
0439
0440 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
0441 RET=$?
0442
0443 echo "[$ERR]"
0444
0445 if [ "X$RET" == "X0" ]; then
0446 echo "atmiclt87 must fail"
0447 go_out 1
0448 fi
0449
0450 if [[ $ERR != *"TPEABORT"* ]]; then
0451 echo "Expected TPEABORT"
0452 go_out 1
0453 fi
0454
0455
0456 verify_ulog "RM1" "xa_prepare" "1";
0457 verify_ulog "RM1" "xa_commit" "0";
0458 verify_ulog "RM1" "xa_rollback" "0";
0459 verify_ulog "RM1" "xa_forget" "0";
0460 verify_logfiles "log1" "0"
0461
0462 verify_ulog "RM2" "xa_prepare" "1";
0463 verify_ulog "RM2" "xa_commit" "0";
0464 verify_ulog "RM2" "xa_rollback" "0";
0465 verify_ulog "RM2" "xa_forget" "0";
0466 verify_logfiles "log2" "0"
0467
0468 echo ""
0469 echo "************************************************************************"
0470 echo "Commit fail aborted + aborting"
0471 echo "************************************************************************"
0472
0473
0474 cat << EOF > lib1.rets
0475 xa_open_entry:0:1:0
0476 xa_close_entry:0:1:0
0477 xa_start_entry:0:1:0
0478 xa_end_entry:0:1:0
0479 xa_rollback_entry:0:1:0
0480 xa_prepare_entry:-4:1:0
0481 xa_commit_entry:0:1:0
0482 xa_recover_entry:0:1:0
0483 xa_forget_entry:0:1:0
0484 xa_complete_entry:0:1:0
0485 xa_open_entry:0:1:0
0486 xa_close_entry:0:1:0
0487 xa_start_entry:0:1:0
0488 EOF
0489
0490
0491 cat << EOF > lib2.rets
0492 xa_open_entry:0:1:0
0493 xa_close_entry:0:1:0
0494 xa_start_entry:0:1:0
0495 xa_end_entry:0:1:0
0496 xa_rollback_entry:0:1:0
0497 xa_prepare_entry:-6:1:0
0498 xa_commit_entry:0:1:0
0499 xa_recover_entry:0:1:0
0500 xa_forget_entry:0:1:0
0501 xa_complete_entry:0:1:0
0502 xa_open_entry:0:1:0
0503 xa_close_entry:0:1:0
0504 xa_start_entry:0:1:0
0505 EOF
0506
0507 xadmin sreload -y
0508 clean_ulog;
0509
0510 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
0511 RET=$?
0512
0513 echo "[$ERR]"
0514
0515 if [ "X$RET" == "X0" ]; then
0516 echo "atmiclt87 must fail"
0517 go_out 1
0518 fi
0519
0520 if [[ $ERR != *"TPEABORT"* ]]; then
0521 echo "Expected TPEABORT"
0522 go_out 1
0523 fi
0524
0525
0526 verify_ulog "RM1" "xa_prepare" "1";
0527 verify_ulog "RM1" "xa_commit" "0";
0528 verify_ulog "RM1" "xa_rollback" "0";
0529 verify_ulog "RM1" "xa_forget" "0";
0530 verify_logfiles "log1" "0"
0531
0532
0533
0534 verify_ulog "RM2" "xa_prepare" "0";
0535 verify_ulog "RM2" "xa_commit" "0";
0536 verify_ulog "RM2" "xa_rollback" "1";
0537 verify_ulog "RM2" "xa_forget" "0";
0538 verify_logfiles "log2" "0"
0539
0540
0541
0542 echo "Checking non XA_RDONLY levels at prepare error..."
0543 have_output 'grep "NDRX:2:" tmsrv_lib1.log | grep "Failed to prepare local transaction"'
0544 have_output 'grep "NDRX:2:" tmsrv_lib1.log | grep "xa_prepare_entry - fail: -4" | grep "xa.c"'
0545 have_output 'grep "NDRX:3:" tmsrv_lib1.log | grep "ndrx_TPset_error_fmt_rsn: 16 (TPERMERR) reason: -4"'
0546
0547
0548 echo ""
0549 echo "************************************************************************"
0550 echo "Commit fail aborting + aborted"
0551 echo "************************************************************************"
0552
0553
0554 cat << EOF > lib1.rets
0555 xa_open_entry:0:1:0
0556 xa_close_entry:0:1:0
0557 xa_start_entry:0:1:0
0558 xa_end_entry:0:1:0
0559 xa_rollback_entry:0:1:0
0560 xa_prepare_entry:-6:1:0
0561 xa_commit_entry:0:1:0
0562 xa_recover_entry:0:1:0
0563 xa_forget_entry:0:1:0
0564 xa_complete_entry:0:1:0
0565 xa_open_entry:0:1:0
0566 xa_close_entry:0:1:0
0567 xa_start_entry:0:1:0
0568 EOF
0569
0570
0571 cat << EOF > lib2.rets
0572 xa_open_entry:0:1:0
0573 xa_close_entry:0:1:0
0574 xa_start_entry:0:1:0
0575 xa_end_entry:0:1:0
0576 xa_rollback_entry:0:1:0
0577 xa_prepare_entry:-4:1:0
0578 xa_commit_entry:0:1:0
0579 xa_recover_entry:0:1:0
0580 xa_forget_entry:0:1:0
0581 xa_complete_entry:0:1:0
0582 xa_open_entry:0:1:0
0583 xa_close_entry:0:1:0
0584 xa_start_entry:0:1:0
0585 EOF
0586
0587 xadmin sreload -y
0588 clean_ulog;
0589
0590 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
0591 RET=$?
0592
0593 echo "[$ERR]"
0594
0595 if [ "X$RET" == "X0" ]; then
0596 echo "atmiclt87 must fail"
0597 go_out 1
0598 fi
0599
0600 if [[ $ERR != *"TPEABORT"* ]]; then
0601 echo "Expected TPEABORT"
0602 go_out 1
0603 fi
0604
0605
0606 verify_ulog "RM1" "xa_prepare" "1";
0607 verify_ulog "RM1" "xa_commit" "0";
0608 verify_ulog "RM1" "xa_rollback" "1";
0609 verify_ulog "RM1" "xa_forget" "0";
0610 verify_logfiles "log1" "0"
0611
0612 verify_ulog "RM2" "xa_prepare" "0";
0613 verify_ulog "RM2" "xa_commit" "0";
0614 verify_ulog "RM2" "xa_rollback" "1";
0615 verify_ulog "RM2" "xa_forget" "0";
0616 verify_logfiles "log2" "0"
0617
0618 echo ""
0619 echo "************************************************************************"
0620 echo "Commit PREP XAER_NOTA ..."
0621 echo "************************************************************************"
0622
0623 cat << EOF > lib1.rets
0624 xa_open_entry:0:1:0
0625 xa_close_entry:0:1:0
0626 xa_start_entry:0:1:0
0627 xa_end_entry:0:1:0
0628 xa_rollback_entry:0:1:0
0629 xa_prepare_entry:0:1:0
0630 xa_commit_entry:0:1:0
0631 xa_recover_entry:0:1:0
0632 xa_forget_entry:0:1:0
0633 xa_complete_entry:0:1:0
0634 xa_open_entry:0:1:0
0635 xa_close_entry:0:1:0
0636 xa_start_entry:0:1:0
0637 EOF
0638
0639 cat << EOF > lib2.rets
0640 xa_open_entry:0:1:0
0641 xa_close_entry:0:1:0
0642 xa_start_entry:0:1:0
0643 xa_end_entry:0:1:0
0644 xa_rollback_entry:0:1:0
0645 xa_prepare_entry:-4:1:0
0646 xa_commit_entry:0:1:0
0647 xa_recover_entry:0:1:0
0648 xa_forget_entry:0:1:0
0649 xa_complete_entry:0:1:0
0650 xa_open_entry:0:1:0
0651 xa_close_entry:0:1:0
0652 xa_start_entry:0:1:0
0653 EOF
0654
0655 xadmin sreload -y
0656 clean_ulog;
0657
0658 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
0659 RET=$?
0660
0661 echo "[$ERR]"
0662
0663 if [ "X$RET" == "X0" ]; then
0664 echo "atmiclt87 must fail"
0665 go_out 1
0666 fi
0667
0668 if [[ $ERR != *"TPEABORT"* ]]; then
0669 echo "Expected TPEABORT"
0670 go_out 1
0671 fi
0672
0673
0674 verify_ulog "RM1" "xa_prepare" "1";
0675 verify_ulog "RM1" "xa_commit" "0";
0676 verify_ulog "RM1" "xa_rollback" "1";
0677 verify_ulog "RM1" "xa_forget" "0";
0678 verify_logfiles "log1" "0"
0679
0680 verify_ulog "RM2" "xa_prepare" "1";
0681 verify_ulog "RM2" "xa_commit" "0";
0682 verify_ulog "RM2" "xa_rollback" "0";
0683 verify_ulog "RM2" "xa_forget" "0";
0684 verify_logfiles "log2" "0"
0685
0686 echo ""
0687 echo "************************************************************************"
0688 echo "Commit PREP XA_RBBASE ..."
0689 echo "************************************************************************"
0690
0691 cat << EOF > lib1.rets
0692 xa_open_entry:0:1:0
0693 xa_close_entry:0:1:0
0694 xa_start_entry:0:1:0
0695 xa_end_entry:0:1:0
0696 xa_rollback_entry:0:1:0
0697 xa_prepare_entry:0:1:0
0698 xa_commit_entry:0:1:0
0699 xa_recover_entry:0:1:0
0700 xa_forget_entry:0:1:0
0701 xa_complete_entry:0:1:0
0702 xa_open_entry:0:1:0
0703 xa_close_entry:0:1:0
0704 xa_start_entry:0:1:0
0705 EOF
0706
0707 cat << EOF > lib2.rets
0708 xa_open_entry:0:1:0
0709 xa_close_entry:0:1:0
0710 xa_start_entry:0:1:0
0711 xa_end_entry:0:1:0
0712 xa_rollback_entry:0:1:0
0713 xa_prepare_entry:100:1:0
0714 xa_commit_entry:0:1:0
0715 xa_recover_entry:0:1:0
0716 xa_forget_entry:0:1:0
0717 xa_complete_entry:0:1:0
0718 xa_open_entry:0:1:0
0719 xa_close_entry:0:1:0
0720 xa_start_entry:0:1:0
0721 EOF
0722
0723 xadmin sreload -y
0724 clean_ulog;
0725
0726 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
0727 RET=$?
0728
0729 echo "[$ERR]"
0730
0731 if [ "X$RET" == "X0" ]; then
0732 echo "atmiclt87 must fail"
0733 go_out 1
0734 fi
0735
0736 if [[ $ERR != *"TPEABORT"* ]]; then
0737 echo "Expected TPEABORT"
0738 go_out 1
0739 fi
0740
0741
0742 verify_ulog "RM1" "xa_prepare" "1";
0743 verify_ulog "RM1" "xa_commit" "0";
0744 verify_ulog "RM1" "xa_rollback" "1";
0745 verify_ulog "RM1" "xa_forget" "0";
0746 verify_logfiles "log1" "0"
0747
0748 verify_ulog "RM2" "xa_prepare" "1";
0749 verify_ulog "RM2" "xa_commit" "0";
0750 verify_ulog "RM2" "xa_rollback" "0";
0751 verify_ulog "RM2" "xa_forget" "0";
0752 verify_logfiles "log2" "0"
0753
0754 echo ""
0755 echo "************************************************************************"
0756 echo "Commit PREP XAER_PROTO (any error) ..."
0757 echo "************************************************************************"
0758
0759 cat << EOF > lib1.rets
0760 xa_open_entry:0:1:0
0761 xa_close_entry:0:1:0
0762 xa_start_entry:0:1:0
0763 xa_end_entry:0:1:0
0764 xa_rollback_entry:0:1:0
0765 xa_prepare_entry:0:1:0
0766 xa_commit_entry:0:1:0
0767 xa_recover_entry:0:1:0
0768 xa_forget_entry:0:1:0
0769 xa_complete_entry:0:1:0
0770 xa_open_entry:0:1:0
0771 xa_close_entry:0:1:0
0772 xa_start_entry:0:1:0
0773 EOF
0774
0775 cat << EOF > lib2.rets
0776 xa_open_entry:0:1:0
0777 xa_close_entry:0:1:0
0778 xa_start_entry:0:1:0
0779 xa_end_entry:0:1:0
0780 xa_rollback_entry:0:1:0
0781 xa_prepare_entry:-6:1:0
0782 xa_commit_entry:0:1:0
0783 xa_recover_entry:0:1:0
0784 xa_forget_entry:0:1:0
0785 xa_complete_entry:0:1:0
0786 xa_open_entry:0:1:0
0787 xa_close_entry:0:1:0
0788 xa_start_entry:0:1:0
0789 EOF
0790
0791 xadmin sreload -y
0792 clean_ulog;
0793
0794 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
0795 RET=$?
0796
0797 echo "[$ERR]"
0798
0799 if [ "X$RET" == "X0" ]; then
0800 echo "atmiclt87 must fail"
0801 go_out 1
0802 fi
0803
0804 if [[ $ERR != *"TPEABORT"* ]]; then
0805 echo "Expected TPEABORT"
0806 go_out 1
0807 fi
0808
0809
0810 verify_ulog "RM1" "xa_prepare" "1";
0811 verify_ulog "RM1" "xa_commit" "0";
0812 verify_ulog "RM1" "xa_rollback" "1";
0813 verify_ulog "RM1" "xa_forget" "0";
0814 verify_logfiles "log1" "0"
0815
0816 verify_ulog "RM2" "xa_prepare" "1";
0817 verify_ulog "RM2" "xa_commit" "0";
0818 verify_ulog "RM2" "xa_rollback" "1";
0819 verify_ulog "RM2" "xa_forget" "0";
0820 verify_logfiles "log2" "0"
0821
0822 echo ""
0823 echo "************************************************************************"
0824 echo "Commit PREP XAER_RMERR, ABORT XAER_RMERR (TPEABORT) ..."
0825 echo "************************************************************************"
0826
0827 cat << EOF > lib1.rets
0828 xa_open_entry:0:1:0
0829 xa_close_entry:0:1:0
0830 xa_start_entry:0:1:0
0831 xa_end_entry:0:1:0
0832 xa_rollback_entry:0:1:0
0833 xa_prepare_entry:0:1:0
0834 xa_commit_entry:0:1:0
0835 xa_recover_entry:0:1:0
0836 xa_forget_entry:0:1:0
0837 xa_complete_entry:0:1:0
0838 xa_open_entry:0:1:0
0839 xa_close_entry:0:1:0
0840 xa_start_entry:0:1:0
0841 EOF
0842
0843 cat << EOF > lib2.rets
0844 xa_open_entry:0:1:0
0845 xa_close_entry:0:1:0
0846 xa_start_entry:0:1:0
0847 xa_end_entry:0:1:0
0848 xa_rollback_entry:-3:1:0
0849 xa_prepare_entry:-3:1:0
0850 xa_commit_entry:0:1:0
0851 xa_recover_entry:0:1:0
0852 xa_forget_entry:0:1:0
0853 xa_complete_entry:0:1:0
0854 xa_open_entry:0:1:0
0855 xa_close_entry:0:1:0
0856 xa_start_entry:0:1:0
0857 EOF
0858
0859 xadmin sreload -y
0860 clean_ulog;
0861
0862 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
0863 RET=$?
0864
0865 echo "[$ERR]"
0866
0867 if [ "X$RET" == "X0" ]; then
0868 echo "atmiclt87 must fail"
0869 go_out 1
0870 fi
0871
0872 if [[ $ERR != *"TPEABORT"* ]]; then
0873 echo "Expected TPEABORT"
0874 go_out 1
0875 fi
0876
0877
0878 verify_ulog "RM1" "xa_prepare" "1";
0879 verify_ulog "RM1" "xa_commit" "0";
0880 verify_ulog "RM1" "xa_rollback" "1";
0881 verify_ulog "RM1" "xa_forget" "0";
0882 verify_logfiles "log1" "0"
0883
0884 verify_ulog "RM2" "xa_prepare" "1";
0885 verify_ulog "RM2" "xa_commit" "0";
0886 verify_ulog "RM2" "xa_rollback" "1";
0887 verify_ulog "RM2" "xa_forget" "0";
0888 verify_logfiles "log2" "0"
0889
0890
0891 echo ""
0892 echo "************************************************************************"
0893 echo "Commit PREP XAER_RMERR, ABORT XAER_RMFAIL, tries exceeded (TPEABORT) ..."
0894 echo "************************************************************************"
0895
0896 cat << EOF > lib1.rets
0897 xa_open_entry:0:1:0
0898 xa_close_entry:0:1:0
0899 xa_start_entry:0:1:0
0900 xa_end_entry:0:1:0
0901 xa_rollback_entry:0:1:0
0902 xa_prepare_entry:0:1:0
0903 xa_commit_entry:0:1:0
0904 xa_recover_entry:0:1:0
0905 xa_forget_entry:0:1:0
0906 xa_complete_entry:0:1:0
0907 xa_open_entry:0:1:0
0908 xa_close_entry:0:1:0
0909 xa_start_entry:0:1:0
0910 EOF
0911
0912 cat << EOF > lib2.rets
0913 xa_open_entry:0:1:0
0914 xa_close_entry:0:1:0
0915 xa_start_entry:0:1:0
0916 xa_end_entry:0:1:0
0917 xa_rollback_entry:-7:3:0
0918 xa_prepare_entry:-3:1:0
0919 xa_commit_entry:0:1:0
0920 xa_recover_entry:0:1:0
0921 xa_forget_entry:0:1:0
0922 xa_complete_entry:0:1:0
0923 xa_open_entry:0:1:0
0924 xa_close_entry:0:1:0
0925 xa_start_entry:0:1:0
0926 EOF
0927
0928 xadmin sreload -y
0929 clean_ulog;
0930
0931 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
0932 RET=$?
0933
0934 echo "[$ERR]"
0935
0936 if [ "X$RET" == "X0" ]; then
0937 echo "atmiclt87 must fail"
0938 go_out 1
0939 fi
0940
0941 if [[ $ERR != *"TPEABORT"* ]]; then
0942 echo "Expected TPEABORT"
0943 go_out 1
0944 fi
0945
0946
0947 sleep 10
0948
0949
0950 verify_ulog "RM1" "xa_prepare" "1";
0951 verify_ulog "RM1" "xa_commit" "0";
0952 verify_ulog "RM1" "xa_rollback" "1";
0953 verify_ulog "RM1" "xa_forget" "0";
0954 verify_logfiles "log1" "0"
0955
0956 verify_ulog "RM2" "xa_prepare" "1";
0957 verify_ulog "RM2" "xa_commit" "0";
0958
0959 verify_ulog "RM2" "xa_rollback" "4";
0960 verify_ulog "RM2" "xa_forget" "0";
0961 verify_logfiles "log2" "0"
0962
0963 echo ""
0964 echo "************************************************************************"
0965 echo "Commit PREP XAER_RMERR, ABORT XA_HEURCOM (TPEABORT) ..."
0966 echo "************************************************************************"
0967
0968 cat << EOF > lib1.rets
0969 xa_open_entry:0:1:0
0970 xa_close_entry:0:1:0
0971 xa_start_entry:0:1:0
0972 xa_end_entry:0:1:0
0973 xa_rollback_entry:0:1:0
0974 xa_prepare_entry:0:1:0
0975 xa_commit_entry:0:1:0
0976 xa_recover_entry:0:1:0
0977 xa_forget_entry:0:1:0
0978 xa_complete_entry:0:1:0
0979 xa_open_entry:0:1:0
0980 xa_close_entry:0:1:0
0981 xa_start_entry:0:1:0
0982 EOF
0983
0984 cat << EOF > lib2.rets
0985 xa_open_entry:0:1:0
0986 xa_close_entry:0:1:0
0987 xa_start_entry:0:1:0
0988 xa_end_entry:0:1:0
0989 xa_rollback_entry:7:1:0
0990 xa_prepare_entry:-3:1:0
0991 xa_commit_entry:0:1:0
0992 xa_recover_entry:0:1:0
0993 xa_forget_entry:0:1:0
0994 xa_complete_entry:0:1:0
0995 xa_open_entry:0:1:0
0996 xa_close_entry:0:1:0
0997 xa_start_entry:0:1:0
0998 EOF
0999
1000 xadmin sreload -y
1001 clean_ulog;
1002
1003 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1004 RET=$?
1005
1006 echo "[$ERR]"
1007
1008 if [ "X$RET" == "X0" ]; then
1009 echo "atmiclt87 must fail"
1010 go_out 1
1011 fi
1012
1013 if [[ $ERR != *"TPEABORT"* ]]; then
1014 echo "Expected TPEABORT"
1015 go_out 1
1016 fi
1017
1018
1019 verify_ulog "RM1" "xa_prepare" "1";
1020 verify_ulog "RM1" "xa_commit" "0";
1021 verify_ulog "RM1" "xa_rollback" "1";
1022 verify_ulog "RM1" "xa_forget" "0";
1023 verify_logfiles "log1" "0"
1024
1025 verify_ulog "RM2" "xa_prepare" "1";
1026 verify_ulog "RM2" "xa_commit" "0";
1027 verify_ulog "RM2" "xa_rollback" "1";
1028 verify_ulog "RM2" "xa_forget" "1";
1029 verify_logfiles "log2" "0"
1030
1031
1032 echo ""
1033 echo "************************************************************************"
1034 echo "Commit PREP XAER_RMERR, ABORT XA_HEURHAZ (TPEABORT) ..."
1035 echo "************************************************************************"
1036
1037 cat << EOF > lib1.rets
1038 xa_open_entry:0:1:0
1039 xa_close_entry:0:1:0
1040 xa_start_entry:0:1:0
1041 xa_end_entry:0:1:0
1042 xa_rollback_entry:0:1:0
1043 xa_prepare_entry:0:1:0
1044 xa_commit_entry:0:1:0
1045 xa_recover_entry:0:1:0
1046 xa_forget_entry:0:1:0
1047 xa_complete_entry:0:1:0
1048 xa_open_entry:0:1:0
1049 xa_close_entry:0:1:0
1050 xa_start_entry:0:1:0
1051 EOF
1052
1053 cat << EOF > lib2.rets
1054 xa_open_entry:0:1:0
1055 xa_close_entry:0:1:0
1056 xa_start_entry:0:1:0
1057 xa_end_entry:0:1:0
1058 xa_rollback_entry:8:1:0
1059 xa_prepare_entry:-3:1:0
1060 xa_commit_entry:0:1:0
1061 xa_recover_entry:0:1:0
1062 xa_forget_entry:0:1:0
1063 xa_complete_entry:0:1:0
1064 xa_open_entry:0:1:0
1065 xa_close_entry:0:1:0
1066 xa_start_entry:0:1:0
1067 EOF
1068
1069 xadmin sreload -y
1070 clean_ulog;
1071
1072 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1073 RET=$?
1074
1075 echo "[$ERR]"
1076
1077 if [ "X$RET" == "X0" ]; then
1078 echo "atmiclt87 must fail"
1079 go_out 1
1080 fi
1081
1082 if [[ $ERR != *"TPEABORT"* ]]; then
1083 echo "Expected TPEABORT"
1084 go_out 1
1085 fi
1086
1087
1088 verify_ulog "RM1" "xa_prepare" "1";
1089 verify_ulog "RM1" "xa_commit" "0";
1090 verify_ulog "RM1" "xa_rollback" "1";
1091 verify_ulog "RM1" "xa_forget" "0";
1092 verify_logfiles "log1" "0"
1093
1094 verify_ulog "RM2" "xa_prepare" "1";
1095 verify_ulog "RM2" "xa_commit" "0";
1096 verify_ulog "RM2" "xa_rollback" "1";
1097 verify_ulog "RM2" "xa_forget" "1";
1098 verify_logfiles "log2" "0"
1099
1100
1101
1102 echo ""
1103 echo "************************************************************************"
1104 echo "Commit failures: XAER_RMERR - heuristic"
1105 echo "************************************************************************"
1106
1107 cat << EOF > lib1.rets
1108 xa_open_entry:0:1:0
1109 xa_close_entry:0:1:0
1110 xa_start_entry:0:1:0
1111 xa_end_entry:0:1:0
1112 xa_rollback_entry:0:1:0
1113 xa_prepare_entry:0:1:0
1114 xa_commit_entry:0:1:0
1115 xa_recover_entry:0:1:0
1116 xa_forget_entry:0:1:0
1117 xa_complete_entry:0:1:0
1118 xa_open_entry:0:1:0
1119 xa_close_entry:0:1:0
1120 xa_start_entry:0:1:0
1121 EOF
1122
1123 cat << EOF > lib2.rets
1124 xa_open_entry:0:1:0
1125 xa_close_entry:0:1:0
1126 xa_start_entry:0:1:0
1127 xa_end_entry:0:1:0
1128 xa_rollback_entry:0:1:0
1129 xa_prepare_entry:0:1:0
1130 xa_commit_entry:-3:2:0
1131 xa_recover_entry:0:1:0
1132 xa_forget_entry:0:1:0
1133 xa_complete_entry:0:1:0
1134 xa_open_entry:0:1:0
1135 xa_close_entry:0:1:0
1136 xa_start_entry:0:1:0
1137 EOF
1138
1139 xadmin sreload -y
1140 clean_ulog;
1141
1142 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1143 RET=$?
1144
1145 echo "[$ERR]"
1146
1147 if [ "X$RET" == "X0" ]; then
1148 echo "atmiclt87 must fail"
1149 go_out 1
1150 fi
1151
1152 if [[ $ERR != *"TPEHEURISTIC"* ]]; then
1153 echo "Expected TPEHEURISTIC"
1154 go_out 1
1155 fi
1156
1157
1158 verify_ulog "RM1" "xa_prepare" "1";
1159 verify_ulog "RM1" "xa_commit" "1";
1160 verify_ulog "RM1" "xa_rollback" "0";
1161 verify_ulog "RM1" "xa_forget" "0";
1162 verify_logfiles "log1" "0"
1163
1164 verify_ulog "RM2" "xa_prepare" "1";
1165 verify_ulog "RM2" "xa_commit" "1";
1166 verify_ulog "RM2" "xa_rollback" "0";
1167 verify_ulog "RM2" "xa_forget" "0";
1168 verify_logfiles "log2" "0"
1169
1170
1171 echo ""
1172 echo "************************************************************************"
1173 echo "Commit failures: XAER_RMFAIL - retry OK"
1174 echo "************************************************************************"
1175
1176 cat << EOF > lib1.rets
1177 xa_open_entry:0:1:0
1178 xa_close_entry:0:1:0
1179 xa_start_entry:0:1:0
1180 xa_end_entry:0:1:0
1181 xa_rollback_entry:0:1:0
1182 xa_prepare_entry:0:1:0
1183 xa_commit_entry:0:1:0
1184 xa_recover_entry:0:1:0
1185 xa_forget_entry:0:1:0
1186 xa_complete_entry:0:1:0
1187 xa_open_entry:0:1:0
1188 xa_close_entry:0:1:0
1189 xa_start_entry:0:1:0
1190 EOF
1191
1192 cat << EOF > lib2.rets
1193 xa_open_entry:0:1:0
1194 xa_close_entry:0:1:0
1195 xa_start_entry:0:1:0
1196 xa_end_entry:0:1:0
1197 xa_rollback_entry:0:1:0
1198 xa_prepare_entry:0:1:0
1199 xa_commit_entry:-7:2:0
1200 xa_recover_entry:0:1:0
1201 xa_forget_entry:0:1:0
1202 xa_complete_entry:0:1:0
1203 xa_open_entry:0:1:0
1204 xa_close_entry:0:1:0
1205 xa_start_entry:0:1:0
1206 EOF
1207
1208 xadmin sreload -y
1209 clean_ulog;
1210
1211 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1212 RET=$?
1213
1214 echo "[$ERR]"
1215
1216 if [ "X$RET" != "X0" ]; then
1217 echo "atmiclt87 must not"
1218 go_out 1
1219 fi
1220
1221
1222 verify_ulog "RM1" "xa_prepare" "1";
1223 verify_ulog "RM1" "xa_commit" "1";
1224 verify_ulog "RM1" "xa_rollback" "0";
1225 verify_ulog "RM1" "xa_forget" "0";
1226 verify_logfiles "log1" "0"
1227
1228 verify_ulog "RM2" "xa_prepare" "1";
1229 verify_ulog "RM2" "xa_commit" "3";
1230 verify_ulog "RM2" "xa_rollback" "0";
1231 verify_ulog "RM2" "xa_forget" "0";
1232 verify_logfiles "log2" "0"
1233
1234
1235 echo ""
1236 echo "************************************************************************"
1237 echo "Commit failures: XAER_RETRY - retry OK"
1238 echo "************************************************************************"
1239
1240 cat << EOF > lib1.rets
1241 xa_open_entry:0:1:0
1242 xa_close_entry:0:1:0
1243 xa_start_entry:0:1:0
1244 xa_end_entry:0:1:0
1245 xa_rollback_entry:0:1:0
1246 xa_prepare_entry:0:1:0
1247 xa_commit_entry:0:1:0
1248 xa_recover_entry:0:1:0
1249 xa_forget_entry:0:1:0
1250 xa_complete_entry:0:1:0
1251 xa_open_entry:0:1:0
1252 xa_close_entry:0:1:0
1253 xa_start_entry:0:1:0
1254 EOF
1255
1256 cat << EOF > lib2.rets
1257 xa_open_entry:0:1:0
1258 xa_close_entry:0:1:0
1259 xa_start_entry:0:1:0
1260 xa_end_entry:0:1:0
1261 xa_rollback_entry:0:1:0
1262 xa_prepare_entry:0:1:0
1263 xa_commit_entry:4:2:0
1264 xa_recover_entry:0:1:0
1265 xa_forget_entry:0:1:0
1266 xa_complete_entry:0:1:0
1267 xa_open_entry:0:1:0
1268 xa_close_entry:0:1:0
1269 xa_start_entry:0:1:0
1270 EOF
1271
1272 xadmin sreload -y
1273 clean_ulog;
1274
1275 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1276 RET=$?
1277
1278 echo "[$ERR]"
1279
1280 if [ "X$RET" != "X0" ]; then
1281 echo "atmiclt87 must not"
1282 go_out 1
1283 fi
1284
1285
1286 verify_ulog "RM1" "xa_prepare" "1";
1287 verify_ulog "RM1" "xa_commit" "1";
1288 verify_ulog "RM1" "xa_rollback" "0";
1289 verify_ulog "RM1" "xa_forget" "0";
1290 verify_logfiles "log1" "0"
1291
1292 verify_ulog "RM2" "xa_prepare" "1";
1293 verify_ulog "RM2" "xa_commit" "3";
1294 verify_ulog "RM2" "xa_rollback" "0";
1295 verify_ulog "RM2" "xa_forget" "0";
1296 verify_logfiles "log2" "0"
1297
1298
1299 echo ""
1300 echo "************************************************************************"
1301 echo "Commit failures: XA_HEURHAZ - heuristic"
1302 echo "************************************************************************"
1303
1304 cat << EOF > lib1.rets
1305 xa_open_entry:0:1:0
1306 xa_close_entry:0:1:0
1307 xa_start_entry:0:1:0
1308 xa_end_entry:0:1:0
1309 xa_rollback_entry:0:1:0
1310 xa_prepare_entry:0:1:0
1311 xa_commit_entry:0:1:0
1312 xa_recover_entry:0:1:0
1313 xa_forget_entry:0:1:0
1314 xa_complete_entry:0:1:0
1315 xa_open_entry:0:1:0
1316 xa_close_entry:0:1:0
1317 xa_start_entry:0:1:0
1318 EOF
1319
1320 cat << EOF > lib2.rets
1321 xa_open_entry:0:1:0
1322 xa_close_entry:0:1:0
1323 xa_start_entry:0:1:0
1324 xa_end_entry:0:1:0
1325 xa_rollback_entry:0:1:0
1326 xa_prepare_entry:0:1:0
1327 xa_commit_entry:8:1:0
1328 xa_recover_entry:0:1:0
1329 xa_forget_entry:0:1:0
1330 xa_complete_entry:0:1:0
1331 xa_open_entry:0:1:0
1332 xa_close_entry:0:1:0
1333 xa_start_entry:0:1:0
1334 EOF
1335
1336 xadmin sreload -y
1337 clean_ulog;
1338
1339 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1340 RET=$?
1341
1342 echo "[$ERR]"
1343
1344 if [ "X$RET" == "X0" ]; then
1345 echo "atmiclt87 must fail"
1346 go_out 1
1347 fi
1348
1349 if [[ $ERR != *"TPEHAZARD"* ]]; then
1350 echo "Expected TPEHAZARD"
1351 go_out 1
1352 fi
1353
1354
1355 verify_ulog "RM1" "xa_prepare" "1";
1356 verify_ulog "RM1" "xa_commit" "1";
1357 verify_ulog "RM1" "xa_rollback" "0";
1358 verify_ulog "RM1" "xa_forget" "0";
1359 verify_logfiles "log1" "0"
1360
1361 verify_ulog "RM2" "xa_prepare" "1";
1362 verify_ulog "RM2" "xa_commit" "1";
1363 verify_ulog "RM2" "xa_rollback" "0";
1364 verify_ulog "RM2" "xa_forget" "1";
1365 verify_logfiles "log2" "0"
1366
1367
1368 echo ""
1369 echo "************************************************************************"
1370 echo "Commit failures: XA_HEURHAZ - heuristic / tries exceeded"
1371 echo "************************************************************************"
1372
1373 cat << EOF > lib1.rets
1374 xa_open_entry:0:1:0
1375 xa_close_entry:0:1:0
1376 xa_start_entry:0:1:0
1377 xa_end_entry:0:1:0
1378 xa_rollback_entry:0:1:0
1379 xa_prepare_entry:0:1:0
1380 xa_commit_entry:0:1:0
1381 xa_recover_entry:0:1:0
1382 xa_forget_entry:0:1:0
1383 xa_complete_entry:0:1:0
1384 xa_open_entry:0:1:0
1385 xa_close_entry:0:1:0
1386 xa_start_entry:0:1:0
1387 EOF
1388
1389 cat << EOF > lib2.rets
1390 xa_open_entry:0:1:0
1391 xa_close_entry:0:1:0
1392 xa_start_entry:0:1:0
1393 xa_end_entry:0:1:0
1394 xa_rollback_entry:0:1:0
1395 xa_prepare_entry:0:1:0
1396 xa_commit_entry:8:1:0
1397 xa_recover_entry:0:1:0
1398 xa_forget_entry:-7:4:0
1399 xa_complete_entry:0:1:0
1400 xa_open_entry:0:1:0
1401 xa_close_entry:0:1:0
1402 xa_start_entry:0:1:0
1403 EOF
1404
1405 xadmin sreload -y
1406 clean_ulog;
1407
1408 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1409 RET=$?
1410
1411 echo "[$ERR]"
1412
1413 if [ "X$RET" == "X0" ]; then
1414 echo "atmiclt87 must fail"
1415 go_out 1
1416 fi
1417
1418 if [[ $ERR != *"TPEHAZARD"* ]]; then
1419 echo "Expected TPEHAZARD"
1420 go_out 1
1421 fi
1422
1423
1424 verify_logfiles "log1" "1"
1425
1426 sleep 10
1427
1428
1429 verify_ulog "RM1" "xa_prepare" "1";
1430 verify_ulog "RM1" "xa_commit" "1";
1431 verify_ulog "RM1" "xa_rollback" "0";
1432 verify_ulog "RM1" "xa_forget" "0";
1433 verify_logfiles "log1" "0"
1434
1435 verify_ulog "RM2" "xa_prepare" "1";
1436 verify_ulog "RM2" "xa_commit" "1";
1437 verify_ulog "RM2" "xa_rollback" "0";
1438 verify_ulog "RM2" "xa_forget" "5";
1439 verify_logfiles "log2" "0"
1440
1441
1442 echo ""
1443 echo "************************************************************************"
1444 echo "Commit failures: XA_HEURCOM - heuristic"
1445 echo "************************************************************************"
1446
1447 cat << EOF > lib1.rets
1448 xa_open_entry:0:1:0
1449 xa_close_entry:0:1:0
1450 xa_start_entry:0:1:0
1451 xa_end_entry:0:1:0
1452 xa_rollback_entry:0:1:0
1453 xa_prepare_entry:0:1:0
1454 xa_commit_entry:0:1:0
1455 xa_recover_entry:0:1:0
1456 xa_forget_entry:0:1:0
1457 xa_complete_entry:0:1:0
1458 xa_open_entry:0:1:0
1459 xa_close_entry:0:1:0
1460 xa_start_entry:0:1:0
1461 EOF
1462
1463 cat << EOF > lib2.rets
1464 xa_open_entry:0:1:0
1465 xa_close_entry:0:1:0
1466 xa_start_entry:0:1:0
1467 xa_end_entry:0:1:0
1468 xa_rollback_entry:0:1:0
1469 xa_prepare_entry:0:1:0
1470 xa_commit_entry:7:1:0
1471 xa_recover_entry:0:1:0
1472 xa_forget_entry:0:1:0
1473 xa_complete_entry:0:1:0
1474 xa_open_entry:0:1:0
1475 xa_close_entry:0:1:0
1476 xa_start_entry:0:1:0
1477 EOF
1478
1479 xadmin sreload -y
1480 clean_ulog;
1481
1482 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1483 RET=$?
1484
1485 echo "[$ERR]"
1486
1487 if [ "X$RET" == "X0" ]; then
1488 echo "atmiclt87 must fail"
1489 go_out 1
1490 fi
1491
1492 if [[ $ERR != *"TPEHEURISTIC"* ]]; then
1493 echo "Expected TPEHEURISTIC"
1494 go_out 1
1495 fi
1496
1497
1498 verify_ulog "RM1" "xa_prepare" "1";
1499 verify_ulog "RM1" "xa_commit" "1";
1500 verify_ulog "RM1" "xa_rollback" "0";
1501 verify_ulog "RM1" "xa_forget" "0";
1502 verify_logfiles "log1" "0"
1503
1504 verify_ulog "RM2" "xa_prepare" "1";
1505 verify_ulog "RM2" "xa_commit" "1";
1506 verify_ulog "RM2" "xa_rollback" "0";
1507 verify_ulog "RM2" "xa_forget" "1";
1508 verify_logfiles "log2" "0"
1509
1510
1511 echo ""
1512 echo "************************************************************************"
1513 echo "Commit failures: XA_HEURRB - heuristic"
1514 echo "************************************************************************"
1515
1516 cat << EOF > lib1.rets
1517 xa_open_entry:0:1:0
1518 xa_close_entry:0:1:0
1519 xa_start_entry:0:1:0
1520 xa_end_entry:0:1:0
1521 xa_rollback_entry:0:1:0
1522 xa_prepare_entry:0:1:0
1523 xa_commit_entry:0:1:0
1524 xa_recover_entry:0:1:0
1525 xa_forget_entry:0:1:0
1526 xa_complete_entry:0:1:0
1527 xa_open_entry:0:1:0
1528 xa_close_entry:0:1:0
1529 xa_start_entry:0:1:0
1530 EOF
1531
1532 cat << EOF > lib2.rets
1533 xa_open_entry:0:1:0
1534 xa_close_entry:0:1:0
1535 xa_start_entry:0:1:0
1536 xa_end_entry:0:1:0
1537 xa_rollback_entry:0:1:0
1538 xa_prepare_entry:0:1:0
1539 xa_commit_entry:6:1:0
1540 xa_recover_entry:0:1:0
1541 xa_forget_entry:0:1:0
1542 xa_complete_entry:0:1:0
1543 xa_open_entry:0:1:0
1544 xa_close_entry:0:1:0
1545 xa_start_entry:0:1:0
1546 EOF
1547
1548 xadmin sreload -y
1549 clean_ulog;
1550
1551 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1552 RET=$?
1553
1554 echo "[$ERR]"
1555
1556 if [ "X$RET" == "X0" ]; then
1557 echo "atmiclt87 must fail"
1558 go_out 1
1559 fi
1560
1561 if [[ $ERR != *"TPEHEURISTIC"* ]]; then
1562 echo "Expected TPEHEURISTIC"
1563 go_out 1
1564 fi
1565
1566
1567 verify_ulog "RM1" "xa_prepare" "1";
1568 verify_ulog "RM1" "xa_commit" "1";
1569 verify_ulog "RM1" "xa_rollback" "0";
1570 verify_ulog "RM1" "xa_forget" "0";
1571 verify_logfiles "log1" "0"
1572
1573 verify_ulog "RM2" "xa_prepare" "1";
1574 verify_ulog "RM2" "xa_commit" "1";
1575 verify_ulog "RM2" "xa_rollback" "0";
1576 verify_ulog "RM2" "xa_forget" "1";
1577 verify_logfiles "log2" "0"
1578
1579
1580 echo ""
1581 echo "************************************************************************"
1582 echo "Commit failures: XA_HEURMIX - heuristic"
1583 echo "************************************************************************"
1584
1585 cat << EOF > lib1.rets
1586 xa_open_entry:0:1:0
1587 xa_close_entry:0:1:0
1588 xa_start_entry:0:1:0
1589 xa_end_entry:0:1:0
1590 xa_rollback_entry:0:1:0
1591 xa_prepare_entry:0:1:0
1592 xa_commit_entry:0:1:0
1593 xa_recover_entry:0:1:0
1594 xa_forget_entry:0:1:0
1595 xa_complete_entry:0:1:0
1596 xa_open_entry:0:1:0
1597 xa_close_entry:0:1:0
1598 xa_start_entry:0:1:0
1599 EOF
1600
1601 cat << EOF > lib2.rets
1602 xa_open_entry:0:1:0
1603 xa_close_entry:0:1:0
1604 xa_start_entry:0:1:0
1605 xa_end_entry:0:1:0
1606 xa_rollback_entry:0:1:0
1607 xa_prepare_entry:0:1:0
1608 xa_commit_entry:5:1:0
1609 xa_recover_entry:0:1:0
1610 xa_forget_entry:0:1:0
1611 xa_complete_entry:0:1:0
1612 xa_open_entry:0:1:0
1613 xa_close_entry:0:1:0
1614 xa_start_entry:0:1:0
1615 EOF
1616
1617 xadmin sreload -y
1618 clean_ulog;
1619
1620 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1621 RET=$?
1622
1623 echo "[$ERR]"
1624
1625 if [ "X$RET" == "X0" ]; then
1626 echo "atmiclt87 must fail"
1627 go_out 1
1628 fi
1629
1630 if [[ $ERR != *"TPEHEURISTIC"* ]]; then
1631 echo "Expected TPEHEURISTIC"
1632 go_out 1
1633 fi
1634
1635
1636 verify_ulog "RM1" "xa_prepare" "1";
1637 verify_ulog "RM1" "xa_commit" "1";
1638 verify_ulog "RM1" "xa_rollback" "0";
1639 verify_ulog "RM1" "xa_forget" "0";
1640 verify_logfiles "log1" "0"
1641
1642 verify_ulog "RM2" "xa_prepare" "1";
1643 verify_ulog "RM2" "xa_commit" "1";
1644 verify_ulog "RM2" "xa_rollback" "0";
1645 verify_ulog "RM2" "xa_forget" "1";
1646 verify_logfiles "log2" "0"
1647
1648
1649 echo ""
1650 echo "************************************************************************"
1651 echo "Commit failures: XA_HEURCOM / XA_HEURHAZ - hazard"
1652 echo "************************************************************************"
1653
1654 cat << EOF > lib1.rets
1655 xa_open_entry:0:1:0
1656 xa_close_entry:0:1:0
1657 xa_start_entry:0:1:0
1658 xa_end_entry:0:1:0
1659 xa_rollback_entry:0:1:0
1660 xa_prepare_entry:0:1:0
1661 xa_commit_entry:7:1:0
1662 xa_recover_entry:0:1:0
1663 xa_forget_entry:0:1:0
1664 xa_complete_entry:0:1:0
1665 xa_open_entry:0:1:0
1666 xa_close_entry:0:1:0
1667 xa_start_entry:0:1:0
1668 EOF
1669
1670 cat << EOF > lib2.rets
1671 xa_open_entry:0:1:0
1672 xa_close_entry:0:1:0
1673 xa_start_entry:0:1:0
1674 xa_end_entry:0:1:0
1675 xa_rollback_entry:0:1:0
1676 xa_prepare_entry:0:1:0
1677 xa_commit_entry:8:1:0
1678 xa_recover_entry:0:1:0
1679 xa_forget_entry:0:1:0
1680 xa_complete_entry:0:1:0
1681 xa_open_entry:0:1:0
1682 xa_close_entry:0:1:0
1683 xa_start_entry:0:1:0
1684 EOF
1685
1686 xadmin sreload -y
1687 clean_ulog;
1688
1689 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1690 RET=$?
1691
1692 echo "[$ERR]"
1693
1694 if [ "X$RET" == "X0" ]; then
1695 echo "atmiclt87 must fail"
1696 go_out 1
1697 fi
1698
1699 if [[ $ERR != *"TPEHAZARD"* ]]; then
1700 echo "Expected TPEHAZARD"
1701 go_out 1
1702 fi
1703
1704
1705 verify_ulog "RM1" "xa_prepare" "1";
1706 verify_ulog "RM1" "xa_commit" "1";
1707 verify_ulog "RM1" "xa_rollback" "0";
1708 verify_ulog "RM1" "xa_forget" "1";
1709 verify_logfiles "log1" "0"
1710
1711 verify_ulog "RM2" "xa_prepare" "1";
1712 verify_ulog "RM2" "xa_commit" "1";
1713 verify_ulog "RM2" "xa_rollback" "0";
1714 verify_ulog "RM2" "xa_forget" "1";
1715 verify_logfiles "log2" "0"
1716
1717
1718 echo ""
1719 echo "************************************************************************"
1720 echo "Commit failures: XA_RBBASE - heuristic"
1721 echo "************************************************************************"
1722
1723 cat << EOF > lib1.rets
1724 xa_open_entry:0:1:0
1725 xa_close_entry:0:1:0
1726 xa_start_entry:0:1:0
1727 xa_end_entry:0:1:0
1728 xa_rollback_entry:0:1:0
1729 xa_prepare_entry:0:1:0
1730 xa_commit_entry:0:1:0
1731 xa_recover_entry:0:1:0
1732 xa_forget_entry:0:1:0
1733 xa_complete_entry:0:1:0
1734 xa_open_entry:0:1:0
1735 xa_close_entry:0:1:0
1736 xa_start_entry:0:1:0
1737 EOF
1738
1739 cat << EOF > lib2.rets
1740 xa_open_entry:0:1:0
1741 xa_close_entry:0:1:0
1742 xa_start_entry:0:1:0
1743 xa_end_entry:0:1:0
1744 xa_rollback_entry:0:1:0
1745 xa_prepare_entry:0:1:0
1746 xa_commit_entry:100:1:0
1747 xa_recover_entry:0:1:0
1748 xa_forget_entry:0:1:0
1749 xa_complete_entry:0:1:0
1750 xa_open_entry:0:1:0
1751 xa_close_entry:0:1:0
1752 xa_start_entry:0:1:0
1753 EOF
1754
1755 xadmin sreload -y
1756 clean_ulog;
1757
1758 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1759 RET=$?
1760
1761 echo "[$ERR]"
1762
1763 if [ "X$RET" == "X0" ]; then
1764 echo "atmiclt87 must fail"
1765 go_out 1
1766 fi
1767
1768 if [[ $ERR != *"TPEHEURISTIC"* ]]; then
1769 echo "Expected TPEHEURISTIC"
1770 go_out 1
1771 fi
1772
1773
1774 verify_ulog "RM1" "xa_prepare" "1";
1775 verify_ulog "RM1" "xa_commit" "1";
1776 verify_ulog "RM1" "xa_rollback" "0";
1777 verify_ulog "RM1" "xa_forget" "0";
1778 verify_logfiles "log1" "0"
1779
1780 verify_ulog "RM2" "xa_prepare" "1";
1781 verify_ulog "RM2" "xa_commit" "1";
1782 verify_ulog "RM2" "xa_rollback" "0";
1783 verify_ulog "RM2" "xa_forget" "0";
1784 verify_logfiles "log2" "0"
1785
1786 echo ""
1787 echo "************************************************************************"
1788 echo "Commit failures: XAER_PROTO - (any err) -> committed"
1789 echo "************************************************************************"
1790
1791 cat << EOF > lib1.rets
1792 xa_open_entry:0:1:0
1793 xa_close_entry:0:1:0
1794 xa_start_entry:0:1:0
1795 xa_end_entry:0:1:0
1796 xa_rollback_entry:0:1:0
1797 xa_prepare_entry:0:1:0
1798 xa_commit_entry:0:1:0
1799 xa_recover_entry:0:1:0
1800 xa_forget_entry:0:1:0
1801 xa_complete_entry:0:1:0
1802 xa_open_entry:0:1:0
1803 xa_close_entry:0:1:0
1804 xa_start_entry:0:1:0
1805 EOF
1806
1807 cat << EOF > lib2.rets
1808 xa_open_entry:0:1:0
1809 xa_close_entry:0:1:0
1810 xa_start_entry:0:1:0
1811 xa_end_entry:0:1:0
1812 xa_rollback_entry:0:1:0
1813 xa_prepare_entry:0:1:0
1814 xa_commit_entry:-6:1:0
1815 xa_recover_entry:0:1:0
1816 xa_forget_entry:0:1:0
1817 xa_complete_entry:0:1:0
1818 xa_open_entry:0:1:0
1819 xa_close_entry:0:1:0
1820 xa_start_entry:0:1:0
1821 EOF
1822
1823 xadmin sreload -y
1824 clean_ulog;
1825
1826 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
1827 RET=$?
1828
1829 echo "[$ERR]"
1830
1831 if [ "X$RET" != "X0" ]; then
1832 echo "atmiclt87 must not fail"
1833 go_out 1
1834 fi
1835
1836
1837 verify_ulog "RM1" "xa_prepare" "1";
1838 verify_ulog "RM1" "xa_commit" "1";
1839 verify_ulog "RM1" "xa_rollback" "0";
1840 verify_ulog "RM1" "xa_forget" "0";
1841 verify_logfiles "log1" "0"
1842
1843 verify_ulog "RM2" "xa_prepare" "1";
1844 verify_ulog "RM2" "xa_commit" "1";
1845 verify_ulog "RM2" "xa_rollback" "0";
1846 verify_ulog "RM2" "xa_forget" "0";
1847 verify_logfiles "log2" "0"
1848
1849
1850 echo ""
1851 echo "************************************************************************"
1852 echo "Abort OK"
1853 echo "************************************************************************"
1854
1855 cat << EOF > lib1.rets
1856 xa_open_entry:0:1:0
1857 xa_close_entry:0:1:0
1858 xa_start_entry:0:1:0
1859 xa_end_entry:0:1:0
1860 xa_rollback_entry:0:1:0
1861 xa_prepare_entry:0:1:0
1862 xa_commit_entry:0:1:0
1863 xa_recover_entry:0:1:0
1864 xa_forget_entry:0:1:0
1865 xa_complete_entry:0:1:0
1866 xa_open_entry:0:1:0
1867 xa_close_entry:0:1:0
1868 xa_start_entry:0:1:0
1869 EOF
1870
1871 cat << EOF > lib2.rets
1872 xa_open_entry:0:1:0
1873 xa_close_entry:0:1:0
1874 xa_start_entry:0:1:0
1875 xa_end_entry:0:1:0
1876 xa_rollback_entry:0:1:0
1877 xa_prepare_entry:0:1:0
1878 xa_commit_entry:0:1:0
1879 xa_recover_entry:0:1:0
1880 xa_forget_entry:0:1:0
1881 xa_complete_entry:0:1:0
1882 xa_open_entry:0:1:0
1883 xa_close_entry:0:1:0
1884 xa_start_entry:0:1:0
1885 EOF
1886
1887 xadmin sreload -y
1888 clean_ulog;
1889
1890 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 A 2>&1`
1891 RET=$?
1892
1893 echo "[$ERR]"
1894
1895 if [ "X$RET" != "X0" ]; then
1896 echo "atmiclt87 must not fail"
1897 go_out 1
1898 fi
1899
1900
1901
1902
1903
1904
1905
1906 verify_ulog "RM1" "xa_prepare" "0";
1907 verify_ulog "RM1" "xa_commit" "0";
1908 verify_ulog "RM1" "xa_rollback" "1";
1909 verify_ulog "RM1" "xa_forget" "0";
1910 verify_logfiles "log1" "0"
1911
1912 verify_ulog "RM2" "xa_prepare" "0";
1913 verify_ulog "RM2" "xa_commit" "0";
1914 verify_ulog "RM2" "xa_rollback" "1";
1915 verify_ulog "RM2" "xa_forget" "0";
1916 verify_logfiles "log2" "0"
1917
1918
1919 echo ""
1920 echo "************************************************************************"
1921 echo "Abort OK XA_RDONLY"
1922 echo "************************************************************************"
1923
1924 cat << EOF > lib1.rets
1925 xa_open_entry:0:1:0
1926 xa_close_entry:0:1:0
1927 xa_start_entry:0:1:0
1928 xa_end_entry:0:1:0
1929 xa_rollback_entry:0:1:0
1930 xa_prepare_entry:0:1:0
1931 xa_commit_entry:0:1:0
1932 xa_recover_entry:0:1:0
1933 xa_forget_entry:0:1:0
1934 xa_complete_entry:0:1:0
1935 xa_open_entry:0:1:0
1936 xa_close_entry:0:1:0
1937 xa_start_entry:0:1:0
1938 EOF
1939
1940 cat << EOF > lib2.rets
1941 xa_open_entry:0:1:0
1942 xa_close_entry:0:1:0
1943 xa_start_entry:0:1:0
1944 xa_end_entry:0:1:0
1945 xa_rollback_entry:3:1:0
1946 xa_prepare_entry:0:1:0
1947 xa_commit_entry:0:1:0
1948 xa_recover_entry:0:1:0
1949 xa_forget_entry:0:1:0
1950 xa_complete_entry:0:1:0
1951 xa_open_entry:0:1:0
1952 xa_close_entry:0:1:0
1953 xa_start_entry:0:1:0
1954 EOF
1955
1956 xadmin sreload -y
1957 clean_ulog;
1958
1959 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 A 2>&1`
1960 RET=$?
1961
1962 echo "[$ERR]"
1963
1964 if [ "X$RET" != "X0" ]; then
1965 echo "atmiclt87 must not fail"
1966 go_out 1
1967 fi
1968
1969
1970 verify_ulog "RM1" "xa_prepare" "0";
1971 verify_ulog "RM1" "xa_commit" "0";
1972 verify_ulog "RM1" "xa_rollback" "1";
1973 verify_ulog "RM1" "xa_forget" "0";
1974 verify_logfiles "log1" "0"
1975
1976 verify_ulog "RM2" "xa_prepare" "0";
1977 verify_ulog "RM2" "xa_commit" "0";
1978 verify_ulog "RM2" "xa_rollback" "1";
1979 verify_ulog "RM2" "xa_forget" "0";
1980 verify_logfiles "log2" "0"
1981
1982
1983 echo ""
1984 echo "************************************************************************"
1985 echo "Abort XA_HEURHAZ"
1986 echo "************************************************************************"
1987
1988 cat << EOF > lib1.rets
1989 xa_open_entry:0:1:0
1990 xa_close_entry:0:1:0
1991 xa_start_entry:0:1:0
1992 xa_end_entry:0:1:0
1993 xa_rollback_entry:0:1:0
1994 xa_prepare_entry:0:1:0
1995 xa_commit_entry:0:1:0
1996 xa_recover_entry:0:1:0
1997 xa_forget_entry:0:1:0
1998 xa_complete_entry:0:1:0
1999 xa_open_entry:0:1:0
2000 xa_close_entry:0:1:0
2001 xa_start_entry:0:1:0
2002 EOF
2003
2004 cat << EOF > lib2.rets
2005 xa_open_entry:0:1:0
2006 xa_close_entry:0:1:0
2007 xa_start_entry:0:1:0
2008 xa_end_entry:0:1:0
2009 xa_rollback_entry:8:1:0
2010 xa_prepare_entry:0:1:0
2011 xa_commit_entry:0:1:0
2012 xa_recover_entry:0:1:0
2013 xa_forget_entry:0:1:0
2014 xa_complete_entry:0:1:0
2015 xa_open_entry:0:1:0
2016 xa_close_entry:0:1:0
2017 xa_start_entry:0:1:0
2018 EOF
2019
2020 xadmin sreload -y
2021 clean_ulog;
2022
2023 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 A 2>&1`
2024 RET=$?
2025
2026 echo "[$ERR]"
2027
2028 if [ "X$RET" == "X0" ]; then
2029 echo "atmiclt87 must fail"
2030 go_out 1
2031 fi
2032
2033 if [[ $ERR != *"TPEHAZARD"* ]]; then
2034 echo "Expected TPEHAZARD"
2035 go_out 1
2036 fi
2037
2038
2039 verify_ulog "RM1" "xa_prepare" "0";
2040 verify_ulog "RM1" "xa_commit" "0";
2041 verify_ulog "RM1" "xa_rollback" "1";
2042 verify_ulog "RM1" "xa_forget" "0";
2043 verify_logfiles "log1" "0"
2044
2045 verify_ulog "RM2" "xa_prepare" "0";
2046 verify_ulog "RM2" "xa_commit" "0";
2047 verify_ulog "RM2" "xa_rollback" "1";
2048 verify_ulog "RM2" "xa_forget" "1";
2049 verify_logfiles "log2" "0"
2050
2051
2052 echo ""
2053 echo "************************************************************************"
2054 echo "Abort XA_HEURRB"
2055 echo "************************************************************************"
2056
2057 cat << EOF > lib1.rets
2058 xa_open_entry:0:1:0
2059 xa_close_entry:0:1:0
2060 xa_start_entry:0:1:0
2061 xa_end_entry:0:1:0
2062 xa_rollback_entry:6:1:0
2063 xa_prepare_entry:0:1:0
2064 xa_commit_entry:0:1:0
2065 xa_recover_entry:0:1:0
2066 xa_forget_entry:0:1:0
2067 xa_complete_entry:0:1:0
2068 xa_open_entry:0:1:0
2069 xa_close_entry:0:1:0
2070 xa_start_entry:0:1:0
2071 EOF
2072
2073 cat << EOF > lib2.rets
2074 xa_open_entry:0:1:0
2075 xa_close_entry:0:1:0
2076 xa_start_entry:0:1:0
2077 xa_end_entry:0:1:0
2078 xa_rollback_entry:6:1:0
2079 xa_prepare_entry:0:1:0
2080 xa_commit_entry:0:1:0
2081 xa_recover_entry:0:1:0
2082 xa_forget_entry:0:1:0
2083 xa_complete_entry:0:1:0
2084 xa_open_entry:0:1:0
2085 xa_close_entry:0:1:0
2086 xa_start_entry:0:1:0
2087 EOF
2088
2089 xadmin sreload -y
2090 clean_ulog;
2091
2092 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 A 2>&1`
2093 RET=$?
2094
2095 echo "[$ERR]"
2096
2097 if [ "X$RET" == "X0" ]; then
2098 echo "atmiclt87 must fail"
2099 go_out 1
2100 fi
2101
2102 if [[ $ERR != *"TPEHEURISTIC"* ]]; then
2103 echo "Expected TPEHEURISTIC"
2104 go_out 1
2105 fi
2106
2107
2108 verify_ulog "RM1" "xa_prepare" "0";
2109 verify_ulog "RM1" "xa_commit" "0";
2110 verify_ulog "RM1" "xa_rollback" "1";
2111 verify_ulog "RM1" "xa_forget" "1";
2112 verify_logfiles "log1" "0"
2113
2114 verify_ulog "RM2" "xa_prepare" "0";
2115 verify_ulog "RM2" "xa_commit" "0";
2116 verify_ulog "RM2" "xa_rollback" "1";
2117 verify_ulog "RM2" "xa_forget" "1";
2118 verify_logfiles "log2" "0"
2119
2120
2121 echo ""
2122 echo "************************************************************************"
2123 echo "Abort XA_HEURCOM"
2124 echo "************************************************************************"
2125
2126 cat << EOF > lib1.rets
2127 xa_open_entry:0:1:0
2128 xa_close_entry:0:1:0
2129 xa_start_entry:0:1:0
2130 xa_end_entry:0:1:0
2131 xa_rollback_entry:7:1:0
2132 xa_prepare_entry:0:1:0
2133 xa_commit_entry:0:1:0
2134 xa_recover_entry:0:1:0
2135 xa_forget_entry:0:1:0
2136 xa_complete_entry:0:1:0
2137 xa_open_entry:0:1:0
2138 xa_close_entry:0:1:0
2139 xa_start_entry:0:1:0
2140 EOF
2141
2142 cat << EOF > lib2.rets
2143 xa_open_entry:0:1:0
2144 xa_close_entry:0:1:0
2145 xa_start_entry:0:1:0
2146 xa_end_entry:0:1:0
2147 xa_rollback_entry:7:1:0
2148 xa_prepare_entry:0:1:0
2149 xa_commit_entry:0:1:0
2150 xa_recover_entry:0:1:0
2151 xa_forget_entry:0:1:0
2152 xa_complete_entry:0:1:0
2153 xa_open_entry:0:1:0
2154 xa_close_entry:0:1:0
2155 xa_start_entry:0:1:0
2156 EOF
2157
2158 xadmin sreload -y
2159 clean_ulog;
2160
2161 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 A 2>&1`
2162 RET=$?
2163
2164 echo "[$ERR]"
2165
2166 if [ "X$RET" == "X0" ]; then
2167 echo "atmiclt87 must fail"
2168 go_out 1
2169 fi
2170
2171 if [[ $ERR != *"TPEHEURISTIC"* ]]; then
2172 echo "Expected TPEHEURISTIC"
2173 go_out 1
2174 fi
2175
2176
2177 verify_ulog "RM1" "xa_prepare" "0";
2178 verify_ulog "RM1" "xa_commit" "0";
2179 verify_ulog "RM1" "xa_rollback" "1";
2180 verify_ulog "RM1" "xa_forget" "1";
2181 verify_logfiles "log1" "0"
2182
2183 verify_ulog "RM2" "xa_prepare" "0";
2184 verify_ulog "RM2" "xa_commit" "0";
2185 verify_ulog "RM2" "xa_rollback" "1";
2186 verify_ulog "RM2" "xa_forget" "1";
2187 verify_logfiles "log2" "0"
2188
2189
2190 echo ""
2191 echo "************************************************************************"
2192 echo "Abort XA_HEURMIX"
2193 echo "************************************************************************"
2194
2195 cat << EOF > lib1.rets
2196 xa_open_entry:0:1:0
2197 xa_close_entry:0:1:0
2198 xa_start_entry:0:1:0
2199 xa_end_entry:0:1:0
2200 xa_rollback_entry:5:1:0
2201 xa_prepare_entry:0:1:0
2202 xa_commit_entry:0:1:0
2203 xa_recover_entry:0:1:0
2204 xa_forget_entry:0:1:0
2205 xa_complete_entry:0:1:0
2206 xa_open_entry:0:1:0
2207 xa_close_entry:0:1:0
2208 xa_start_entry:0:1:0
2209 EOF
2210
2211 cat << EOF > lib2.rets
2212 xa_open_entry:0:1:0
2213 xa_close_entry:0:1:0
2214 xa_start_entry:0:1:0
2215 xa_end_entry:0:1:0
2216 xa_rollback_entry:5:1:0
2217 xa_prepare_entry:0:1:0
2218 xa_commit_entry:0:1:0
2219 xa_recover_entry:0:1:0
2220 xa_forget_entry:0:1:0
2221 xa_complete_entry:0:1:0
2222 xa_open_entry:0:1:0
2223 xa_close_entry:0:1:0
2224 xa_start_entry:0:1:0
2225 EOF
2226
2227 xadmin sreload -y
2228 clean_ulog;
2229
2230 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 A 2>&1`
2231 RET=$?
2232
2233 echo "[$ERR]"
2234
2235 if [ "X$RET" == "X0" ]; then
2236 echo "atmiclt87 must fail"
2237 go_out 1
2238 fi
2239
2240 if [[ $ERR != *"TPEHEURISTIC"* ]]; then
2241 echo "Expected TPEHEURISTIC"
2242 go_out 1
2243 fi
2244
2245
2246 verify_ulog "RM1" "xa_prepare" "0";
2247 verify_ulog "RM1" "xa_commit" "0";
2248 verify_ulog "RM1" "xa_rollback" "1";
2249 verify_ulog "RM1" "xa_forget" "1";
2250 verify_logfiles "log1" "0"
2251
2252 verify_ulog "RM2" "xa_prepare" "0";
2253 verify_ulog "RM2" "xa_commit" "0";
2254 verify_ulog "RM2" "xa_rollback" "1";
2255 verify_ulog "RM2" "xa_forget" "1";
2256 verify_logfiles "log2" "0"
2257
2258
2259 echo ""
2260 echo "************************************************************************"
2261 echo "Abort XAER_RMFAIL"
2262 echo "************************************************************************"
2263
2264 cat << EOF > lib1.rets
2265 xa_open_entry:0:1:0
2266 xa_close_entry:0:1:0
2267 xa_start_entry:0:1:0
2268 xa_end_entry:0:1:0
2269 xa_rollback_entry:-7:2:0
2270 xa_prepare_entry:0:1:0
2271 xa_commit_entry:0:1:0
2272 xa_recover_entry:0:1:0
2273 xa_forget_entry:0:1:0
2274 xa_complete_entry:0:1:0
2275 xa_open_entry:0:1:0
2276 xa_close_entry:0:1:0
2277 xa_start_entry:0:1:0
2278 EOF
2279
2280 cat << EOF > lib2.rets
2281 xa_open_entry:0:1:0
2282 xa_close_entry:0:1:0
2283 xa_start_entry:0:1:0
2284 xa_end_entry:0:1:0
2285 xa_rollback_entry:-7:2:0
2286 xa_prepare_entry:0:1:0
2287 xa_commit_entry:0:1:0
2288 xa_recover_entry:0:1:0
2289 xa_forget_entry:0:1:0
2290 xa_complete_entry:0:1:0
2291 xa_open_entry:0:1:0
2292 xa_close_entry:0:1:0
2293 xa_start_entry:0:1:0
2294 EOF
2295
2296 xadmin sreload -y
2297 clean_ulog;
2298
2299 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 A 2>&1`
2300 RET=$?
2301
2302 echo "[$ERR]"
2303
2304 if [ "X$RET" != "X0" ]; then
2305 echo "atmiclt87 must not fail"
2306 go_out 1
2307 fi
2308
2309
2310
2311
2312
2313
2314
2315 verify_ulog "RM1" "xa_prepare" "0";
2316 verify_ulog "RM1" "xa_commit" "0";
2317 verify_ulog "RM1" "xa_rollback" "3";
2318 verify_ulog "RM1" "xa_forget" "0";
2319 verify_logfiles "log1" "0"
2320
2321 verify_ulog "RM2" "xa_prepare" "0";
2322 verify_ulog "RM2" "xa_commit" "0";
2323 verify_ulog "RM2" "xa_rollback" "3";
2324 verify_ulog "RM2" "xa_forget" "0";
2325 verify_logfiles "log2" "0"
2326
2327 echo ""
2328 echo "************************************************************************"
2329 echo "Abort XAER_NOTA (OK)"
2330 echo "************************************************************************"
2331
2332 cat << EOF > lib1.rets
2333 xa_open_entry:0:1:0
2334 xa_close_entry:0:1:0
2335 xa_start_entry:0:1:0
2336 xa_end_entry:0:1:0
2337 xa_rollback_entry:-4:1:0
2338 xa_prepare_entry:0:1:0
2339 xa_commit_entry:0:1:0
2340 xa_recover_entry:0:1:0
2341 xa_forget_entry:0:1:0
2342 xa_complete_entry:0:1:0
2343 xa_open_entry:0:1:0
2344 xa_close_entry:0:1:0
2345 xa_start_entry:0:1:0
2346 EOF
2347
2348 cat << EOF > lib2.rets
2349 xa_open_entry:0:1:0
2350 xa_close_entry:0:1:0
2351 xa_start_entry:0:1:0
2352 xa_end_entry:0:1:0
2353 xa_rollback_entry:-4:1:0
2354 xa_prepare_entry:0:1:0
2355 xa_commit_entry:0:1:0
2356 xa_recover_entry:0:1:0
2357 xa_forget_entry:0:1:0
2358 xa_complete_entry:0:1:0
2359 xa_open_entry:0:1:0
2360 xa_close_entry:0:1:0
2361 xa_start_entry:0:1:0
2362 EOF
2363
2364 xadmin sreload -y
2365 clean_ulog;
2366
2367 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 A 2>&1`
2368 RET=$?
2369
2370 echo "[$ERR]"
2371
2372 if [ "X$RET" != "X0" ]; then
2373 echo "atmiclt87 must not fail"
2374 go_out 1
2375 fi
2376
2377
2378
2379
2380
2381
2382
2383 verify_ulog "RM1" "xa_prepare" "0";
2384 verify_ulog "RM1" "xa_commit" "0";
2385 verify_ulog "RM1" "xa_rollback" "1";
2386 verify_ulog "RM1" "xa_forget" "0";
2387 verify_logfiles "log1" "0"
2388
2389 verify_ulog "RM2" "xa_prepare" "0";
2390 verify_ulog "RM2" "xa_commit" "0";
2391 verify_ulog "RM2" "xa_rollback" "1";
2392 verify_ulog "RM2" "xa_forget" "0";
2393 verify_logfiles "log2" "0"
2394
2395 echo ""
2396 echo "************************************************************************"
2397 echo "Abort XAER_PROTO (any sort of error, not expected) OK"
2398 echo "************************************************************************"
2399
2400 cat << EOF > lib1.rets
2401 xa_open_entry:0:1:0
2402 xa_close_entry:0:1:0
2403 xa_start_entry:0:1:0
2404 xa_end_entry:0:1:0
2405 xa_rollback_entry:0:1:0
2406 xa_prepare_entry:0:1:0
2407 xa_commit_entry:0:1:0
2408 xa_recover_entry:0:1:0
2409 xa_forget_entry:0:1:0
2410 xa_complete_entry:0:1:0
2411 xa_open_entry:0:1:0
2412 xa_close_entry:0:1:0
2413 xa_start_entry:0:1:0
2414 EOF
2415
2416 cat << EOF > lib2.rets
2417 xa_open_entry:0:1:0
2418 xa_close_entry:0:1:0
2419 xa_start_entry:0:1:0
2420 xa_end_entry:0:1:0
2421 xa_rollback_entry:-6:1:0
2422 xa_prepare_entry:0:1:0
2423 xa_commit_entry:0:1:0
2424 xa_recover_entry:0:1:0
2425 xa_forget_entry:0:1:0
2426 xa_complete_entry:0:1:0
2427 xa_open_entry:0:1:0
2428 xa_close_entry:0:1:0
2429 xa_start_entry:0:1:0
2430 EOF
2431
2432 xadmin sreload -y
2433 clean_ulog;
2434
2435 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 A 2>&1`
2436 RET=$?
2437
2438 echo "[$ERR]"
2439
2440 if [ "X$RET" != "X0" ]; then
2441 echo "atmiclt87 must not fail"
2442 go_out 1
2443 fi
2444
2445
2446
2447
2448
2449
2450
2451 verify_ulog "RM1" "xa_prepare" "0";
2452 verify_ulog "RM1" "xa_commit" "0";
2453 verify_ulog "RM1" "xa_rollback" "1";
2454 verify_ulog "RM1" "xa_forget" "0";
2455 verify_logfiles "log1" "0"
2456
2457 verify_ulog "RM2" "xa_prepare" "0";
2458 verify_ulog "RM2" "xa_commit" "0";
2459 verify_ulog "RM2" "xa_rollback" "1";
2460 verify_ulog "RM2" "xa_forget" "0";
2461 verify_logfiles "log2" "0"
2462
2463
2464 echo ""
2465 echo "************************************************************************"
2466 echo "Abort Crash recovery (no duplicate ops in case of heuristic ops)"
2467 echo "************************************************************************"
2468
2469 cat << EOF > lib1.rets
2470 xa_open_entry:0:1:0
2471 xa_close_entry:0:1:0
2472 xa_start_entry:0:1:0
2473 xa_end_entry:0:1:0
2474 xa_rollback_entry:0:1:0
2475 xa_prepare_entry:0:1:0
2476 xa_commit_entry:0:1:0
2477 xa_recover_entry:0:1:0
2478 xa_forget_entry:0:1:0
2479 xa_complete_entry:0:1:0
2480 xa_open_entry:0:1:0
2481 xa_close_entry:0:1:0
2482 xa_start_entry:0:1:0
2483 EOF
2484
2485 cat << EOF > lib2.rets
2486 xa_open_entry:0:1:0
2487 xa_close_entry:0:1:0
2488 xa_start_entry:0:1:0
2489 xa_end_entry:0:1:0
2490 xa_rollback_entry:8:1:0
2491 xa_prepare_entry:0:1:0
2492 xa_commit_entry:0:1:0
2493 xa_recover_entry:0:1:0
2494 xa_forget_entry:0:1:0
2495 xa_complete_entry:0:1:0
2496 xa_open_entry:0:1:0
2497 xa_close_entry:0:1:0
2498 xa_start_entry:0:1:0
2499 EOF
2500
2501 xadmin sreload -y
2502 xadmin lcf tcrash -A 36 -a -n
2503 clean_ulog;
2504
2505 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 A 2>&1`
2506 RET=$?
2507
2508 echo "[$ERR]"
2509
2510 if [ "X$RET" == "X0" ]; then
2511 echo "atmiclt87 must fail"
2512 go_out 1
2513 fi
2514
2515 if [[ $ERR != *"TPETIME"* ]]; then
2516 echo "Expected TPETIME"
2517 go_out 1
2518 fi
2519
2520
2521 verify_ulog "RM1" "xa_prepare" "0";
2522 verify_ulog "RM1" "xa_commit" "0";
2523 verify_ulog "RM1" "xa_rollback" "1";
2524 verify_ulog "RM1" "xa_forget" "0";
2525 verify_logfiles "log1" "1"
2526
2527 verify_ulog "RM2" "xa_prepare" "0";
2528 verify_ulog "RM2" "xa_commit" "0";
2529 verify_ulog "RM2" "xa_rollback" "1";
2530 verify_ulog "RM2" "xa_forget" "0";
2531 verify_logfiles "log2" "0"
2532
2533
2534 sleep 10
2535
2536
2537
2538
2539 cat log1/*
2540 xadmin lcf tcrash -A 0 -a -n
2541
2542
2543 sleep 15
2544
2545 verify_ulog "RM1" "xa_prepare" "0";
2546 verify_ulog "RM1" "xa_commit" "0";
2547 verify_ulog "RM1" "xa_rollback" "1";
2548 verify_ulog "RM1" "xa_forget" "0";
2549 verify_logfiles "log1" "0"
2550
2551 verify_ulog "RM2" "xa_prepare" "0";
2552 verify_ulog "RM2" "xa_commit" "0";
2553 verify_ulog "RM2" "xa_rollback" "1";
2554 verify_ulog "RM2" "xa_forget" "1";
2555 verify_logfiles "log2" "0"
2556
2557
2558 echo ""
2559 echo "************************************************************************"
2560 echo "Commit Crash recovery (no duplicate ops in case of heuristic ops)"
2561 echo "************************************************************************"
2562
2563 cat << EOF > lib1.rets
2564 xa_open_entry:0:1:0
2565 xa_close_entry:0:1:0
2566 xa_start_entry:0:1:0
2567 xa_end_entry:0:1:0
2568 xa_rollback_entry:0:1:0
2569 xa_prepare_entry:0:1:0
2570 xa_commit_entry:0:1:0
2571 xa_recover_entry:0:1:0
2572 xa_forget_entry:0:1:0
2573 xa_complete_entry:0:1:0
2574 xa_open_entry:0:1:0
2575 xa_close_entry:0:1:0
2576 xa_start_entry:0:1:0
2577 EOF
2578
2579 cat << EOF > lib2.rets
2580 xa_open_entry:0:1:0
2581 xa_close_entry:0:1:0
2582 xa_start_entry:0:1:0
2583 xa_end_entry:0:1:0
2584 xa_rollback_entry:0:1:0
2585 xa_prepare_entry:0:1:0
2586 xa_commit_entry:8:1:0
2587 xa_recover_entry:0:1:0
2588 xa_forget_entry:0:1:0
2589 xa_complete_entry:0:1:0
2590 xa_open_entry:0:1:0
2591 xa_close_entry:0:1:0
2592 xa_start_entry:0:1:0
2593 EOF
2594
2595 xadmin sreload -y
2596 xadmin lcf tcrash -A 80 -a -n
2597 clean_ulog;
2598
2599 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
2600 RET=$?
2601
2602 echo "[$ERR]"
2603
2604 if [ "X$RET" == "X0" ]; then
2605 echo "atmiclt87 must fail"
2606 go_out 1
2607 fi
2608
2609 if [[ $ERR != *"TPETIME"* ]]; then
2610 echo "Expected TPETIME"
2611 go_out 1
2612 fi
2613
2614
2615 verify_ulog "RM1" "xa_prepare" "1";
2616 verify_ulog "RM1" "xa_commit" "1";
2617 verify_ulog "RM1" "xa_rollback" "0";
2618 verify_ulog "RM1" "xa_forget" "0";
2619 verify_logfiles "log1" "1"
2620
2621 verify_ulog "RM2" "xa_prepare" "1";
2622 verify_ulog "RM2" "xa_commit" "1";
2623 verify_ulog "RM2" "xa_rollback" "0";
2624 verify_ulog "RM2" "xa_forget" "0";
2625 verify_logfiles "log2" "0"
2626
2627
2628 sleep 10
2629
2630
2631
2632
2633 cat log1/*
2634 xadmin lcf tcrash -A 0 -a -n
2635
2636
2637 sleep 20
2638
2639 verify_ulog "RM1" "xa_prepare" "1";
2640 verify_ulog "RM1" "xa_commit" "1";
2641 verify_ulog "RM1" "xa_rollback" "0";
2642 verify_ulog "RM1" "xa_forget" "0";
2643 verify_logfiles "log1" "0"
2644
2645 verify_ulog "RM2" "xa_prepare" "1";
2646 verify_ulog "RM2" "xa_commit" "1";
2647 verify_ulog "RM2" "xa_rollback" "0";
2648 verify_ulog "RM2" "xa_forget" "1";
2649 verify_logfiles "log2" "0"
2650
2651 echo ""
2652 echo "************************************************************************"
2653 echo "Automatic rollback of active records"
2654 echo "************************************************************************"
2655
2656 cat << EOF > lib1.rets
2657 xa_open_entry:0:1:0
2658 xa_close_entry:0:1:0
2659 xa_start_entry:0:1:0
2660 xa_end_entry:0:1:0
2661 xa_rollback_entry:0:1:0
2662 xa_prepare_entry:0:1:0
2663 xa_commit_entry:0:1:0
2664 xa_recover_entry:0:1:0
2665 xa_forget_entry:0:1:0
2666 xa_complete_entry:0:1:0
2667 xa_open_entry:0:1:0
2668 xa_close_entry:0:1:0
2669 xa_start_entry:0:1:0
2670 EOF
2671
2672 cat << EOF > lib2.rets
2673 xa_open_entry:0:1:0
2674 xa_close_entry:0:1:0
2675 xa_start_entry:0:1:0
2676 xa_end_entry:0:1:0
2677 xa_rollback_entry:0:1:0
2678 xa_prepare_entry:0:1:0
2679 xa_commit_entry:0:1:0
2680 xa_recover_entry:0:1:0
2681 xa_forget_entry:0:1:0
2682 xa_complete_entry:0:1:0
2683 xa_open_entry:0:1:0
2684 xa_close_entry:0:1:0
2685 xa_start_entry:0:1:0
2686 EOF
2687
2688 xadmin sreload -y
2689 xadmin lcf tcrash -A 40 -a -n
2690 clean_ulog;
2691
2692 ERR=`NDRX_TOUT=5 NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
2693 RET=$?
2694
2695 echo "[$ERR]"
2696
2697 if [ "X$RET" == "X0" ]; then
2698 echo "atmiclt87 must fail"
2699 go_out 1
2700 fi
2701
2702 if [[ $ERR != *"TPETIME"* ]]; then
2703 echo "Expected TPETIME"
2704 go_out 1
2705 fi
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723 cat log1/*
2724
2725
2726
2727
2728
2729 verify_ulog "RM1" "xa_prepare" "0";
2730 verify_ulog "RM1" "xa_commit" "0";
2731 verify_ulog "RM1" "xa_rollback" "1";
2732 verify_ulog "RM1" "xa_forget" "0";
2733 verify_logfiles "log1" "0"
2734
2735 verify_ulog "RM2" "xa_prepare" "0";
2736 verify_ulog "RM2" "xa_commit" "0";
2737 verify_ulog "RM2" "xa_rollback" "1";
2738 verify_ulog "RM2" "xa_forget" "0";
2739 verify_logfiles "log2" "0"
2740
2741
2742
2743 xadmin lcf disable -s 5
2744
2745 echo ""
2746 echo "************************************************************************"
2747 echo "Retry on prepare... (unexpected error - suspend flag test)"
2748 echo "************************************************************************"
2749
2750 cat << EOF > lib1.rets
2751 xa_open_entry:0:1:0
2752 xa_close_entry:0:1:0
2753 xa_start_entry:0:1:0
2754 xa_end_entry:0:1:0
2755 xa_rollback_entry:0:1:0
2756 xa_prepare_entry:0:1:0
2757 xa_commit_entry:0:1:0
2758 xa_recover_entry:0:1:0
2759 xa_forget_entry:0:1:0
2760 xa_complete_entry:0:1:0
2761 xa_open_entry:0:1:0
2762 xa_close_entry:0:1:0
2763 xa_start_entry:0:1:0
2764 EOF
2765
2766 cat << EOF > lib2.rets
2767 xa_open_entry:0:1:0
2768 xa_close_entry:0:1:0
2769 xa_start_entry:0:1:0
2770 xa_end_entry:0:1:0
2771 xa_rollback_entry:0:1:0
2772 xa_prepare_entry:4:3:0
2773 xa_commit_entry:0:1:0
2774 xa_recover_entry:0:1:0
2775 xa_forget_entry:0:1:0
2776 xa_complete_entry:0:1:0
2777 xa_open_entry:0:1:0
2778 xa_close_entry:0:1:0
2779 xa_start_entry:0:1:0
2780 EOF
2781
2782 clean_ulog;
2783
2784 xadmin sreload -y
2785
2786 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
2787 RET=$?
2788
2789 echo "[$ERR]"
2790
2791 if [ "X$RET" == "X0" ]; then
2792 echo "atmiclt87 must fail"
2793 go_out 1
2794 fi
2795
2796 if [[ $ERR != *"TPEABORT"* ]]; then
2797 echo "Expected TPEABORT"
2798 go_out 1
2799 fi
2800
2801
2802 xadmin sreload -y
2803
2804
2805 if [ "X`grep suspend atmiclt87.log`" == "X" ]; then
2806 echo "Expected API suspend - but not found"
2807 go_out 1
2808 fi
2809
2810 echo ""
2811 echo "************************************************************************"
2812 echo "Commit OK case ... NOSUSPEND"
2813 echo "************************************************************************"
2814 xadmin stop -y
2815 clean_ulog;
2816
2817 cat << EOF > lib1.rets
2818 xa_open_entry:0:1:0
2819 xa_close_entry:0:1:0
2820 xa_start_entry:0:1:0
2821 xa_end_entry:0:1:0
2822 xa_rollback_entry:0:1:0
2823 xa_prepare_entry:0:1:0
2824 xa_commit_entry:0:1:0
2825 xa_recover_entry:0:1:0
2826 xa_forget_entry:0:1:0
2827 xa_complete_entry:0:1:0
2828 xa_open_entry:0:1:0
2829 xa_close_entry:0:1:0
2830 xa_start_entry:0:1:0
2831 EOF
2832
2833 cat << EOF > lib2.rets
2834 xa_open_entry:0:1:0
2835 xa_close_entry:0:1:0
2836 xa_start_entry:0:1:0
2837 xa_end_entry:0:1:0
2838 xa_rollback_entry:0:1:0
2839 xa_prepare_entry:0:1:0
2840 xa_commit_entry:0:1:0
2841 xa_recover_entry:0:1:0
2842 xa_forget_entry:0:1:0
2843 xa_complete_entry:0:1:0
2844 xa_open_entry:0:1:0
2845 xa_close_entry:0:1:0
2846 xa_start_entry:0:1:0
2847 EOF
2848
2849 export NDRX_XA_FLAGS=NOSUSPEND
2850 > atmiclt87.log
2851 xadmin start -y
2852
2853 NDRX_CCTAG="RM1" ./atmiclt87
2854 RET=$?
2855
2856 if [ "X$RET" != "X0" ]; then
2857 echo "Build atmiclt87 failed"
2858 go_out 1
2859 fi
2860
2861
2862 if [ "X`grep suspend atmiclt87.log`" == "X" ]; then
2863 echo "No join expected (NOSUSPEND flag), but got..."
2864 go_out 1
2865 fi
2866
2867
2868 verify_ulog "RM1" "xa_end" "2";
2869
2870
2871
2872
2873 unset NDRX_XA_FLAGS
2874 xadmin stop -y
2875 > atmiclt87.log
2876
2877
2878
2879
2880 buildprograms "nj";
2881 xadmin start -y
2882
2883 echo ""
2884 echo "************************************************************************"
2885 echo "Commit OK case ... NJ"
2886 echo "************************************************************************"
2887 clean_ulog;
2888 NDRX_CCTAG="RM1" ./atmiclt87
2889 RET=$?
2890
2891 if [ "X$RET" != "X0" ]; then
2892 echo "Build atmiclt87 failed"
2893 go_out 1
2894 fi
2895
2896
2897 if [ "X`grep suspend atmiclt87.log`" != "X" ]; then
2898 echo "No join expected, but got..."
2899 go_out 1
2900 fi
2901
2902
2903 verify_ulog "RM1" "xa_end" "2";
2904
2905 go_out $RET
2906
2907
2908