I manually inserted a couple of records. e.g.:
INSERT INTO Parent VALUES ('test1');
INSERT INTO Child (id, name, value, parentid) VALUES ('test1:name1', 'name1', 'value1', 'test1');
And that was enough data to recreate the problem. The test was then called with
java com.ingenta.acs.test.ejb.CMRTest test1 30 100
- that's with a parent pk of test1, 30 threads each doing 100 loops. The classpath has test.jar, all the necessary JBOSS client jars, and a jndi.properties containing a provider url.
For every successful record it will print the returned name/value pairs from the child. For every failure it will print the error message (the full stack trace should be in the server log).
Thanks for having a look at this - I've had to wait for our firewall to be opened up before I can build the latest 3.2 code from CVS.
Andrew
Simone Milani wrote:
Hi Andrew,
I am trying your test, do you have a script to populate the tables and the parameters for the CMRTestClass?
Thanks
Simone ----- Original Message ----- From: "Andrew May" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, March 31, 2003 2:46 PM Subject: Re: [JBoss-user] CMR Error under load
I don't see a RC5 release on sourceforge, so I assume this means I have to
build it from
CVS. I'll give that a go, but as I've never tried it before it could take
me a while
(never actually used CVS I confess) - still it's something I ought to be
able to do.
If anyone has a chance to run my test on this version of JBoss I'd be
grateful - it'll
probably be at least a day before I get that far.
Andrew
Alex Loubyansky wrote:
Could you, please, try it on JBoss-3.2.0RC5 which is the current version. I have a testcase that failed in my old 3.2 and passes in current 3.2.0RC5.
Please, try it.
alex
Monday, March 31, 2003, 12:37:32 PM, Andrew May wrote:
AM> OK, here's a test case that recreates the problem for me.
AM> I've attached test.jar which is the ejb-jar and also includes the
test case class. Also
AM> attached is test-src.jar which has the source code for the EJBs and
the test. I'm afraid
AM> I've been hacking around existing build scripts to create the test
so I've not included
AM> any way of building the code. I'm using an older version of XDoclet.
AM> There are 2 entities, Parent and Child. The CMRTest class creates
multiple threads to call
AM> the getPropertyMap() method on the Parent. This method iterates
around the CMR collection
AM> of children, and when multiple threads are run causes occasional CMR
errors.
AM> In jbosscmp-jdbc.xml the datasource is java:/jdbc.testPool and the
mapping is for Oracle8.
AM> My test doesn't create the test data, so I've manually inserted data
before running the
AM> test. I've found that it's only necessary to have one child record
to recreate the problem.
AM> The CMRTest class takes 3 arguments - the parent primary key, number
of threads, number of
AM> loops per thread. e.g.:
AM> java com.ingenta.acs.test.ejb.CMRTest test1 30 100
AM> 30 threads with 100 loops always causes at least one CMR error for
me. I've tested on two
AM> setups, both of which cause errors.
AM> 1) Solaris, Sun JDK1.3.1, JBoss 3.2.0RC3, Oracle 8.1.7.2.0 AM> 2) Linux (Mandrake 9), Sun JDK1.4.1, JBoss 3.2.0RC4, Oracle
8.1.7.2.0
AM> jboss.xml in the ejb-jar declares all get* methods to be read-only.
If I remove this the
AM> CMR error does not occur, but the test goes a lot slower.
AM> Let me know if there's any more information you need.
AM> Andrew
AM> Dain Sundstrom wrote:
I fixed a similar bug in this stuff for Sacha on March 19th (version 1.43.2.13). The problem was registering for transaction
synchronization
on the transaction in the context and not the transaction associated with the current thread. This bug created the type of problem you have described, but the fix should bin in 3.2 rc4.
Until someone can create a test case that reproduces the new bug, I don't think there is much we can do.
-dain
On Friday, March 28, 2003, at 10:01 AM, Alex Loubyansky wrote:
Hello Andrew,
you are not alone complaining about this. But nobody could produce a testcase that fail at least eventually.
I am trying to reproduce it but can't for the moment.
I have a Parent and 1000 of related Child entities. I have 100 concurrent threads finding parent by primary key, getting children and iterating through relation collection. I use standard container for both Parent and Child. In jboss.xml get methods are read-only for both Parent and Child.
Any more info you can provide? Again a testcase would be great. Let it fail not each time but eventually.
Thank you, alex
-------------------------------------------------------
This SF.net email is sponsored by: ValueWeb: Dedicated Hosting for just $79/mo with 500 GB of bandwidth! No other company gives more support or power for your dedicated server
http://click.atdmt.com/AFF/go/sdnxxaff00300020aff/direct/01/
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user
