Congratulations!

[Valid Atom 1.0] This is a valid Atom 1.0 feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://www.eight-cubed.com/blog/index.atom

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-us" xml:base="http://www.eight-cubed.com/">
  3. <title type="text">e i g h t - c u b e d . c o m</title>
  4. <subtitle type="text">A day in the life of an OpenVMS systems specialist.  Articles and tutorials on Systems Management and Programming for OpenVMS.</subtitle>
  5. <id>https://www.eight-cubed.com/blog/</id>
  6. <link rel="alternate" type="application/xhtml+xml" href="https://www.eight-cubed.com/blog/" />
  7. <link rel="self" type="application/atom+xml" href="https://www.eight-cubed.com/blog/index.atom"/>
  8. <author>
  9. <name>James F. Duff</name>
  10. <uri>http://www.eight-cubed.com/</uri>
  11.  
  12. </author>
  13. <generator uri="http://www.sixapart.com/movabletype/" version="3.34">Movable Type</generator>
  14. <icon>http://www.eight-cubed.com/favicon.ico</icon>
  15. <updated>2024-01-16T00:16:17Z</updated>
  16. <entry>
  17. <title type="text">DCX X01-02</title>
  18. <summary type="html" xml:lang="en">In eons past (in 1988), I wrote a program in MACRO-32 to call the DCX$ procedures to compress and expand...</summary>
  19. <content type="html"><![CDATA[<p>In eons past (in 1988), I wrote a program in MACRO-32 to call the DCX$ procedures to compress and expand files.  In response to a blog post from Hoff in 2007, I posted the source code for it to this blog.</p>
  20.  
  21. <p>And in 2010, Volker Halle pointed out a bug in the code with the map length parameter of the DCX$ routines, and sent me a correction.</p>
  22.  
  23. <p>It only took me 13 years to update the zip file on website.  Thanks Volker!</p>]]></content>
  24. <category term="/site_news" scheme="https://www.eight-cubed.com/blog/archives/" label="Site News" />
  25. <id>https://www.eight-cubed.com/blog/archives/001297.html</id>
  26. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001297.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  27. <published>2024-01-16T00:05:11Z</published>
  28. <updated>2024-01-16T00:16:17Z</updated>
  29. </entry>
  30. <entry>
  31. <title type="text">Some more changes to the examples</title>
  32. <summary type="html" xml:lang="en">As I mentioned in the previous post, I used to own an AlphaServer 800 as my workhorse VMS machine at...</summary>
  33. <content type="html"><![CDATA[<p>As I mentioned in the previous post, I used to own an AlphaServer 800 as my workhorse VMS machine at home, but after it had a fatal hardware issue after a staggeringly good run of over 20+ years of continuous use, I retired it and relied on access to machines at work to answer questions that I get about VMS via this web site.</p>
  34.  
  35. <p>One of the issues with retiring the Alpha and not replacing it was that I lost access to DTM - Digital Test Manager, which is a regression test tool that's part of the DECSet product, as we didn't use it at work.</p>]]></content>
  36. <category term="/programming" scheme="https://www.eight-cubed.com/blog/archives/" label="Programming" />
  37. <id>https://www.eight-cubed.com/blog/archives/001296.html</id>
  38. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001296.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  39. <published>2023-11-23T00:08:39Z</published>
  40. <updated>2024-01-15T06:15:37Z</updated>
  41. </entry>
  42. <entry>
  43. <title type="text">Examples updated</title>
  44. <summary type="html" xml:lang="en">My venerable Alpha 800 was retired long ago, and I&apos;ve been relying on resources at work to answer the regular...</summary>
  45. <content type="html"><![CDATA[<p>My venerable Alpha 800 was retired long ago, and I've been relying on resources at work to answer the regular queries that I get about VMS and the code examples.</p>
  46.  
  47. <p>Now being retired however, it's well past due that I have a VMS machine at home again, and with the advent of the community license for x86_64, I've been able to get a virtual machine up and running OpenVMS 9.2-1 and updated the examples code.</p>]]></content>
  48. <category term="/site_news" scheme="https://www.eight-cubed.com/blog/archives/" label="Site News" />
  49. <id>https://www.eight-cubed.com/blog/archives/001295.html</id>
  50. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001295.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  51. <published>2023-08-09T00:54:36Z</published>
  52. <updated>2024-01-15T06:15:37Z</updated>
  53. </entry>
  54. <entry>
  55. <title type="text">And fixed</title>
  56. <summary type="html" xml:lang="en">The examples are working again. This is what happens to you trying to maintain a hosted web site for multiple...</summary>
  57. <content type="html"><![CDATA[<p>The examples are working again.  This is what happens to you trying to maintain a hosted web site for multiple years... the hosting company will change out software from under you with no warning.  Because my site is so old, this has happened a number of times over the years.</p>
  58.  
  59. <p>And when I uploaded the new version of the examples, it triggered off a script that contained a depreciated feature.  At some stage I should see if I can export all this and import it into a modern CMS.  Another project for another day.</p>]]></content>
  60. <category term="/site_news" scheme="https://www.eight-cubed.com/blog/archives/" label="Site News" />
  61. <id>https://www.eight-cubed.com/blog/archives/001294.html</id>
  62. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001294.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  63. <published>2023-08-08T23:28:23Z</published>
  64. <updated>2023-11-22T06:35:40Z</updated>
  65. </entry>
  66. <entry>
  67. <title type="text">Yes, I know the examples are broken...</title>
  68. <summary type="html" xml:lang="en">I&apos;m working on getting my dev-&gt;website pipeline going and I&apos;ve broken something. I&apos;ll figure out what it is tomorrow. Apologies...</summary>
  69. <content type="html"><![CDATA[<p>I'm working on getting my dev->website pipeline going and I've broken something.  I'll figure out what it is tomorrow.  Apologies for the inconvenience.</p>]]></content>
  70. <category term="/site_news" scheme="https://www.eight-cubed.com/blog/archives/" label="Site News" />
  71. <id>https://www.eight-cubed.com/blog/archives/001293.html</id>
  72. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001293.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  73. <published>2023-08-08T07:47:03Z</published>
  74. <updated>2023-11-22T06:35:40Z</updated>
  75. </entry>
  76. <entry>
  77. <title type="text">I&apos;m officially retired</title>
  78. <summary type="html" xml:lang="en">After what seems an eternity, the company I&apos;ve worked for for nearly 15 years back here in Australia has finally...</summary>
  79. <content type="html"><![CDATA[<p>After what seems an eternity, the company I've worked for for nearly 15 years back here in Australia has finally completed a phased migration of their business to a new system, making the VMS systems and my position redundant.</p>
  80.  
  81. <p>I've been expecting this to happen for a long time, but various delays with the new system pushed it back... and back... and back.</p>]]></content>
  82. <category term="/personal" scheme="https://www.eight-cubed.com/blog/archives/" label="Personal" />
  83. <id>https://www.eight-cubed.com/blog/archives/001292.html</id>
  84. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001292.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  85. <published>2023-07-25T07:11:29Z</published>
  86. <updated>2023-08-07T13:40:47Z</updated>
  87. </entry>
  88. <entry>
  89. <title type="text">My goodness, long time between posts</title>
  90. <summary type="html" xml:lang="en"><![CDATA[<p>It's been over two years since I've posted anything here!  The life of a VMS manager when the system they're managing is in maintenance mode and is being decommissioned is rather mundane, however I haven't forgotten VMS, and have updated the links to VSI's new documentation set in my examples.</p>]]></summary>
  91. <content type="html"><![CDATA[<p>It's been over two years since I've posted anything here!  The life of a VMS manager when the system they're managing is in maintenance mode and is being decommissioned is rather mundane.</p>]]></content>
  92. <category term="/openvms" scheme="https://www.eight-cubed.com/blog/archives/" label="OpenVMS" />
  93. <id>https://www.eight-cubed.com/blog/archives/001291.html</id>
  94. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001291.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  95. <published>2021-11-06T01:54:50Z</published>
  96. <updated>2022-10-08T03:18:44Z</updated>
  97. </entry>
  98. <entry>
  99. <title type="text">Bit tests in COBOL</title>
  100. <summary type="html" xml:lang="en"><![CDATA[<p>It's been a long while since I've had anything interesting to post here.  Mostly, my day to day occupation for the last couple of years has been maintaining the infrastructure, operating system, and ensuring business as usual continues for the company's primary application.</p>
  101.  
  102. <p>However, I got an interesting query from an old friend today, asking if there is a way to do bitwise tests in COBOL.  This was an interesting challenge that made me think outside the box!</p>]]></summary>
  103. <content type="html"><![CDATA[<p>It's been a long while since I've had anything interesting to post here.  Mostly, my day to day occupation for the last couple of years has been maintaining the infrastructure, operating system, and ensuring business as usual continues for the company's primary application.</p>
  104.  
  105. <p>However, I got an interesting query from an old friend today, asking if there is a way to do bitwise tests in COBOL.  This was an interesting challenge that made me think outside the box!</p>]]></content>
  106. <category term="/programming" scheme="https://www.eight-cubed.com/blog/archives/" label="Programming" />
  107. <id>https://www.eight-cubed.com/blog/archives/001290.html</id>
  108. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001290.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  109. <published>2018-06-29T01:43:58Z</published>
  110. <updated>2020-04-28T11:08:46Z</updated>
  111. </entry>
  112. <entry>
  113. <title type="text">Are we getting closer to the bug?</title>
  114. <summary type="html" xml:lang="en"><![CDATA[In my previous post which was terrifyingly over six months ago, I again touched on the issue that I described way back in June 2014 about <a href="http://www.eight-cubed.com/blog/archives/001285.html">directory renames sometimes producing catastrophically incorrect results</a>.  I thought I'd bring you up-to-date with what's happening...]]></summary>
  115. <content type="html"><![CDATA[<p>In my previous post which was terrifyingly over six months ago, I again touched on the issue that I described way back in June 2014 about <a href="http://www.eight-cubed.com/blog/archives/001285.html">directory renames sometimes producing catastrophically incorrect results</a>.  I thought I'd bring you up-to-date with what's happening...</p>
  116.  
  117. <p>Shortly after I published the update in late June 2015, Engineering got in touch with me to note that RMS has a process wide directory path cache, which gets invalidated on every directory remove operations (delete or rename).  Cache invalidation is based on a directory sequence number contained in the <abbr title="Unit Control Block">UCB</abbr> of the disk involved.  They suggested running some <abbr title="System Dump Analyser">SDA</abbr> commands to see if, when the problem occurred, the field was not being updated.</p>]]></content>
  118. <category term="/openvms" scheme="https://www.eight-cubed.com/blog/archives/" label="OpenVMS" />
  119. <id>https://www.eight-cubed.com/blog/archives/001289.html</id>
  120. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001289.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  121. <published>2016-01-14T00:24:06Z</published>
  122. <updated>2016-08-18T04:11:18Z</updated>
  123. </entry>
  124. <entry>
  125. <title type="text">Still rename weirdness</title>
  126. <summary type="html" xml:lang="en">Long time between posts. My job has got very quiet due to my company aiming to replace the in-house written...</summary>
  127. <content type="html"><![CDATA[<p>Long time between posts.  My job has got very quiet due to my company aiming to replace the in-house written system running on VMS with an off-the-shelf <abbr title="Enterprise Resource Planning">ERP</abbr> system.  With the inherent stability of the system running on VMS, I haven't had much to write about.</p>
  128.  
  129. <p>However, I wrote <a href="http://www.eight-cubed.com/blog/archives/001285.html">an article</a> over a year ago concerning a rare issue where a series of directory renames gets "confused".  This issue has hit us twice in the last three days.</p>
  130.  
  131. <p>Perhaps now that the old team reassembled for VSI is back together, someone will be able to solve this.</p>]]></content>
  132. <category term="/openvms" scheme="https://www.eight-cubed.com/blog/archives/" label="OpenVMS" />
  133. <id>https://www.eight-cubed.com/blog/archives/001288.html</id>
  134. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001288.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  135. <published>2015-06-26T18:10:45Z</published>
  136. <updated>2015-08-06T01:50:27Z</updated>
  137. </entry>
  138. <entry>
  139. <title type="text">HP World in Sydney</title>
  140. <summary type="html" xml:lang="en">HP World Tour is coming to Sydney on the 28th of August.  I&apos;m registered and attending if you anyone wants to catch up face to face.</summary>
  141. <content type="html"><![CDATA[<p>HP World Tour is coming to Sydney on the 28th of August.  I'm registered and attending if you anyone wants to catch up face to face.</p>]]></content>
  142. <category term="/hewlett_packard" scheme="https://www.eight-cubed.com/blog/archives/" label="Hewlett Packard" />
  143. <id>https://www.eight-cubed.com/blog/archives/001287.html</id>
  144. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001287.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  145. <published>2014-07-23T07:08:02Z</published>
  146. <updated>2014-08-05T09:37:39Z</updated>
  147. </entry>
  148. <entry>
  149. <title type="text">System logical name changes</title>
  150. <summary type="html" xml:lang="en">Here&apos;s a command procedure that run daily, will provide you with a nice email listing additions, deletions, and modifications to the system logical name table.</summary>
  151. <content type="html"><![CDATA[<p>Here's a command procedure that run daily, will provide you with a nice email listing additions, deletions, and modifications to the system logical name table.</p>]]></content>
  152. <category term="/openvms" scheme="https://www.eight-cubed.com/blog/archives/" label="OpenVMS" />
  153. <id>https://www.eight-cubed.com/blog/archives/001286.html</id>
  154. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001286.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  155. <published>2014-06-16T06:21:00Z</published>
  156. <updated>2014-07-22T13:09:35Z</updated>
  157. </entry>
  158. <entry>
  159. <title type="text">Rename weirdness</title>
  160. <summary type="html" xml:lang="en">Sometimes a directory rename doesn&apos;t?</summary>
  161. <content type="html"><![CDATA[<p>Consider the following directory structure:</p>
  162.  
  163. <pre>
  164.  
  165. $ dir my_disk:[top.branch...]
  166.  
  167. Directory MY_DISK:[top]
  168.  
  169. branch.DIR;1
  170.  
  171. Total of 1 file.
  172.  
  173. Directory MY_DISK:[top.branch]
  174.  
  175. archive.DIR;1       report1.rep;1       report2.rep;1
  176.  
  177. Total of 3 files.
  178.  
  179. Directory MY_DISK:[top.branch.archive]
  180.  
  181. 20140611.DIR;1      20140612.DIR;1
  182.  
  183. Total of 2 files.
  184.  
  185. Grand total of 3 directories, 6 files.
  186.  
  187. </pre>
  188.  
  189. <p>During the day, a large number of reports are created in MY_DISK:[TOP.BRANCH].</p>
  190.  
  191. <p>The goal of the following set of DCL commands is to move these files to a directory called MY_DISK:[TOP.BRANCH.ARCHIVE.20140613]:</p>
  192.  
  193. <pre>
  194. $ set prot=o:rwed my_disk:[top.branch]archive.dir
  195. $ rename my_disk:[top.branch]archive.dir my_disk:[top]branch_archive.dir
  196. $ set prot=o:rwed my_disk:[top]branch.dir
  197. $ rename my_disk:[top]branch.dir my_disk:[top.branch_archive]20140613.dir
  198. $ create/dir my_disk:[top.branch]
  199. $ rename my_disk:[top]branch_archive.dir my_disk:[top.branch]archive.dir
  200. </pre>
  201.  
  202. <p>Now imagine there are 80+ BRANCH.DIR directories (with different names of course) and we have that sequence of commands execute in parallel jobs, one for each directory.</p>
  203.  
  204. <p>The vast majority of the time, this works fine.  However, on the odd occasion, the CREATE/DIR command says that the directory already exists, even though the preceding RENAME has returned a success status.</p>
  205.  
  206. <p>After the CREATE/DIR, the next RENAME also succeeds, however, right afterwards, the BRANCH.DIR directory has mysteriously gone missing!  The directory is only then recoverable by performing an ANALYZE/DISK/REPAIR.</p>
  207.  
  208. <p>This is on I64 8.4 with UPDATE-V0800, FIBRE_SCSI-V0500, RMS-V0400, and SYS_V0300.</p>
  209.  
  210. <p>The underlying ODS-5 disk is a two member shadow set that a SET VOLUME/CACHE=NODATA has been issued against (the disk is 99.9% write) mounted on all nodes of a five member cluster.</p>
  211.  
  212. <p>I've logged a call with HP against this.</p>
  213. ]]></content>
  214. <category term="/openvms" scheme="https://www.eight-cubed.com/blog/archives/" label="OpenVMS" />
  215. <id>https://www.eight-cubed.com/blog/archives/001285.html</id>
  216. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001285.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  217. <published>2014-06-13T06:15:46Z</published>
  218. <updated>2014-07-22T13:09:35Z</updated>
  219. </entry>
  220. <entry>
  221. <title type="text">NRPE on OpenVMS</title>
  222. <summary type="html" xml:lang="en">Trials and tribulations of making NRPE work on OpenVMS.</summary>
  223. <content type="html"><![CDATA[<p>I have a pretty extensive <a href="http://www.nagios.org/">Nagios</a> setup here, that monitors everything from network links, OpenVMS services, Windows server availability, and Linux.</p>
  224.  
  225. <p>Because I haven't installed <abbr title="Nagios Remote Plugin Executor">NRPE</abbr> on Windows as I don't manage those boxes, some people in the Windows Team have recently been looking at Microsoft's SCOM product.  I thought I better demo NRPE, at least on OpenVMS.</p>
  226.  
  227. <p>I got the <a href="http://nrpevms.dbaalacarte.com/">OpenVMS NRPE kit</a>, but this code seems to be fairly old (no IA64 references).  But as all the code was there, it appeared to build just fine on IA64.</p>
  228.  
  229. <p>Unfortunately, there are a couple of "gotchas" in the kit, both in the documentation, and in the implementation.  First, let's fix a bug in the code that of course only rears its head when you set the DEBUG flag in NRPE.CFG to 1 (which you want to do when you are initially configuring the service).</p>
  230.  
  231. <p>The bug is in the CUSTOM.C module.  Replace this source:</p>
  232.  
  233. <pre>
  234. void syslog(int priority, char *message, ...){
  235.        char buffer[MAX_INPUT_BUFFER];
  236.        va_list arguments;
  237.  
  238.        va_start(arguments, message);
  239.  
  240.        sprintf(buffer, message, va_arg(arguments, char *));
  241.        printf("%d: %s\n", priority, buffer);
  242.  
  243.        va_end(arguments);
  244. }
  245. </pre>
  246.  
  247. <p>With this:</p>
  248.  
  249. <pre>
  250. void syslog(int priority, char *message, ...){
  251.        char buffer[MAX_INPUT_BUFFER];
  252.        va_list arguments;
  253.  
  254.        va_start(arguments, message);
  255.  
  256.        vsprintf(buffer, message, arguments);
  257.        printf("%d: %s\n", priority, buffer);
  258.  
  259.        va_end(arguments);
  260. }
  261. </pre>
  262.  
  263. <p>This prevents an access violation if there are no optional arguments (the result of a va_arg on nonexistent arguments is undefined in the C specification).</p>
  264.  
  265. <p>The other unfortunate bit is a combination of the documentation, that advises you to create logical names containing a dollar sign (which is <a href="http://h71000.www7.hp.com/doc/73final/4518/4518pro_003.html#4518_naming_con">generally not recommended</a>); and omissions in the configuration file.</p>
  266.  
  267. <p>Because the documentation tells you to create a logical containing a dollar sign, you have to specify command definitions that will be examined for macro substitution with an escaped dollar sign ($$) as the dollar sign is the macro introducer in Nagios.</p>
  268.  
  269. <p>If you look in the NRPE.CFG file supplied in the kit, you will see this is commands such as</p>
  270.  
  271. <pre>
  272. command[check_test]=@nrpe$$scripts:check_test.com
  273. </pre>
  274.  
  275. <p>But just below this is</p>
  276.  
  277. <pre>
  278. command[check_cpu]=@nrpe$scripts:check_system.com CPU
  279. </pre>
  280.  
  281. <p>which only supplies a single dollar sign.  Because of this, the macro processor assumes you've carelessly left a trailing dollar sign off and supplies you with one.  The command finally executed is</p>
  282.  
  283. <pre>
  284. @nrpe$scripts:check_system.com CPU$
  285. </pre>
  286.  
  287. <p>which doesn't work.</p>
  288.  
  289. <p>To fix, simply add the extra dollar sign in the NRPE.CFG file (or better yet, ignore the documentation and don't use a dollar sign in your logical names at all).</p>]]></content>
  290. <category term="/systems_management" scheme="https://www.eight-cubed.com/blog/archives/" label="Systems Management" />
  291. <id>https://www.eight-cubed.com/blog/archives/001284.html</id>
  292. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001284.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  293. <published>2014-04-30T06:14:11Z</published>
  294. <updated>2014-05-15T07:30:54Z</updated>
  295. </entry>
  296. <entry>
  297. <title type="text">Poor man&apos;s PCA</title>
  298. <summary type="html" xml:lang="en">Description of a solution I came up with to automatically collect program counter information in an executable image, with links to the source code.</summary>
  299. <content type="html"><![CDATA[<p>As part of DECset, HP have a really useful bit of software called the Performance and Coverage Analyzer (PCA).  The program is capable of recording <abbr title="program counter">PC</abbr> information, and then displaying the corresponding lines of source code that the frequently recorded PCs belong to.  Unfortunately, I don't have a license.</p>
  300.  
  301. <p>So, how do I get a program to record its program counter on a regular basis?  Read on.</p>]]></content>
  302. <category term="/programming" scheme="https://www.eight-cubed.com/blog/archives/" label="Programming" />
  303. <id>https://www.eight-cubed.com/blog/archives/001283.html</id>
  304. <link rel="alternate" href="https://www.eight-cubed.com/blog/archives/001283.html?from=atom" type="application/xhtml+xml" hreflang="en" />
  305. <published>2014-03-20T03:59:49Z</published>
  306. <updated>2014-05-06T11:55:00Z</updated>
  307. </entry>
  308.  
  309. </feed>

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid Atom 1.0" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//www.eight-cubed.com/blog/index.atom

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda