Author |
Message
|
Parthiban |
Posted: Wed Oct 12, 2016 2:23 am Post subject: IIB 9 Compute node DSN |
|
|
Newbie
Joined: 04 Oct 2016 Posts: 3
|
Hi,
Consider, when the Database is down and IIB9 try Connects the Database via compute node using DSN, ideally Compute node should throw an error since DSN is configured in the compute node.
But currently I am not getting any exception unless it check the Database queries in the ESQL.
Is there any fix is provided for IIB 9 for the above case, because i have test the same in WMB8 and got an exception.
Oracle version is 11g and IIB version is 9.0.0.3 |
|
Back to top |
|
 |
Vitor |
Posted: Wed Oct 12, 2016 4:45 am Post subject: Re: IIB 9 Compute node DSN |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Parthiban wrote: |
Consider, when the Database is down and IIB9 try Connects the Database via compute node using DSN, ideally Compute node should throw an error since DSN is configured in the compute node.
But currently I am not getting any exception unless it check the Database queries in the ESQL. |
How is it ideal that the Compute node errors out when the database it's not using isn't available? If you're driving past a gas station that's unexpectedly closed, should your car stop even if it has a full tank of gas?
Parthiban wrote: |
Is there any fix is provided for IIB 9 for the above case, because i have test the same in WMB8 and got an exception. |
Sounds to me more like there's a bug in WMBv8 causing it to access the database when it doesn't need to that got fixed in IIBv9.
If you're trying to work out if Oracle is available or not, they make monitoring software that does that. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Oct 12, 2016 4:57 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
If you need to retry your connection, you can use the exception handling in ESQL to catch the database error. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
smdavies99 |
Posted: Wed Oct 12, 2016 9:52 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
Please don't try to code any exception handling to detect individual errors that relate to network connection or DB availability problems.
With Oracle, there are several hundred different error codes that basically say the same thing. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
mayheminMQ |
Posted: Fri Oct 21, 2016 2:50 am Post subject: |
|
|
 Voyager
Joined: 04 Sep 2012 Posts: 77 Location: UK beyond the meadows of RocknRoll
|
I am sure there is an option in compute node which allows you to check the connection before the flow starts.
That checkbox in compute node which says connect before flow starts!! Wont this suffice to see if the DB connection is available before it attempts DB query. _________________ A Colorblind man may appear disadvantaged but he always sees more than just colors... |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Oct 21, 2016 4:23 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
mayheminMQ wrote: |
I am sure there is an option in compute node which allows you to check the connection before the flow starts. |
Really? That would be interesting to know about.
mayheminMQ wrote: |
That checkbox in compute node which says connect before flow starts!! Wont this suffice to see if the DB connection is available before it attempts DB query. |
No. If the DB2 connection is not available when the flow starts, there's no guarantee that it won't still be unavailable when you try and use it later.
Likewise the other way - if it's available when the flow starts, there's no guarantee that ti will still be available when you try and use it.
It's a waste of time to check if any kind of connection is available before you try and use it. There's always a window in which that state can change.
So try and use the connection, and catch any errors. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
Vitor |
Posted: Fri Oct 21, 2016 4:40 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mqjeff wrote: |
mayheminMQ wrote: |
I am sure there is an option in compute node which allows you to check the connection before the flow starts. |
Really? That would be interesting to know about. |
I think he means the "connect to database when flow starts" in v10, which is a level higher than the OP is using.
If he really means there's an option to check the connection before the flow start, I'd be interested in knowing about that as well.
mqjeff wrote: |
mayheminMQ wrote: |
That checkbox in compute node which says connect before flow starts!! Wont this suffice to see if the DB connection is available before it attempts DB query. |
No. If the DB2 connection is not available when the flow starts, there's no guarantee that it won't still be unavailable when you try and use it later.
Likewise the other way - if it's available when the flow starts, there's no guarantee that ti will still be available when you try and use it.
It's a waste of time to check if any kind of connection is available before you try and use it. There's always a window in which that state can change.
So try and use the connection, and catch any errors. |
[/quote]
 _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Parthiban |
Posted: Mon Oct 24, 2016 8:22 am Post subject: |
|
|
Newbie
Joined: 04 Oct 2016 Posts: 3
|
Thanks a lot !!! Vitor, mqjeff, mayheminMQ, smdavies99.
Actually Current design is to errored out if case of Database is Down, Not sure if there was any change configuration changes from WMB8 to IIB 9 [product configuration]..
I am sure that in WMB8 if Datasource name is mentioned in the compute node and Database is down, Then Compute node will fail during connection establishment.. because i have raised a PMR for the same and solution was provided by the IBM folks..
Kindly help me to understand the behaviour, if the datasource name is mentioned in the compute node. Thanks. |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Oct 24, 2016 8:47 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
The datasource being mentioned in the compute node means that that's what datasource will be used by the ESQL of that compute node.
Unless your ESQL says to use a different datasource.
That datasource, or whatever datasource you are using, won't be used until your code to use it runs. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
smdavies99 |
Posted: Mon Oct 24, 2016 9:02 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
mqjeff wrote: |
That datasource, or whatever datasource you are using, won't be used until your code to use it runs. |
going slightly off topic, the first MQSI PMR that I raised (V2.1 on AIX) was to do with the way that the code at the time tried to open the ODBC Connection in the node before the one with the the DSN defined.
Caused issues when we were mixing DB2 and Oracle operations in the same flow.
Oh, how things have moved on. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Oct 24, 2016 9:06 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Parthiban wrote: |
I am sure that in WMB8 if Datasource name is mentioned in the compute node and Database is down, Then Compute node will fail during connection establishment.. because i have raised a PMR for the same and solution was provided by the IBM folks.. |
Of course it will. That's been true since they added database support to the product back when I had hair and most of my sanity. If the Compute node references a data source, and the data source returns an error, the Compute node propagates that error.
That reference should be made on first use, i.e. when the Compute node tries to access the data source. If a bug in v8 made it do the connection when the node actually started, then that's been fixed in v9.
I still don't understand what the issue is you're trying to explain. What you seem to be saying is that v8 blew out when the database was down no matter if the Compute node needed it or not, and now it only blows out when it actually tries to access the database. To me, as I've said before, this sounds like a fix not a problem.
Please phrase your issue differently. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Oct 24, 2016 9:08 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
smdavies99 wrote: |
going slightly off topic, the first MQSI PMR that I raised (V2.1 on AIX) was to do with the way that the code at the time tried to open the ODBC Connection in the node before the one with the the DSN defined. |
If the OP is to be believed, it sounds like the timing of the connection has changed again and is the cause of his angst.
As it was when you raised the PMR, the closer the product does the connection to the use of the connection, the better. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Parthiban |
Posted: Mon Oct 24, 2016 9:10 am Post subject: |
|
|
Newbie
Joined: 04 Oct 2016 Posts: 3
|
|
Back to top |
|
 |
Vitor |
Posted: Mon Oct 24, 2016 9:26 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
So the Knowledge Center says "Normally, the broker makes the connections when it needs to use them in the message flow". How did you get from that to "Compute node establish connection before the ESQL"? The broker doesn't need to use a connection until it encounters a query in the ESQL. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Oct 24, 2016 9:27 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
I'm still a bit lost on your question.
Maybe you mean this
Quote: |
However, in the case of connections to ESQL-based data sources, you can make the initial connection before a flow receives a message, and so remove any connection latency from the message processing. Set this option by selecting Connect before flow starts property on the data source node. |
_________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
|