Showing posts with label OpenVMS. Show all posts
Showing posts with label OpenVMS. Show all posts

Wednesday, March 12, 2008

Memory usage on OpenVMS



Quick tip on getting system stats on OpenVMS. Apart from SHOW SYSTEM, SHOW MEMORY, etc, you can just hit:

^T
DEIMOS::HTTPd:7080 00:41:48 HTTPD_SSL CPU=00:00:03.23 PF=561 IO=2728 MEM=666

Sunday, March 09, 2008

ES40 - OpenSource Alpha AXP Emulator



I've already posted about other free Alpha or VAX emulators like PersonalAlpha (the free version of CHARON-AXP, also makers of CHARON-VAX) and SIMH. Now it's time for something open source, that will work on Windows and UNIX systems.

AlphaServer ES40 Emulator is a portable emulator for the HP (DEC, Compaq) AlphaServer ES40. The current version is capable of running OpenVMS with some limitations. The goal is to have a drop-in replacement for real ES40's. Emulates the Alpha AXP EV68CB processor and other devices.

Now you can run OpenVMS or Tru64 UNIX on your own personal computer.



The advantage of ES40 over PersonalAlpha is that you can emulate EV68 CPUs and a more modern system (AlphaServer ES40) and additional hardware. It's also open source, and will run on your Windows, Linux and UNIX machines. The problem is, it's no match for CHARON-AXP or PersonalAlpha in terms of performance.



You can even use ES40 to install other operating systems like BSD and Linux on Alpha.
Here's FreeBSD/alpha 6.3-RELEASE



Communigate Pro - Mail and Communications on OpenVMS

Communigate Pro is by far one of the best communications suite, and can easily replace even an Exchange / LCS / OCS suite (Unified Communications and all that). It can do clustering, VoIP, interface with Windows phones and has integrated WebMail, mailing lists, and so on.

The installation is pretty straight forward too. First, disable OpenVMS POP3 and IMAP services, and make sure nothing is running on port 8010 and 8100. Then unzip and proceed to install the POLYCENTER package.

$ PRODUCT INSTALL CGatePro

Once the installation is over, start CommuniGate Pro services and login to the administrative interface withing 15 minutes. Enjoy.

@SYS$COMMON:[CommuniGate]STARTUP.COM START



The WebMail is pretty nice too:



It also has Calendar function and a few themes (the XCHANGE one looks like OWA from Exchange).



By default, CommuniGate Pro supports the following features:

+ Mail + POP + IMAP + PWD + ACAP + WebMail + WebSite + Relay + Mobile + FTP
+ MAPI + TLS + S/MIME + LDAP + WebCAL + RADIUS + SIP + PBX + XMPP + XIMSS

Here's a screenshot of the WebMail SSL (HTTPS) interface with the XCHANGE skin:



So now you can have a fully encrypted, secure, highly available enterprise communications suite with E-Mail and VoIP features on your OpenVMS cluster :-).

HP OpenVMS Secure WebServer (Apache)

Now that we've tested WASD, we can also try HP Secure WebServer (ex Compaq WebServer). It's basically Apache + SSL and OpenVMS patches.

FTP upload or download or get the packages on the server.

$ DIR SYS$SYSROOT:[SYSMGR.hpweb]

Directory SYS$SYSROOT:[SYSMGR.hpweb]

CPQ-AXPVMS-CSWS-V0201-1-1.PCSI_SFX_AXPEXE;1

Total of 1 file.
$ SET DEF SYS$SYSROOT:[SYSMGR.hpweb]


$ RUN SYS$SYSROOT:[SYSMGR.hpweb]CPQ-AXPVMS-CSWS-

V0201-1-1.PCSI_SFX_AXPEXE;1
UnZipSFX 5.42 of 14 January 2001, by Info-ZIP (Zip-

Bugs@lists.wku.edu).
inflating: CPQ-AXPVMS-CSWS-V0201-1-

1.PCSI$COMPRESSED
inflating: CPQ-AXPVMS-CSWS-V0201-1-

1.PCSI$COMPRESSED_ESW


$ DIR/SIZE

Directory SYS$SYSROOT:[SYSMGR.hpweb]

CPQ-AXPVMS-CSWS-V0201-1-1.PCSI$COMPRESSED;1
24952
CPQ-AXPVMS-CSWS-V0201-1-1.PCSI$COMPRESSED_ESW;1
18
CPQ-AXPVMS-CSWS-V0201-1-1.PCSI_SFX_AXPEXE;1
19887


$ PRODUCT INSTALL
_Product name (* to show list): *
The following product has been selected:
CPQ AXPVMS CSWS V2.1-1 Layered Product


Once the package is installed, configure it:

@SYS$MANAGER:APACHE$CONFIG

Now you can start apache:

$ @SYS$STARTUP:APACHE$STARTUP.COM

$ TELNET deimos 80
GET / HTTP/1.1
HTTP/1.1 200 OK
Date: Sun, 09 Mar 2008 10:20:05 GMT
Server: Apache/2.0.52 (OpenVMS)


Let's say we'd like to patch our webserver instead, using Web Server Suite Software Patch Kits.

Stop Apache:

$ @SYS$STARTUP:APACHE$SHUTDOWN.COM

$ RUN CPQ-AXPVMS-CSWS211_UPDATE-V0100--4.PCSI_SFX_AXPEXE;1
UnZipSFX 5.42 of 14 January 2001, by Info-ZIP (Zip-Bugs@lists.wku.edu).
inflating: CPQ-AXPVMS-CSWS211_UPDATE-V0100--4.PCSI$COMPRESSED
inflating: CPQ-AXPVMS-CSWS211_UPDATE-V0100--4.PCSI$COMPRESSED_ESW
$ PRODUCT INSTALL
_Product name (* to show list): *

The following product has been selected:
CPQ AXPVMS CSWS211_UPDATE V1.0 Patch (remedial update)

[...]

The following product has been installed (and a recovery data set created):
CPQ AXPVMS CSWS211_UPDATE V1.0 Patch (maintenance update)

CPQ AXPVMS CSWS211_UPDATE V1.0: Functional update for CSWS V2.1-1

Post-installation tasks are not required.

Now you can start the webserver:

$ @SYS$STARTUP:APACHE$STARTUP

You can now just drop stuff in SYS$COMMON:[APACHE.HTDOCS]

WASD VMS Hypertext Services

Time to take a look at the "non-stop webserver", aka WASD VMS Hypertext Services.

To install this webserver, we're going to need the compiler suited we've previously installed (C and CXX-V products).

To install WASD, you need to download and unpack 2 images: HTROOT921.ZIP, the platform independent pack, and HTROOT921-AXP.ZIP (or VAX or IA64) - the platform specific files.

The installation process will largely go like this:

$ SET DEFAULT DKA0:[000000]
$ UNZIP "-V" SYS$SYSROOT:[SYSMGR.wasdkit]HTROOT921.ZIP;1
$ UNZIP "-V" SYS$SYSROOT:[SYSMGR.wasdkit]htroot921-axp.zip;1
$ @dka0:[HT_ROOT]INSTALL
$ @HT_ROOT:[INSTALL]DEMO.COM

%HTTPD-I-SOFTWAREID, HTTPd-WASD/9.2.1 OpenVMS/AXP SSL


The INSTALL procedure will take a while to compile then link the package. If you do not have the OpenVMS SSL product (Compaq/HP) you'll require the OpenSSL toolkit.

Saturday, March 08, 2008

The C Programming Language

To program using the C Programming Language on OpenVMS, you need the DEC C compiler.

$ run CC073.DCX_AXPEXE;1
$ @SYS$UPDATE:VMSINSTAL
* Products: *

Then we test it:

