Results 1 to 5 of 5
  1. #1
    Join Date
    Oct 2013
    Posts
    6

    Unanswered: DB2 connection problem (4499), temporarily solved by restart

    DB2 v9.7, Fix Pack 6
    DB2 Advanced Enterprise Server Edition
    DB2 Connect Server
    Windows 7 Professional, Service Pack 1

    Caveat: I'm a developer, not a DBA, but I've been pressed into duty doing some DB2 work in my company, and I'm facing a strange connection problem in the DB2 system in my local development environment.

    I recently installed DB2. (I had to uninstall it then reinstall it, which I did using db2unins.) I have created a database that appears to work fine under most circumstances. I can connect to it from the Command Line Processor. I can connect to it from the Command Editor. I can connect to it from the Control Center. No problems.

    But sometimes I can't connect to it using clpplus (which is important for us because we have ant scripts that use clpplus to manage updates to the database). For example, if I run this command from a command prompt:

    clpplus db2inst1/password@localhost:50000/CBG

    I sometimes get this error:

    [jcc][t4][2030][11211][3.64.82] A communication error occurred during operations
    on the connection's underlying socket, socket input stream,
    or socket output stream. Error location: Reply.fill() - insufficient data (-1).
    Message: Insufficient data. ERRORCODE=-4499, SQLSTATE=08001

    Also, sometimes certain third party tools, such as DB Solo, can't connect to it either.

    I've confirmed from other posts that the following settings are correct:

    from db2set -all:
    DB2COMM=TCPIP

    from dbm config:
    TCP/IP Service name (SVCENAME) = db2c_DB2
    and my services file contains:
    db2c_DB2 50000/tcp

    Also, turning Windows firewall off doesn't help.

    But here's what does solve the problem, temporarily: Restarting my computer. Then I can connect from clpplus for a while. At some point, it stops working again.

    I've tried stopping and starting the various DB2 Windows services to see if that helps. But no, I actually have to turn the system off and back on.

    So the two key clues seem to be:
    --can connect effortlessly in most ways, but not from clpplus and some third party tools.
    --temporarily fixed by restart

    Any ideas . . .?

    Thanks,
    Mark B.

  2. #2
    Join Date
    Jun 2003
    Location
    Toronto, Canada
    Posts
    5,516
    Provided Answers: 1
    Seems to be the JCC driver problem. Since DB2 9.7 fix pack 6 is more than one year old, the first thing to try would be installing the latest fix pack (8).
    ---
    "It does not work" is not a valid problem statement.

  3. #3
    Join Date
    Oct 2013
    Posts
    6
    Your suggestion prompted me to look into the driver situation more closely. I found that when I use the DB2Jcc utility to test my drivers, it works for the type 2 driver but fails for the type 4 driver:

    type 2
    >java com.ibm.db2.jcc.DB2Jcc -url jdbc:db2:CBG -user db2inst1 -password <password>

    [jcc][10516][13709]Test Connection Successful.

    type 4:
    >java com.ibm.db2.jcc.DB2Jcc -url jdbc:db2://localhost:50000/CBG -user db2inst1 -password <password>

    [jcc][10512][13714]Failed to create connection.
    SQLCODE: -4499
    SQLSTATE: 08001

    Does this mean that clpplus uses the type 2 driver after a restart, then at some point switches to a type 4 driver? That Command Editor and Control Center always use the type 2 driver . . .?

    Thanks,
    Mark B.

  4. #4
    Join Date
    Oct 2013
    Posts
    6
    FYI, when I turn tracing on when running the DB2Jcc utility for type 4, this is what I see:

    [jcc] BEGIN TRACE_DIAGNOSTICS
    [jcc][Thread:main][SQLException@159b5217] java.sql.SQLException
    [jcc][Thread:main][SQLException@159b5217] SQL state = 08001
    [jcc][Thread:main][SQLException@159b5217] Error code = -4499
    [jcc][Thread:main][SQLException@159b5217] Message = [jcc][t4][2030][11211][3.64.82] A communication error occurred during
    operations on the connection's underlying socket, socket input stream,
    or socket output stream. Error location: Reply.fill() - insufficient data (-1). Message: Insufficient data. ERRORCODE=-449
    , SQLSTATE=08001
    [jcc][Thread:main][SQLException@159b5217] Stack trace follows
    com.ibm.db2.jcc.am.DisconnectNonTransientConnectio nException: [jcc][t4][2030][11211][3.64.82] A communication error occurred
    during operations on the connection's underlying socket, socket input stream,
    or socket output stream. Error location: Reply.fill() - insufficient data (-1). Message: Insufficient data. ERRORCODE=-449
    , SQLSTATE=08001
    at com.ibm.db2.jcc.am.bd.a(bd.java:321)
    at com.ibm.db2.jcc.t4.a.a(a.java:501)
    at com.ibm.db2.jcc.t4.a.a(a.java:496)
    at com.ibm.db2.jcc.t4.x.b(x.java:334)
    at com.ibm.db2.jcc.t4.x.c(x.java:360)
    at com.ibm.db2.jcc.t4.x.c(x.java:473)
    at com.ibm.db2.jcc.t4.x.v(x.java:1241)
    at com.ibm.db2.jcc.t4.y.a(y.java:47)
    at com.ibm.db2.jcc.t4.b.c(b.java:1349)
    at com.ibm.db2.jcc.t4.b.b(b.java:1221)
    at com.ibm.db2.jcc.t4.b.b(b.java:788)
    at com.ibm.db2.jcc.t4.b.a(b.java:760)
    at com.ibm.db2.jcc.t4.b.a(b.java:421)
    at com.ibm.db2.jcc.t4.b.a(b.java:396)
    at com.ibm.db2.jcc.t4.b.<init>(b.java:334)
    at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection( DB2SimpleDataSource.java:232)
    at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection( DB2SimpleDataSource.java:198)
    at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:4 75)
    at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:1 16)
    at com.ibm.db2.jcc.DB2Jcc.getConnectionForConnect(DB2 Jcc.java:506)
    at com.ibm.db2.jcc.DB2Jcc.runConnectVerifyFromCommand Line(DB2Jcc.java:378)
    at com.ibm.db2.jcc.DB2Jcc.main(DB2Jcc.java:312)
    [jcc] END TRACE_DIAGNOSTICS

  5. #5
    Join Date
    Oct 2013
    Posts
    6
    Well, it looks like the problem concerns localhost. If I use this URL:

    jdbc:db2://<myComputerName>:50000/CBG

    instead of the localhost URL:

    jdbc:db2://localhost:50000/CBG

    The type 4 driver works fine.

    I was under the impression that DNS handled name resolution for localhost in Windows 7, so it's commented out in the hosts file. Even if I uncomment it, it doesn't work.

    At any rate, it's not a DB2 problem or a driver problem, but a name resolution problem, so I can live with that.

    Thanks for the hint.

    Mark B.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •