Total Pageviews

2016/08/06

[Websphere] WTRN0006W: Transaction has timed out after 120 seconds

Problem
I am deploying WAR in WAS 7. 
I got this error message as I do test:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[2016-05-16 15:28:23][INFO][Non-deferrable Alarm : 1][Line:1709][com.ibm.ws.tx.jta.TimeoutManager.logToJSR47Logger]WTRN0006W: Transaction 00000154B8756C5F00000003618D9380FB564FCFE7EE45F38E06607A9BFB0CE57778367B00000154B8756C5F00000003618D9380FB564FCFE7EE45F38E06607A9BFB0CE57778367B00000001 has timed out after 120 seconds.
[2016-05-16 15:28:23][INFO][Non-deferrable Alarm : 1][Line:1709][com.ibm.ws.tx.jta.TimeoutManager.logToJSR47Logger]WTRN0124I: When the timeout occurred the thread with which the transaction is, or was most recently, associated was Thread[SimpleAsyncTaskExecutor-1,5,main]. The stack trace of this thread when the timeout occurred was: 
 java.io.RandomAccessFile.readBytes(Native Method)
 java.io.RandomAccessFile.read(RandomAccessFile.java:368)
 org.apache.fontbox.ttf.BufferedRandomAccessFile.fillBuffer(BufferedRandomAccessFile.java:122)
 org.apache.fontbox.ttf.BufferedRandomAccessFile.read(BufferedRandomAccessFile.java:160)
 org.apache.fontbox.ttf.RAFDataStream.read(RAFDataStream.java:162)
 org.apache.fontbox.ttf.TTFDataStream.read(TTFDataStream.java:263)
 org.apache.fontbox.ttf.TTFDataStream.readString(TTFDataStream.java:91)
 org.apache.fontbox.ttf.TTFDataStream.readString(TTFDataStream.java:64)
 org.apache.fontbox.ttf.TTFParser.readTableDirectory(TTFParser.java:232)
 org.apache.fontbox.ttf.TTFParser.parse(TTFParser.java:139)
 org.apache.fontbox.ttf.TTFParser.parse(TTFParser.java:87)
 org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.addTrueTypeFont(FileSystemFontProvider.java:502)
 org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.scanFonts(FileSystemFontProvider.java:246)
 org.apache.pdfbox.pdmodel.font.FileSystemFontProvider.<init>(FileSystemFontProvider.java:225)
 org.apache.pdfbox.pdmodel.font.FontMapperImpl$DefaultFontProvider.<clinit>(FontMapperImpl.java:132)
 java.lang.J9VMInternals.initializeImpl(Native Method)
 java.lang.J9VMInternals.initialize(J9VMInternals.java:236)
 org.apache.pdfbox.pdmodel.font.FontMapperImpl.getProvider(FontMapperImpl.java:151)
 org.apache.pdfbox.pdmodel.font.FontMapperImpl.findFont(FontMapperImpl.java:415)
 org.apache.pdfbox.pdmodel.font.FontMapperImpl.findFontBoxFont(FontMapperImpl.java:378)
 org.apache.pdfbox.pdmodel.font.FontMapperImpl.getFontBoxFont(FontMapperImpl.java:352)
 org.apache.pdfbox.pdmodel.font.PDType1Font.<init>(PDType1Font.java:115)
 org.apache.pdfbox.pdmodel.font.PDType1Font.<clinit>(PDType1Font.java:76)
 java.lang.J9VMInternals.initializeImpl(Native Method)
 java.lang.J9VMInternals.initialize(J9VMInternals.java:236)
 org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:62)
 org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:123)
 org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60)
 org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:815)
 org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:472)
 org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:446)
 org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149)
 org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:189)
 org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:208)
 org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:139)
 org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:94)


How To
Here has a workaround approach, but you need to figure out the reason why your program had spent just a long time to execute. If your program really need more time to execute, you should log into WAS administration console to modify the value of Total transaction lifetime timeout and Maximum transaction timeout.

The configuration steps are as follows:

  • Step1. Log in to administration console
  • Step2. WebSphere Application Server 7.0: Click Servers > Server Types > WebSphere application servers > server_name > Container Services > Transaction Service.
  • Step3. Increase the Total transaction lifetime timeout. The default value is 120.
  • Step4. Increase the Maximum transaction timeout. The default value is 300 seconds.



  • Step5. Save your changes and restart WAS


Reference
[1] https://stackoverflow.com/questions/23004900/how-to-resolve-this-timeout-exception-in-was-7

No comments: