When analyzing distributed XA transaction problems it can prove useful to have a look at Oracle WebLogic’s internal transaction backup log file (TLOG). Since that file is all binary, it needs to be converted into a more human readable format first. In WebLogic 10.3, the TLOG file can be converted to text using this class:
weblogic.transaction.internal.StoreTransactionLoggerImpl
The class needs the transaction library from the modules directory and weblogic.jar in the classpath. Below is a start script for Windows. Depending on the exact WebLogic version, you may need to adjust the name of the transaction jar file. WEBLOGIC_HOME points to the WebLogic installation directory.
@echo off set WEBLOGIC_HOME=D:/Dev/weblogic10 set WEBLOGIC_TRX_MOD=%WEBLOGIC_HOME%/modules/com.bea.core.transaction_2.7.0.0.jar set WEBLOGIC_JAR=%WEBLOGIC_HOME%/wlserver_10.3/server/lib/weblogic.jar echo. echo Loading transaction library from...%WEBLOGIC_TRX_MOD% echo Loading weblogic.jar from..........%WEBLOGIC_JAR% echo. if not exist %WEBLOGIC_TRX_MOD% goto missing if not exist %WEBLOGIC_JAR% goto missing goto allok :missing echo echo One or more files are missing, please make sure paths are set correctly goto end :allok java -Xmx512m -cp %WEBLOGIC_TRX_MOD%;%WEBLOGIC_JAR% weblogic.transaction.internal.StoreTransactionLoggerImpl %* :end
Call the script with no arguments to get a list of valid parameters. You probably want to start the conversion with something like this:
tlogconv.cmd D:\domain\servers\myserver\data\store\default myserver
Depending on the TLOG size it may take quite some time to process it. Here’s a small sample output after a successful conversion:
Loading transaction library from...D:/Dev/weblogic10/modules/com.bea.core.transaction_2.7.0.0.jar Loading weblogic.jar from..........D:/Dev/weblogic10/wlserver_10.3/server/lib/weblogic.jar <18.11.2011 16:04 Uhr MEZ> <Info> <Store> <BEA-280008> <Opening the persistent file store "_WLS_myserver" for recovery: directory=D:\domain\servers\myserver\data\store\default requestedWritePolicy="Cache-Flush" fileLockingEnabled=true driver="NIO".> <18.11.2011 16:04 Uhr MEZ> <Info> <Store> <BEA-280009> <The persistent file store "_WLS_myserver" (0cec60c8-3fc4-47b5-b6a8-13a366175477) has been opened: blockSize=512 actualWritePolicy="Cache-Flush(single-handle-non-direct)" explicitIOEnforced=false records=227.> +------------------------------------------------------------------------------+ | Transaction Log Dump | | +----------------------+ | | Current time = Fri Nov 17 23:04:23 CET 2011 | | Current directory = "D:\Temp\." | +------------------------------------------------------------------------------+ | Class Name = weblogic.transaction.internal.ResourceCheckpoint | | Object = ResourceCheckpoint={{WLStore_mydomain__WLS_myserver, props= | | {}}, {WLStore_espresso_LoggingStore, props={}}} | +------------------------------------------------------------------------------+ | Class Name = weblogic.transaction.internal.ServerCheckpoint | | Object = ServerCheckpoint={WLSS7_H99_SRV01+H51BB87.domain.com:13275+wlss7+t3 | | +} | +------------------------------------------------------------------------------+