A transaction means a set of instructions work to together to accept a request or to generate a response for particular request. Basically a transaction is associated with database, when any user want to access database to perform write or read operation then we can say that a transaction is being executed on database and it must ensure database integrity. Transaction uses isolated programs called transaction monitor to manage the sequence of events. It is supported by Structured Query Language (the standard database user and programing interface).
The Microsoft Exchange Server maintains Transaction Log File to store the information about change made to exchange database. The concept of transaction log file comes when the exchange developer faced problem of exchange unavailability during performing exchange backup. When any user want perform a transaction on exchange database then the particular action will be performed in Transaction Log file after that the change made to actual database which ensure that the exchange database is accessible any time. If data is directly written to database then exchange administrator need to close the database before start to back up the database it shows that the exchange is unavailable during backing up the database. Data can be stored in exchange server at three places Memory, Database Store and Log File.
A transaction is a set of instruction that all must be completed together to complete the process. If one of these operations fails then entire process will be ABORTED and if all the process are completed then it will show the message of successfully COMMIT. So if any of the event not properly executed then the final Commit event will not execute and database will never receive the transaction. In Microsoft Exchange Server uses the ESE engine to access the Exchange database now let's talk about ESE.
ESE stands for Exchange Extensible Storage Engine and is a DLL (Dynamic Link Library) used by exchange server to store the records and create indexes within the exchange database. It is an intermediate technology between Microsoft Exchange server and actual database and it ensures that the log sequence will be maintained. It means that the every log information is associates with log value which is needed to perform final change to actual database. The ESE mechanism ensures that the log sequence will be maintained and wrong sequence will not be update the database.
A transaction is originates by client request, as the client request to perform some options then multiple threads were activated immediately and all the threads were working separately and combine together to make a process and generates the response for the requested thread. Any exchange database transaction commits only when it guarantee that the data is Durable, Persistent and protected from failure some features must be in active state some of them given below.
Isolated: - Changes are not visible until all the threads were combined together.
Atomic: - It ensures that either all operation will occur or none of them will occur.
Durable: - Committed transactions are preserved in database even is database fails by any means.
Consistent: - All the required recourses must be available and then database is transformed from on state to another.
A transaction contains five subcomponents of ESE that work together to move the data into the database and to its static form these components are Log Buffer, Log Writer, IS Buffer, Version Store and Lazy Writer. Let's discuss all in detail.
Log Buffer: - As the first transaction is received immediately it is stored in Log Buffer. These log buffers are used to hold the information in memory before it is stored in transaction log file. Each buffer is of size 512 byte in size due to which we say that buffers are of unit size and fragmented into sectors.
Log Writer: - As the data is filed into buffers ESE will move from buffer to log files. This operation committed to disk in synchronous way and this process is so quick because data need to be store in log file to prevent fro system failure.
IS Buffer: - The IS Buffer is also known as Cache Buffer which is a high speed memory that initiate towards toward turning a transaction into actual data. The IS buffers are grouped into 4- Kilobyte pages allocated from memory for the purpose to access data before being written into database.
Version Store: - It is possible to write multiple transaction to single page in memory so here version store maintains structure of the page as the transaction occurs.
Lazy Writer: - At this state the ESE must flus the dirty from the memory here the lazy writer is responsible for moving the pages from cache buffer to disk because many transactions are coming at the same to time access the database so once a page get dirty then it is responsibility of lazy writer to optimize them and handle the task without overloading the disk I/O subsystem. This is the last process of transaction and data become static data and also all dirty pages are cleaned and get ready for use again.
This process provides status of current transaction log file of database copies which is being monitored by the application the following information will be displayed as given below.
File Path: - Path to the transaction log directory.
Exchange Server: - Displays the name of listed Exchange Server.
Total File Size: - Display the total file size of all transaction log file size.
Volume Usage: - It shows the used data volume in numerical and graphical way as the total size of the transaction log file.
In this blog I have tried to cover entire information about transaction log file in exchange server and also discussed related terms like what is transaction log, what is ESE and use of log file in Microsoft exchange server. I hope this effort will be helpful for you and if you have any query then you can contact to us.