I've never worked with DB2/400. So please help me to understand this issue.
Is there no support for JDBC transactions without journaling (or Collections)?
If so, maybe it behaves similar to MS Access? Access does not provide JDBC transactions.
Thus there is a switch in OJB.properties to ignore AutoCommitExceptions related to this problem.
Maybe this could work for DB2/400 too?
cheers, Thomas
Weaver, Scott wrote:
For commitment control, I am almost positive journaling is required. I highly suggest you take Jack's suggestion use Collections as opposed to standard AS/400 libraries. I know that's a crappy, since most of us using OJB to connect to the AS400 are doing so to hook into legacy databases that were created in standard AS400 libraries using DDS or (gasp) internally described files.
Anyway:
STRSQL
CREATE COLLECTION library_name
The nice thing about this is that it creates all of your journaling pieces for you. Entries are automatically added if you create the AS400 file (table) through SQL.
*===================================* * Scott T Weaver * * Jakarta Jetspeed Portal Project * * [EMAIL PROTECTED] * *===================================*
-----Original Message----- From: Jack Collins [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 18, 2003 4:46 PM To: OJB Users List; [EMAIL PROTECTED] Subject: RE: junit test fails
I believe if your tables are stored in a SQL Collection as opposed to a typical AS400 library you will not need to issue a command to journal each table. The journal & journal receiver are used to manage commitment control.
Check out: http://publib.boulder.ibm.com/pubs/html/as400/v4r5/ic2924/index.htm?info/d
b2/rbafymst14.htm
Jack
-----Original Message----- From: Mete Kural [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 18, 2003 8:33 AM To: OJB Users List Subject: Re: junit test fails
Wow, thanks for all that information relating to DB2/400. I will
try to give those tests a try. One other problem I have is that I
have to journal every file that I need to insert records into
before using it with OJB, even if the file was created via JDBC. Do
you know if there is a way to avoid having to journal the file, or
is it absolutely necessary? Journaling seems to effect the performance badly too.
Thanks, Mete
---------- Original Message ---------------------------------- From: "Jos� Puente Ferrandis" <[EMAIL PROTECTED]> Reply-To:
"OJB Users List" <[EMAIL PROTECTED]> Date: Wed, 18 Jun 2003
17:43:01 +0200
There are several problems with DB2 400 (release 4):
(BIGINT is not a datatype in release 4 (but it is in release 5). It is
not
a big problem)
The real problem are:
* DB2 400 doesn't support nested joins (looking at your log I think that you use release 5 and that this error isn't throwed)
For instance: testcases try to execute SELECT DISTINCT A1.ROLENAME, A2.TITLE, A0.FIRSTNAME FROM PERSON A0 INNER JOIN ( PERSON_PROJECT A1 INNER JOIN PROJECT A2 ON A1.PROJECT_ID=A2.ID ) ON A0.ID=A1.PERSON_ID
But for DB2 400 it has to be SELECT DISTINCT A1.ROLENAME, A2.TITLE, A0.FIRSTNAME FROM PERSON A0 INNER JOIN PERSON_PROJECT A1 ON A0.ID=A1.PERSON_ID
INNER JOIN PROJECT A2 ON A1.PROJECT_ID=A2.ID
* One can't mix an aggregate function like COUNT in a SELECT without
GROUP
BY (I think this is the error you get, try the query in a as400 console and compare the errors)
For instance: testcases try to execute SELECT A0.ID, A0.FIRSTNAME, count(*) FROM PERSON A0 WHERE A0.FIRSTNAME LIKE ?
You can check it modifying the source code (and recompiling) of StatementsForClassImpl.java, in the prepareStatement method
insert the line: log.error("*Mete Kural*" + sql); before the line
throw eSql;
(the string "*Mete Kural*" will help you to find the query in the tests-broker.txt file)
Anybody knows any solution??????????????????????????????????
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
