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 (17●2●5●7)
| asked Jan 03 '13, 4:59 a.m.
retagged Jan 03 '13, 3:03 p.m. by Laura W. Hinson (161●2●6)
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:
(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 http://www-01.ibm.com/support/docview.wss?uid=swg21598736 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 "com.ibm.net.SocketKeepAliveParameters
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 https://jazz.net/library/article/1173/ 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?
showing 5 of 6
show 1 more comments
|
One answer
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
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.
Comments
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.
@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?
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.
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.
server\tomcat\work\Catalina\localhost\jts\eclipse\configuration\org.eclipse.osgi\bundles\94\1.cp
server\tomcat\work\Catalina\localhost\ccm\eclipse\configuration\org.eclipse.osgi\bundles\216\1.cp
I got the version of that driver by running this commmand against the driver on my DB2 host.
>java -cp .\db2jcc4_internal.jar com.ibm.db2.jcc.DB2Jcc -version
IBM Data Server Driver for JDBC and SQLJ 4.14.88
This technote lists the diver versions for each fix pack.
http://www-01.ibm.com/support/docview.wss?uid=swg21363866
FP7 includes 4.14.113 and FP6 includes 4.14.88
So it looks like the driver we supply is only one version behind.
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.
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.