IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.



#Automation


#Applicationintegration
#webMethods
#Integration
 View Only
Expand all | Collapse all

Can't disable JDBC adapter connection

  • 1.  Can't disable JDBC adapter connection

    Posted 05/07/26 07:58 AM

    Hello dears,

    We've faced an issue in our production environment that happens randomly and suddenly.

    We're in IS IS_10.3_Core_Fix31 + JDBC_10.3_Fix20. I know they're old, but we're already on a version migration project to 11.1.

    For some reason, an adapter service thread gets hanged and the flow service won't finish even after hours.

    When we try to disable the JDBC adapter connection through IS Admin linked with it, we click the "Yes" button  but nothing happens.

    On "Server > Statistics > System Threads", I try to cancel and kill the thread but nothing happens too.

    The only way I found to fix it is by restarting the I.S instance.

    Please, have you ever faced this issue? Is there any specific configuration we must set in a JDBC Adapter Settings so this won't happen?

    Thank you in advance!



    ------------------------------
    Renan Kaic Lopes
    ------------------------------


  • 2.  RE: Can't disable JDBC adapter connection

    Posted 05/08/26 12:48 AM

    Hi Renan,

    This could be due to database-side blocking or a hanging query. When this situation occurs, it would be good to check the database at that time to see if the session ended up in a deadlock scenario or long table locks. Another possible reason could be stale connections.

    To help mitigate this, you can configure the connection timeout and read timeout properties. For stale connections, consider setting appropriate block and expire timeout values as well.

    Regards,
    Satish



    ------------------------------
    Satish Aruchamy
    Sr Solution Architect
    Tata Consultancy Services
    Minneapolis MN
    ------------------------------



  • 3.  RE: Can't disable JDBC adapter connection

    Posted 05/08/26 07:30 AM

    Dear Satish!

    Thank you very much for your response! Next time this happens, I'll check with the destination system DBA .

    Regarding the connection timeout and read timeout properties, the connection that had this issue recently has the following connection properties:

    Reading the documentation on Configuring Adapter for JDBC Connections - IBM Documentation,

    I still couldn't understand if the above configuration is the cause of the failing.

    Or must I set the connection timeout and read timeout properties in another place? Such as the  "Settings > Extended" page?

    Thanks again!



    ------------------------------
    Renan Kaic Lopes
    ------------------------------



  • 4.  RE: Can't disable JDBC adapter connection

    Posted 05/08/26 07:39 AM
    In and off itself this does looks ok. The usual culprits (in no particular order) are

    • Firewall that drops the socket connection
    • Database issue
    • Bug in JDBC adapter
    • Bug in JDBC driver

    I would also research for this outside the webMethods context, because at the end of the day it is a somewhat generic error scenario. So even if the specifics will of course not fit down to the last detail, you will get ideas how to approach this in terms of areas to search and debugging techniques to use.

    Good luck and don't forget to tell us what it was, once you solved the issue.







  • 5.  RE: Can't disable JDBC adapter connection

    Posted 05/11/26 09:33 PM

    Hi Renan,

    I don't think so these parameters are causing any issue. Could you please advise which RDBMS you are using? 

    Thanks

    Satish



    ------------------------------
    Satish Aruchamy
    Sr Solution Architect
    Tata Consultancy Services
    Minneapolis MN
    ------------------------------



  • 6.  RE: Can't disable JDBC adapter connection

    Posted 05/08/26 08:06 AM

    If the issue is isolated to a single adapter service using the connection then I would recommend setting the query timeout at adapter service level, if you using standard adapter service templates (excluding stored proc calls). For other templates you can set the timeout at service level while invoking from a parent service.

    This will only avoid the hanging thread issue but will not resolve what is causing the actual query to take that long. You will have to work with your DBA to run a profiler to understand where the blocking is happening.



    ------------------------------
    Akshith
    ------------------------------



  • 7.  RE: Can't disable JDBC adapter connection

    Posted 05/08/26 10:09 AM

    Dear Akshith,

    Thank you for your suggestions. We're now going to aim to always stalish a query timeout. We usually set -1 for all adapter services, but after this type of issue we won't do that anymore.

    If this kind of issue happens again, is there any other way to cut the connection on I.S? I mean, can we drop this transaction/connection from our side without depending on a DBA to do that?

    I remember that the last time I requested a DBA to check the sessions/transactions related with our I.S and drop them, he said there were no connections and he couldn't drop anything.

    Thanks again!



    ------------------------------
    Renan Kaic Lopes
    ------------------------------



  • 8.  RE: Can't disable JDBC adapter connection

    Posted 05/12/26 08:20 AM

    The only way we can handle this without involving a DBA is to try to kill the thread which does not always work given how JVM manages these threads. I would rather try to fix the underlying problem than find a work around for this situation. If this is happening for only one or few adapter services in the environment then it would point to an issue with the underlying proc or query itself. If you are dealing with a large result set then it is safe to use executeService adapter service template rather than the other standard adapter service templates.



    ------------------------------
    Thanks,
    Akshith
    https://silverspringtech.com/
    ------------------------------



  • 9.  RE: Can't disable JDBC adapter connection

    Posted 05/26/26 08:15 AM
    Hi Renan,
     
      Two angles I haven't seen mentioned that match this exactly.
     
      Query timeout on the adapter service only fires if the JDBC connection is still alive. If a firewall between IS and
      the DB has silently dropped the TCP socket - very common with idle pooled connections - the thread is stuck in a
      native socket read forever and query timeout never kicks in. Fix is driver-level socket timeouts in the connection's
      Other Properties: Oracle uses oracle.net.READ_TIMEOUT and oracle.net.CONNECT_TIMEOUT; SQL Server / MySQL / Postgres
      all use socketTimeout. Enable TCP keepalive too.
     
      On "click Yes but nothing happens" - IS waits for in-flight connections to return before completing the disable, so
      when one is hung the disable just sits there with no UI feedback. Reload the user package that owns the connection
      (Packages → Reload); that forces the pool down without restarting IS.


    ------------------------------
    Venkateshan Manickam
    ------------------------------



  • 10.  RE: Can't disable JDBC adapter connection

    Posted 06/02/26 09:56 AM

    Dear Venkateshan Manickam,

    Thank you for all information you added and sorry for my late response.

    I understand that we can se the timeout properties in the connection properties. I  think we're going to apply on all of them with a timeout limit of 1 hour, just to ensure that the flow service can be executed normally next time.

    When you say to reload the user package, you mean to reload the package that contains the JDBC Adapter Service?

    Thanks again!



    ------------------------------
    Renan Kaic Lopes
    ------------------------------



  • 11.  RE: Can't disable JDBC adapter connection

    Posted 06/02/26 10:05 AM
    You can of course increase the timeout like this. But the chances that
    it will help are extremely small.

    As Venkateshan wrote (and I as well) the symptoms point to killed socket
    connection. Changing a timeout will have zero effect in this case.




  • 12.  RE: Can't disable JDBC adapter connection

    Posted 06/02/26 10:16 AM
    Edited by Renan Kaic Lopes 06/02/26 10:26 AM

    Dear Christoph,

    Please, do you have any other suggestion so we can find an workaround for this problem?

    It's been impacting us for some months. It happens suddenly and then we have to restart our IS in order to fix it.

    Last time this happened it was in a Saturday evening, and the responsible DBA wasn't available to check the DB sessions, transactions, etc. and we had to restart the IS again.

    Thank you in advance!



    ------------------------------
    Renan Kaic Lopes
    ------------------------------



  • 13.  RE: Can't disable JDBC adapter connection

    Posted 06/03/26 12:06 AM
    Unfortunately, the only workaround I can think of is to monitor the
    connections and automatically restart IS, whenever you detect a
    "hanging" condition.

    Since you mentioned that the issue has first come up a couple of months
    ago, I would try to find out was changed around that timeframe.
    Candidates are network switches, routers, firewalls, OS updates, DBMS
    updates and/or config changes.




  • 14.  RE: Can't disable JDBC adapter connection
    Best Answer

    Posted 06/03/26 01:37 AM

    Hi Renan,

      This looks like a dead TCP socket rather than a DB or timeout issue. A firewall between IS and the DB is probably dropping idle connections silently, so the pool still thinks they're good. When one of those gets used, the driver does a socket read that never returns and the thread sits in a native read forever.

      That's why the rest fails too - Disable waits for that connection to come back (it never does), and kill-thread sends a Java interrupt, which can't break a blocking socket read. So only a restart clears it. If you want to confirm, take a thread dump while it's hung and you'll see SocketInputStream.socketRead0 ... oracle.net...

      The timeout ideas won't help here: query timeout fires Statement.cancel(), which goes over the same dead socket and hangs too, and login/connection timeout only covers connecting. Neither touches the socket layer.

      What fixes it is a socket-level timeout. Cleanest is to set Network Timeout (msec) on the JDBC connection - try 120000, kept above your longest query. That maps to setNetworkTimeout() and can actually break a stuck read. If that field isn't there, add a driver  property in Other Properties instead: Oracle thin → oracle.jdbc.ReadTimeout=120000, oracle.net.CONNECT_TIMEOUT=10000,
      oracle.net.keepAlive=true; DataDirect (jdbc:wm:oracle://) → NetworkTimeout=120 (sec). The oracle.* ones don't apply to DataDirect, so check your data source class first.

      I'd also lower OS tcp_keepalive_time below the firewall's idle timeout and turn on a pool validation query. But the real fix is getting that firewall idle timeout raised/disabled on the IS↔DB path - the rest is a safety net.

      One heads-up: this is preventive. It stops new hangs but won't unfreeze one that's already stuck - for that, reload the package owning the connection to clear the pool without a full restart.

      Hope that helps.



    ------------------------------
    Venkateshan Manickam
    Sr.Integration Specialist
    Giniminds Solutions
    Bangalore
    ------------------------------



  • 15.  RE: Can't disable JDBC adapter connection

    Posted 5 hours ago

    Dear Venkateshan,

    I returned to this topic in order to confirm that your solution solved definitively  our issues with hanging JDBC connections, mainly with Oracle databases.

    To fix it, I defined the following other properties for all Oracle JDBC connections we have in our I.S:

    driverType=thin;connectionProperties={oracle.net.READ_TIMEOUT=900000,oracle.net.CONNECT_TIMEOUT=20000,oracle.net.keepAlive=true,oracle.jdbc.ReadTimeout=900000}

    With the configuration above, we've been for more than 5 months without any connection hanging in our IS.

    Thank you very very much!!!



    ------------------------------
    Renan Kaic Lopes
    ------------------------------