Back to home page

Enduro/X

 
 

    


0001 #!/bin/bash
0002 ##
0003 ## @brief TMSRV State Driving verification - test launcher
0004 ##
0005 ## @file run.sh
0006 ##
0007 ## -----------------------------------------------------------------------------
0008 ## Enduro/X Middleware Platform for Distributed Transaction Processing
0009 ## Copyright (C) 2009-2016, ATR Baltic, Ltd. All Rights Reserved.
0010 ## Copyright (C) 2017-2023, Mavimax, Ltd. All Rights Reserved.
0011 ## This software is released under one of the following licenses:
0012 ## AGPL (with Java and Go exceptions) or Mavimax's license for commercial use.
0013 ## See LICENSE file for full text.
0014 ## -----------------------------------------------------------------------------
0015 ## AGPL license:
0016 ## 
0017 ## This program is free software; you can redistribute it and/or modify it under
0018 ## the terms of the GNU Affero General Public License, version 3 as published
0019 ## by the Free Software Foundation;
0020 ##
0021 ## This program is distributed in the hope that it will be useful, but WITHOUT ANY
0022 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
0023 ## PARTICULAR PURPOSE. See the GNU Affero General Public License, version 3
0024 ## for more details.
0025 ##
0026 ## You should have received a copy of the GNU Affero General Public License along 
0027 ## with this program; if not, write to the Free Software Foundation, Inc., 
0028 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0029 ##
0030 ## -----------------------------------------------------------------------------
0031 ## A commercial use license is available from Mavimax, Ltd
0032 ## contact@mavimax.com
0033 ## -----------------------------------------------------------------------------
0034 ##
0035 
0036 export TESTNAME="test087_tmsrv"
0037 
0038 PWD=`pwd`
0039 if [ `echo $PWD | grep $TESTNAME ` ]; then
0040     # Do nothing 
0041     echo > /dev/null
0042 else
0043     # started from parent folder
0044     pushd .
0045     echo "Doing cd"
0046     cd $TESTNAME
0047 fi;
0048 
0049 #
0050 # Load shared run functions
0051 #
0052 source ./funcs.sh
0053 
0054 #
0055 # Firstly test with join
0056 #
0057 buildprograms "";
0058 
0059 #
0060 # Run OK case...
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 # start here, we want fresh tables loaded...
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 #verify results ops...
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 # check number of suspends (1 - call suspend, 1 - sever end, 1 - client end)
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 # rollback at join failure
0128 #
0129 echo ""
0130 echo "************************************************************************"
0131 echo "Rollback at join failure"
0132 echo "************************************************************************"
0133 
0134 #
0135 # so client starts OK
0136 # client join fails
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 # Must be aborted.
0175 #
0176 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
0177 RET=$?
0178 # print the stuff
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 #verify results ops...
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 # check number of suspends (1 - call suspend, 1 - sever end, 1 - client end)
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 #verify results ops...
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 # support #729
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 #verify results ops...
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # this is aborted
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 # lower the rank to aborting...
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 # print the stuff
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 #verify results ops...
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 # no prepare please as we already know that we will do rollback due to first
0533 # prepare fail
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 # support #729
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 # Lowest rank
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 # Does not upgrade
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 # let background to complete.
0947 sleep 10
0948 
0949 #verify results ops...
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 # 3x attempts + final
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
1214 echo "[$ERR]"
1215 
1216 if [ "X$RET" != "X0" ]; then
1217     echo "atmiclt87 must not"
1218     go_out 1
1219 fi
1220 
1221 #verify results ops...
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 # print the stuff
1278 echo "[$ERR]"
1279 
1280 if [ "X$RET" != "X0" ]; then
1281     echo "atmiclt87 must not"
1282     go_out 1
1283 fi
1284 
1285 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 # Log is left... for later processing.
1424 verify_logfiles "log1" "1"
1425 
1426 sleep 10
1427 
1428 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
1829 echo "[$ERR]"
1830 
1831 if [ "X$RET" != "X0" ]; then
1832     echo "atmiclt87 must not fail"
1833     go_out 1
1834 fi
1835 
1836 #verify results ops...
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 # print the stuff
1893 echo "[$ERR]"
1894 
1895 if [ "X$RET" != "X0" ]; then
1896     echo "atmiclt87 must not fail"
1897     go_out 1
1898 fi
1899 
1900 #if [[ $ERR != *"TPEHEURISTIC"* ]]; then
1901 #    echo "Expected TPEHEURISTIC"
1902 #    go_out 1
1903 #fi
1904 
1905 #verify results ops...
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 # print the stuff
1962 echo "[$ERR]"
1963 
1964 if [ "X$RET" != "X0" ]; then
1965     echo "atmiclt87 must not fail"
1966     go_out 1
1967 fi
1968 
1969 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # print the stuff
2302 echo "[$ERR]"
2303 
2304 if [ "X$RET" != "X0" ]; then
2305     echo "atmiclt87 must not fail"
2306     go_out 1
2307 fi
2308 
2309 #if [[ $ERR != *"TPEHEURISTIC"* ]]; then
2310 #    echo "Expected TPEHEURISTIC"
2311 #    go_out 1
2312 #fi
2313 
2314 #verify results ops...
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 # print the stuff
2370 echo "[$ERR]"
2371 
2372 if [ "X$RET" != "X0" ]; then
2373     echo "atmiclt87 must not fail"
2374     go_out 1
2375 fi
2376 
2377 #if [[ $ERR != *"TPEHEURISTIC"* ]]; then
2378 #    echo "Expected TPEHEURISTIC"
2379 #    go_out 1
2380 #fi
2381 
2382 #verify results ops...
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 # print the stuff
2438 echo "[$ERR]"
2439 
2440 if [ "X$RET" != "X0" ]; then
2441     echo "atmiclt87 must not fail"
2442     go_out 1
2443 fi
2444 
2445 #if [[ $ERR != *"TPEHEURISTIC"* ]]; then
2446 #    echo "Expected TPEHEURISTIC"
2447 #    go_out 1
2448 #fi
2449 
2450 #verify results ops...
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 # print the stuff
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 #verify results ops...
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 # restore back... now shall complete
2534 sleep 10
2535 
2536 #
2537 # Print what ever we have in logs...
2538 #
2539 cat log1/*
2540 xadmin lcf tcrash -A 0 -a -n
2541 
2542 # let process to finalize
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 # print the stuff
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 #verify results ops...
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 # restore back... now shall complete
2628 sleep 10
2629 
2630 #
2631 # Print what ever we have in logs...
2632 #
2633 cat log1/*
2634 xadmin lcf tcrash -A 0 -a -n
2635 
2636 # let process to finalize
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 # print the stuff
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 #verify results ops...
2708 #verify_ulog "RM1" "xa_prepare" "0";
2709 #verify_ulog "RM1" "xa_commit" "0";
2710 #verify_ulog "RM1" "xa_rollback" "0";
2711 #verify_ulog "RM1" "xa_forget" "0";
2712 #verify_logfiles "log1" "1"
2713 
2714 #verify_ulog "RM2" "xa_prepare" "0";
2715 #verify_ulog "RM2" "xa_commit" "0";
2716 #verify_ulog "RM2" "xa_rollback" "0";
2717 #verify_ulog "RM2" "xa_forget" "0";
2718 #verify_logfiles "log2" "0"
2719 
2720 #
2721 # Print what ever we have in logs...
2722 #
2723 cat log1/*
2724 
2725 # Transaction shall roll back due to expiry
2726 #sleep 20
2727 
2728 # we get automatic rollback:
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 # disable the command
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 # must have abort error...
2784 xadmin sreload -y
2785 
2786 ERR=`NDRX_CCTAG="RM1" ./atmiclt87 2>&1`
2787 RET=$?
2788 # print the stuff
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 # must have abort error...
2802 xadmin sreload -y
2803 
2804 # Check in logs that we did suspend (as switch is marked with migrate flags)
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 # No join expected, as set by libraries...
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 # check number of suspends (1 - sever end, 1 - client end)
2868 verify_ulog "RM1" "xa_end" "2";
2869 
2870 #
2871 # Clean up & rebuild
2872 #
2873 unset NDRX_XA_FLAGS
2874 xadmin stop -y
2875 > atmiclt87.log
2876 
2877 #
2878 # Build with out join support (thus shall not be suspended)
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 # No join expected, as set by libraries...
2897 if [ "X`grep suspend atmiclt87.log`" != "X" ]; then
2898     echo "No join expected, but got..."
2899     go_out 1
2900 fi
2901 
2902 # check number of suspends (1 - sever end, 1 - client end)
2903 verify_ulog "RM1" "xa_end" "2";
2904 
2905 go_out $RET
2906 
2907 # vim: set ts=4 sw=4 et smartindent:
2908