XADisk runs over a JVM and interacts with the underlying file-systems. Local and remote applications invoke XADisk to perform disk I/O operations transactionally. Applications' files/directories and XADisk's own System Directory is located on the underlying file system tree.
During bootup, XADisk recovers from the last shutdown/crash using the information in the System Directory (transaction logs, backup files etc). Once XADisk is ready, new sessions/connections are created to perform disk I/O operations inside a transaction. XADisk terminates its lifecycle either via a systematic shutdown, or a crash.
A typical XA transaction can include multiple instances of XADisk running on multiple machines along with
any other XA supporting database instances, JMS systems etc. This implies that an application, using XA transaction, can perform operations over all of these XA-supporting systems in an
all-commit or all-rollback manner.
MDBs can register themselves to receive specific file/directory change messages from an specified XADisk instance. This XADisk instance could either be a local or a remote one.