SET TERMINAL/DEVICE=VT102
EDIT HELLO.C

#include "stdio.h"
int main()
{
printf("Hello, OpenVMS CC!");

return (0);
}

[End of file]


$ CC HELLO.C
$ LINK HELLO.OBJ
$ RUN HELLO.EXE
Hello, OpenVMS CC!


C++ is similar, but you need CXX instead of CC.

Kicking it up a gear with Oracle Rdb Server on OpenVMS

$ show system
OpenVMS V8.3 on node DEIMOS 8-MAR-2008 16:15:25.04 Uptime 0 13:09:50

Time to install a database server on this box :-). And nothing says "database" quite like Oracle Rdb (ex DEC product btw).

Grab Oracle Rdb, unzip it (unzip SYS$SYSROOT:[SYSMGR.RDBKIT]rdbv72200kit_amv.zip;1), and install it :-).

@SYS$UPDATE:VMSINSTAL RDBV72200AM SYS$SYSROOT:[SYSMGR.rdbkit]

Now we can restart the service, and create our database.

$ @SYS$MANAGER:RMONSTOP72.com
$ @SYS$STARTUP:RMONSTART72.COM

$ UCX show services

Service Port Proto Process Address State

BIND 53 TCP,UDP TCPIP$BIND 0.0.0.0 Disabled
FTP 21 TCP TCPIP$FTP 0.0.0.0 Enabled
IMAP 143 TCP TCPIP$IMAP 0.0.0.0 Enabled
POP 110 TCP TCPIP$POP 0.0.0.0 Enabled
RDBSERVER 611 TCP RDB72 0.0.0.0 Enabled
SSH 22 TCP TCPIP$SSH 0.0.0.0 Enabled
TELNET 23 TCP not defined 0.0.0.0 Enabled

$ run SYS$SYSTEM:SQL$72.exe
SQL> SHOW VERSION
Current version of SQL is: Oracle Rdb SQL V7.2-200
SQL> DROP DATABASE filename PRODUCTS;
SQL> CREATE DATABASE filename PRODUCTS;
SQL> CREATE TABLE clients
cont> (
cont> ClientID char(9)
cont> CONSTRAINT CL_ID
cont> PRIMARY KEY,
cont> FirstName varchar(25),
cont> LastName varchar(25)
cont> );
SQL> INSERT INTO clients VALUES ('1','Some','Guy');
1 row inserted
SQL> INSERT INTO clients VALUES

('2','Other','Bloke');
1 row inserted
SQL> SELECT * from clients;
CLIENTID FIRSTNAME LASTNAME
1 Some Guy
2 Other Bloke
2 rows selected
SQL>

All we have to do now is fire up Phobos and cluster them :-).

If you install SQL Services on the database server, you can install the Rdb Client on your Windows box in order to administer Oracle Rdb on OpenVMS.

Installing Java 1.5 JDK on OpenVMS 8.3 Alpha

I've already covered ancient version of Java and OpenVMS, now it's time for something more recent. Just grab the latest Java 1.5 JDK for OpenVMS from HP.

$ RUN DEC-AXPVMS-JAVA150-V0105-3-1.PCSI_SFX_AXPEXE

$ PRODUCT INSTALL JAVA150 /SOURCE=SYS$SYSROOT:

[SYSMGR] /NORECOVERY_MODE

$ PRODUCT EXTRACT FILE JAVA150 /SOURCE=SYS$SYSROOT:

[SYSMGR] /SELECT=RELEASE_NOTES.HTML /DEST=[]

$ @JAVA$150_SETUP.COM;1

$ java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition
Classic VM (build 1.5.0-3, 03/01/2007-14:39, native
threads, jit)

$ javac -version
javac 1.5.0

$ SET TERMINAL/DEVICE=VT102

$ EDIT hello.java
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello, OpenVMS!");
}
}
^z

$ javac hello.java

$ java hello
Hello, OpenVMS!

