ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » MQ Expiry Value - How is this possible?

Post new topic  Reply to topic Goto page Previous  1, 2, 3  Next
 MQ Expiry Value - How is this possible? « View previous topic :: View next topic » 
Author Message
mqjeff
PostPosted: Wed Dec 31, 2014 5:38 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Tim -
As someone who has spent a lot of time maintaining programs that need to translate between MQSC and PCF...

Yes, the manuals have some flaws.



The doc team is rather overloaded in a lot of cases, and they do have to wait for input from the development team.

But please do make effort to submit feedback to the KC. I know it's a PITA, especially sometimes. But it might make it less frustrating if you make an ongoing list of bugs and their corrections... and then submit one larger feedback rather than trying to submit many small ones.

Back to top
View user's profile Send private message
tczielke
PostPosted: Wed Dec 31, 2014 6:08 am    Post subject: Reply with quote

Guardian

Joined: 08 Jul 2010
Posts: 941
Location: Illinois, USA

Hi Jeff,

So I gave this another try. With Internet Explorer, the Feedback link for a given page in the KC just says "Error on page" when I click it. For Firefox, I don't even see the Feedback link for the given page. There is a generic feedback option at the very bottom of the browser that looks new and does seem to be working, although it is very generic. I will give that a try next time.
Back to top
View user's profile Send private message
JosephGramig
PostPosted: Wed Dec 31, 2014 6:40 am    Post subject: Reply with quote

Grand Master

Joined: 09 Feb 2006
Posts: 1244
Location: Gold Coast of Florida, USA

When I clicked "feedback" link, the pop up window had a drop down list "Please choose a topic" with topics "current page" and "Overall KC".

Clunky but I guess this is the equivalent of what we had.

BTW, I was using FireFox.
Back to top
View user's profile Send private message AIM Address
mvic
PostPosted: Mon Jan 05, 2015 2:33 am    Post subject: Re: MQ Expiry Value - How is this possible? Reply with quote

Jedi

Joined: 09 Mar 2004
Posts: 2080

PeterPotkay wrote:
mvic wrote:
Ask your app people?

No matter what they say or show me, the question remains. The manuals say 999999999 is the max value.

What if the manuals are wrong. What if the code is wrong. How can a user tell the difference.... anyway the value is nonsense and it's probably nonsense because your app set it to be nonsense. Did you check with your app people?
Back to top
View user's profile Send private message
bruce2359
PostPosted: Mon Jan 05, 2015 5:54 am    Post subject: Re: MQ Expiry Value - How is this possible? Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9472
Location: US: west coast, almost. Otherwise, enroute.

PeterPotkay wrote:
The below is the top snippet of the message from MO71. MQ Explorer and BMTM also confirm this value.


Code:
[  364 bytes] Message Descriptor (MQMD)
StrucId      :'MD  '
Version      :2
Report       :00000000
Message Type :8 (Datagram)
Expiry       :2146624636
Feedback     :0 (None)
MQEncoding   :0x'222'
CCSID        :819
Format       :'MQSTR   '
Priority     :0
Persistence  :1 (Persistent)



The value is decrementing.
This app is producing lots of messages like this.
WMB and DataPower are forwarding it along, maintaining that value!

How is this possible?

What can you tell us about the app that is producing this? Is it a C app? COBOL? From what mq version? Do these messages originate from the broker?
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Jan 05, 2015 6:24 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20757
Location: LI,NY

Hex value for 2146624636 is 7FF2 E47C.
Looks like this might have started as a max positive value of a signed DWORD : 7FFF FFFF....
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
PeterPotkay
PostPosted: Mon Jan 05, 2015 6:04 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

The messages are coming from a business partner so I don't have access to the code. I suspect Tim and FJ are correct, though.

I have a PMR open. An APAR is coming. I will share the # when I have it.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Tue Jan 06, 2015 6:58 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20757
Location: LI,NY

I wonder if this is just a programming error...
Somebody thinking to put the max value, thinking it will be FFFF FFFF i.e. -1 or no expiry when in fact putting 7FFF FFFF...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
PeterPotkay
PostPosted: Sat Feb 14, 2015 6:14 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

