0001 Building Enduro/X On IBM AIX Platform
0002 =====================================
0003 :doctype: book
0004
0005 About manual
0006 ------------
0007 This manual describes how to build 'Enduro/X' on IBM AIX Platform.
0008 Document is based on AIX 7.1 SP2, TL5. Compilers supported are GNU GCC and IBM xlC.
0009
0010 == Overview
0011
0012 This manual includes basic installation of Enduro/X. This does not
0013 include building of documentation.
0014
0015 == Operating System Configuration
0016
0017 For short installation process see ex_adminman(guides)(Enduro/X Administration Manual).
0018
0019 Before running commands from the root shell, ensure that /opt/freeware/bin is in path:
0020
0021 ---------------------------------------------------------------------
0022 # export PATH=$PATH:/opt/freeware/bin
0023 ---------------------------------------------------------------------
0024
0025 Add user used for build processes:
0026
0027 ---------------------------------------------------------------------
0028 # useradd -m user1
0029 ---------------------------------------------------------------------
0030
0031
0032 == Installation process
0033
0034 The installation process will install required several open source packages.
0035 For getting Enduro/X to work basically we need following packages:
0036
0037 . git
0038
0039 . cmake
0040
0041 . flex
0042
0043 . bison
0044
0045 . libxml2
0046
0047 . gcc (if try GNU Compiler Chain)
0048
0049
0050 === Packages to be installed
0051
0052 The approach how packages can be installed on system may differ. This document
0053 list just one the ways how to get system working.
0054
0055 ==== Install IBM Open Source RPMs
0056
0057 Firstly for installation process there will be used official IBM Free software
0058 RPM repository and only those package missing there will be installed
0059 from www.oss4aix.org. Assuming that you have freshly installed Operating System,
0060 we need to install *yum* tool, so that all dependencies can be
0061 stratified automatically.
0062
0063 Download and install the RPM packages from the
0064 yum_bundle.tar (or later e.g. yum_bundle_v5.tar) file from
0065 https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/ .
0066 Ensure that install process does finish without any errors.
0067
0068 ---------------------------------------------------------------------
0069 # tar -xvf yum_bundle.tar
0070 # cd yum_bundle
0071 # rpm -ivh *.rpm
0072 ---------------------------------------------------------------------
0073
0074 On AIX 7.3, download dnf_bundle_aix_73.tar:
0075
0076 ---------------------------------------------------------------------
0077 # tar -xvf dnf_bundle_aix_73.tar
0078 # ./install_dnf.sh -y
0079 # /opt/freeware/bin/dnf update
0080 ---------------------------------------------------------------------
0081
0082 Once yum is up and running, install following packages needed for build
0083 (AIX 7.1, 7.2):
0084
0085 ---------------------------------------------------------------------
0086 # yum install flex bison libiconv curl openldap openssl zlib \
0087 libxml2 mktemp gcc gcc-cpp g++ libxml2-devel git bash m4 gmake wget
0088 ---------------------------------------------------------------------
0089
0090 For AIX 7.2 To install g++:
0091
0092 ---------------------------------------------------------------------
0093 # yum install gcc-c++
0094 ---------------------------------------------------------------------
0095
0096 AIX 7.3:
0097
0098 ---------------------------------------------------------------------
0099 # yum install flex bison libiconv curl zlib \
0100 libxml2 gcc gcc-cpp libxml2-devel git bash m4 gcc-c++ wget coreutils
0101 ---------------------------------------------------------------------
0102
0103
0104 ==== Fix the issue with m4
0105
0106 Flex and Bison requires GNU m4 to be present on the system, thus perform
0107 following:
0108
0109 ---------------------------------------------------------------------
0110 # mv /usr/bin/m4 /usr/bin/m4.org
0111 # ln -s /opt/freeware/bin/m4 /usr/bin/m4
0112 ---------------------------------------------------------------------
0113
0114 ==== Installing missing packages
0115
0116 Seems that Official IBM AIX toolbox cmake tool ships as broken.
0117 It changes the way how shared libraries are built. For Enduro/X all libs are
0118 expected to be built as System V Shared Objects (.so), but toolbox version changes
0119 these rules. Thus keep third party builds or compile from Kitware CMake sources.
0120
0121 ===== Installing CMake from oss4aix.org (AIX 7.1)
0122
0123 The following operations will be done from root user. This will download
0124 the all open source packages to local machine to /root/rpms folder.
0125
0126 ---------------------------------------------------------------------
0127 # mkdir -p /root/rpms
0128 # cd /root/rpms
0129 # ftp -i www.oss4aix.org
0130 # ftp -i www.oss4aix.org
0131 Connected to www.oss4aix.org.
0132 220 FTP Server ready.
0133 Name (www.oss4aix.org:fora): anonymous
0134 331 Anonymous login ok, send your complete email address as your password
0135 Password:
0136 230-
0137 *** Welcome to this anonymous ftp server! ***
0138
0139 You are user 2 out of a maximum of 20 authorized anonymous logins.
0140 The current time here is Fri Jun 17 14:52:10 2016.
0141 If you experience any problems here, contact : michael@perzl.org
0142
0143
0144 230 Anonymous login ok, restrictions apply.
0145 ftp> bin
0146 200 Type set to I
0147 ftp> passive
0148 Passive mode on.
0149 ftp>
0150 ftp>
0151 ftp> cd /compatible/aix71
0152
0153 -- In case of AIX 7.2:
0154 ftp> cd /compatible/aix72
0155
0156 250 CWD command successful
0157 ftp> mget *
0158 227 Entering Passive Mode (178,254,6,100,136,212).
0159 ...
0160 ---------------------------------------------------------------------
0161
0162 Once all packages are downloaded. We can start to install required ones. The
0163 download includes all of them, due to possible dependencies. But we need to
0164 install only two of them:
0165
0166 ---------------------------------------------------------------------
0167 # rpm -i cmake-3.9.1-1.aix6.1.ppc.rpm
0168 # rpm -i mktemp-1.7-1.aix5.1.ppc.rpm
0169 ---------------------------------------------------------------------
0170
0171
0172 ===== Building CMake manually from sources (AIX 7.2, AIX 7.3)
0173
0174 This will use gcc compiler.
0175
0176 ---------------------------------------------------------------------
0177 # su - user1
0178 $ mkdir tmp
0179 $ cd tmp
0180
0181 -- FOr AIX 7.1, 7.2:
0182
0183 $ wget https://github.com/Kitware/CMake/releases/download/v3.19.4/cmake-3.19.4.tar.gz
0184
0185 -- For AIX 7.3:
0186
0187 $ wget https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1.tar.gz
0188
0189 $ gzip -d cmake-3.19.4.tar.gz
0190 $ tar -xf cmake-3.19.4.tar.gz
0191 $ cd cmake-3.19.4
0192 $ export OBJECT_MODE=64
0193 $ export CC=gcc
0194 $ export CXX=g++
0195 $ export CFLAGS=-maix64
0196 $ export CXXFLAGS=-maix64
0197 $ export LDFLAGS="-maix64 -Wl,-bbigtoc"
0198 $ ./configure --prefix=/opt/freeware
0199
0200 -- On AIX 7.1, 7.2:
0201 $ gmake
0202
0203 -- On AIX 7.3:
0204 $ make
0205
0206 $ exit
0207 # cd /home/user1/tmp/cmake-3.19.4
0208 # make install
0209 ---------------------------------------------------------------------
0210
0211
0212 === Getting the source code
0213
0214 For test purposes we will prepare new user for which Enduro/X will built
0215 (this adds the in the path the /opt/freeware/bin and xlC version 13 compiler.
0216 You may modify that of your needs.
0217
0218 ---------------------------------------------------------------------
0219 # su - user1
0220 $ bash
0221 $ cat << EOF >> .profile
0222 PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.:/opt/freeware/bin:/opt/IBM/xlC/13.1.3/bin
0223 EOF
0224 $ chmod +x .profile
0225 $ source .profile
0226 $ cd /home/user1
0227 $ GIT_SSL_NO_VERIFY=true git clone https://github.com/endurox-dev/endurox
0228 $ cd endurox
0229 $ git config http.sslVerify "false"
0230 ---------------------------------------------------------------------
0231
0232 The path */opt/IBM/xlC/13.1.3/bin* shall be updated to match th compiler install
0233 path. For example IBM IBM Open XL C/C++ would have */opt/IBM/openxlC/17.1.0/bin* path set.
0234
0235 === Enduro/X basic Environment configuration for HOME directory
0236
0237 This code bellow creates 'ndrx_home' executable file which loads basic environment,
0238 so that you can use sample configuration provided by Enduro/X in
0239 'sampleconfig' directory. This also assumes that you are going to install to
0240 '$HOME/endurox/dist' folder. The file bellow will override the sample configuration.
0241
0242 ---------------------------------------------------------------------
0243 $ cat << EOF > $HOME/ndrx_home
0244 #!/bin/bash
0245
0246 # Where app domain lives
0247 export NDRX_APPHOME=/home/user1/endurox
0248 # Where NDRX runtime lives
0249 export NDRX_HOME=/home/user1/endurox/dist
0250 # Debug config too
0251 export NDRX_DEBUG_CONF=/home/user1/endurox/sampleconfig/debug.conf
0252
0253 # NDRX config too.
0254 export NDRX_CONFIG=/home/user1/endurox/sampleconfig/ndrxconfig.xml
0255
0256 # Access for binaries
0257 export PATH=\$PATH:/\$HOME/endurox/dist/bin
0258
0259 # LIBPATH for .so
0260 export LIBPATH=\$LIBPATH:\$HOME/endurox/dist/lib
0261
0262 # UBF/FML field tables
0263 export FLDTBLDIR=\$HOME/endurox/ubftest/ubftab
0264
0265 # Some AIX version (like 7.2) limits the ulimit -s process wide
0266 # thus default logic for taking new thread stack size from getrlimit(RLIMIT_STACK)
0267 # causes pthread_create() to fail with resource limit error.
0268 export NDRX_THREADSTACKSIZE=8192
0269
0270 ################################################################################
0271 # In case if building with Postgresql DB database testing support
0272 # or building endurox-java with Oracle DB tests (03_xapostgres), then
0273 # configure bellow setting (demo values provided):
0274 # If so - uncomment bellow
0275 ################################################################################
0276 #export EX_PG_HOST=localhost
0277 #export EX_PG_USER=exdbtest
0278 #export EX_PG_PASS=exdbtest1
0279 # currently uses default port
0280 #export EX_PG_PORT=5432
0281 #export EX_PG_DB=xe
0282 # additional libpath for postgres
0283 #export EX_PG_LIBPATH=/opt/freeware/lib
0284
0285
0286 EOF
0287
0288 $ chmod +x $HOME/ndrx_home
0289 ---------------------------------------------------------------------
0290
0291 === Configuring PostgreSQL
0292
0293 If Enduro/X PostgreSQL driver is needed to be build for AIX, the PostgreSQL
0294 needs to be installed for build and test purposes. Installation will be done
0295 by using "yum" tool. It is assumed that it is configured for given OS.
0296 To install database on this system, use following commands:
0297
0298 --------------------------------------------------------------------------------
0299 $ su - root
0300 # yum update
0301 # yum install postgresql postgresql-contrib postgresql-devel postgresql-libs postgresql-server
0302 --------------------------------------------------------------------------------
0303
0304 Once installed, database needs to be created:
0305
0306 --------------------------------------------------------------------------------
0307
0308 # su - postgres
0309
0310 $ bash
0311
0312 $ cat << EOF >> .profile
0313 PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.:/opt/freeware/bin
0314 EOF
0315
0316 $ chmod +x .profile
0317
0318 $ source .profile
0319
0320 $ initdb -D /var/lib/postgresql/data
0321 -- and start it up...
0322 $ pg_ctl -D /var/lib/postgresql/data -l logfile start
0323
0324 --------------------------------------------------------------------------------
0325
0326 Create startup scripts:
0327
0328 -------------------------------------------------------------------------------
0329
0330 # cat << EOF > /etc/rc.d/rc2.d/S99postgres
0331 #!/bin/ksh
0332
0333 ##################################################
0334 # name: postgres
0335 # Starts or stops Postgresql.
0336 # P.S. Script must be run as root!
0337 ##################################################
0338
0339 case "\$1" in
0340 start )
0341 su - postgres -c "pg_ctl -D /var/lib/postgresql/data -l logfile start"
0342 ;;
0343 stop )
0344 su - postgres -c "pg_ctl -D /var/lib/postgresql/data -l logfile stop"
0345 ;;
0346 * )
0347 echo "Usage: \$0 (start | stop)"
0348 exit 1
0349 esac
0350
0351 EOF
0352
0353 # chmod +x /etc/rc.d/rc2.d/S99postgres
0354
0355 # ln -s /etc/rc.d/rc2.d/S99postgres /etc/rc.d/rc2.d/K01postgres
0356
0357 --------------------------------------------------------------------------------
0358
0359 Now create the database for Enduro/X tests:
0360
0361 --------------------------------------------------------------------------------
0362 # su - postgres
0363
0364 $ createuser exdbtest
0365
0366 $ createdb xe
0367
0368 $ psql -d template1
0369
0370 > alter user exdbtest with encrypted password 'exdbtest1';
0371 > grant all privileges on database xe to exdbtest;
0372 > \q
0373
0374 --------------------------------------------------------------------------------
0375
0376 Configuration files needs to be updated for authentication and distributed
0377 transactions must be enabled too.
0378
0379 Edit */var/lib/postgresql/data/postgresql.conf*, set "max_prepared_transactions"
0380 to 1000.
0381
0382 --------------------------------------------------------------------------------
0383
0384 max_prepared_transactions = 1000 # zero disables the feature
0385
0386 --------------------------------------------------------------------------------
0387
0388 For access permissions and network configuration, update
0389 */var/lib/postgresql/data/pg_hba.conf*, so that it contains following:
0390
0391 --------------------------------------------------------------------------------
0392
0393 local all all peer
0394 host all all 127.0.0.1/32 md5
0395 host all all ::1/128 md5
0396
0397 --------------------------------------------------------------------------------
0398
0399 Restart PostgreSQL:
0400
0401 --------------------------------------------------------------------------------
0402
0403 # su - root
0404 # /etc/rc.d/rc2.d/S99postgres stop
0405 # /etc/rc.d/rc2.d/S99postgres start
0406
0407 --------------------------------------------------------------------------------
0408
0409 === Building the code with xlC
0410
0411 It is assumed that xlC is default compiler on the system, thus following
0412 shall make the building ok:
0413
0414 ---------------------------------------------------------------------
0415 # su - user1
0416 $ bash
0417 $ export OBJECT_MODE=64
0418 $ export CC=xlc
0419 $ export CXX=xlC
0420 $ cd /home/user1/endurox
0421 $ cmake -DDEFINE_DISABLEDOC=ON\
0422 -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/dist -DCMAKE_LIBRARY_PATH=/opt/freeware/lib .
0423 $ make
0424 $ make install
0425 ---------------------------------------------------------------------
0426
0427 Note that we use in above snippet a exported compiler variables (CC, CXX),
0428 this is due to bug in CMake 3.9 where xlC is not detected correctly.
0429 See: https://www.ibm.com/developerworks/aix/library/au-aix-install-config-apache-subversions/index.html
0430
0431 *-DCMAKE_LIBRARY_PATH=/opt/freeware/lib* is only needed in case if building for
0432 PostgreSQL support. Otherwise system libs functions fine. Also if running
0433 Enduro/X standard test set with PostgreSQL, the */opt/freeware/lib* must be
0434 present in *LD_LIBRARY_PATH*.
0435
0436
0437 === Building the code with IBM Open XL C/C++
0438
0439 It is assumed that xlC is default compiler on the system, thus following
0440 shall make the building ok:
0441
0442 ---------------------------------------------------------------------
0443 # su - user1
0444 $ bash
0445 $ export OBJECT_MODE=64
0446 $ export CC=ibm-clang_r
0447 $ export CXX=ibm-clang++_r
0448 $ cd /home/user1/endurox
0449 $ cmake -DDEFINE_DISABLEDOC=ON\
0450 -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/dist -DCMAKE_LIBRARY_PATH=/opt/freeware/lib .
0451 $ make
0452 $ make install
0453 ---------------------------------------------------------------------
0454
0455 *WARNING:* IBM Open XL C/C++ compiler currently has some issues with thread local storage
0456 as of version 17.1.0 (libraries which are linked to binary and later loaded by dlopen() has
0457 some issues with thread local stroage objects, which are accessed by loaded library against
0458 the running executable). While this problem is not solved, IBM Open XL C/C++ cannot be used.
0459 Please use previous versions of xlC/C++ or GCC.
0460
0461 === Building the code with GCC
0462
0463 If you previously have installed gcc (C/C++) compiler open source package.
0464 Then you can build Enduro/X with GCC compiler. To prepare for GCC build, do following steps:
0465
0466 ---------------------------------------------------------------------
0467 # su - user1
0468 $ bash
0469 $ cd /home/user1/endurox
0470 $ export OBJECT_MODE=64
0471 $ export CC=gcc
0472 $ export CXX=g++
0473
0474 -- ON AIX 7.1, 7.2:
0475
0476 $ export CFLAGS=-maix64
0477 $ export CXXFLAGS=-maix64
0478
0479 -- On AIX 7.3, otherwise Golang builds fails:
0480
0481 export CFLAGS="-maix64 -Wl,-brtl,-bexpall,-berok"
0482 export CXXFLAGS="-maix64 -Wl,-brtl,-bexpall,-berok"
0483
0484 $ cmake -DDEFINE_DISABLEDOC=ON \
0485 -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/dist -DCMAKE_LIBRARY_PATH=/opt/freeware/lib -DCMAKE_AR=/usr/bin/ar .
0486 $ make
0487 $ make install
0488 ---------------------------------------------------------------------
0489
0490 */usr/bin/ar* seems to be required for AIX 7.2, AIX 7.3.
0491
0492 == Unit Testing
0493
0494 Enduro/X basically consists of two parts:
0495 . XATMI runtime;
0496 . UBF/FML buffer processing.
0497 Each of these two sub-systems have own units tests.
0498
0499 === UBF/FML Unit testing
0500
0501 ---------------------------------------------------------------------
0502 $ cd /home/user1/endurox/sampleconfig
0503 $ source setndrx
0504 $ cd /home/user1/endurox/ubftest
0505 $ ./ubfunit1 2>/dev/null
0506 Running "main" (76 tests)...
0507 Completed "ubf_basic_tests": 198 passes, 0 failures, 0 exceptions.
0508 Completed "ubf_Badd_tests": 225 passes, 0 failures, 0 exceptions.
0509 Completed "ubf_genbuf_tests": 334 passes, 0 failures, 0 exceptions.
0510 Completed "ubf_cfchg_tests": 2058 passes, 0 failures, 0 exceptions.
0511 Completed "ubf_cfget_tests": 2232 passes, 0 failures, 0 exceptions.
0512 Completed "ubf_fdel_tests": 2303 passes, 0 failures, 0 exceptions.
0513 Completed "ubf_expr_tests": 3106 passes, 0 failures, 0 exceptions.
0514 Completed "ubf_fnext_tests": 3184 passes, 0 failures, 0 exceptions.
0515 Completed "ubf_fproj_tests": 3548 passes, 0 failures, 0 exceptions.
0516 Completed "ubf_mem_tests": 4438 passes, 0 failures, 0 exceptions.
0517 Completed "ubf_fupdate_tests": 4613 passes, 0 failures, 0 exceptions.
0518 Completed "ubf_fconcat_tests": 4768 passes, 0 failures, 0 exceptions.
0519 Completed "ubf_find_tests": 5020 passes, 0 failures, 0 exceptions.
0520 Completed "ubf_get_tests": 5247 passes, 0 failures, 0 exceptions.
0521 Completed "ubf_print_tests": 5655 passes, 0 failures, 0 exceptions.
0522 Completed "ubf_macro_tests": 5666 passes, 0 failures, 0 exceptions.
0523 Completed "ubf_readwrite_tests": 5764 passes, 0 failures, 0 exceptions.
0524 Completed "ubf_mkfldhdr_tests": 5770 passes, 0 failures, 0 exceptions.
0525 Completed "main": 5770 passes, 0 failures, 0 exceptions.
0526 ---------------------------------------------------------------------
0527
0528 === XATMI Unit testing
0529 ATMI testing might take some time. Also ensure that you have few Gigabytes
0530 of free disk space, as logging requires some space. Also for AIX there are
0531 small default limits of max file size. It is recommended to increase it
0532 to some 10 GB or so. To run the ATMI tests do following:
0533
0534 ---------------------------------------------------------------------
0535 $ cd /home/user1/endurox/atmitest
0536 $ nohup ./run.sh &
0537 $ tail -f /home/user1/endurox/atmitest/test.out
0538 ...
0539 ************ FINISHED TEST: [test028_tmq/run.sh] with 0 ************
0540 Completed "atmi_test_all": 28 passes, 0 failures, 0 exceptions.
0541 Completed "main": 28 passes, 0 failures, 0 exceptions.
0542 ---------------------------------------------------------------------
0543
0544 == Trouble shooting
0545
0546 === Problems with libxml2
0547
0548 You may experience issues with libxml2 version between free-ware and AIX system provided.
0549 The error looks like:
0550
0551 ---------------------------------------------------------------------
0552 $ ./cpmsrv
0553 exec(): 0509-036 Cannot load program ./cpmsrv because of the following errors:
0554 0509-150 Dependent module /opt/freeware/lib/libxml2.a(libxml2.shr_64.o) could not be loaded.
0555 0509-152 Member libxml2.shr_64.o is not found in archive
0556 ---------------------------------------------------------------------
0557
0558 It seems that linker is using /ccs/lib/libxml2.a but at runtime picks up
0559 /opt/freeware/lib/libxml2.a. One way to solve this is to replace freeware version
0560 with system provided file. That could be done in following way:
0561
0562 ---------------------------------------------------------------------
0563 # cd /opt/freeware/lib
0564 # mv libxml2.a backup.libxml2.a
0565 # ln -s /usr/ccs/lib/libxml2.a .
0566 ---------------------------------------------------------------------
0567
0568 Other way around this is to use *-DCMAKE_LIBRARY_PATH=/opt/freeware/lib* parameter
0569 for CMake, so that build links against freeware libraries.
0570
0571
0572 === Rebuilding with other compiler
0573
0574 To switch the compilers, it is recommended to clean up CMake cached files before
0575 doing configuration for other compiler, for example (switching from xlC to GCC):
0576
0577 ---------------------------------------------------------------------
0578
0579 $ rm -rf CMakeCache.txt Makefile CMakeFiles/
0580 $ export OBJECT_MODE=64
0581 $ export CC=gcc
0582 $ gcc
0583 gcc: fatal error: no input files
0584 compilation terminated.
0585 $ export CXX=g++
0586 $ export CFLAGS=-maix64
0587 $ export CXXFLAGS=-maix64
0588 $ cmake -DDEFINE_DISABLEPSCRIPT=ON -DDEFINE_DISABLEDOC=ON \
0589 -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/dist -DCMAKE_LIBRARY_PATH=/opt/freeware/lib .
0590 -- The C compiler identification is GNU 4.8.3
0591 -- The CXX compiler identification is GNU 4.8.3
0592 -- Check for working C compiler: /usr/bin/gcc
0593 -- Check for working C compiler: /usr/bin/gcc -- works
0594 -- Detecting C compiler ABI info
0595 -- Detecting C compiler ABI info - done
0596 -- Detecting C compile features
0597 -- Detecting C compile features - done
0598 -- Check for working CXX compiler: /usr/bin/g++
0599 -- Check for working CXX compiler: /usr/bin/g++ -- works
0600 -- Detecting CXX compiler ABI info
0601 -- Detecting CXX compiler ABI info - done
0602 ...
0603 ---------------------------------------------------------------------
0604
0605
0606 === Thread local storage issues
0607
0608 On AIX 6.1 there with gcc version 4.8.3 works on with __thread flag. However,
0609 it looks like On AIX 7.1 with the same gcc version __thread local storage is
0610 not working. The symptoms are that various test cases fail,
0611 for example test028 (tmqueue). While this happens it
0612 is recommended to use xlC compiler.
0613
0614
0615 == Conclusions
0616 At finish you have a configured system which is read to process the transactions
0617 by Enduro/X runtime. It is possible to copy the binary version ('dist') folder
0618 to other same architecture machines and run it there without need of building.
0619
0620 :numbered!:
0621
0622 [bibliography]
0623 Additional documentation
0624 ------------------------
0625 This section lists additional related documents.
0626
0627 [bibliography]
0628 .Resources
0629 - [[[BINARY_INSTALL]]] See Enduro/X 'binary_install' manual.
0630
0631
0632 ////////////////////////////////////////////////////////////////
0633 The index is normally left completely empty, it's contents being
0634 generated automatically by the DocBook toolchain.
0635 ////////////////////////////////////////////////////////////////