[JBoss JIRA] Created: (JBTM-759) Errors in the Failure Recovery Guide
by Mauro Molinari (JIRA)
Errors in the Failure Recovery Guide
------------------------------------
Key: JBTM-759
URL: https://jira.jboss.org/browse/JBTM-759
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Documentation
Reporter: Mauro Molinari
Priority: Minor
While reading the Failure Recovery Guide I found some errors:
- page 7: line 3 seems to be victim of an erroneous copy-and-paste
- page 11: line 3 of the pseudo code for the first pass of AtomicAction is not clear, since the vector has been just created and transactions are added to it within the same loop body...
- page 24: the chapter is named "Chapter 1", while it should be "Chapter 2"
- page 30: I think "Configuration options" should be "Chapter 3"; moreover, there's no warning about the fact that the table is deprecated (because it shows the configuration options with the old names).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (JBTM-761) Errors in JBossTS JTA documentation
by Mauro Molinari (JIRA)
Errors in JBossTS JTA documentation
-----------------------------------
Key: JBTM-761
URL: https://jira.jboss.org/browse/JBTM-761
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Documentation
Affects Versions: 4.11.0
Reporter: Mauro Molinari
Priority: Minor
While reading the JBossTS JTA documentation, I found the following problems:
Administration Guide:
- page 7: in the "ArjunaTA runtime information" chapter there's a typographic error ("<name>EnvironmentBean classes")
- page 8: in the "Configuring the Recovery Manager" chapter I think that "arjuna.properties" should rather be "jbossts-properties.xml"
Programmers Guide:
- page 8: in the last paragraph there's a repetition: "and contains also contains a mapping of the X/Open XA protocol"
- page 12: in the "Resource enlistment" chapter, second paragraph, there: "See [? missing reference?] for details on how the implementation of the XAResource can affect recovery..."
Moreover, all the chapters are numbered as "Chapter 1".
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (JBTM-758) Errors in documentation: Transaction Core Programmers Guide
by Mauro Molinari (JIRA)
Errors in documentation: Transaction Core Programmers Guide
-----------------------------------------------------------
Key: JBTM-758
URL: https://jira.jboss.org/browse/JBTM-758
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Documentation
Affects Versions: 4.11.0
Reporter: Mauro Molinari
Priority: Minor
I'm going to highlight some errors I found during the reading of the Transaction Core Programmers Guide (TX-PG-5/11/10):
- page 31: when describing LogManager: "The *shared* parameter only has meaning if *ot* is RECOVERABLE"; actually the two parameters are named *objectModel* and *ObjectType* respectively in the caption of the paragraph
- page 36: in the example, I think the line with "A.add(new ShutdownRecord(...)" is not pertinent
- page 64: the last sentence says that the issues described in that paragraph will be addressed in the next section, but the next section is about configuration
- page 65: the second paragraph has some typographic problem (<module>propertyManager, <name>EnvironmentBean)
- page 69: in the second paragraph: "All of the implementations are derived from the ObjectStore interface"; actually, ObjectStore is a class to extend, not an interface to implement
Lastly, an observation about the depiction of finalizers as "destructors": in this guide, the finalize method is considered a destructor. However, in Java it is not actually. Anyway, it's not clear if calling terminate() in the finalize() is mandatory or not. If so, why isn't it called directly in com.arjuna.ats.arjuna.StateManager.finalize()? If not, I have another doubt. In all the examples of user classes (i.e. page 60) the finalize() is implemented as:
public void finalize()
{
super.terminate();
}
However, super.finalize() is not called. Isn't it risky? I mean, in this way the code in com.arjuna.ats.arjuna.StateManager.finalize() is never called... I think the documentation should be more clear on this subject.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (JBTM-314) JDBCStore.getJDBCClass does not work for some JDBC drivers
by Jeremy Stone (JIRA)
JDBCStore.getJDBCClass does not work for some JDBC drivers
----------------------------------------------------------
Key: JBTM-314
URL: http://jira.jboss.com/jira/browse/JBTM-314
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Transaction Core
Reporter: Jeremy Stone
Implementation of com.arjuna.ats.internal.arjuna.objectstore.JDBCStore getJDBCClass(Connection) breaks if JDBC driver DatabaseMetaData getDriverName() is not consistent between driver releases or driver implementations (e.g. SQLServer), and tries to load illegally named classes if first word of reported driver name contains illegal characters (e.g. MySql).
Maybe a pluggable strategy for determination of the class should be used instead.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (JBTM-527) Adding PMD to build system
by Romain PELISSE (JIRA)
Adding PMD to build system
---------------------------
Key: JBTM-527
URL: https://jira.jboss.org/jira/browse/JBTM-527
Project: JBoss Transaction Manager
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: Build System
Affects Versions: future
Reporter: Romain PELISSE
Priority: Trivial
Attachments: adding-pmd-as-qa-tools.patch
I have a small patch that offers an integration of PMD (http://pmd.sourceforge.net/) into the current build system of JBoss Transaction. Obviously, this is not an highly important feature request, having PMD checking java code is just nice to have. Anyway, as your project is not likely to integrate this patch quickly, I also published the result of a PMD run on the current source code:
http://belaran.eu/jbosstm-pmd.html
(this way you can already check what PMD find out without setting up the tool itself)
I integrated PMD into the qa/ directory which seems the most appropriate directory at first glance... An other strategy would have been to define a "pmd" task inside some common build file ( maybe common/build.xml but it does not look like it), and then have each module call for this anttask with the appropriate java source folder... If you fell this approach is better, please let me know, i'll adapt my patch.
All "violation" detected by PMD are not relevant, a pmd report is just a set of hints of something that may be a bad idea or could be improved.
PMD rulesets (what kind of violation is looking for) are defined in the qa/pmd.xml. In this file you can easily include/exclude rules, and you can use it to configure the PMD Eclipse Plugin.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (JBTM-837) Transaction deadlock when NoSuchElementException is thrown from AsyncStore.doWork()
by Tom Waterhouse (JIRA)
Transaction deadlock when NoSuchElementException is thrown from AsyncStore.doWork()
-----------------------------------------------------------------------------------
Key: JBTM-837
URL: https://issues.jboss.org/browse/JBTM-837
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 4.14.0
Environment: Ubuntu 64-bit Linux/JBoss JTA 4.14.0/Hibernate 3.6.1/Infinispan 3.4.0.CR2/Spring 3.0.5/MySQL 5.1
Reporter: Tom Waterhouse
Attachments: arjuna-deadlock-trace.txt, default-jbossts-properties.xml
Our product has a scheduled job that runs every 30 minutes. Callable instances are added to an ExecutorService instance which is currently configured for 16 threads.
Our JBoss JTA implementation is using CacheStore as the object store (default-jbossts-properties.xml attached).
After some time a NoSuchElementException is thrown from AsyncStore.doWork(). That exception is somehow blocking other transaction thread's execution.
The Java thread dump is attached as well.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (JBTM-817) Automate execution of XTS crash recovery tests
by Andrew Dinn (JIRA)
Automate execution of XTS crash recovery tests
----------------------------------------------
Key: JBTM-817
URL: https://jira.jboss.org/browse/JBTM-817
Project: JBoss Transaction Manager
Issue Type: Task
Security Level: Public (Everyone can see)
Components: XTS
Affects Versions: 4.13.0
Reporter: Andrew Dinn
Fix For: 4.15.0
The XTS codebase includes crash recovery tests in the sar/tests subtree which currently need to be executed manually. This needs to be changed so that the current tests can be run automatically via Hudson. After this has been completed it should then be possible to extend the test suite to exercise scenarios not yet covered by the current range of tests.
The tests themselves employ a web service client and several web services which are deployed to the app server with the test code. The behaviour of the client and web services can be scripted so this single deployment is capable of exercising all the scenarios which are required in order to lead up to a crash. However, automation is not straightforward for several reasons:
Execution of the tests requires starting up an app server twice, the first time so that it can be crashed at a specific point during execution then a second time so that recovery processing can be checked. The JBossTS codebase includes some utilities which can be used to help manage startup and shutdown of the JBoss AS instance.
Crashing of the app server and tracing of execution during the first and second runs requires the use of the Byteman agent and Byteman rules. Suitable Byteman rule scripts exist for all the current tests, However, trace output is currently written to a file and the output is verified by eyeball. Timing variations mean that this output does not always have a fixed format. Also, validation requires checking that identifiers printed during the first and second run match up. It would be worth investigating an alternative way of collecting and validating this trace information e.g. using the dtest package contributed to Byteman by Jonathan Halliday. dtest has been used to test similar scenarios in the JBossTS JTA - XTS bridge code (the latter is in the txbridge source tree).
Timing variations also mean that execution of recovery code may needs to be manipulated using Byteman rules in order to ensure that the circumstances specified in the test scenario are actually met. This can involve introducing delays or dropping messages to ensure that events are handled in a specific order. The existing Bbyteman scripts include rules to achieve this where needed by the current tests. However, once again, this complicates automation of the trace validation process since it requires some of the traced operations to be discounted until an occurrence which has been engineered is identified.
In the longer run the tests will need to be extended in two dimensions.
Firstly, the current test locates the client, web services and transaction coordinator in one application server. The client, web services and transaction coordinator need to be tested when they are deployed in different app servers in various possible combinations and the correct handling of a crash by one or more of these app servers needs to be validated.
Secondly, the current tests only test normal recovery situations. It will also be necessary to simulate failures in the recovery process, either by scripting the web service behaviour or by injecting faults using Byteman rules.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month