You can use some environment variables to tailor the LIXA configuration to your needs. Some environment variables applies only to one component, others apply to both client and server LIXA components.
This environment variable can be used to specify an alternate
configuration file for your application.
Example: if you are trying a new configuration, but you
wont to modify the default
etc/lixac_conf.xml
file, you can export the variable before program execution:
export LIXA_CONFIG_FILE=/tmp/my_lixac ./myapp
myapp will be executed using the configuration
stored inside
/tmp/my_lixac
instead of the configuration stored inside the default
etc/lixac_conf.xml
client configuration file.
This environment variable must be used only in a development
environment: after the program crossed the
crash point as many times as the value of
this variable (default = 1), the process crashes. See
environemt variable
LIXA_CRASH_POINT
too.
This environment variable must be used only in a development
environment: it specifies the crash point inside the LIXA
code. The acceptable values for this variable are listed
inside the C header file
src/common/lixa_crash.h
LIXA project uses
the abort()
function to simulate a soft crash.
This environment variable may be very useful to deal with some specific requirements, but it changes how the automatic recovery process works and the final result could be strange or "unpredictable" if you didn't understand the whole picture.
Use this environment variable to associate a specific transactional job identifier instead of the automatically assigned one. See the section called “Automatic recovery concepts” and the section called “Workload balanced environments” for more information.
This environment variable must be used
to specify the transactional profile associated to the Application
Program.
If you do not specify a valid transactional profile, the first
profile listed inside
etc/lixac_conf.xml
will be applied.
See the section called “Client configuration explanation” too.
This environment variable specifies which internal modules must
be traced at run-time.
The C header file
src/common/lixa_trace.h
contains the exadecimal value of every internal module; if you
want to trace two or more modules you have make the logical OR
among all the desired values.
Supposing you are interested in tracing what happens inside
"server listener",
"server manager" and
"server status" modules.
Looking at file
src/common/lixa_trace.h
:
#define LIXA_TRACE_MOD_SERVER_LISTENER 0x00000004 #define LIXA_TRACE_MOD_SERVER_MANAGER 0x00000008 #define LIXA_TRACE_MOD_SERVER_STATUS 0x00000010
the resulting value is 0x0000001C:
export LIXA_TRACE_MASK=0x00000010
The "trace all" value is 0xffffffff:
export LIXA_TRACE_MASK=0xffffffff
Too much tracing is dangerous: it slows down your system and possibly fills-up your filesystems.
Establishing the internal modules that must be traced is a typical troubleshooting task you can acquire working with LIXA project. In the section called “Tracing” you can discover some useful information related to the usage of this environment variable.