Home · Articles · Downloads · Hobby Wear · Forums · Web Links · News CategoriesMonday, July 23, 2018
Navigation
Home
Articles
Downloads
Hobby Wear
FAQ
Forums
Web Links
News Categories
Contact Us
Photo Gallery
OpenVMS Bigot
Search
Users Online
Guests Online: 2
No Members Online

Registered Members: 7,168
Newest Member: davej
PdfFactory Pro Enterprise 2.31, MATFOR 4.00.061031 in Lahey Fortran, Adobe PhotoShop 9.0 CS2 oem, Trend Micro InterScan VirusWall 6.0, Adobe Acrobat 7.0 Professional sale, Salon Iris 5.05, Drafix Pro Landscape 11.2, oem Adobe PhotoShop CS 8.0 cheap buy, Catia 5 R12 P3 with SP2, Mcafee Secure Internet Gateway 4.5, oem Adobe Acrobat Professional 8 oem, Visual UML 4.1 Developer Edition, sale Adobe CS3 Design Premium Vol for Mac low price, Nuance Dragon Naturally Speaking 9.0 Professional With SP1, Adobe After Effects Plugins, low price AutoCAD 2006 cheap buy, Avid NewsCutter XP 3.8, The Movie Library 1.7.11, oem Adobe Creative Suite Premium Edition 2.0, ProFlyers 6.0 PDF Forms for Adobe Acrobat, PTC Pro Engineer Routed Systems Designer 5.0, sale DVDXCopy Platinum 4.0.38, CyberBizPlan v1.0.165 WinAll, NeverCenter Silo 1.16b, cheap buy AutoCAD 2005, Norton Save And Restore 11, sale Adobe Creative Suite 3 Design Premium sale, Adobe Premiere Plugins Collection 2007, cheap buy Adobe Creative Suite Premium Edition 2.0 for Mac sale, Active Desktop Calendar 6.5.061124, sale Adobe Acrobat 6.0 Professional, X-Rite MonacoPROFILER Platinum 4.8, EmailUnlimited 6.1 Win98NTME, oem Adobe Photoshop CS3 Extended sale
Sponsors
Island Computer
View Thread
OpenVMS Hobbyist Program | Hobbyist Licensing | Alpha License PAK's
Author Best way to renew/update hobbyist licenses
das
Member

Posts: 8
Location: Surrey UK
Joined: 05.03.07
Posted on October 08 2007 03:37
Dear All, My hobbyist system license termination date fast approaches. I have new licences, what is the best way to apply them? I waded straight in and registered openvms-alpha:

$ LICENSE REGISTER OPENVMS-ALPHA -
/ISSUER=OPENVMS_HOBBYIST - etc.

but when I used

$license modify /include = <mynode> openvms-alpha
%LICENSE-W-AMBIG, information provided was ambiguous; multiple licenses were found for OPENVMS-ALPHA

Yes I can see that's now true - What's the best way to tidy up and use the new licences?

(<mynode> Is a one node cluster - I thought it might be easier to add to an existing cluster if I ever got hold of another system)

I'm using 7.3-1 on the Hobbyist programme with tcpip, dec windows and have access to the serial console if needed but would prefer to do it remotely.

Thanks in advance - Dominic
Author
imiller
Administrator

User Avatar

Posts: 277
Location: UK
Joined: 24.02.06
Posted on October 08 2007 04:17
specify the authorization number with /AUTH to distinguish the different licences
http://www.encompasserve.org/~miller/
Author
das
Member

Posts: 8
Location: Surrey UK
Joined: 05.03.07
Posted on October 08 2007 10:31
Fantastic - Thanks for the swift reply - Here's to another year. Thanks again - Dominic
Author Re: Best way to renew/update hobbyist licenses
brad
Member

User Avatar

Posts: 134
Location: Hopedale, MA USA
Joined: 15.12.05
Posted on October 09 2007 13:54
[quote:16c6f05ca0="das"]
[...]
Yes I can see that's now true - What's the best way to tidy up and use the new licences?
[...]
[/quote:16c6f05ca0]

I found this routine a few years ago, to disable terminated licenses; this would fulfill part of your request...