SSH X11 Redirection on OpenVMS and Using XMing and putty for Windows Clients

Wanna run some graphical OpenVMS applications? ssh -x or use Putty + MingW :-). X11 Forwarding is simple and easy to use. Just enable SSH on your OpenVMS box (UCX ENABLE SERVICE SSH) and make sure you've got proper keys generated.



You can also just start individual applications.

Wednesday, March 05, 2008

GNU Screen for the win! - Solaris, AIX, HP-UX

I really love the hardstatus line in .screenrc :P. Just upgraded this machine to 8.3 too, so don't mind the title. (C-a A - OpenVMS-8.3) xD

Credits for the .screenrc hardstatus line go to Han:


log off
hardstatus alwayslastline "%{-b ck} %?%-w%?%{+b}%n%f %t%{-b} %?%+w%? %= %l %D %d/%m/%Y %0c "
hardstatus on
escape ^Tt

Wallpaper is some image off flickr + GIMP + my favorite palindrome:
In girum imus nocte, ecce et consumimur igni.
We enter the circle by night and we are consumed by the fire.
(Drawn like moths to a flame).



By popular demand:



GNU Screen works just fine with that hardstatus line even on HP-UX systems. One thing I did though, was use:

env TERM=xterm-color screen


To start screen after ssh-ing in. After screen starts, you'll probably want:

TERM=vt100; export TERM

Also. You can put them in your profile. Using TERM=screen doesn't always work well.

Of course, you can just use TERM=dtterm, or even use dtterm, as done here via ssh -X to my AIX server :-).



As you can see, the AIX and HP-UX versions need a bit more work (or a fixed sized terminal in case of AIX):

OpenVMS Tips and Tricks - Clear Screen, ls -lha

Want to clear the screen? "TYPE/PAGE NLA0:" will do the trick. Just alias it to your dos like cls or to a UNIX like clear command :-).


$ CLEAR == "TYPE/PAGE NLA0:"
$ CLEAR
$


Might as well alias LS to a DIR/SIZE/DATE/PROTECTION:

$ LS == "DIRECTORY/SIZE/DATE/PROTECTION"
$ LS *.JAVA

Directory SYS$SYSROOT:[SYSMGR]

HELLO.JAVA;1 1 4-MAR-2008 21:40:06.79 (RWED,RWED,RE,)
HW.JAVA;2 1 4-MAR-2008 22:14:36.28 (RWED,RWED,RE,)

Total of 2 files, 2 blocks.

Tuesday, March 04, 2008

More OpenVMS Easter-Eggs

Another "easter egg", this time, simply an uninspired name for an application when upgrading from 7.3 to 8.3 :-).

$ SHOW SYSTEM
OpenVMS V8.3 on node VMS 4-MAR-2008 23:56:17.19 Uptime 0 00:15:41



And of course, the classics (All Your Base Are Belong to Us!).



$ EXIT %xb70
%SYSTEM-W-FISH, my hovercraft is full of eels
$ EXIT 134002
%DEBUG-E-FISH, my hovercraft is full of eels
$ EXIT %x3f30074
%KATIE-F-DEVNOTMBX, device is not a mailbox
$ EXIT %x34b4
%SYSTEM-F-GAMEOVER, all your base are belong to us


All your OpenVMS Easter Eggs are belong to us :-).

Java Development on OpenVMS

Got an OpenVMS box and you need to run some Java stuff?

$ SHOW SYSTEM
OpenVMS V7.3 on node VMS 4-MAR-2008 22:26:36.67 Uptime 0 01:16:05

$ JAVA -version
vms$dka0:[sys0.syscommon.][sysexe]java$java.exe;1 version "1.1.8-5"

Well, if you happen to have an older version of OpenVMS and Java (you can download a newer JDK - 1.5 here) you're going to have to set it up properly first. Set the CLASSPATH too.

