<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Store and Forward</title>
	<atom:link href="http://t-rob.net/feed/" rel="self" type="application/rss+xml" />
	<link>https://t-rob.net</link>
	<description>A blog about securing and using WebSphere MQ</description>
	<lastBuildDate>Wed, 15 May 2013 14:29:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<copyright>Copyright © Store and Forward 2011 </copyright>
	<managingEditor>dq@t-rob.net (T.Rob Wyatt)</managingEditor>
	<webMaster>dq@t-rob.net (T.Rob Wyatt)</webMaster>
	<ttl>1440</ttl>
	<image>
		<url>http://t-rob.net/images/DQLogo-144.png</url>
		<title>Store and Forward</title>
		<link>http://t-rob.net</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>A blog about securing and using WebSphere MQ</itunes:summary>
	<itunes:keywords>WebSphere, MQ, MQ, WMQ, Security, IBM, T.Rob, middleware</itunes:keywords>
	<itunes:category text="Technology">
		<itunes:category text="Software How-To" />
	</itunes:category>
	<itunes:category text="Technology">
		<itunes:category text="Tech News" />
	</itunes:category>
	<itunes:author>T.Rob Wyatt</itunes:author>
	<itunes:owner>
		<itunes:name>T.Rob Wyatt</itunes:name>
		<itunes:email>dq@t-rob.net</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://t-rob.net/images/DQLogo-144.png" />
		<item>
		<title>Back to consulting</title>
		<link>https://t-rob.net/2013/04/16/back-to-consulting/</link>
		<comments>https://t-rob.net/2013/04/16/back-to-consulting/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 13:43:31 +0000</pubDate>
		<dc:creator>T.Rob</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[MQTT]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[WMQ]]></category>

		<guid isPermaLink="false">https://t-rob.net/?p=704</guid>
		<description><![CDATA[Got WMQ security work?  I&#8217;m happy to report I&#8217;ll soon be available for consulting engagements!  After a couple of years in WebSphere MQ Product Management, and 6 before that in IBM Software Services, I&#8217;ve given notice to IBM and will &#8230; <a href="https://t-rob.net/2013/04/16/back-to-consulting/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Got WMQ security work?  I&#8217;m happy to report I&#8217;ll soon be available for consulting engagements!  After a couple of years in WebSphere MQ Product Management, and 6 before that in IBM Software Services, I&#8217;ve given notice to IBM and will be available for engagements as of May 13th.</p>
<p>My IMPACT sessions are in process of being reassigned so I&#8217;ve adjusted the schedule on the previous blog post.  I left &#8220;Meet The Experts&#8221; on the schedule, I&#8217;ll just be in the audience this time around.  I&#8217;ll also be there for the book signing and there are 100 copies printed (including the updated typos) so come by the table Tuesday at Noon.  I believe that Neil Casey will also be in attendance and at the book signing.</p>
<p>The new business is <a title="IoPT Consulting" href="http://ioptconsulting.com" target="_blank">IoPT Consulting</a>.  If you&#8217;ve heard of Internet of Things, the name of the business refers to Internet of <em>People</em> &amp; Things.  My biggest gripe with the first wave of IoT devices is that they neglected to consider the people who would use them.  The cool factor of a light switch, door lock, web cam or other device controlled from your phone wears off pretty quick when you have to have 50 apps to control 50 categories of device and they don&#8217;t talk to one another.  Of course IoT has no appeal at all when your Internet connection goes dark and the house blue-screens.  I&#8217;d like to build an Internet of Things that values the people who own those things and, by the way, WebSphere messaging and MQTT are one of the best ways to do that.</p>
<p>I&#8217;ll be available as of May 13 as an independent or, for customers with preferred vendor rosters, through one of several established firms.  I can provide short- or long-term engagements for architecture design, performance tuning, outage resolution, migration, staff augmentation, and of course security.  Lots of security.  Call me for details st 704-443-TROB or see me at IMPACT.</p>
]]></content:encoded>
			<wfw:commentRss>https://t-rob.net/2013/04/16/back-to-consulting/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Coming to an event near you!</title>
		<link>https://t-rob.net/2013/04/05/coming-to-an-event-near-you/</link>
		<comments>https://t-rob.net/2013/04/05/coming-to-an-event-near-you/#comments</comments>
		<pubDate>Fri, 05 Apr 2013 17:48:09 +0000</pubDate>
		<dc:creator>T.Rob</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[MQTT]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[WMQ]]></category>

		<guid isPermaLink="false">https://t-rob.net/?p=698</guid>
		<description><![CDATA[Travel has been working out well lately.  I&#8217;ve just sort of been making my own events.  Case in point, I wanted to attend the PDCNYC meeting so I put the word out I&#8217;d be available in NYC and immediately got &#8230; <a href="https://t-rob.net/2013/04/05/coming-to-an-event-near-you/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Travel has been working out well lately.  I&#8217;ve just sort of been making my own events.  Case in point, I wanted to attend the PDCNYC meeting so I put the word out I&#8217;d be available in NYC and immediately got several requests.  And that was just working with a few the IBM account folks.  I didn&#8217;t exactly broadcast my availability.</p>
<p>Well, now I am.</p>
<p>IBM will send me pretty much get to anywhere in North America so long as I can meet with two or more customers (but not at the same time).  If I line up 4 or more customers I can visit other continents.  So if you want to meet in person to talk security&#8230;or clustering, architecture, high availability, migration, AMS, FTE, MQTT, identity, privacy, Internet of Things, whatever, let me know.  Maybe I can find a few others in your area and we can work something out.</p>
<p>Upcoming trips include:</p>
<ul>
<li>Monday evening, April 8: <a title="Personal Data NYC" href="http://bit.ly/10BKhpb" target="_blank">PDCNYC</a></li>
<li>April 9 &#8211; 10: Customer visits, Jersey City/NYC area.</li>
<li>April 28 &#8211; May 3: IMPACT, Las Vegas (Book signing, Tuesday at Noon.)</li>
<li>May 6 &#8211; 9: <a title="Internet Identity Workshop #16" href="http://bit.ly/WwvgTr" target="_blank">Internet Identity Workshop #16</a>, Mountain View, CA.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://t-rob.net/2013/04/05/coming-to-an-event-near-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IMPACT Schedule</title>
		<link>https://t-rob.net/2013/04/04/impact-schedule/</link>
		<comments>https://t-rob.net/2013/04/04/impact-schedule/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 06:42:28 +0000</pubDate>
		<dc:creator>T.Rob</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Publications]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[WMQ]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[IBMIMPACT]]></category>
		<category><![CDATA[WebSphere MQ]]></category>
		<category><![CDATA[WebSphere MQ Security]]></category>
		<category><![CDATA[WMQ Security]]></category>

		<guid isPermaLink="false">https://t-rob.net/?p=693</guid>
		<description><![CDATA[It&#8217;s that time of year again!  I&#8217;ve finally received funding approval to attend IMPACT -  which is good considering how many sessions I&#8217;m participating in.  Good news &#8211; ITSO has printed 100 copies of Secure Messaging Scenarios with WebSphere MQ &#8230; <a href="https://t-rob.net/2013/04/04/impact-schedule/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s that time of year again!  I&#8217;ve finally received funding approval to attend IMPACT -  which is good considering how many sessions I&#8217;m participating in.  Good news &#8211; ITSO has printed 100 copies of <a title="Secure Messaging Scenarios With WebSphere MQ - an IBM Redbooks publication" href="http://ibm.co/14Pqfxq" target="_blank"><em>Secure Messaging Scenarios with WebSphere MQ</em></a> and arranged some time to sign them.  I will  have a gel pen to sign your Kindle if you downloaded the digital version.</p>
<p>TSM-2018: Meet the Experts: IBM Messaging<br />
Session Type:  Meet the Experts<br />
Date/Time:  Mon, 29/Apr, 04:00 PM &#8211; 05:00 PM<br />
Room:  Venetian &#8211; San Polo 3401 (Zone D)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Secure Messaging Scenarios with WebSphere MQ<br />
Session Type: Book Signing<br />
Date/Time:  Tue, 1/May, 12:00 PM &#8211; 1:00 PM<br />
Room: Conference Book Store<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>BPB-3218: Better Access Control and Security Using a Single Portal<br />
Session Type:  Birds of a Feather<br />
Date/Time:  Wed, 1/May, 12:00 PM &#8211; 12:45 PM<br />
Room:  Venetian &#8211; Lando 4301B<br />
Co-presenter(s):  Peter D&#8217;Agosta, Avada Software<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>TSM-2018: Meet the Experts: IBM Messaging<br />
Session Type:  Meet the Experts<br />
Date/Time:  Thu, 2/May, 08:45 AM &#8211; 09:45 AM<br />
Room:  Venetian &#8211; San Polo 3401 (Zone D)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://t-rob.net/2013/04/04/impact-schedule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It’s time for sensible password security standards in the PCI-DSS</title>
		<link>https://t-rob.net/2013/02/17/its-time-for-sensible-password-security-standards-in-the-pci-dss/</link>
		<comments>https://t-rob.net/2013/02/17/its-time-for-sensible-password-security-standards-in-the-pci-dss/#comments</comments>
		<pubDate>Sun, 17 Feb 2013 15:57:00 +0000</pubDate>
		<dc:creator>T.Rob</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">https://t-rob.net/?p=679</guid>
		<description><![CDATA[Passwords are the keys to the Internet kingdom.  Sure, there are certificates that identify sites and provide the basis for TLS encryption, but it is the user ID and password that authenticate you almost everywhere you log on to something.  &#8230; <a href="https://t-rob.net/2013/02/17/its-time-for-sensible-password-security-standards-in-the-pci-dss/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="https://t-rob.net/wp-content/uploads/2013/02/LOCKED.jpg"><img class="size-thumbnail wp-image-681 alignright" alt="LOCKED" src="https://t-rob.net/wp-content/uploads/2013/02/LOCKED-150x150.jpg" width="150" height="150" /></a>Passwords are the keys to the Internet kingdom.  Sure, there are certificates that identify sites and provide the basis for TLS encryption, but it is the user ID and password that authenticate you almost everywhere you log on to something.  The implication is that the service you log on to must have a way to validate that the password you provide today matches the one you provided when you signed up or at your last password change.  But many network sites and services fail to protect those passwords properly and that significantly compounds the damage in the event of a breach.  To mitigate the potential damage, the <a title="Official PCI-DSS specification and supporting documents" href="https://www.pcisecuritystandards.org/security_standards/" target="_blank">PCI Data Security Standard</a> (PCI-DSS) requires passwords to be encrypted.  Although this sounds good on its face, the standard fails to account for the bi-lateral nature of passwords.  As a result, assessments are more complex and expensive and the systems assessed often less secure because of it, not more.  The changes I propose would decrease the cost of compliance while improving the level of security.<span id="more-679"></span>Let me pause here to say that I fully support the principles of the PCI-DSS.  Without a standard to require it, security is one of the places where companies seek to minimize costs because it does not directly contribute to the functionality users pay for.  If any one company skimps on security, they gain an efficiency and profit advantage that pressures their competitors to also cut corners.  The existence of a mandatory baseline helps prevent this spiral to the bottom.  However, the mitigations required by such a standard must seek to maximize effectiveness with the least possible burden of compliance.  The standard must be capable of changing when it becomes clear that it does not meet these goals.  This is one such case.</p>
<p>I should also mention that these are my observations based on interactions with many customers and not necessarily the official position of IBM.</p>
<p>I refer specifically to PCI-DSS requirement 8.4 “Render all passwords unreadable during transmission and storage on all system components using strong cryptography.”  The problem with this is that it doesn’t distinguish between the two types of password, each of which have very different security requirements.  However because under the PCI-DSS a password is a password, QSA’s and implementers often treat them all equally.  In the few cases where the different types of password are treated according to their unique requirements, the customer has no assurance of passing subsequent assessments unscathed since the next assessment may interpret the standard differently.</p>
<p>The primary use case for passwords, and the one that the PCI-DSS appears to address, is the one I outlined in the first paragraph: that of a networked service to which users log on.  Best practices are to encrypt the account password with many iterations of a one-way salted hash, storing the resulting value.  Subsequent login attempts transform the password presented in the login request using the same algorithm and then compare the result to the stored value.  This is the classic case of encrypting stored passwords.  Note that there is no requirement in this use case for the stored password to ever be rendered in plaintext.  I will refer to this use case as an inbound authentication request because the thing storing the passwords is receiving an access request.</p>
<p>The second use case for passwords is where an application makes an outbound access request of something else.  Typical examples are when an application authenticates to a remote LDAP server or requests a connection to a JMS message broker.  In this use case, the application presenting the ID and password must render them in plaintext in order to make the access request.    I will refer to this use case as an outbound authentication request because the thing storing the passwords is requesting access to something else.</p>
<p>Note that in the inbound access request use case the stored password must <em>never</em> be rendered in plaintext, while in the outbound access request use case the stored password must <em>always</em> be rendered in plaintext.  If your intuition tells you that these two use cases differ greatly in their security requirements, and that attempting to treat them the same would result in poor security, then your intuition would be correct.  However the wording of the PCI-DSS fails to differentiate between the two use cases and customers frequently report that their QSA has specified remediations that are complex, expensive, and either fail to improve security or actually make it worse.  The justification in these cases is that “the PCI-DSS requires it.”</p>
<p>Because the PCI-DSS does not distinguish between these two use cases for passwords, the mitigations specified fail to address either case adequately and lumps them all together as a requirement for &#8220;encryption.&#8221;  In addition to treating the outbound side as a seperate use case, the standard should refine the use case on the inbound side to specify <em>non-reversible</em> encryption, perhaps <a title="OWASP Password Storage Cheat Sheet" href="https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet" target="_blank">borrowing from OWASP</a>.</p>
<p>I propose that the standard distinguish between passwords for inbound access requests versus those for outbound access requests.  The current best practices of salted, hashed passwords using strong, one-way encryption would be associated with inbound requests.  There hasn’t been a discussion on how best to secure passwords for outbound requests since we have not, as yet, seen fit to talk about them separately.  That discussion should take place as soon as possible in order to arrive at a consensus and codify that into the standard.</p>
<p>In order to facilitate that discussion,  consider a JEE server that is started when its host reboots.  The JEE server then requests a connection to a database using an ID and password.  Although the database stores a hashed version of the password, the JEE server <em>must</em> render it in plaintext in order to present it to the database.  Usually the JEE server retrieves its ID and password from the filesystem, either in an ini file, in a keystore, in boot scripts or in some other location.  Sometimes that file, or perhaps just the password in the file, is encrypted.  In that case, how does the JEE server render it into plaintext?  A secondary password is required and it, too, must be stored somewhere.  In order to comply with the standard, many QSA’s tell their customer that this secondary password must also be encrypted.  However because that encryption must be reversed, doing so requires a tertiary password and that must also be stored somewhere.</p>
<p>As should be clear by now, there are no number of iterations that eliminate the need for a plaintext password somewhere in the file system on the outbound side of the authentication request.  However, many assessmors arbitrarily force customers to make one or more iterations or to pass this requirement up to their software vendors.  This always results in a password in the clear somewhere and trivial reversal of the original, but so long as the original is not in plaintext, the assessment is satisfied because “the standard says to do it that way.”</p>
<p>As an alternative, some users and vendors opt for obfuscation of the password by running it through an encryption process using a key compiled into the application.  This meets the letter of the standard but is trivially reversed.  Others derive a key at runtime, but again this is trivially reversed.  If you know how the key is derived and have access to the runtime environment of the server, you can decrypt the password.  Some customers encrypt the filesystem on which the password file exists.  This is great if someone steals the disk but the standard seeks to address a completely different threat &#8211; that of data exfiltration from a live system.</p>
<p>Subjecting passwords to multiple layers of reversible encryption where the ultimate password is stored in the clear on the file system increases complexity and cost and provides negligible additional protection.</p>
<p>Furthermore, after having obfuscated the passwords, users frequently believe them to be secure and fail to protect them properly in the filesystem or in backups. The end result in many cases is a system that is less secure than when the outbound authentication passwords were in plaintext because in that case the user was cognizant of the need to protect them in the filesystem.</p>
<p>My proposal is as follows:</p>
<ul>
<li dir="ltr">Distinguish in the PCI-DSS between one-way encrypted passwords on the inbound side of the access request vs. reversibly encrypted passwords on the outbound side of the access request.</li>
<li dir="ltr">Incorporate the existing best practices for password storage on the inbound side of the access request.  Specifically, using salt and multiple hash iterations.</li>
<li dir="ltr">Perform a formal threat analysis for passwords stored on the outbound side of the authentication request and prioritize the threats identified.</li>
<li dir="ltr">Determine what, if any, protection over and above file system protection is effective against those threats on the outbound side of the authentication.</li>
<li dir="ltr">Incorporate those recommendations into the standard.</li>
</ul>
<p>Implementation of these suggestions would significantly streamline the assessment process, improve confidence of users, and ultimately improve the level of security achieved in the field.  I call on the PCI Security Council to take this proposal under consideration for their next revision.</p>
]]></content:encoded>
			<wfw:commentRss>https://t-rob.net/2013/02/17/its-time-for-sensible-password-security-standards-in-the-pci-dss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meetup in NYC or San Fran?</title>
		<link>https://t-rob.net/2013/02/14/meetup-in-nyc-or-san-fran/</link>
		<comments>https://t-rob.net/2013/02/14/meetup-in-nyc-or-san-fran/#comments</comments>
		<pubDate>Thu, 14 Feb 2013 06:19:31 +0000</pubDate>
		<dc:creator>T.Rob</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[WMQ]]></category>
		<category><![CDATA[PLM]]></category>

		<guid isPermaLink="false">https://t-rob.net/?p=676</guid>
		<description><![CDATA[I&#8217;m headed to New York next week to visit some customers and to attend the Hursley Comes to You event at the NY/NJ User&#8217;s Group.  I have some open time on the 18th and the 20th if you are in &#8230; <a href="https://t-rob.net/2013/02/14/meetup-in-nyc-or-san-fran/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m headed to New York next week to visit some customers and to attend the Hursley Comes to You event at the NY/NJ User&#8217;s Group.  I have some open time on the 18th and the 20th if you are in the area and want to talk about WMQ, AMS, FTE (now MFT) on the topics of security, migration, upgrades, architecture or whatever.  I&#8217;m your representative in the Product Management team so tell me what works, what doesn&#8217;t and where you want the products to go.  In return I can give some presentations, help diagnose or fix problems, or advise on plans for your next big WMQ project.</p>
<p>Same deal if you are in the San Francisco bay area the week of the 25th.  I haven&#8217;t received travel approval for this trip yet but one or two more customer visits will lock it in.</p>
<p>What can you expect on these visits?  In one recent case a customer had locked down most of their channels but through a misunderstanding of CHLAUTH and MCAUSER had inadvertently left the entire network open to anonymous remote admin access.  It took us less than 5 minutes to discover that.  Since they had thought the security implementation had been completed, there were no plans to invest any more time or money in remediation.  They&#8217;d moved on to other things.  Once we had a chance to chat, they realized there was more work to do and are busy closing up the remaining holes we discovered.</p>
<p>In another case I worked with a customer to show how they could simplify their architecture by consolidating overlapping clusters, removing unnecessary alias queues and using generic authorization profiles.  This took a bit longer than 5 minutes.  About 30, if I remember correctly.  However, they are now spending <strong>much</strong> less time on administration and troubleshooting cluster issues.</p>
<p>Not in New York City or San Francisco?  As a product manager, I&#8217;m happy to come by for a site visit in the US or Europe.  If I can arrange to meet with one or two other customers while I&#8217;m in the area, I can usually get travel approval.</p>
<p>Contact me at&#8230;</p>
<p>Voice: 720-395-6997<br />
email: <a href="mailto:t%2Erob.%77ya%74t@%75s.ib%6D.com">t.rob.wyatt@us.ibm.com</a></p>
]]></content:encoded>
			<wfw:commentRss>https://t-rob.net/2013/02/14/meetup-in-nyc-or-san-fran/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WMQ Training for Beginners</title>
		<link>https://t-rob.net/2013/02/11/wmq-training-for-beginners/</link>
		<comments>https://t-rob.net/2013/02/11/wmq-training-for-beginners/#comments</comments>
		<pubDate>Mon, 11 Feb 2013 17:24:05 +0000</pubDate>
		<dc:creator>T.Rob</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">https://t-rob.net/?p=672</guid>
		<description><![CDATA[The email stream lately has included many requests for training suitable for beginners new to WebSphere MQ.  This is good because it implies new customers or a larger community of developers and admins.  My pages here are organized as more &#8230; <a href="https://t-rob.net/2013/02/11/wmq-training-for-beginners/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>The email stream lately has included many requests for training suitable for beginners new to WebSphere MQ.  This is good because it implies new customers or a larger community of developers and admins.  My pages here are organized as more of a reference index and I realized they don&#8217;t necessarily meet this particular need.  I may put up a &#8220;New to MQ?&#8221; page at some point but in the meantime, I thought it might be helpful to capture the email and my response.<span id="more-672"></span><em>Hi Rob,</em></p>
<p><em>Thanks for accepting the LinkedIn request. I am looking for online websphere MQ and Message broker training for beginners. If you are providing training in these technologies, could you please let me know  the details. </em></p>
<p><em>Also, Could you please share your tutorials and videos on these technologies?</em></p>
<p><em>Thanks a lot.</em></p>
<p>Most of my authored content is WMQ security and doesn&#8217;t directly fit the request.  However, there are many free, online information sources for new administrators, developers and users of WebSphere MQ.  Below is a quick-and-dirty list which I&#8217;ll probably clean up and organize at some point but will get you started.</p>
<ul>
<li><a href="http://bit.ly/Y6oRiS" target="_blank">WebSphere MQ on developerWorks</a></li>
<li><a href="http://ibm.co/WU1IRa" target="_blank">The IBM Messaging Community</a></li>
<li><a href="http://ibm.co/MQDevBlog" target="_blank">The MQ Dev Community</a>
<ul>
<li>Especially the <a href="http://ibm.co/14NON72" target="_blank">&#8220;Participate&#8221; page</a> in the MQ Dev Community</li>
</ul>
</li>
<li><a href="http://on.fb.me/VPsFsu" target="_blank">WebSphere MQ&#8217;s Facebook page</a></li>
<li><a href="http://ibm.co/Xxpe4b" target="_blank">WebSphere Connectivity Scenarios Infocenter</a><br />
(There&#8217;s not much here today but the intent is to grow the content over time.)</li>
<li><a href="http://stackoverflow.com/questions/tagged/websphere-mq" target="_blank">The WebSphere MQ tag on Stack Overflow</a></li>
<li><a href="http://bit.ly/Y6oRiS" target="_blank">WebSphere MQ library search at IBM</a></li>
<li><a href="http://bit.ly/12Gnzkb" target="_blank">MQ On TV You Tube channel</a></li>
<li><a href="http://bit.ly/12GnHQH" target="_blank">WebSphere Education videos</a></li>
<li><a href="http://bit.ly/Y6tc5y" target="_blank">My WMQ Security video</a></li>
<li><a href="http://bit.ly/Werr78" target="_blank">My &#8220;Zero to Hello World&#8221; video</a></li>
</ul>
<p>Got anything to add?  Put it in the comments.  Just remember, this is about WMQ beginner education resources so even though your admin tool may be the best thing since sliced bread I&#8217;ll remove advertising links.</p>
<p>(Side note: What was the best thing <em>before</em> sliced bread?  <a href="http://www.jimmycarr.com/" target="_blank">Jimmy Carr</a> says it was &#8220;really massive sandwiches.&#8221;)</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://t-rob.net/2013/02/11/wmq-training-for-beginners/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Configuring WebSphere MQ Error log sizes</title>
		<link>https://t-rob.net/2012/12/04/configuring-websphere-mq-error-log-sizes/</link>
		<comments>https://t-rob.net/2012/12/04/configuring-websphere-mq-error-log-sizes/#comments</comments>
		<pubDate>Wed, 05 Dec 2012 01:23:20 +0000</pubDate>
		<dc:creator>T.Rob</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[WMQ]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[compatibility]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[undocumented]]></category>
		<category><![CDATA[version]]></category>
		<category><![CDATA[WebSphere MQ]]></category>

		<guid isPermaLink="false">https://t-rob.net/?p=636</guid>
		<description><![CDATA[I&#8217;ve been keeping a running blog post of questions and answers from the WebSphere MQ Admin seminar this week in Amsterdam, but the more I researched this topic, the longer the answer became.  Eventually, it spilled over into its own &#8230; <a href="https://t-rob.net/2012/12/04/configuring-websphere-mq-error-log-sizes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="attachment_637" class="wp-caption alignright" style="width: 310px"><a href="http://www.artec-educational.com/tuning-fork-p-495.html"><img class="size-full wp-image-637" title="Tuning Fork" src="https://t-rob.net/wp-content/uploads/2012/12/TuningFork.jpg" alt="" width="300" height="236" /></a><p class="wp-caption-text">No, not *that* kind of tuning!</p></div>
<p>I&#8217;ve been keeping a <a title="Notes from the WSMQAdmin seminar" href="https://t-rob.net/2012/12/04/notes-from-the-wsmqadmin-seminar/">running blog post</a> of questions and answers from the WebSphere MQ Admin seminar this week in Amsterdam, but the more I researched this topic, the longer the answer became.  Eventually, it spilled over into its own post.</p>
<p>It turns out that the behavior and controls have changed from version to version and even across Fix Packs.  That means after applying a fix Pack or upgrading to a new version, things might break.  For a new QMgr it won&#8217;t &#8220;break&#8221; anything but it might not behave as expected if you set the parameters based on the old version.  Here then is the story of the many facets of error log size tuning.</p>
<p><span id="more-636"></span></p>
<p>Q: I need to increase the size of my MQ error logs.  Where are the error log file sizes specified?</p>
<p>A: The log file sizes can be tuned using the MAXMQERRORLOGSIZE environment variable, the qm.ini file and/or the QMgr attributes in the WebSphere MQ Explorer Extended Attributes panel.  If the environment variable is changed, the queue manager and local applications must be restarted to pick up the change.  If the ini file is changed, the queue manager (but not the local applications) must be restarted to pick up the change, after which the value will be visible in the WebSphere MQ Explorer Extended Attributes panel.  If the size is adjusted using by altering the queue manager attribute in WMQ Explorer, it takes effect immediately and the value is saved to the ini file by the queue manger. Note that there is no equivalent MQSC command for this attribute.  It is available as PCF and WMQ Explorer exposes it in the Extended Attributes panel.  Other PCF-based tools may or may not expose this attribute.</p>
<p>The features regarding error log size differ slightly by version so here are links and descriptions for each.</p>
<p><strong>As of v5.3</strong>, the MQMAXERRORLOGSIZE environment variable allowed for increase of the size of the global error logs and the queue manager’s error logs.  The problem with this was that any process for which the environment variable was not set would truncate the error logs to 256k.  Additionally, on iSeries you needed to delete the existing files in order to make the change as described <a title="Changing error log sizes on iSeries" href="http://ibm.co/11wshPs">here</a>.</p>
<p><strong>As of V6.0,</strong> an attribute was placed in the qm.ini file that eliminated the problem of having to put the environment variable everywhere.  But the ini file setting only affected the queue manager&#8217;s logs and was not available on iSeries. If you wanted to change the global error log sizes, you still needed the environment variable.</p>
<p><strong>As of Fix Pack 6.0.2.4</strong>, the the MQMAXERRORLOGSIZE  variable was still available on all distributed platforms, including iSeries, but in the first release and the early fix packs of V6.0 MQMAXERRORLOGSIZE affected only the global error logs.  If the enviroment variable was used but the qm.ini file did not contain an entry, the queue manager&#8217;s log file size remained at 256k.  This behavior was changed in Fix Pack 6.0.2.4 so that in the absence of an ini file setting, the environment variable applied to the global and the queue manager error log files.  If <em>both</em> the MQMAXERRORLOGSIZE  environment variable and the qm.ini&#8217;s ErrorLogSize and are set, the qm.ini setting takes precedence for <em>that queue manager’s</em> error logs.    The Infocenter page is <a title="V6.0 Infocenter error log size settings" href="http://ibm.co/11wcAI1" target="_blank">here</a>.  A Technote that further explains all this is <a title="Changing WebSphere MQ error log sizes in v6.0" href="http://ibm.co/Xlpk3S" target="_blank">here</a>.</p>
<p><strong>As of V7.0</strong>, the MQMAXERRORLOGSIZE variable is completely absent from the Infocenter, however it is mentioned in <a title="Setting MAXMQERRORLOGSIZE, including V7.0" href="http://ibm.co/11wshPs" target="_blank">a Technote</a> as being applicable to that version.  The qm.ini file setting is documented however, and the Infocenter page describing how to change the qm.ini file or use WMQ Explorer to update the setting <a title="Changing WebSphere MQ error log sizes in v7.0" href="http://ibm.co/TF8Al0" target="_blank">is here</a>.</p>
<p><strong>As of V7.1</strong>, both the environment variable and the qm.ini file setting are documented.  More importantly, the default size of the logs was changed from 256k to 2MB which could eliminate the need for tuning if you had been using a value equal to or smaller than that size.  The Infocenter doesn&#8217;t specify that this applies to only QMgr logs or only global logs so it applies to both.  I haven&#8217;t confirmed this yet so if you notice it isn&#8217;t acting this way, please let me know.  There is a small possibility that the new defaults apply only to QMgr error logs and the Infocenter is wrong.</p>
<p>In the event you have iSeries and would still like to tune the error log sizes above 4MB, the <a title="Error log tuning for WMQ on IBM i" href="http://publib.boulder.ibm.com/infocenter/wmqv7/v7r1/topic/com.ibm.mq.doc/ia12420_.htm" target="_blank">Infocenter page</a> does not mention WebSphere MQ Explorer, nor does it mention any requirement to delete the existing files before changing the setting.  However, the Technote mentioned previously is marked as applicable to V7.1 so plan on deleting the error log files if you change this value on V7.1.</p>
<p>On other distributed platforms, the option to use WMQ Explorer is offered and you can choose that or to update the qm.ini file.  The Infocenter page for that option <a title="Changing WebSphere MQ error log sizes in v7.1" href="http://ibm.co/XnMC9v" target="_blank">is here</a>.</p>
<p>Interestingly, the MQMAXERRORLOGSIZE environment variable <a title="Setting MAXMQERRORLOGSIZE in Websphere MQ V7.1" href="https://t-rob.net/2012/12/04/notes-from-the-wsmqadmin-seminar/" target="_blank">is mentioned</a> in the Infocenter for V7.1 as applying only to the queue manager files.  The global error log files are not addressed.  Googling for &#8220;mq errorlogsize 7.1 technote&#8221; doesn&#8217;t turn up any hits.  If the Infocenter had not explicitly specified &#8220;queue manager error logs&#8221; I would have assumed the variable retained the old behavior of applying to the global error logs as well.  If you have a V7.1 setup, I&#8217;d be curious what behavior you are seeing with regard to this variable and the global error logs.</p>
<p><strong>As of V7.5</strong>, the Infocenter has the same content as for V7.1.  However, since this is the version I have on my laptop and can test easily, I tried setting MQMAXERRORLOGSIZE as a global system variable, rebooted and generated massive quantities of global and QMgr-specific errors.  In all cases, the logs rotated at 2MB.  In instances like this I always assume I&#8217;ve got a typo or other <a title="Definition of PEBCAK error" href="http://bit.ly/SELv1M" target="_blank">PEBCAK error</a> so I&#8217;ll try again tomorrow and keep this post updated as I go.</p>
<p><strong>My conclusion</strong> from all this is that if error log size is important to you (for example, your QMgr tends to roll them over before you can diagnose an error) then it is worth verifying that your setting is appropriate, especially if you have changed versions or are running a large network with many different versions.  Alternatively, you may wish to capture the AMQERR03.LOG files whenever the timestamp changes.  In windows you may wish to look at <a title="Process Monitor - Microsoft.com" href="http://bit.ly/Swb0Rz" target="_blank">Microsoft&#8217;s Process Monitor utility</a> and in Linux the iNotify facility looks like it would do the trick.  I&#8217;ll look at these at some point when I get a free afternoon and post results, but if you try them before then please let me know how it goes.</p>
]]></content:encoded>
			<wfw:commentRss>https://t-rob.net/2012/12/04/configuring-websphere-mq-error-log-sizes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notes from the WSMQAdmin seminar</title>
		<link>https://t-rob.net/2012/12/04/notes-from-the-wsmqadmin-seminar/</link>
		<comments>https://t-rob.net/2012/12/04/notes-from-the-wsmqadmin-seminar/#comments</comments>
		<pubDate>Tue, 04 Dec 2012 11:05:25 +0000</pubDate>
		<dc:creator>T.Rob</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[WMQ]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[maintenance]]></category>
		<category><![CDATA[Recommended Practices]]></category>
		<category><![CDATA[WebSphere MQ]]></category>

		<guid isPermaLink="false">https://t-rob.net/?p=630</guid>
		<description><![CDATA[This post is a running capture of Q&#38;A from the WebSphere MQ Admin seminar in Amsterdam, brought to you by WebSphere Insights and Nastel. Welcome to Amsterdam and thanks for attending!  I will continue to update it throughout the week &#8230; <a href="https://t-rob.net/2012/12/04/notes-from-the-wsmqadmin-seminar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>This post is a running capture of Q&amp;A from the <a title="WebSphere MQ Admin seminar" href="http://bit.ly/WSMQAdmin2012" target="_blank">WebSphere MQ Admin seminar</a> in Amsterdam, brought to you by <a title="WebSphere Insights Magazine" href="http://bit.ly/YKiTb7" target="_blank">WebSphere Insights</a> and <a title="Nastel" href="http://bit.ly/SD9lLf" target="_blank">Nastel</a>.</p>
<p>Welcome to Amsterdam and thanks for attending!  I will continue to update it throughout the week rather than posting once per day, so feel free to bookmark the page and refresh from time to time.  Please also feel free to contact me directly and I&#8217;ll either help you out or find someone who can.  Looking for <a title="Photos from the WS MQAdmin seminar in Amsterdam" href="https://www.facebook.com/media/set/?set=a.564754930206243.148138.100000152238360&amp;type=1&amp;l=37982c735a" target="_blank">photos</a>?  On to the Q&amp;A&#8230;</p>
<p><span id="more-630"></span></p>
<p>Q: You mentioned &#8220;sack uber flow&#8221; or something like that.</p>
<p>A: Sorry for the accent.  That was supposed to be &#8220;Stack Overflow.&#8221;  Look up old WebSphere MQ questions <a title="Stack Overflow websphere-mq tag" href="http://stackoverflow.com/questions/tagged/websphere-mqhttp://" target="_blank">here</a>, or enter your own.  If you have an account there, remember to accept answers to your posts when you get a good one, and upvote <a title="T.Rob's Stack Overflow profile" href="http://stackoverflow.com/users/214668/t-rob" target="_blank">high quality answers</a> to any questions.</p>
<p>&nbsp;</p>
<p>Q: We have an exit on z/OS that takes the value from MCAUSER and puts it into the MQMD.MsgID.  Is that available on UNIX systems?</p>
<p>A: You are in luck!  Please see <a title="IBM Redbooks publication: Secure Messaging Scenarios With WebSphere MQ" href="http://www.redbooks.ibm.com/abstracts/sg248069.html" target="_blank"><em>Secure Messaging Scenarios with WebSphere MQ</em></a>.  Jørgen Pedersen wrote that exit as part of the Redbooks residency that produced this book.</p>
<p>&nbsp;</p>
<p>Q: What if my WebSphere MQ administrator disables my AMS security policies, does some nefarious stuff, then changes them back?</p>
<p>A: Yes, it is true that the MQ Admin has the ability to do many nasty things on the QMgr.  If an application accepts commands by listening to a queue, the MQ admin is effectively an administrator of that application.  Except where AMS is involved and the QMgr is V7.5.  As of V7.5, the queue manager will not let the administrator GET or PUT messages on the policy queue using the message API.  If configuration events are enabled, use of the policy management commands or WebSphere MQ Explorer to edit or delete the policies results in event messages.  As AJ noted in class, converting event queues to topics prevents the administrator from intercepting the publications.</p>
<p>&nbsp;</p>
<p>Webcast on WebSphere MQ for z/OS Debugging Abends for Beginners &#8211; 11 December, 2012 at 11am EST, 4pm UTC.  Register <a title="WebSphere MQ for z/OS Debugging Abends for Beginners" href="http://ibm.co/TGTQlm" target="_blank">here</a>.</p>
<p>Q: What is this &#8220;RFE Community&#8221; of which you speak?</p>
<p>A: The <a title="RFE Community" href="http://ibm.co/IBMRFE" target="_blank">Request For Enhancement Community</a> is where you can submit your requirements for IBM products, including the WebSphere MQ family.  Unlike the previous system, the RFE submissions are public and you can vote and comment on the ones you like, or enter your own.  Because the new system is public, there is much more transparency as to what features are most or least in demand.</p>
<p>Already in the first day we&#8217;ve run into a few things that are good candidates for an RFE.  Several people mentioned that the Infocenter reorganization makes it hard to find things such as the content that used to be in the Quick Beginnings manuals.  Someone else mentioned Windows Power Shell was not supported in more recent MQ versions.  If there is an RFE for the feature you want, vote on it.  If not, submit a new one.</p>
<p>&nbsp;</p>
<p>Q: Where are the communities mentioned in the session?</p>
<p>A: MQSeries.net is easy to find &#8211; go to <a title="MQSeries.net" href="http://mqseries.net" target="_blank">http://mqseries.net</a>.  If you prefer a list server, just send an email with the words &#8220;subscribe mqseries&#8221; in the body to <a title="Send email to LISTSERV@LISTSERV.MEDUNIWIEN.AC.AT" href="mailto:LISTSERV@LISTSERV.MEDUNIWIEN.AC.AT" target="_blank">LISTSERV@LISTSERV.MEDUNIWIEN.AC.AT</a> or use the <a title="Vienna Listserv web interface" href="http://bit.ly/Vi4Gf8" target="_blank">web interface</a>.  The list server is hosted by the University of Vienna and has been in operation since the earliest days of WebSphere MQ.  Accordingly, it is known in the community as &#8220;the Vienna MQSeries list.&#8221;</p>
<p>&nbsp;</p>
<p>Q: Glen mentioned the Quick Beginnings Guides but I can&#8217;t find them in the Infocenter.</p>
<p>A: As of v7.1, these were broken up into 9 sections and redistributed to the topics that contain similar information.  For each of the platforms there&#8217;s an index page with links to the 9 sections where the content was relocated.  If you enter &#8220;Quick Beginnings&#8221; into the Infocenter search box, it pulls up these pages.</p>
<p>&nbsp;</p>
<p>Q: I need to increase the size of my MQ error logs.  Where are the error log file sizes specified?</p>
<p>A: This answer grew too long so I moved it to <a title="Configuring WebSphere MQ Error log sizes" href="https://t-rob.net/2012/12/04/configuring-websphere-mq-error-log-sizes/">its own post</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://t-rob.net/2012/12/04/notes-from-the-wsmqadmin-seminar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pub/Sub security</title>
		<link>https://t-rob.net/2012/12/03/pubsub-security/</link>
		<comments>https://t-rob.net/2012/12/03/pubsub-security/#comments</comments>
		<pubDate>Mon, 03 Dec 2012 12:41:07 +0000</pubDate>
		<dc:creator>T.Rob</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[WMQ]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Recommended Practices]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[topics]]></category>
		<category><![CDATA[WebSphere MQ]]></category>
		<category><![CDATA[WebSphere MQ Security]]></category>
		<category><![CDATA[WMQ Security]]></category>

		<guid isPermaLink="false">https://t-rob.net/?p=628</guid>
		<description><![CDATA[One of the recurring questions I receive is about the differences between queue security and pub/sub security. The email below is typical: I have been trying to get ACF2 access rules in place to secure Pub Sub Topics but I &#8230; <a href="https://t-rob.net/2012/12/03/pubsub-security/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>One of the recurring questions I receive is about the differences between queue security and pub/sub security. The email below is typical:</p>
<blockquote><p><span id="more-628"></span>I have been trying to get ACF2 access rules in place to secure Pub Sub Topics but I cannot get it to work as documented. Based on the documentation, the call should be made to <code>hlq.SUBSCRIBE.topicname</code> and <code>hlq.PUBLISH.topicname</code>. I currently set the rules to prevent any access to the Topic EPUB with the following ACF2 entries:<br />
<code><br />
SUBSCRIBE.SYSTEM.BASE.TOPIC UID(*) ALLOW<br />
SUBSCRIBE.EPUB UID(*) PREVENT</code></p>
<p>Based on the above rules, I should not be able to run a process to subscribe to EPUB, but my process ran successfully. The <code>SUBSCRIBE.EPUB UID(*) PREVENT</code> entry should have given me a security violation (MQ 2035). When I look at the Master region initialization, I do see the following message:</p>
<p>20.49.59 STC04131 CSQH024I +MD9T CSQHINIT TOPIC security switch set ON,<br />
356 profile &#8216;MD9T.NO.TOPIC.CHECKS&#8217; not found</p>
<p>I am not sure, but it may be that either I am missing a profile or that ACF2 is not making the check for some reason.</p></blockquote>
<p>My response to the email is pasted in below:</p>
<p>I think the problem here is that Pub/Sub authorizations don&#8217;t quite work the way you are expecting.  With profiles for queues, the most specific profile is resolved and a single check is made.  So if you have a profiles like this&#8230;</p>
<p>setmqaut -n &#8216;**&#8217; +put +get +inq<br />
setmqaut n &#8216;SYSTEM.**&#8217; +inq<br />
setmqaut -n SYSTEM.DEFAULT.LOCAL.QUEUE +put +get +inq</p>
<p>&#8230;you can open MY.QUEUE for put and get (it matches &#8216;**&#8217;), are restricted from opening most SYSTEM.* queues for anything but inquire, but CAN open SYSTEM.DEFAULT.LOCAL.QUEUE because its profile is more specific than the other two which also match.</p>
<p>With topics it works a bit different.  Suppose you have the following topic hierarchy:</p>
<p>Price/<br />
Price/Fruit/<br />
Price/Fruit/Apples<br />
Price/Fruit/Oranges<br />
Price/Vegetables/<br />
Price/Vegetables/Kale<br />
Price/Vegetables/Broccoli</p>
<p>Anyone authorized to publish on Price/Fruit is able to publish on Price/Fruit/Apples and Price/Fruit/Oranges because these are subtopics of Price/Fruit.  But they are NOT authorized to publish on Price/Vegetables based on the authorization at Price/Fruit.</p>
<p>Anyone that is allowed to publish on Price/ can by definition publish on any more specific topic, including Price/Fruit/ and Price/Vegetables.  This is because they are subtopics of Price/.</p>
<p>So the question is, what happens when two profiles match the same topic string? The closest analogy to your configuration is that we allow publication on Price/ but prevent it on Price/Fruit.</p>
<p>The answer lies in how the checks occur.  Suppose someone tries to publish or subscribe on Price/Fruit/Apples and there&#8217;s no topic definition at that level. The result is that the operation is by default denied at that level, and resolution restarts at the next highest level.  MQ finds the topic object at Price/Fruit and sees that it denies access. But resolution does not stop here because access at a higher level includes access at lower levels, therefore MQ needs to know if access is granted further up, so resolution starts again at the next higher level.</p>
<p>Checks continue up the topic hierarchy until either a) a topic is found at which access is granted; or b) MQ reaches SYSTEM.BASE.TOPIC without finding an access grant, at which point access is denied.  If you compare this to authorizing queues, it is kind of opposite &#8211; with topics, the *least* specific profile takes precedence.</p>
<p>Why is this? Well, for starters it is kind of intuitive that if you can publish on a topic, you should be able to dynamically invent subtopics within that topic.  But leaving that aside for a moment, imagine that in my hierarchy an app successfully subscribed at Price/Fruit but did not have access to Price/Fruit/Apples.  In order to enforce the restriction lower in the hierarchy, WMQ would be forced to perform an authorization check on EVERY message rather than once at the subscribe API call. That would be a performance nightmare.  Also, messages for Price/Fruit would be OK but the first message that showed up for Price/Fruit/Apples would cause a fatal authorization error. That would mean that an app that was in Production for years might fail suddenly when someone published to a new subtopic.  That would also be a nightmare.</p>
<p>In your case, you need to remove the authorization at SYSTEM.BASE.TOPIC.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://t-rob.net/2012/12/03/pubsub-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sure, its always an MQ problem. Why is that a bad thing?</title>
		<link>https://t-rob.net/2012/11/02/sure-its-always-an-mq-problem/</link>
		<comments>https://t-rob.net/2012/11/02/sure-its-always-an-mq-problem/#comments</comments>
		<pubDate>Sat, 03 Nov 2012 04:14:57 +0000</pubDate>
		<dc:creator>T.Rob</dc:creator>
				<category><![CDATA[WMQ]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[commentary]]></category>
		<category><![CDATA[Recommended Practices]]></category>
		<category><![CDATA[WebSphere MQ]]></category>

		<guid isPermaLink="false">https://t-rob.net/?p=591</guid>
		<description><![CDATA[One recurring theme in the MQ community is that all problems are MQ problems.  Never mind that they almost always turn out to be application, network, firewall, SAN, account maintenance, resource constraints, human error or even sabotage, it&#8217;s an MQ &#8230; <a href="https://t-rob.net/2012/11/02/sure-its-always-an-mq-problem/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 250px"><img class=" " title="It's always an MQ problem" src="http://cdn.memegenerator.net/instances/400x/29502266.jpg" alt="I don't always have problems, but when I do I blame them on MQ" width="240" height="301" /><p class="wp-caption-text">It&#8217;s always an MQ problem</p></div>
<p>One recurring theme in the MQ community is that all problems are MQ problems.  Never mind that they almost always turn out to be application, network, firewall, SAN, account maintenance, resource constraints, human error or even sabotage, it&#8217;s an MQ problem.  If all the problem tickets have &#8220;MQ problem&#8221; in the title and are all assigned to the MQ team, the team and MQ itself can get a bad reputation within the organization.  I&#8217;ve been working with MQ since the mid 90&#8242;s and it has always been thus.  The complaint was raised again today.</p>
<blockquote><p>I used to try and correct the record and language used for EVERY incident. This worked for a while but then with a lot of turnover, we are back to where we were a couple of years ago. I have had very little success trying to re-educate the current development staff.</p>
<p>Question, how do you deal with an organizational and cultural issue like this?</p></blockquote>
<p>By the time I started an MQ admin team at my former employer, MQ had a terrible reputation.  In fact, the only reason I was assigned to it full time was that there were frequent outages and management decided it needed a lot of care and feeding.  One of the developers had become the resident MQ expert and after the first app went into production he provided the MQ support.  After two and then three apps were in production he spent as much time supporting MQ as writing code.  Since I wasn&#8217;t qualified to write C code (I was a COBOL programmer then) and since everyone knew a trained monkey could watch over MQ, he got to go back and coding full time and I was given 4 queue managers and a banana.  I quickly discovered that every problem was an MQ problem.  After a while they weren&#8217;t just MQ problems, they were T.Rob problems since my name was on every trouble ticket.  I began to think taking on the MQ admin role would ruin my career.</p>
<p><span id="more-591"></span>There were some genuine problems with channel stability that I solved fairly quickly by consolidating all the QMgr installations to the latest version and applying fixes.  I also standardized the installations and added things like auto-start on server reboot.  It didn&#8217;t take long before the genuine MQ problems were rare exceptions but this didn&#8217;t seem to help my reputation.  I&#8217;d figure out the non-MQ root of a problem and assign it to the right person, often describing the exact fix.  &#8220;You see, there&#8217;s this thing called a poison message&#8230;&#8221;  Or &#8220;don&#8217;t use the physical IP address on the connection, use the virtual IP address.&#8221;  Despite my best work, MQ was still in the title of all the trouble tickets, I was doing all the grunt work and all my management saw was &#8220;MQ,&#8221; &#8220;T.Rob,&#8221; &#8220;Outages&#8221;.  I had tried mounting direct challenges to this perception a couple of times, showing documented cases where root causes were traced back to other systems.  Despite all the chest-beating, management remained unimpressed.</p>
<p>I pondered this over a banana one day and came up with a new approach.  I would create systemic incentives for the application teams to avoid attributing all problems to MQ and positive incentives to avoid the problems in the first place.  Since by this time MQ was blamed for everything, MQ had visibility at fairly high levels.  The spotlight is good, it&#8217;s just the spin that is bad.  I started working on the stick phase of my plan.</p>
<p>I began to personally participate in every &#8220;MQ problem&#8221; that was reported.  Because of the high visibility, things were escalated fast.  I always made sure to provide near-continuous status reporting and included at least one tier of management above whoever it had already been escalated to.  Rather than holding the problem until resolution I would start with MQ and work my way back outward, transferring the ticket as soon as I had documented that MQ was in the clear and had enough additional information to indicate the next logical diagnostic owner.</p>
<p>Since MQ was usually eliminated very quickly as the root cause, most of the problem reporting focused on what was now an app issue, network issue, firewall issue, etc.  Very quickly, all involved would hear &#8220;well, we now know it&#8217;s not an MQ issue but indicators point to&#8230;&#8221; and whoever thought escalating to light a fire under me soon found themselves the focus of all the attention.  Not that I pointed fingers, I just presented diagnostics.  I pointed a giant spotlight on the problem and followed the trail confident the trail would usually lead somewhere else.   During the handoff I made sure to attribute the likely source to an app or a component, or even to an administrative action, but never to a person.  Often the root cause was in the system where the problem was discovered and first reported.  In that case I&#8217;d give them a free pass or two and then gently suggest that &#8220;I helped you resolve these and didn&#8217;t point fingers, how about you don&#8217;t call these MQ problems when you write them up?&#8221;  If that didn&#8217;t work, I&#8217;d be a bit more public in resolving things quickly as &#8220;not an MQ problem.&#8221;</p>
<p>Of course, if it actually were an MQ problem, I&#8217;d take full responsibility.  I could afford to take this position because by then it hardly ever was MQ&#8217;s fault.  The fact that I embraced and took ownership of the things that actually were MQ gave me more credibility when I said something <em>wasn&#8217;t</em> MQ.  I also published shop best practices for coding MQ apps and offered lunch-n-learn and other training for project teams.  If someone persisted in blaming WMQ despite all my other efforts, I might point out in my rebuttal that &#8220;not only was this not an MQ problem, but the internal MQ Admin web site has docs describing how to avoid this exact problem and we cover it once a quarter in the lunch-n-learn.&#8221;</p>
<p>Over time this helped rehabilitate MQ&#8217;s reputation as well as my own.  Management now appreciated that doing a good job with MQ perhaps required more than just a trained monkey and the team gained a few top-notch members.  The stick had worked well.  The team was finally staffed for 24&#215;7 support, outages were at their lowest levels ever and we provided this level of service while managing more QMgrs per person than ever before.  In the good graces of management and our application team customers, we had some latitude and a bit of clout.  Now it was time to implement the carrot phase of the plan.</p>
<p>When an app labeled a problem as &#8220;MDB not receiving messages&#8221; instead of &#8220;MQ not delivering messages&#8221; and then worked with my team to fix it, I was their best friend.  The outage duration would be much shorter due to the lack of friction and teams claiming ownership of tickets rather than reassigning them.  Afterward, I&#8217;d sign off on the problem report saying that the MQ team had collaborated on the solution and that I&#8217;d been assured as of the next change cycle it would be permanently fixed.  Of the apps using MQ, those who fought with us had the majority of outages and those who worked closely with us were very stable.  This did not pass unnoticed.  Because of that, earning our endorsement on the trouble ticket improved management&#8217;s confidence in the solution and generally diminished negative consequences for the app team.</p>
<p>This sounds like a lot of work and if I&#8217;d had to practice it all the time it would have been.  But the point was to build positive and negative incentives into the system to guide people to do the right thing and reward them when they did.  It became risky to label something incorrectly as an MQ problem but politically rewarding to collaborate on solutions.  Problems incorrectly attributed to MQ might end up looking like the app team were trying to shift blame and/or had ignored the training provided.  But state the problem in neutral terms and engage the MQ team early and we&#8217;d help you track down the root cause and resolve the outage.  If we weren&#8217;t busy, we&#8217;d even help you with things that obviously weren&#8217;t MQ related since by this time we had working relationships with the network team, firewall team, DNS team, sysops, accounts management and every other discipline that MQ depends on and had become valuable facilitators.</p>
<p>The MQ team earned a rep as the problem solvers rather than the problem source, and that meant something.  It also gave us political capital to enforce best practices and shop standards against an organization over which we had no formal authority.  If the project manager said something was going to Production, the division my team was in had no veto power.  But if I discovered an app wasn&#8217;t printing linked exceptions or had some other defect my team considered sev-one, there was a good chance I could block the production implementation even though my boss couldn&#8217;t.  No longer content to fend off bad press and aspire to the level of mere neutrality, we used our position as middleware admins to recast ourselves as the A-Team of problem resolution.</p>
<p>Once we established the reputations of MQ and the team, maintaining that position required a lot less work.  In fact, the app teams were some of our best ambassadors.  On several occasions I overheard someone in an adjoining cube say something like &#8220;I think there&#8217;s a problem with MQ, my app isn&#8217;t getting any messages&#8221; and another developer would respond &#8220;It&#8217;s probably a poison message, did you read the poison message guidelines yet?&#8221;  Sometimes problems reappeared.  At one point we began to see poison messages after a two or three year remission.  Rather than blaming MQ, management encouraged the responsible app team to consult with us.</p>
<p>As middleware administrators, we often lament that our product gets blamed for everything due to, well, being in the middle.  We protect ourselves and the systems we manage from reputational attack by building walls to deflect attribution and blame.  We dream of the day when people stop dumping their problems on the MQ team.</p>
<p>What we often overlook to our detriment is that being in the middle gives us an unparalleled vantage point from which to observe and interact with all of the mission-critical systems running the company.  If you have some troubleshooting skill and a goal to become the most valuable person in the company&#8217;s IT department, you&#8217;d have a hard time finding a better position from which to accomplish that then as an MQ administrator.  From this perspective the ideal product to manage would be virtually trouble free yet attract demand from adjacent systems for your services.</p>
<div id="attachment_597" class="wp-caption alignleft" style="width: 310px"><img class="size-medium wp-image-597 " title="go-ahead-make-my-day1" src="https://t-rob.net/wp-content/uploads/2012/11/go-ahead-make-my-day1-300x267.jpg" alt="Go ahead. Make my day." width="300" height="267" /><p class="wp-caption-text">You want to assign that problem to me?<br />Go ahead. Make my day.</p></div>
<p>Want to change the culture?  I say tear down the walls.  Don&#8217;t deflect blame but use it as the raw material from which you refine your reputation as the go-to team for problem solving.  The day people stop dumping their problems on the MQ team is the day the MQ team ceases to be relevant.  But do give them reasons to focus on solutions rather than casting blame.  Provide real value.  Make the other teams look good for the wins and accept responsibility for the losses.  Show the other teams you are much more valuable as an ally than an adversary and don&#8217;t hold grudges.  Make it politically expensive to burn you but extremely valuable to engage you in good faith.  Whatever else you do, be happy they keep coming back.  It&#8217;s an MQ problem.  It&#8217;s always an MQ problem.  It always will be.  That&#8217;s a blessing, not a curse.</p>
]]></content:encoded>
			<wfw:commentRss>https://t-rob.net/2012/11/02/sure-its-always-an-mq-problem/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