$! Title: Disable Terminated Licenses
$
$! Synopsis: This command file disables all the terminated licenses
$! in the active license database, which is defined by
$! the current value of LMF$LICENSE.
$
$! Parameters: None
$
$! Author: Robert Deininger
$! Created: January, 2001
$
$! Version: V2.1 (generation 3)
$
$! Define some simple status codes.
$
$ lic__status = %x10000000
$ lic__success = lic__status + %x0001
$ lic__ctrly = lic__status + %x000C
$
$! Set up interrupt and error handlers.
$
$ status = lic__success
$ on control_y then goto control_y
$ on warning then goto error
$
$! Find subroutine library.
$ gosub jrddcl_init
$
$! Define some useful symbols.
$ say = "write sys$output"
$
$! The real work starts here.
$
$ tempfile1 = "terminated.lis;"
$ tempfile2 = "disable_terminated.com;"
$
$ current_ldb = f$search(f$trnlnm("lmf$license"smiley)
$
$ type sys$input

Utility to DISABLE all the terminated licenses in the active
license database...

The active database is:
$ say " ",current_ldb
$ type sys$input

This utility makes many changes to the license database. Do you
want a backup copy of the database file saved before changes
are made?
$10:
$ on warning then goto 10
$ jrdcall ask lic__answer b "Save a backup copy?" "YES" U,S
$ on warning then goto error
$
$ if lic__answer
$ then
$ current_ldb = current_ldb - f$parse(current_ldb,,,"version"smiley
$ say ""
$ copy/log 'current_ldb' 'current_ldb'
$ current_ldb = f$search(f$trnlnm("lmf$license"smiley)
$ say ""
$ say " The new highest version will be modified."
$ endif
$
$ say " Finding terminated licenses..."
$
$! Get a list of terminated licenses.
$ license list/before/terminated/full/output='tempfile1'
$
$ say " Making a command file to disable licenses..."
$
$! Open the input and output files.
$ open/read tempfile1 'tempfile1'
$ open/write tempfile2 'tempfile2'
$
$ target_string = "-----------------------"
$main_loop:
$ gosub find_string
$ if input_string .nes. ""
$ then
$! We have read the "header" line for a single license.
$! Look for expected beginnings on the next 4 lines, and save the good
$! parts.
$
$ get_string = "Issuer:"
$ gosub get_string
$ if result_string .nes. ""
$ then
$ issuer = result_string
$ else
$ goto main_loop
$ endif
$
$ get_string = "Authorization:"
$ gosub get_string
$ if result_string .nes. ""
$ then
$ authorization = result_string
$ else
$ goto main_loop
$ endif
$
$ get_string = "Product Name:"
$ gosub get_string
$ if result_string .nes. ""
$ then
$ product_name = result_string
$ else
$ goto main_loop
$ endif
$
$ get_string = "Producer:"
$ gosub get_string
$ if result_string .nes. ""
$ then
$ producer = result_string
$ else
$ goto main_loop
$ endif
$
$ ! We have the 4 important pieces of information we wanted. Generate
$ ! a LICENSE DISABLE command.
$ gosub write_command
$
$ goto main_loop
$ endif
$
$! We have processed the whole input file.
$ close tempfile1
$ write tempfile2 "$ exit"
$ close tempfile2
$
$20:
$ on warning then goto 20
$ jrdcall ask lic__answer b "Do you want to view the command file?" -
"YES" U,S
$ on warning then goto error
$
$ if lic__answer
$ then
$ type/page 'tempfile2'
$ endif
$
$30:
$ on warning then goto 30
$ jrdcall ask lic__answer b -
"Do you want to execute these commands to modify the license database?" -
"" U,S
$ on warning then goto error
$
$ if lic__answer
$ then
$ @'tempfile2'
type sys$input

Disabling is complete.

You may want to execute
$ LICENSE DELETE */STATUS=DISABLED/LOG
to completely remove all disabled licenses from the database.
$
$ else
$ say ""
$ say " Modifications cancelled."
$ endif
$
$ goto cleanup
$
$CONTROL_Y:
$ status = lic__ctrly
$ goto cleanup
$
$ERROR:
$ status = $status
$ goto cleanup
$
$CLEANUP:
$ if f$search(tempfile1) .nes. "" then delete/nolog/noconfirm 'tempfile1'*
$ if f$search(tempfile2) .nes. "" then delete/nolog/noconfirm 'tempfile2'*
$
$ if f$type(lic__answer) .nes. "" then delete/symbol/global/nolog lic__answer
$
$ exit status .or. %x10000000
$
$FIND_STRING:
$! This subroutine reads lines from tempfile1 until it obtains a line that
$! begins with target_string. It returns with input_string equal to the
$! entire input line, or the null string if the end of the file was reached
$! without finding the target.
$
$find_loop:
$ read/end_of_file=end_of_file tempfile1 input_string
$ if f$locate(target_string,input_string) .eq. 0
$ then
$ ! The current string begins with the target.
$ return ! (FIND_STRING)
$ else
$ goto find_loop
$ endif
$
$end_of_file:
$ input_string = ""
$ return ! (FIND_STRING)
$
$GET_STRING:
$! This subroutine reads a line from tempfile1, checks that it starts
$! with get_string, and returns in result_string the last part of the
$! string. The "last part" is the second element delimited by " ",
$! after the part matching get_string is removed.
$
$ read tempfile1 input_string
$ if f$locate(get_string,input_string) .eq. 0
$ then
$ ! The current string begins with the target.
$ temp = f$edit((input_string - get_string),"compress"smiley
$ result_string = f$element(1," ",temp)
$
$ else
$ say "Unexpected line. Expected ''get_string', found:"
$ say line
$ say ""
$
$ result_string = ""
$ endif
$
$ return ! (GET_STRING)
$
$WRITE_COMMAND:
$! This subroutine writes a single "license disable" command to tempfile2,
$! using the information in symbols PRODUCT_NAME, AUTHORIZATION, ISSUER,
$! and PRODUCER.
$
$ write tempfile2 "$ license disable/log ''product_name' -"
$ write tempfile2 " /authorization=''authorization' -"
$ write tempfile2 " /issuer=''issuer' -"
$ write tempfile2 " /producer=''producer'"
$ write tempfile2 "$"
$
$ return ! (WRITE_COMMAND)
$!---------------------------------------
$
$! Title: Initialize symbol pointing to main DCL library file
$
$! Synopsis:
$! This routine attempts to define the symbol JRDCALL to point to
$! my library of DCL routines. The library is either in a standard
$! file located via logical name JRD_JRDDCL (on my own systems/accounts)
$! or appended to this file (for DCL utilities that I distribute).
$! This routine rarely changes; it is convenient to append it to any DCL
$! file that uses JRDDCL.COM.
$! V1.0 (generation 1)
$
$
$JRDDCL_INIT:
$
$! Try the logical name first.
$ jrddcl_file = f$search("jrd_jrddcl"smiley
$ if jrddcl_file .eqs. "" then goto jrddcl_init_nofile
$
$ jrdcall := @'jrddcl_file'
$ jrddcl_subroutine :=
$ call jrddcl_init_try
$ if $status then return
$
$JRDDCL_INIT_NOFILE:
$
$! Look for JRDDCL routines in this file.
$ jrdcall := call jrddcl_call_entry
$ jrddcl_subroutine := subroutine
$ call jrddcl_init_try
$ if $status then return
$
$JRDDCL_INIT_NOTFOUND:
$
$! Neither method worked, give up.
$ delete/symbol jrdcall
$ delete/symbol jrddcl_subroutine
$ write sys$output "Can't find JRDDCL subroutine library."
$ write sys$output "... define logical name JRD_JRDDCL or"
$ write sys$output "... append library to this file."
$ exit
$
$JRDDCL_INIT_TRY:
$ subroutine
$ on warning then exit $status
$ jrdcall test
$ endsubroutine
$
$ exit
$!---------------------------------------
$! DCL subroutine library
$! Modelled after the example in "Writing Real Programs in DCL, 2nd
$! Edition."
$! V2.2 (generation 4)
$
$ goto jrddcl_atsign_entry
$
$! CALL entry point used when this library is appended to another DCL file.
$JRDDCL_CALL_ENTRY:
$ jrddcl_subroutine ! For CALL entry only, symbol substitution makes this
$ ! a SUBROUTINE statement.
$
$! @-sign entry used when this library is in a separate file.
$JRDDCL_ATSIGN_ENTRY:
$
$ jrddcl__status = %x10000000
$ jrddcl__success = jrddcl__status + %x0001
$ on control_y then exit jrddcl__status + %x0004
$ on warning then exit $status .or. %x10000000
$
$ display = "write sys$output"
$ if f$type(jrdcall) .nes. "STRING"
$ then
$ jrdcall = "@" + f$environment("PROCEDURE"smiley
$ endif
$ goto jrddcl_'p1'
$
$! Title: Test accessibility of the DCL library
$
$! Synopsis: This subroutine just returns a success status code. It
$! is intended to allow calling routines to verify that they know
$! how to find the library.
$
$! Parameters:
$! None.
$
$JRDDCL_TEST:
$
$ exit jrddcl__success
$
$! Title: Ask a Question
$
$! Synopsis: This subroutine asks the user a question and returns
$! the answer. The prompt for the question is composed
$! of a query string and optionally a default answer.
$
$! Parameters:
$! P2: A global symbol to receive the answer.
$! P3: The data type of the answer. B for boolean
$! (yes,no); I for integer; S for string.
$! P4: The query string for the question. It must end
$! with a punctuation character and no space.
$! P5: The default answer (optional; if not specified
$! then an answer must be entered).
$! P6: A comma-separated list of options:
$! H: Display help before asking question.
$! S: Skip a line before asking question.
$! U: Upcase the input string.
$! Z: Allow Ctrl/Z as an nswer.
$! P7: The help specifier (optional). It must be in
$! in the form "procedure [parameter...]". The
$! procedure is invoked with the @-sign command.
$
$JRDDCL_ASK:
$
$ signal = jrdcall + " signal ask"
$ if p3 .eqs. "B" .and. p5 .nes. "" .and. f$type(p5) .eqs. "INTEGER"
$ then
$ p5 = f$element(p5,"/","NO/YES"smiley
$ endif
$ if p5 .nes. ""
$ then
$ p4 = f$extract(0,f$len(p4)-1,p4) + -
" [" + p5 + "]" + f$extract(f$len(p4)-1,1,p4)
$ endif
$ if f$locate("S",p6) .ne. f$length(p6) then display ""
$ if f$locate("H",p6) .ne. f$length(p6) then @'p7'
$
$jrddcl_a10:
$ read sys$command/prompt="''p4' " input/end_of_file=a_eof
$ if input .eqs. "" then input = p5
$ input = f$edit(input,"TRIM"smiley
$ if input .eqs. ""
$ then
$ signal w inputreq "Please enter a value; there is no default."
$ else if input .eqs. "?"
$ then
$ if p7 .nes. "" then @'p7'
$ if p7 .eqs. "" then display "There is no help for this question."
$ else
$ goto jrddcl_a_'p3'
$jrddcl_a_B:
$ input = f$edit(input,"UPCASE"smiley
$ if f$locate(input,"YES"smiley .eq. 0 .or. -
f$locate(input,"NO"smiley .eq. 0
$ then
$ input = input .and. 1
$ goto jrddcl_a19
$ else
$ signal w yesnoreq "Please answer YES or NO."
$ endif
$ goto jrddcl_a15
$
$jrddcl_a_I:
$ if f$type(input) .eqs. "INTEGER"
$ then
$ input = f$integer(input)
$ goto jrddcl_a19
$ else
$ signal w intreq "The input must be an integer."
$ endif
$ goto jrddcl_a15
$
$jrddcl_a_S:
$ if f$locate("U",p6) .ne. f$length(p6)
$ then
$ input = f$edit(input,"UPCASE"smiley
$ endif
$ goto jrddcl_a19
$jrddcl_a15:
$ endif
$ endif
$ goto jrddcl_a10
$jrddcl_a_eof:
$ input = "^Z"
$ if f$locate("Z",p6) .ne. f$length(p6) then goto jrddcl_a19
$ signal i invctrlz "End-of-file is not a valid response."
$ goto jrddcl_a10
$jrddcl_a19:
$ 'p2' == input
$ exit jrddcl__success
$
$! Title: Signal an Informational or Error Message
$
$! Synopsis: This subroutine "signals" a message, producing one
$! or more message lines in the standard OpenVMS format.
$! It also exits with a status whose severity matches
$! that of the message.
$
$! Parameters:
$! P2: The message facility code.
$! P3: The message serverity (S, I, W, E, or F).
$! P4: The message identification.
$! P5: The message text.
$! Pn: Optional message lines or status codes whose
$! corresponding message lines are to me included.
$
$! Status: The severity of the exit status is equal to the
$! message severity, except in the case of warnings.
$! If the message severity is W, an informational
$! severity is included in the status so that the
$! caller's error handler is not invoked.
$
$JRDDCL_SIGNAL:
$
$ prefix = f$fao("%!AS-!AS-!AS, ",p2,p3,p4)
$ i = 4
$jrddcl_s10:
$ i = i + 1
$ if i .gt. 8 then goto jrddcl_s19
$ if p'i' .eqs. "" then goto jrddcl_s19
$ text = p'i'
$ if f$type(text) .eqs. "INTEGER"
$ then
$ text = f$message(text)
$ endif
$ if f$ext(0,1,text) .nes. "%" then text = prefix + text
$ if i .gt. 5 then text [0,1] := "-"
$ display text
$ goto jrddcl_s10
$jrddcl_s19:
$ if p3 .eqs. "W" then p3 = "I"
$ exit jrddcl__status + f$locate(p3,"WSEIF"smiley
$
$! Title: Display a Message
$
$! Synopsis: This subroutine outputs a message, producing one
$! or more message lines in the standard OpenVMS format.
$! It exits with an informational status so the caller's
$! error handler is not invoked.
$
$! Parameters:
$! P2: The message facility code.
$! P3: The message serverity (S, I, W, E, or F).
$! P4: The message identification.
$! P5: The message text.
$! Pn: Optional message lines or status codes whose
$! corresponding message lines are to me included.
$
$! Status: Always success. The caller's error handler is not
$! invoked.
$
$JRDDCL_MESSAGE:
$
$ prefix = f$fao("%!AS-!AS-!AS, ",p2,p3,p4)
$ i = 4
$jrddcl_m10:
$ i = i + 1
$ if i .gt. 8 then goto jrddcl_m19
$ if p'i' .eqs. "" then goto jrddcl_m19
$ text = p'i'
$ if f$type(text) .eqs. "INTEGER"
$ then
$ text = f$message(text)
$ endif
$ if f$ext(0,1,text) .nes. "%" then text = prefix + text
$ if i .gt. 5 then text [0,1] := "-"
$ display text
$ goto jrddcl_m10
$jrddcl_m19:
$ p3 = "I"
$ exit jrddcl__status + f$locate(p3,"WSEIF"smiley
http://www.turquoisewitch.com/~bradh
Jump to Forum:
Login
Username

Password



Not a member yet?
Click here to register.

Forgotten your password?
Request a new one here.
Member Poll
Are you going to OpenVMS Boot Camp 2016?

Yes

No

You must login to vote.
Shoutbox
You must login to post a message.

malmberg
June 26 2018
https://www.openvmshobbyi
st.com/forum/viewthread.p
hp?forum_id=10&thread_id=
2363


bhamakripa
June 24 2018
I am trying OpenVMS via SIMH. Need to get OS binaries for v7.3. Registered here but don't have any membership number yet which is needed to get license. Pls suggest what to do. I hardly know anyth

basilh
June 05 2018
Any other forum members in Perth, Australia?

LouF91
April 05 2018
ah maybe they love that!

malmberg
March 24 2018
Probably. More people hang out on the comp.os.vms newsgroup.

vaxpert
March 23 2018
I have a PE42A and other Alpha system stuff for sale. I'm in So California. Any interest out there?

goodbyespy
February 27 2018
To Prohorenko. Please, visit group OpenVMS in the ok.ru

peteherrera
February 24 2018
How much does it cost to buy a complete OpenVMS hardcopy documentation set of the latest version

prohorenko
February 17 2018
Please help to obtain the license on OpenVMS

malmberg
December 12 2017
HPE only makes the most current version of OpenVMS Alpha / IA64 /VAX available to hobbyists. When I had access to the Alliance 1 program it was the same. No public downloads are allowed by HPE.

nmbonao
December 08 2017
Is anybody knows OpenVMS 8.2 version downloadable version? or CD copy? Thank you very much

aarommes
December 02 2017
Bitcoin and Blockchain enthusiasts ( plus distributed computing ) please connec / reply: http://www.openvmshobbyis
t.com/forum/viewthread.ph
p?forum_id=130&thread_id=
2991


malmberg
September 10 2017
https://sourceforge.net/p
/vms-ports/wiki/VMSInstal
lation/ For the most part just use VMS 6.1 media instead of 7.3. But why run the older release?


DoeveR
August 07 2017
Where can I find the write up on running VMS 6.1 using the simh emulator?

Bart
March 20 2017
Happy to have found my password again!

Shoutbox Archive