$ @SYS$MANAGER:JAVA$SETUP.COM
Setting up symbols for foreign command line usage...
%DCL-I-SUPERSEDE, previous value of JAVA_COMPILER has been superseded
%DCL-I-SUPERSEDE, previous value of JAVA$FILENAME_CONTROLS has been superseded
JAVA$FILENAME_CONTROLS now set to: -1

$ DEF JAVA$CLASSPATH "/sys$common/java/lib/JDK118_CLASSES.ZIP:."
%DCL-I-SUPERSEDE, previous value of JAVA$CLASSPATH has been superseded
Great, now that we've setup our JAVA environment, we can start developing applications :P.

$ ED HW.JAVA
class hw
{
public static void main(String args[])
{
System.out.println("Hello, OpenVMS!");
}
}

^Z (Type Control Z to save and exit)

$ TYPE HW.JAVA
class hw
{
public static void main(String args[])
{
System.out.println("Hello, OpenVMS!");
}
}

$ JAVAC HW.JAVA

$ JAVA HW
Hello, OpenVMS!

Enjoy your ancient version of Java...

PS: Once you've had your fun, just download JDK 1.5 :-).

My hovercraft is full of eels

Hooray for Monty Python:
%SYSTEM-E-FISH error on OpenVMS 7.3. It's an Easter Egg btw. There's more (make love -> not war, etc) in other versions :-).

Tuesday, December 11, 2007

PersonalAlpha - Alpha CPU Emulator lets you run OpenVMS or Tru64 UNIX on your PC

I already told you about SIMH, the VAX emulator, now it's time to look at a working Alpha emulator (there is another one I know of that works, but it's rather expensive and intended for development purposes). This means you can run OpenVMS or Tru64 UNIX right at home, on your PC :-).



PersonalAlpha is a Alpha emulator that can run OpenVMS or Tru64 right on your i386 desktop machine.

You can use 128 MB of emulated Alpha memory, 1 Ethernet adapter, VT-terminal emulation and 4 disks.

Minimum requirements: A Windows machine, 1 GHz CPU, 1 GB of memory(512 MB will run with performance penalty), 1 Ethernet adapter and 4 GB of free disk space.

Now all you need to do is join the DECUS society (or Encompassus) and get yourself that free OpenVMS hobbyist kit and you're good to go :-).

Also, check out Virtutech Simics.


Various links and resources to other Alpha emulators / simulators /whatever:
http://www.simplescalar.com/
http://www.yuba.is.uec.ac.jp/~kis/SimCore/functional.htm
http://www.cs.ucsd.edu/users/tullsen/smtsim.html
https://systems.cs.colorado.edu/DistributedSoftware/Aint/
http://www.encompasserve.org/DECUServe/DECnotes/VMS/3411.1.HTML
https://systems.cs.colorado.edu/DistributedSoftware/Aint/

Friday, August 03, 2007

Restoring an array on a DEC StorageWorks

On old DEC StorageWorks arrays, you need to access the vt420 console and clear the invalid cache after a forced reboot. To do so, use a vt420 console on the storage array. If you need help, use ? or the HELP command.

SHOW THIS_CONTROLLER
SHOW OTHER_CONTROLLER
CLEAR INVALID_CACHE THIS
CLEAR INVALID_CACHE OTHER
SHOW DISKS
SHOW D101
--> UNIT HAS LOST DATA
CLEAR LOST_DATA D101


Now the array should be in an optimal state, and your OpenVMS system should be able to access it.

OpenVMS DECNET, TCP/IP, NFS

Mounting NFS under OpenVMS:
OpenVMS network mangement is done using the DECNET TCP/IP stack. At the $UCX> prompt, make sure the route is properly set:

$UCX> SET ROUTE 192.168.0.0 /GATEWAY=192.168.0.1
$UCX> mount dnfs16: /host = 192.168.0.100 /path="/store" /auto

To umount the NFS drive:
$UCX> DISMOUNT DNFS16