I have a always on WebService running which selects result rows from a DB2 table via an ODBC stage. The ODBC stage is used because I need a multi-row lookup.
So far so good.
If the ODBC connection terminates unexpectantly - i.e. through a force command or database shutdown etc. the WebService does not receive an error. The WebService logs a warning - like following:
Code: Select all
...SQLSTATE=40003, DBMS.CODE=-30081
[DataStage][SQL Client][ODBC][IBM][CLI Driver] SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "10.131.131.105". Communication function detecting the error: "recv". Protocol specific error code(s): "*", "*", "0". SQLSTATE=08001
or
...
SQLSTATE=40003, DBMS.CODE=-99999
[DataStage][SQL Client][ODBC][IBM][CLI Driver] CLI0108E Communication link failure. SQLSTATE=40003
My goal is to make this process a little more "bullet proof". I want this process to run successfully (after DB2 comes up again) without manual interaction.
I am looking for ideas how to do it.
One might be to set the "Time to live" for the WebService but I still get an empty result set until the service is restarted and I would - at least - return some kind of error message to the caller. So the second question is how can I track this error scenario?
I have experimented a little bit with DSGetLinkInfo or DSGetStageInfo without success.
Any ideas are appreciated.
kind reagrds
Michael