Solid software
for HP Servers
Robelle Headlines   March 2005

Highlights from our recent on-line customer news. The links
and full articles are available at www.robelle.com/news

What’s Up DOCumentation


Carly is Out

More news on Carly Fiorina leaving HP at www.internetnews.com, and forbes and reuters.

Homesteading, Migration and Tips

UK Consultant: HP 3000 and Ecometry

Here is a qualified accountant with 11 years experience of MACS1, MACS2, EuroMACS, and Ecometry: Colin Daley of LocseL Consultants in Cambridge England. He supplies services including training, consultancy, financials & VAT, documentation, support and problem solving, product testing, database extracts and updates, etc. Both on and off site and via VPN. HP3000 consultant. 15 years experience, the last 6 yrs in MACS environments, with HP3000/MPE operations, project planning and management. Experience with third party software products such as Robelle, Bradmark, Vesoft, OCS/Tidal and Adager. Other areas of expertise include business contingency planning, credit card authorisation, print management services. For more details, visit his web site http://www.locsel.co.uk/

Qedit Tips

 

Specifying a Line Range, without using Line Numbers

 

One of the little-known features of Qedit commands is their ability to use strings as a rangelist. Use them in any command that accepts a rangelist, and then that command will be applied only to lines containing that string. Strings can be delimited by quotes, or by any of the following special characters: | ~ _ ! # > & :. You can further qualify strings if you use window options on the string being searched.  Some examples:

 

Deleting all lines with the string "superfluous".

/delete "superfluous" 

 

Deleting all lines without the string "superfluous".

/delete "superfluous" (nomatch) 

 

Change "bug" to "undocumented feature", but only on those lines that have the string "unexplained".

/change "bug"undocumented feature" "unexplained" 

 

Delete all blank lines.

/delete "~" (pattern)    {blank lines}

 

Find the next occurrence of the string ".font" that starts in the first column.

/find ".font" (1/5) 

 

List all occurrences of "Frank", but not in words such as "Frankenstein".

