HP e3000 MPE/iX 홈페이지 : http://www.hp.com/go/e3000
PostgreSQL 홈페이지 : http://www.postgresql.org/
System Requirements
1. MPE/iX 6.0 또는 그 이후 버전. bixby.org 를 참조하기 바란다. 현재 일차적인 개발 플랫폼은 6.5를 사용하고 있다.
2. 소스를 컴파일하고자 한다면 GNU gcc 도 필요하다. bixby.org 에서는 gcc v 2.95.2 를 사용하고 있다.
PostgreSQL/iX 를 어떻게 얻을 것인가?
PostgreSQL 을 FTP.ARPA.SYS 또는 다른 곳에서 다운로드 받는다.
설치 script 를 추출해 낸다.
설치 script 를 편집한다.
설치 script 를 실행한다.
Download PostgreSQL using FTP.ARPA.SYS from your HP e3000 (the preferred method).....
:HELLO MANAGER.SYS
:XEQ FTP.ARPA.SYS
open ftp.bixby.org
anonymous
your@email.address
bytestream
cd /pub/mpe
get postgresql-7.1.2-mpe.tar.Z /tmp/postgresql.tar.Z;disc=2147483647
exit
.....또는 다른 웹 또는 FTP 사이트로 부터 다운로드 받는다. (또 다른 방법)
다음 파일들을 다운로드 받는다. (make sure that you use "binary mode" or whatever client feature that is 8-bit clean):
PostgreSQL from http://www.bixby.org/ftp/pub/mpe/postgresql-7.1.2-mpe.tar.Z or ftp://ftp.bixby.org/pub/mpe/postgresql-7.1.2-mpe.tar.Z
Upload those files to your HP e3000 in an 8-bit clean bytestream manner to:
/tmp/postgresql.tar.Z
설치 script 추출하기 (after both download methods)
:CHDIR /tmp
:XEQ TAR.HPBIN.SYS 'xvfopz /tmp/postgresql.tar.Z INSTALL'
설치 script 편집하기
Examine the accounting structure creation commands and modify if necessary (adding additional capabilities, choosing a non-system volume set, etc).
:XEQ VI.HPBIN.SYS /tmp/INSTALL
설치 script 편집하기
The POSTGRES accounting structure will be created and then all files will be extracted from the archive.
:XEQ SH.HPBIN.SYS /tmp/INSTALL
The New bixby.org Freeware Distribution Architecture
The Old Scheme (never used with PostgreSQL)
만약 없다면 MPE 계정과 PUB 그룹을 생성한다; 기존의 객체는 속성을 변경해야 한다. 모든 파일들은 PUB 그룹 아래로 추출한다.
사용자는 bixby.org 의 변경되지 않은 파일들을 같은 디렉토리 내에 있는 configuration 파일이나 또는 job stream 등과 같은 파일들을 개별적으로 customize 시켜 줘야 한다. 이러한 개인적인 변경과정은 상당히 어려울 수도 있다.
새로운 배포판들은 이전판의 이런 파일들을 겹쳐 쓴 것들이다. 만약 여러분들이 문제가 있어서 이전 버전으로 변경하고자 한다면 전체 계정을 모두 복구 시키면 된다.
The New Scheme
MPE 계정, PUB 그룹, 그리고 version-specific group Vvvuuffp (version, update, fix, patchlevel) 들이 만약 존재하지 않는다면 새로 생성한다. 기존의 객체들은 그들의 속성이 변경될 것이다. Archive 내에 있는 모든 파일들은 version-specific 그룹 아래에 추출될 것이다.
설치 스크립트는 CURRENT 라는 이름의 현재 버전에 대한 symlink 를 생성할 것이다. 이것은 실제적인 version-specific 그룹을 가르키게 될거이다. 즉 :
cd /ACCOUNT
ln -s Vvvuuffp CURRENT
Next, the installation script will create possibly multiple symlinks below the PUB group that point indirectly via the CURRENT symlink into the version-specific group, i.e.:
cd /ACCOUNT/PUB
ln -s ../CURRENT/bin bin
These indirect symlinks allow old-scheme filename references to continue to work, and should always be used when referring to objects in the version-specific group in order to permit easy upgrading or backdating. For example, instead of preferring to /ACCOUNT/Vvvuuffp/bin/someprogram, use /ACCOUNT/PUB/bin/someprogram. When you upgrade or backdate, the symlink-based filenames will point to files of the proper version as determined by the single CURRENT symlink.
The installation script is conservative when creating symlinks. If the intended name already exists as a symlink, the old symlink is removed, and the new symlink is created. If the intended name already exists as a non-symlink, the old object is renamed with a .bak extension, and the new symlink is created.
Finally, the installation script will create various files and directories below the PUB group that are intended for user customization. You should only modify or add files below the PUB group, and NEVER below the version-specific group! The version-specific group is intended to contain only unmodified files and directories as distributed by bixby.org. The PUB group is the proper place for user-customizations.
If you are performing an upgrade, the previous version-specific group IS NOT PURGED. If you encounter problems with the new version and want to backdate, simply purge the CURRENT symlink and recreate it so that it points to the previous version-specific group. If you are satisified with the new version, you will want to manually do a :PURGEGROUP on the previous version-specific group to remove it from your machine.
Key Benefits of the New Scheme
Multiple versions can exist on the same machine in the same account, allowing for worry-free upgrading and backdating.
User-customized data is kept segregated in the PUB group away from the bixby.org data in the version-specific group.
Please let me know what you think about this new scheme because I plan to use it for other bixby.org software releases. If this scheme is well-received, it may even show up in HP CSY Internet & Interoperability products.
Distribution Highlights
/POSTGRES/
The MPE account for the freeware version of PostgreSQL/iX.
CURRENT/
Symlink pointing to the V0701020/ version-specific group.
PUB/
MPE group containing user-customizable stuff.
.profile
Suggested account shell profile pointing to ../CURRENT/etc/profile.
public_html/
.htaccess
Modified to include Options +Indexes.
doc
Symlink pointing to ../../CURRENT/doc.
V0701020/
MPE group containing files and directories distributed by bixby.org. DO NOT MODIFY ANYTHING IN THIS DIRECTORY TREE! If you need to customize, please copy files to the PUB group and customize there.
INSTALL
the one-time installation script you ran above
JBIGTEST
Sample job stream for running the big, monsterous regression tests. Requires initdb to be run previously to create the database directory tree and a postmaster to already be running. WARNING: this takes 6 hours to run on a 989-400.
JPARTEST
Sample job stream for running the parallel regression tests. Requires initdb to be run previously to create the database directory tree and a postmaster to already be running.
JPOSTMST
Sample job stream for starting the postmaster server daemon.
JSERTEST
Sample job stream for running the serial regression tests. Requires initdb to be run previously to create the database directory tree and a postmaster to already be running.
README
what you're reading now
bin/
All of the PostgreSQL executable scripts and programs, including the postmaster daemon and the psql client.
doc/
Extensive HTML documentation accessible via http://yourhost/~MGR.POSTGRES/doc.
etc/
postmaster.pid
The POSIX pid of the postmaster daemon as started by the JPOSTMST job.
profile
Sets various PostgreSQL environment variables to default values and adds stuff to the POSIX PATH.
include/
Compile-time header files required by the various PostgreSQL API libraries.
man/
Man page documentation for the command line utilities and psql statements.
lib/
Various API libraries, including run-time extensions dynamically loaded by the postmaster daemon.
mpebin/
Various scripts used to build PostgreSQL/iX from source on MPE.
src/
Source tree.
[/pre]
--------------------------------------------------------------------------------
How to Compile PostgreSQL (optional)
The current MPE build environment relies upon a new feature of ld v0.16 in order to convenient check for unresolved external references. This feature is enabled by setting the AUTOCONF environment variable to 1, which is done inside of the configure.mpe script.
Unfortunately at the time of this writing, ld v0.16 is not yet available as part of the GNU gcc bundle on jazz. However, a workaround exists if you use /usr/local/bin/autoconf from the GNU gcc bundle on jazz to regenerate the vanilla PostgreSQL configure script from the configure.in template. The regenerated script will then be able to detect unresolved external references.
:HELLO MGR.POSTGRES,V0701020
:XEQ SH.HPBIN.SYS -L
cd src/postgresql-7.1.2-mpe
# regenerate configure from configure.in here if you lack ld v0.16
configure.mpe
make
make install
--------------------------------------------------------------------------------
How to Create the Database Directory Tree
:HELLO MGR.POSTGRES,PUB
:XEQ SH.HPBIN.SYS -L
mkdir data
initdb
--------------------------------------------------------------------------------
How to Start the PostgreSQL Postmaster Daemon
:STREAM JPOSTMST.CURRENT.POSTGRES
--------------------------------------------------------------------------------
How to Use PostgreSQL
I have no idea. Really.
I had no prior experience with PostgreSQL when I starting porting it to MPE. The only stuff I know about it is how to:
compile it
install it
create the database directory tree with the initdb command line utility
run the regression tests
execute SQL commands with the psql command line utility
For information on how to use PostgreSQL, please consult your local HTML documentation, your local man pages, or http://www.postgresql.org/.
For ODBC driver information, see ftp://ftp.postgresql.org/pub/odbc/index.html.
For JDBC driver information, see http://jdbc.postgresql.org/.
If you're unable to find the answers to your questions from the above resources, your next step should be a public posting to the HP3000-L mailing list or the Usenet newsgroup comp.sys.hp.mpe. I will respond if your question is related to any MPE porting issues within PostgreSQL, and if you're asking general PostgreSQL how-to type questions, hopefully other members of the MPE community who have PostgreSQL experience from other platforms will be able to respond.
--------------------------------------------------------------------------------
How to Shut Down the PostgreSQL Postmaster Daemon
The postmaster uses System V shared memory and semaphore structures that are only cleaned up properly by a controlled shutdown. If you do not shut down cleanly (i.e. :ABORTJOB), the next run of the postmaster may behave strangely. To manually clean up shared memory and semaphores, use the :IPCS command to display these data structures, and :IPCRM to remove them.
Steps for doing a controlled shutdown of the postmaster:
:XEQ SH.HPBIN.SYS -L
kill $(cat /POSTGRES/CURRENT/etc/postmaster.pid)
--------------------------------------------------------------------------------
MPE/iX Implementation Considerations
Because only AF_INET sockets are supported at initial release, you generally need to invoke most PostgreSQL command line clients with "-h localhost" parameters in order to talk to your local postmaster.
MPE lacks a SIGWINCH signal, so the postmaster debugging functionality triggered by this signal is unavailable on MPE.
Triggers and procedure code written in Perl are not supported at initial release.
SSL is not supported at initial release.
Unless otherwise used by the regression tests, the various PostgreSQL programming API libraries and SQL pre-processor are completely untested.
You will get compiler errors if the configure script sees the libbsd library from http://jazz.external.hp.com/src/bsd/libbsd.html. This library is deprecated and should no longer be used; please use the Porting Wrappers from http://jazz.external.hp.com/src/px_wrappers/index.html instead. If you absolutely must retain libbsd on your machine, please rename it to a location where the configure script won't find it. Note that PostgreSQL does NOT require either libbsd or the Porting Wrappers in order to compile.
--------------------------------------------------------------------------------
Known Bugs Under Investigation
AF_UNIX sockets for postmaster and client don't work at initial release. Use standard Internet AF_INET sockets instead.
The Makefile relationships between src/backend/port/mpeix and the upper levels aren't quite right, with dependencies and targets not always behaving properly. If you have already done a build and then edit the MPE stuff and rebuild, check closely to make sure stuff is relinked with your MPE changes. If this didn't happen, purge src/backend/port/SUBSYS.o and rerun the make.
I've seen sporadic transient errors of varying types in varying tests of the parallel regression suite. But there are plenty of times when the parallel suite runs to completion without any errors.
--------------------------------------------------------------------------------
To-Do List
Submit MPE diffs back to postgresql.org.
--------------------------------------------------------------------------------
Change History
March 7, 2001
Porting begins.
|