Here is the APAR to prevent applications from putting messages with Expiry values greater than the published maximum of 999,999,999.

http://www-01.ibm.com/support/docview.wss?uid=swg1IT06293&myns=swgws&mynp=OCSSFKSJ&mync=E&cm_sp=swgws-_-OCSSFKSJ-_-E


Also included is an Environmental Variable to allow the bigger value for legacy apps if needed.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
tczielke
PostPosted: Sat Feb 14, 2015 7:22 am    Post subject: Reply with quote

Guardian

Joined: 08 Jul 2010
Posts: 941
Location: Illinois, USA

My two cents, this seems like too disruptive of an approach for IBM to take to address this discrepancy. I would of thought it would have made more sense to just update the manual to replace 999,999,999 with 2,147,483,647. If there are any applications out there that are using a value greater than 999,999,999 for the Expiry on the PUT, they will now fail when this future maintenance is applied. It is much easier to make a documentation update, then require customers to change their code or set environment variables in queue managers. Unless you are 100% sure that you have no apps using an expiry > 999,999,999, this approach is backing you into running with an environment variable for your queue manager (which can be an administrative burden, especially if you are not currently using any environment variables).

Lastly, it is just not good to make a change to MQ that has the potential to break applications when MQ maintenance is applied. Having previously working business applications break when MQ maintenance is applied causes the business application groups to view MQ in a more negative light.

Maybe I am missing something else here that required IBM to take this approach.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Sat Feb 14, 2015 9:59 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9472
Location: US: west coast, almost. Otherwise, enroute.

Software is written to conform to the specifications in the official documentation, not the other around.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Sat Feb 14, 2015 10:21 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20757
Location: LI,NY

bruce2359 wrote:
Software is written to conform to the specifications in the official documentation, not the other around.

Vendor software yes... Customer software or the cloud development stuff IoT is written any .... way the developer was able to make it work...

If the definition of the variable was MQsomething equivalent to DWORD (C ), guess what, those are the max values he is going to apply!!!.
Especially if using Cobol where it is easy to set max and min in hex...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
bruce2359
PostPosted: Sat Feb 14, 2015 10:59 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9472
Location: US: west coast, almost. Otherwise, enroute.

fjb_saper wrote:
Vendor software yes... Customer software or the cloud development stuff IoT is written any .... way the developer was able to make it work...

Customer-written software is supposed to conform to the official documentation, too. Developers, the professional ones, will read, understand, and adhere to the official documentation.

IBM COBOL specification doc has forever stated that after a file (DDNAME) is closed, the last record read from the dataset is no longer available to the app. Early COBOL releases did not enforce this, so many coders relied (incorrectly) on having the last logical record available. Once IBM fixed this bug, developers complained loudly and often '...but, it used to work!'

I suspect that there are other similar anomalies awaiting developers and administrators. Just because you can do something, doesn't mean that you should.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
tczielke
PostPosted: Sat Feb 14, 2015 11:34 am    Post subject: Reply with quote

Guardian

Joined: 08 Jul 2010
Posts: 941
Location: Illinois, USA

I looked at that APAR more closely, and it only applies to 7.5 and 8.0. So it looks like this behavior of allowing an Expiry over 999,999,999 was introduced at 7.5. This makes more sense then why IBM is taking this approach. I was thinking this was more of a historical behavior with Expiry that they were correcting, not something that just got recently added in. However, this still is going to be messy for their customers at 7.5 and higher that might have exploited this behavior.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Sun Feb 15, 2015 6:44 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9472
Location: US: west coast, almost. Otherwise, enroute.

tczielke wrote:
However, this still is going to be messy for their customers at 7.5 and higher that might have exploited this behavior.

Exploiting a bug or undocumented behavior is most definitely not a best-practice.

Depending on ongoing support for such an exploit by IBM, another vendor, or your auditors or management is naive.

"Exploiting" in such a case, is more accurately "getting away with" writing bad code.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2, 3  Next Page 2 of 3

MQSeries.net Forum Index » General IBM MQ Support » MQ Expiry Value - How is this possible?
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.