/list "Frank" (smart) {ignores Frankenstein"} 

 

By default, Qedit searches for matches to a string. Specifying (NOMATCH) reverses this logic. Likewise, string searches can be restricted to particular columns (10/40), or to a caseless search (UPSHIFT).  If the string represents a pattern, this should be specified with valid pattern characters:

  • @   anything, including nothing
  • #   single numeric digit
  • ?   single alphanumeric digit
  • ~   zero or more spaces

Suprtool Tips

 

Extracting Pieces of Binary Dates

 

Neil Armstrong, the Suprtool Software Architect, writes: We recently received the following inquiry about extracting out portions of year, month and day, from numeric dates:

Hello Support Team, Here is what I need to do, I have an I2 field with a date stored in YYYYMMDD format and what I need to be able to do is redefine the field so I can get to each piece. For example:

    booking-date[1],4 = Century
    booking-date[5],2 = Month
    booking-date[7],2 = Day

 

Our response:  There is a way to isolate year, month and day in one step. It just involves some simple math in order to do what you want. It is not entirely obvious how to do this though. Myfile is a file with a double integer date field called "a" in the format ccyymmdd, below is a method to extract each portion.

>in myfile
>def year,1,4,display
>def month,1,2,display
>def day,1,2,display
>ext year=a / 10000
>ext month=(a / 100) mod 100
>ext day=a mod 100
>list
>xeq
>IN MYFILE.NEIL.GREEN (0) >OUT $NULL (0)
YEAR            = 2005    MONTH     = 2
DAY             = 7
 

You can also use the $edit function to isolate portions of the date and make the date more readable.

 

>in myfile
>def dispdata,1,10,byte
>ext dispdata=$edit(a,"9999 99 99")
>list
>xeq
>IN MYFILE.NEIL.GREEN (0) >OUT $NULL (0)
DISPDATA        = 2005 02 07

Prompting From a Job

We often get asked how to prompt for input from a jobstream. Now our first suggestion is to see if they have Streamx from Vesoft which is a portion of the Security/3000 product. If the customer does not have this product, then the other option is to create a command file that uses MPE commands and I/O re-direction to make a file that can be streamed.  Tip by Neil Armstrong.

Performance Experience from a Customer

Recently we received feedback from a customer who had experienced some poor response times, during peak hours after an upgrade from a 989-650 to an N4000-400-500(both with 8Gb memory). With an impeding peak resource demand, the customer was looking to solve the issue with some Suprtool tuning as noted in our article:

http://www.robelle.com/tips/st-performance.html

They implemented SET MAKEABSENT ON, with some very excellent results, with a reduction in IO queue waits and higher throughput, however, the real world impact, was far more important.

"We have an N4000-400-500 with 8 Gb of memory running Ecometry 5.32N on MPE/iX 7.5pp1 using an EMC Symmetrix 8530 over 14 FWD-SCSI channels.

"We used a Disk-Tape-Disk migration path for our transition, and considering that we had been on disk for 9 years our databases went from having several sets with >8k extents to newly restored contiguous sets on the new array.

"When we migrated from our 989-650 to this machine in May we experienced some poor response times at peak hours for our users, generally numbering 400-500 sessions.

"After discussions with both Bill Lancaster at Lund and Sue Horvat at HP suggested that we put SET MAKEABSENT ON in the SUPRMGR file in July.

"Our response time issue went away with minimal negative impact elsewhere.

"Please note also that our annual Sale began in July and we experienced annual peak in throughput during that sale.

"Note also that GLANCE generally shows us running 400 to 1200 in Disk I/O/sec range for most of the day!

"We were VERY pleased with the result going in just before our sale. That made "the MPE/iX system one of the highlights of a very busy time for us.  Tip by Neil Armstrong.

Two Keys for a Suprtool Table

Last month I received a request on how to do something using Suprtool. The issue was that the customer wanted to do a table lookup and subsequent Update from the table data, however, the record or table key needed to match on two values, one that was a double integer and the other was a single integer(well actually a logical, but the same number of bits). The solution, once you wrap your head around it, is amazingly simple - click the link above to read the entire story. Tip by Neil Armstrong.

Eloquence Performance and Suprtool

Recently a customer wrote us about their experience with doing performance tuning on HP-UX, using Eloquence and Suprtool. Here is a summary of the situation, with an excellent comparison between Image on MPE and Eloquence on HP-UX.

The customer had a job stream that rebuilds their data warehouse data base nightly, running on a MPE 959/3. The job contains about 950 lines, and is mostly Suprtool. It retrieves data from several data bases and puts it in their data warehouse, then rebuilds the Omnidex indexes.

The total number of records were about 4.1 million records spread across about 25 data sets; only 2 datasets exceeded 1,000,000 records. The task took about 3.5 hours wall clock to run on MPE.

On an HP-UX K580 using an Eloquence data base, the first run with the defaults in the Eloquence config file and the same job ran for 7.5 hours.

After reading the Eloquence website for some suggestions (see http://www.hp-eloquence.com/support/misc/dbtuning.html the customer decided to change 3 settings within Eloquence:

 

Old

New

BufferCache

5

128

EnableIPC

0

2

Syncmode

1

0

They also tuned some Semaphore settings in the HP-UX kernel. After making all these config changes, the job ran in 2.5 hours.

Finally the customer added Set FastRead On within Suprtool (this option uses a special mode in Eloquence for faster serial reads) and the job time dropped another 45 minutes, down to an hour and 45 minutes.

So to summarize. At first run (prior to the Eloquence adjustments) the job took 7.5 hours. Adjustments were made to Eloquence settings and the job ran in 2.5 hours. Another 45 minutes of improvement with Fastread, making the total improvement of 345 minutes, or approximately 4 times less wall time.  Tip by Neil Armstrong.