It's all about the answers!

Ask a question

Fix CRJAZ1579E - "Execution failed due to a distribution protocol error that caused deallocation of the conversation. A DRDA Data Stream Syntax Error was detected" ?

Caspar Krieger (17257) | asked Jan 03 '13, 4:59 a.m.
retagged Jan 03 '13, 3:03 p.m. by Laura W. Hinson (16126)
I'm getting an error trying to test the connection to DB2 on step 3 of the JTS setup wizard for RTC 4.0.1:

The configuration test resulted in errors. Resolve the errors to continue. For more details, open the help system and search for CRJAZ1579E.
[jcc][t4][2034][11148][4.14.88] Execution failed due to a distribution protocol error that caused deallocation of the conversation. A DRDA Data Stream Syntax Error was detected. Reason: 0x3. ERRORCODE=-4499, SQLSTATE=58009
[jcc][t4][2034][11148][4.14.88] Execution failed due to a distribution protocol error that caused deallocation of the conversation. A DRDA Data Stream Syntax Error was detected. Reason: 0x3. ERRORCODE=-4499, SQLSTATE=58009
(yes, that last paragraph is actually repeated twice)

I've installed RTC 4.0.1 on Windows Server 2008 x64, am using Tomcat, and have followed all the steps to create the databases, grant access, etc in the DB2 server (on another Win Server 2008 x64 machine). DB2 is a fresh install from the official site, v9.7 (fixpack 7, I think). Changing the JDBC location to an incorrect IP or port changes the error message as expected, but changing the username or password doesn't.

Googling for the error + errorcode + sqlstate gives me which says it might be an out of date JDBC driver for DB2. I have no idea which JDBC driver RTC 4.0.1 includes because I couldn't find one in the jre/ directory of RTC, but I managed to find C:\Program Files\IBM\SQLLIB\java\db2jcc4.jar on the DB2 server and I put that into C:\IBM\jazz\server\db2 (using the instructions on the previous page, I can see that this has a version of "
IBM Data Server Driver for JDBC and SQLJ 4.13.80"). I restarted the server, of course.

When that didn't help, I used the workaround described in to specify the JDBC driver explicitly by setting an environment variable of DB2_ABSPATH=C:\IBM\jazz\server\db2 and restarted the server from a command prompt which I made sure had the DB2_ABSPATH variable set.

That also didn't help, and I'm pretty much out of ideas. How can I fix this?

Karl Weinert commented Jan 03 '13, 8:22 a.m.

Is your  "JDBC location" string correct?  I've seen a lot of odd errors with the wrong syntax, especially when copying and pasting the example string from the setup page.

Caspar Krieger commented Jan 03 '13, 9:05 p.m. | edited Jan 03 '13, 9:08 p.m.

@Kweinert: I haven't used JDBC in a while, but I followed the given format: //w.x.y.z:50000/JTS:user=db2userjts;password={password};
where w.x.y.z is the ip and JTS is the database I created in DB2 - is that right?

Karl Weinert commented Jan 04 '13, 9:49 a.m.

That JDBC location looks ok (just make sure you typed it in manually rather than copying the example and modifying it)
Maybe try the test against a different database?
Assuming you have one for JTS and one for CCM  you can run the test against the CCM one to be sure it isn't a problem with the database itself.

If that does not work it would probably be beneficial to open a PMR if you can.

Karl Weinert commented Jan 04 '13, 9:49 a.m.

Not sure if it helps for this issue but here's some info I found on the drivers.
I found db2jcc4_internal.jar in two locations in my 4.0.1 install.

I got the version of that driver by running this commmand against the driver on my DB2 host.
>java -cp .\db2jcc4_internal.jar -version
IBM Data Server Driver for JDBC and SQLJ 4.14.88

This technote lists the diver versions for each fix pack.
FP7 includes 4.14.113 and FP6 includes  4.14.88
So it looks like the driver we supply is only one version behind.

Karl Weinert commented Jan 04 '13, 3:59 p.m.

I did a test with DB2 7 Fix pack 7 and was able to test the database connection without any errors. So it does not appear to be related to the driver we are using anyway.

Caspar Krieger commented Jan 06 '13, 9:22 p.m.

Yep, looks like that version is high enough to avoid the problems in that link I found. Just to be sure, I tried replacing db2jcc4_internal.jar (which was actually in bundles/93/ for me, but is still v4.14.88) with a renamed version of the FP7 official db2jcc4.jar, and still got the same error.

I also tried getting JTS setup to use the CCM database, and still got the same error. Manually typing in the JDBC connection string from scratch didn't help either.

I also checked that I'm able to use the db2userjts userid to log in to db2's control center - that works fine, and if I change the password that doesn't work.

I will open a PMR.

showing 5 of 6 show 1 more comments

One answer

permanent link
Caspar Krieger (17257) | answered Jan 07 '13, 1:34 a.m.
Solved! It was a networking routing/configuration error.

Before opening the PMR, I decided to test if my laptop could connect to the DB2 database; it was able to.

For some reason, with certain incorrect IPs, the error message was correctly "unable to connect to IP x.x.x.x", but with the particular (entirely valid, and reachable from other machines) IP I was using, and some IPs above and below it (but crucially not when deleting the last digit of the "correct" IP, which is what I tried), that arcane error message appeared.

Once I realised that pings to the DB server IP from the RTC server were timing out (obvious thing to try in hindsight, but the error message situation threw me off), I realized it must been a network thing; once the networking issue was fixed and pings got through fine, I got the expected "test successful but tables don't exist yet" message.

Hopefully this helps someone else out in future.

Your answer

Register or to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.