Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DECnet/Alpha vs Web

9 views
Skip to first unread message

Jennifer Tran

unread,
Oct 4, 2000, 3:00:00 AM10/4/00
to
Could someone please explain to me how DECnet/Alpha can be used as the
back end for Web ...Many thanks...

Jennifer


Jennifer Tran

unread,
Oct 4, 2000, 3:00:00 AM10/4/00
to
Could someone please explain to me how DECnet/Alpha can be used as the
back end for Web .. what can make this association more effective and
efficient than other technologies ...Many thanks...

Jennifer


JF Mezei

unread,
Oct 4, 2000, 3:00:00 AM10/4/00
to

Some web servers (notably the OSU DECthreatds one) are able to direct POST or
GET requests to a DECnet task or object. This task then then responsible for
generating the HTML response which is sent to the web server (and onwards to
the remote client).

One of the advantages is that it isolates the data-server from the internet
since it talks DECnet, leaving only the web server as a sole point of contact.
And Decnet generally provides better security than TCPIP.

Arne Vajhøj

unread,
Oct 4, 2000, 3:00:00 AM10/4/00
to Jennifer Tran
Jennifer Tran wrote:
> Could someone please explain to me how DECnet/Alpha can be used as the
> back end for Web ...Many thanks...

DECnet is net protocol. Alpha is a hardware architecture. You have
posted
to a news-group about VMS an operating system.

Do you have an Alpha with VMS and DECnet and want to access data on that
system from the web ?

Do the system also have TCP/IP ?

Arne

Tim Llewellyn

unread,
Oct 4, 2000, 10:11:05 PM10/4/00
to

Arne, I think you are being a little hard :-) Even if it is homework,
isn't
it better we give a +ve message?

To make best use if DECNET you need VMS, (silent Open). DECNET is a very
efficient and basically well engineered network protocol, as is VMS an
operating
system.

I personally installed a VMS version of one of the very earliest text
mode only
web browsers, now lost in the mists of time, on VMS back when the WWW
was just a
glint in particle physicists' eyes. Compaq have just announced a
commercial release of
the industry standard Apache web server and the latest (is it still the
latest?) version
of Java for OpenVMS, and there are also several other webservers, some
of them freeware
and very good, available.

VMS is a sharper tool than most operating systems. A small number of
knowledgeable staff
can handle a large number of well deployed systems. It is amenable to
being managed
on a day to day basis by someone who also has a more important role to
fulfill, related to
buisiness rather than technical needs, with experts external to the
buisiness unit only needed
for troubleshooting, upgrades etc. This is a rather unfashionable
paradigm in IT at the
moment, but makes sense to some.

VMS benfits from clustering technology that predates Unix and Microsoft
solutions by
a decade or more, and is still so functional, reliable and robust that
it amazes me
that it is less prevalent today than I would expect, for purely
technical reasons
anyway. VMS has been running reliably on 64-bit hardware for almost a
decade and
is undergoing continual techical enhancements, both software and
hardware.

I would suspect (:-)) that a well implemented VMS and run web serving
backend would
beat the shit out of any other solution with respect to reliability,
uptime, buisiness
integration and long term stability. Compaq have recently committed long
term to VMS,
dispelling rumours of its demise.

If you would require any more advice on such matters, do feel free to
contact me
by email and we can discuss terms.

Regards
--
Home: Tim.Ll...@cableinet.co.uk Work: Tim.Ll...@bbc.co.uk

Standard disclaimer applies. My views in no way represent those of
my employers or service provider.

Arne Vajhøj

unread,
Oct 5, 2000, 3:00:00 AM10/5/00
to tim.ll...@cableinet.co.uk
Tim Llewellyn wrote:
> Arne Vajhøj wrote:
> >
> > Jennifer Tran wrote:
> > > Could someone please explain to me how DECnet/Alpha can be used as the
> > > back end for Web ...Many thanks...
> >
> > DECnet is net protocol. Alpha is a hardware architecture. You have
> > posted
> > to a news-group about VMS an operating system.
> >
> > Do you have an Alpha with VMS and DECnet and want to access data on that
> > system from the web ?
> >
> > Do the system also have TCP/IP ?
>
> Arne, I think you are being a little hard :-) Even if it is homework,
> isn't
> it better we give a +ve message?

I was not trying to be negative, but I was a bit confused about what
the question really were.

Arne

Mathias Wolkert

unread,
Oct 5, 2000, 3:00:00 AM10/5/00
to
If you have a VMS box as Web frontend you can run RTR over DECnet to
distribute the transactions over a backend cluster or whatever. But in that
case I'd choose to run RTR to over TCPIP.

But it's a way to use it...

/Tias

"Jennifer Tran" <jt...@bms.calstate.edu> wrote in message
news:39DB686B...@bms.calstate.edu...


> Could someone please explain to me how DECnet/Alpha can be used as the
> back end for Web ...Many thanks...
>

> Jennifer
>

richar...@my-deja.com

unread,
Oct 6, 2000, 3:00:00 AM10/6/00
to
Hi,

If you're using ACMSxp on the back-end, and whatever the name of their
web product(s), on the front-end then "right here! right now!" you can
distribute the txn between any W2K MTS machine and any VMS machine
anywhere on the net. This should soon be possible without ACMSxp and
surely UNIX will follow.

As far as RTR goes, if you wanted to add a very expensive, superfluous
layer of crud, then you could do what Mathias said. Alternatively you
could just pass the TID/BID data down the line and let DECdtm do the
work. I'll try once more to post an example of this as a reply(s).
Apologies in advance, if yet again it turns out like pants :-(

Mathias, as far as I am aware DECdtm will not run (in production) over
TCP/IP? How are you and OM preserving the ACID properties of a txn when
running RTR over IP? Is it, once again, just store-and-forward?

Regards Richard Maher.

In article <mS7D5.8196$4i5.4...@typhoon2.ba-dsg.net>,


"Mathias Wolkert" <tia...@bellatlantic.com> wrote:
> If you have a VMS box as Web frontend you can run RTR over DECnet to
> distribute the transactions over a backend cluster or whatever. But
in that
> case I'd choose to run RTR to over TCPIP.
>
> But it's a way to use it...
>
> /Tias
>


Sent via Deja.com http://www.deja.com/
Before you buy.

richar...@my-deja.com

unread,
Oct 6, 2000, 3:00:00 AM10/6/00
to
$!-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
=-=-=-=-=
$! MAHER_DECDTM_PROPAGATION_CHILD_NODE.COM
$!
$! This command file to be used in conjunction with
*_PARENT_NODE.COM
$!
$! Parent node process is run on node GROAT to which a proxy is
required
$!-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
=-=-=-=-=
$ Set Verify
$ DEFINE/PROCESS SQL$DISABLE_CONTEXT "FALSE"
$ SQLMOD == "$SYS$SYSTEM:SQL$MOD"
$!
$! The code is yours *as is*. I don't offer any support, but I
will answer any
$! questions (here or via direct e-mail) when/if I can. Enjoy!
$!
$! NB: This is USER mode, UNpriviledged code! You do *NOT* have to
install
$! anything. Turn all priviledges *OFF* except (netmbx,tmpmbx)
$!
$ set verify
$ gosub Create_child_cob
$ gosub dist_sql_sqlmod
$ gosub Create_out_msg_cob
$!
$ cobol/lis child.cob
$ cobol/lis out_msg.cob
$!
$! You need to create a child database in sub-directory [.test]
from default directory
$!
$ if f$search("test.dir") .eqs. ""
$ then
$ create/dir [.test]
$ set default [.test]
$ @SQL$SAMPLE:PERSONNEL SQL S NOCDD
$ set default [-]
$ endif
$ set verify
$!
$! Then run the following sql:-
$!
$ SQL
ATTACH 'FILE [.TEST]PERSONNEL';
ALTER TABLE DEPARTMENTS ALTER COLUMN DEPARTMENT_NAME CONSTRAINT
NO_SPACE CHECK (DEPARTMENT_NAME <> ' ');
COMMIT;
EXIT
$!
$! The SQLMOD is compiled as follows:-
$!
$ SQLMOD DIST_SQL.SQLMOD/CONTEXT=
(SET_TRANS_RW,UPDATE_DEPT)/CONSTR=IMMED
$! SQLMOD DIST_SQL.SQLMOD/CONTEXT=(SET_TRANS_RW,UPDATE_DEPT)
$!
$! You need to do a $MACRO/LIS on the following (call it
DIST_DEF.MAR)
$!
$ CREATE DIST_DEF.MAR
.TITLE EXTERNAL SYMBOL DEFINITIONS

$PSLDEF GLOBAL
$LNMDEF GLOBAL
$DDTMDEF GLOBAL
$DDTMMSGDEF GLOBAL

.END
$!
$ MACRO/LIS DIST_DEF.MAR
$!
$!
$! Then you link the CHILD images and create command file:-
$!
$ LINK CHILD, OUT_MSG, DIST_DEF, DIST_SQL,
SYS$LIBRARY:SQL$USER/LIB
$!
$! Finally:-
$ open/write out sys$login:child.com
$ write out "$run child.exe"
$ close out
$!
$!
$! CHILD.COM will be called via PARENT on another node
$!
$Exit:
$ Exit

$!----------------------------------------------------------------------
--------
$Create_child_cob:
$ create child.cob
identification division.
program-id. child_rtn with ident "v1.0".
author. public domain.

data division.
working-storage section.
*
01 out_msg pointer value external
out_msg.
01 ddtm$m_nowait pic 9(9) comp value external
ddtm$m_nowait.
01 ddtm$_integrity pic 9(9) comp value external
ddtm$_integrity.
01 lnm$m_case_blind pic 9(9) comp value external
lnm$m_case_blind.
01 psl$c_super pic 9(9) comp value external
psl$c_super.
01 io$_readvblk pic 9(9) comp value external
io$_readvblk.
01 io$_writevblk pic 9(9) comp value external
io$_writevblk.
01 ss$_bufferovf pic 9(9) comp value external
ss$_bufferovf.
01 ss$_linkdiscon pic 9(9) comp value external
ss$_linkdiscon.
01 ss$_linkabort pic 9(9) comp value external
ss$_linkabort.
01 ss$_remote pic 9(9) comp value external
ss$_remote.
01 ss$_normal pic 9(9) comp value external
ss$_normal.
01 ss$_abort pic 9(9) comp value external
ss$_abort.
01 sys_status pic 9(9) comp.
*
01 db_spec pic x(50) value "alias pers
filename [.test]personnel".
01 sqlcode pic 9(9) comp.
01 dtm_iosb.
03 dtm_iosb_status pic 9(4) comp.
03 pic xx.
03 reason_code pic 9(9) comp.
01 rdb$message_vector external.
03 rdb$lu_num_arguments pic 9(9) comp.
03 rdb$lu_status pic 9(9) comp.
03 rdb$alu_arguments occurs 18 times.
05 rdb$lu_arguments pic 9(9) comp.
01 iosb.
03 cond_val pic 9(4) comp.
03 byte_count pic 9(4) comp.
03 chan_info pic 9(9) comp.
*
01 msg_buf pic x(256).
01 msg_len pic 9(4) comp.
01 sql_ctx.
03 pic 9(9) comp value 1.
03 pic 9(9) comp value 1.
03 pic 9(9) comp value 16.
03 tid pic x(16) value low-values.
03 pic 9(9) comp value zero.
*
01 net_chan pic 9(4) comp.
01 cmd_eof pic x value "N".
01 commit_flag pic x.
01 letter_sent.
03 ls_tid pic x(16).
03 ls_bid pic x(16).
03 new_name pic x(30).
03 pic x(450).
*
01 node_list.
03 item_string.
05 pic 9(4) comp value 8.
05 pic 9(4) comp value external
lnm$_string.
05 pointer value reference
node_name.
05 pic 9(9) comp.
03 pic 9(9) comp.
01 node_name pic x(8).
01 node_name_len pic 9(4) comp.
*
procedure division.
kick_off section.
00.
perform child_init.

perform get_cmd.
perform dist_trans until cmd_eof = "Y".

call "disconnect_db" using sqlcode
if rdb$lu_status not = ss$_normal
call "sys$putmsg" using rdb$message_vector
call "lib$stop" using by value ss$_abort.
*
fini.
stop run.
*
child_init section.
00.
*+
* Shake hands.
*-
call "sys$assign"
using by descriptor "sys$net"
by reference net_chan
by value 0, 0, 0
giving sys_status.
if sys_status not = ss$_normal and ss$_remote
call "lib$stop" using by value sys_status.
*+
* Find out which node invoked us. We need the node name for
* the $start_branch as we are an Authorized Participant.
* This allows the child task to be called from multiple
* parent nodes transparently.
*-
call "sys$trnlnm"
using by reference lnm$m_case_blind
by descriptor "LNM$PROCESS_TABLE", "SYS$NET"
by reference psl$c_super, node_list
giving sys_status.
if sys_status not = ss$_normal and ss$_bufferovf
call "lib$stop" using by value sys_status.

inspect node_name tallying node_name_len for characters before
initial "::".

call "declare_connection_name" using sqlcode, db_spec.
if rdb$lu_status not = ss$_normal
call "sys$putmsg" using rdb$message_vector
call "lib$stop" using by value ss$_abort.
*
dist_trans section.
00.
move ls_tid to tid.

call "sys$start_branchw"
using by value 0, 0
by reference dtm_iosb
by value 0, 0
by reference ls_tid
by descriptor node_name (1:node_name_len)
by reference ls_bid
giving sys_status.
if sys_status = ss$_normal move dtm_iosb_status to sys_status.
if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.
*
perform the_update.
*
*+
* Send back a zero length record to signal EOF.
* DECnet PhaseIV didn't require an address PhaseV does :-(
*-
call "sys$qiow"
using by value 0, net_chan, io$_writevblk
by reference iosb
by value 0,0
by reference letter_sent
by value 0,0,0,0,0
giving sys_status.
if sys_status = ss$_normal move cond_val to sys_status.
if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.

if commit_flag = "Y"
perform commit_trans
else perform abort_trans.
*
fini.
perform get_cmd.
*
get_cmd section.
00.
call "sys$qiow"
using by value 0, net_chan, io$_readvblk
by reference iosb
by value 0,0
by reference letter_sent
by value 512,0,0,0,0
giving sys_status.
if sys_status = ss$_normal move cond_val to sys_status.
if sys_status = ss$_linkdiscon or ss$_linkabort
move "Y" to cmd_eof
else
if sys_status not = ss$_normal
call "lib$stop" using by value sys_status.
*
the_update section.
00.
call "set_trans_rw" using sqlcode, sql_ctx.
if rdb$lu_status not = ss$_normal
call "sys$putmsg" using rdb$message_vector
call "lib$stop" using by value ss$_abort.

call "update_dept" using sqlcode, new_name, sql_ctx.
if rdb$lu_status not = ss$_normal
move "N" to commit_flag
call "sys$putmsg"
using by reference rdb$message_vector
by value out_msg, 0
by reference net_chan
giving sys_status
if sys_status not = ss$_normal
call "lib$stop" using by value sys_status
end-if
else
move "Y" to commit_flag.
*
fini.
*
commit_trans section.
00.
display "Ending branch".
call "sys$end_branchw"
using by value 0, 0
by reference dtm_iosb
by value 0, 0
by reference ls_tid, ls_bid
giving sys_status.
if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.
*
if dtm_iosb_status = ss$_abort
call "sys$getmsg"
using by value reason_code
by reference msg_len
by descriptor msg_buf
by value 0,0
giving sys_status
if sys_status not = ss$_normal
call "lib$stop" using by value sys_status
end-if
display "Couldn't commit - " msg_buf (1:msg_len)
else if dtm_iosb_status not = ss$_normal
call "lib$stop" using by value dtm_iosb_status.
*
abort_trans section.
00.
display "Aborting transaction".

call "sys$abort_transw"
using by value 0, ddtm$m_nowait
by reference dtm_iosb
by value 0, 0
by reference ls_tid
by value ddtm$_integrity
by reference ls_bid
giving sys_status.
if sys_status = ss$_normal move dtm_iosb_status to sys_status.
if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.
*
end program child_rtn.
$ return

$!----------------------------------------------------------------------
--------
$Create_out_msg_cob:
$ create out_msg.cob
identification division.
program-id. out_msg.
data division.
working-storage section.
*
01 io$_writevblk pic 9(9) comp value external
io$_writevblk.
01 ss$_abort pic 9(9) comp value external
ss$_abort.
01 ss$_normal pic 9(9) comp value external
ss$_normal.
01 sys_status pic 9(9) comp.
*
01 iosb.
03 cond_val pic 9(4) comp.
03 byte_count pic 9(4) comp.
03 chan_info pic 9(9) comp.
*
linkage section.
01 msg_desc.
03 msg_len pic 9(4) comp.
03 msg_class pic 9(4) comp.
03 msg_addr pointer.
01 net_chan pic 9(4) comp.
*
procedure division
using msg_desc,
net_chan
giving ss$_abort.
00.
*+
* This $qiow call could just as easily be a call to T3$SEND that would
* transfer all of those lovely descriptive Rdb error messages back to
* your VB message window.
*-
call "sys$qiow"
using by value 0, net_chan, io$_writevblk
by reference iosb
by value 0,0,msg_addr,msg_len,0,0,0,0
giving sys_status.
if sys_status = ss$_normal move cond_val to sys_status.
if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.

exit program.

end program out_msg.
$ return

$!----------------------------------------------------------------------
--------
$Dist_sql_sqlmod:
$ create Dist_sql.sqlmod
module dist_sql
language cobol
parameter colons

declare pers alias filename mf_personnel

procedure declare_connection_name
sqlcode,
:db_spec char(50);

attach :db_spec;

procedure set_trans_rw
sqlcode;

set transaction read write
reserving pers.departments for shared write;

procedure update_dept
sqlcode
:dept_name char(30);

update pers.departments
set department_name = :dept_name
where department_code= 'PHRN';

procedure disconnect_db
sqlcode;

disconnect default;
$ return

richar...@my-deja.com

unread,
Oct 6, 2000, 3:00:00 AM10/6/00
to
$!-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
=-=-=-=-=
$! MAHER_DECDTM_PROPAGATION_PARENT_NODE.COM

$!
$! This command file to be used in conjunction with
*_CHILD_NODE.COM
$!
$! Child node process is run on node GROAT to which a proxy is

required
$!-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
=-=-=-=-=
$ Set Verify
$ DEFINE/PROCESS SQL$DISABLE_CONTEXT "FALSE"
$ SQLMOD == "$SYS$SYSTEM:SQL$MOD"
$!
$! The code is yours *as is*. I don't offer any support, but I
will answer any
$! questions (here or via direct e-mail) when/if I can. Enjoy!
$!
$! NB: This is USER mode, UNpriviledged code! You do *NOT* have to
install
$! anything. Turn all priviledges *OFF* except (netmbx,tmpmbx)
$!
$ set verify
$ gosub Create_parent_cob
$ gosub dist_sql_sqlmod
$!
$ if f$getsyi("ARCH_NAME") .eqs. "VAX"
$ then
$ cobol/lis parent.cob
$ else
$ cobol/GRANULARITY=BYTE/lis parent.cob
$ endif
$!
$! You need to create a parent database in the default database.
$!
$ set noon
$ sql
drop database filename mf_personnel;
exit
$!
$ @SQL$SAMPLE:PERSONNEL SQL M NOCDD
$ set verify
$!

$! The SQLMOD is compiled as follows:-
$!
$ SQLMOD DIST_SQL.SQLMOD/CONTEXT=
(SET_TRANS_RW,UPDATE_DEPT)/CONSTR=IMMED
$! SQLMOD DIST_SQL.SQLMOD/CONTEXT=(SET_TRANS_RW,UPDATE_DEPT)
$!
$! Then you link the parent image:-
$!
$ LINK PARENT, DIST_SQL, SYS$LIBRARY:SQL$USER/LIB
$!
$! Finally:-
$!
$! RUN PARENT
$!
$! Enter a couple of department_names (you can check the databases
if you want)
$! before entering spaces. Enter ^Z if you want to exit.
$!
$Exit:
$ Exit

$!----------------------------------------------------------------------
--------
$Create_parent_cob:
$ create parent.cob
identification division.
program-id. parent_rtn with ident "v1.0".
author. public domain.

data division.
working-storage section.
*

01 io$_readvblk pic 9(9) comp value external
io$_readvblk.
01 io$_writevblk pic 9(9) comp value external
io$_writevblk.

01 ss$_abort pic 9(9) comp value external
ss$_abort.
01 ss$_remote pic 9(9) comp value external
ss$_remote.
01 ss$_normal pic 9(9) comp value external
ss$_normal.
01 sys_status pic 9(9) comp.
*
01 db_spec pic x(50) value "alias pers

filename mf_personnel".
01 user_exit pic x value "N".
01 commit_flag pic x.


01 msg_buf pic x(256).
01 msg_len pic 9(4) comp.

01 net_chan pic 9(4) comp.

01 letter_sent.
03 ls_tid pic x(16).
03 ls_bid pic x(16).
03 new_name pic x(30).
03 pic x(450).
*

01 sql_ctx.
03 pic 9(9) comp value 1.
03 pic 9(9) comp value 1.
03 pic 9(9) comp value 16.
03 tid pic x(16) value low-values.
03 pic 9(9) comp value zero.

01 bid pic x(16).
*


01 sqlcode pic 9(9) comp.
01 dtm_iosb.
03 dtm_iosb_status pic 9(4) comp.
03 pic xx.
03 reason_code pic 9(9) comp.

01 rdb$message_vector external.
03 rdb$lu_num_arguments pic 9(9) comp.
03 rdb$lu_status pic 9(9) comp.
03 rdb$alu_arguments occurs 18 times.
05 rdb$lu_arguments pic 9(9) comp.

*
01 iosb.
03 cond_val pic 9(4) comp.
03 byte_count pic 9(4) comp.
03 chan_info pic 9(9) comp.
*

01 ncb.
03 child_node pic x(5) value "groat".
03 pic x(14) value '::"task=child"'.


*
procedure division.
kick_off section.
00.

perform parent_init.

display "Enter new department name : " erase screen no advancing.
accept new_name
protected
reversed
at end move "Y" to user_exit.

perform dist_trans until user_exit = "Y".

call "sys$dassgn" using by value net_chan giving sys_status.


if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.
*

fini.
stop run.
*
parent_init section.
00.
*+
* Create the remote task.
*-
call "sys$assign"
using by descriptor ncb


by reference net_chan
by value 0, 0, 0
giving sys_status.
if sys_status not = ss$_normal and ss$_remote
call "lib$stop" using by value sys_status.

call "declare_connection_name" using sqlcode, db_spec.


if rdb$lu_status not = ss$_normal
call "sys$putmsg" using rdb$message_vector
call "lib$stop" using by value ss$_abort.
*

fini.
*
dist_trans section.
00.
move function upper-case (new_name) to new_name.
*+
* Start the transaction.
*-
call "sys$start_transw"


using by value 0, 0
by reference dtm_iosb
by value 0, 0

by reference tid


giving sys_status.
if sys_status = ss$_normal move dtm_iosb_status to sys_status.
if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.

*+
* Authorize a branch (participant) for the sub-process.
*-
call "sys$add_branchw"


using by value 0, 0
by reference dtm_iosb
by value 0, 0

by reference tid
by descriptor child_node
by reference bid


giving sys_status.
if sys_status = ss$_normal move dtm_iosb_status to sys_status.
if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.

*+
* Give the remote process what it needs to join in. *PARALLELISM*
* This could just as easily be a TIP URL. YOU could make it happen!
*-
move tid to ls_tid.
move bid to ls_bid.

call "sys$qiow"
using by value 0, net_chan, io$_writevblk
by reference iosb
by value 0,0
by reference letter_sent

by value 512,0,0,0,0
giving sys_status.
if sys_status = ss$_normal move cond_val to sys_status.

if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.

*+
* Enlist Rdb.
*-


call "set_trans_rw" using sqlcode, sql_ctx.
if rdb$lu_status not = ss$_normal
call "sys$putmsg" using rdb$message_vector
call "lib$stop" using by value ss$_abort.

*


call "update_dept" using sqlcode, new_name, sql_ctx.

if rdb$lu_status = ss$_normal
move "Y" to commit_flag
else
call "sys$putmsg" using rdb$message_vector
move "N" to commit_flag.
*+
* Synchronize with the child process as we can't commit until his
* database work is finished. For this example we don't bother asking
* the child how its update went. Let the DECdtm 2PC sort it out.
*-
perform get_reply.
perform until byte_count = zeros or sys_status not = ss$_normal
display "Child> ", letter_sent (1:byte_count)
perform get_reply
end-perform.


if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.

if commit_flag = "Y"
perform commit_trans
else
perform abort_trans.
*
fini.

*
display "Enter new department name : " no advancing.
accept new_name
protected
reversed
at end move "Y" to user_exit.
*
get_reply section.


00.
call "sys$qiow"
using by value 0, net_chan, io$_readvblk
by reference iosb
by value 0,0
by reference letter_sent
by value 512,0,0,0,0
giving sys_status.
if sys_status = ss$_normal move cond_val to sys_status.

*
commit_trans section.
00.
display "Committing transaction. . .".

call "sys$end_transw"


using by value 0, 0
by reference dtm_iosb
by value 0, 0

by reference tid


giving sys_status.
if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.
*
if dtm_iosb_status = ss$_abort
call "sys$getmsg"
using by value reason_code
by reference msg_len
by descriptor msg_buf
by value 0,0
giving sys_status
if sys_status not = ss$_normal
call "lib$stop" using by value sys_status
end-if
display "Couldn't commit - " msg_buf (1:msg_len)
else if dtm_iosb_status not = ss$_normal
call "lib$stop" using by value dtm_iosb_status.
*
abort_trans section.
00.

display "Aborting transaction. . .".

call "sys$abort_transw"


using by value 0, 0
by reference dtm_iosb
by value 0, 0

by reference tid
by value 0
giving sys_status.
if sys_status = ss$_normal or ss$_abort move dtm_iosb_status to


sys_status.
if sys_status not = ss$_normal call "lib$stop" using by value
sys_status.
*

end program parent_rtn.

Carl Perkins

unread,
Oct 7, 2000, 3:00:00 AM10/7/00
to
richar...@my-deja.com writes...

}As far as RTR goes, if you wanted to add a very expensive, superfluous
}layer of crud, then you could do what Mathias said.

I have no idea if it is crud or not since I have never used it, but
it is aparnetly no longer expensive: according to the info on OpenVMS
v7.3 that has been released, RTR now comes with it. Why? I have no
idea. I can't imagine that all that many sites actually use it (maybe
that's why?), especially comapred to clustering (which would be a much
more useful thing to include).

--- Carl

Shane....@healthnet.com

unread,
Oct 9, 2000, 3:00:00 AM10/9/00
to

It does, however, make VMS a more attractive platform for web stuff,
especially in combination with the Apache implementation they jsut
released. The idea of e-business pretty much revolves around transactions,
and the other products for the job cost a lot of money. I know, we just
bought one here - I don't think I'm allowed to give numbers, but it's more
than enough for several people to retire on.

Anybody know if they're just bundling RTR for VMS, or are they throwing in
the other platforms' versions with it?

Shane

ca...@gergl1.gerg.tamu.edu (Carl Perkins) on 10/07/2000 03:16:00 AM

To: Info...@Mvb.Saic.Com
cc:

Subject: Re: DECnet/Alpha vs Web

richar...@my-deja.com

unread,
Oct 10, 2000, 3:00:00 AM10/10/00
to

(Before reading this, please be aware that I couldn't care less about
RTR. My only interest stems from the fact that I believe that RTR
engineering (ably assisted in this matter by the unbridled ineptitued
of VMS management) has layed siege to DECdtm's budget/functionality and
currently has its talons into any future Transaction Internet Protocol
functionality on VMS)

I went looking for some Compaq reference to back up what Carl was
saying, and didn't know whether to laugh or cry when I came across the
following web site:

http://www.openvms.digital.com/ebusiness_without_compromise/fact/OPENVMS
-V73.HTML

Can anyone confirm that the planned bundling of RTR in V7.3 is for run-
time only?

Forgive my crapulence in the rest of this reply but I know how
important TIP and DECdtm are to VMS's longevity and I can't understand
how can you people can sit back while the RTR scorpion drives its tail
repeatedly into the VMS frog!

I for one will applaud and, if at all possible, contibute to any anti-
trust action brought against Compaq over the bundling of RTR. DECdtm
is an intrinsic part of the operating system - RTR is *not*. DECdtm is
the VMS equivilent of MTS - RTR is *not*. RTR is *not* DECdtm. I
thought IBM was in the process of porting the latest version of
MQSeries to Alpha/VMS, so how does Compaq reward them? By trying to
undermine MQSeries with a give away RTR?

"If you implement with MQSeries then your customers will have to pay
IBM license fees, but if you develop with RTR then your customers get
it for free!" "But hey, whoever said that we're into level playing
fields here at Compaq?"

IBM MQSeries
BEA MessageQ
Reuters TIBCO
Tier3 Software TIER3

Probably not enough people for class action but more than enough
lawyers to write "Please explain" letters. Does anyone know a mail
address for the Attorney General's Antitrust Section?

>It does, however, make VMS a more attractive platform for web stuff,
especially in combination with
>the Apache implementation they jsut released. The idea of e-business
pretty much revolves around
>transactions, and the other products for the job cost a lot of money.
I know, we just bought one
>here - I don't think I'm allowed to give numbers, but it's more than
enough for several people to
>retire on.
>
>Anybody know if they're just bundling RTR for VMS, or are they
throwing in the
>other platforms' versions with it?
>
>Shane

To answer your question - Yes. I imagine that it is planned to bundle
RTR on TRU64 and NT. I'm sure that Dipu's vision knows no bounds.

But let me ask you a question:- "Where have you been?" Have you not
heard of the Transaction Internet Protocol? Do you not understand the
beauty of a two-pipe strategy and the fact that the days of needing
product X everywhere are dead? Have you heard of MTS? it's made by a
reasonably successful company called Microsoft and guess what it's
free! And you know what else? DECdtm is free! And if it wasn't for the
treacherous RTR empire building that's going on then a TIP URL could be
happily passed from MTS to DECdtm to NonStop SQL/MP and everyone else
who supports the standard regardless of the software/hardware that they
are running!

Don't let them pillage VMS. Dipu's minions are probably cutting code
right now (funded from God knows where. Some previously plundered VMS
village no doubt.) trying to make RTR TIP compatible so that they can
offer you a fait accompli. Please get in touch with your Compaq rep and
tell him that you want DECdtm upgraded and don't want your VMS license
fees going to some RTR slush fund.

Regards Richard Maher.

PS. Have anyone seen Jim Johnson lately?

PPS. Although I'm not fond of ACMS, don't forget that ACMSxp gives you
Rdb/VMS <-> W2K SQL Server 2PC "Right here! Right now!" without *any*
RTR.

PPPS. "And if you tolerate this, then your children will be next."

Jeff Coffield

unread,
Oct 11, 2000, 3:00:00 AM10/11/00
to
Jennifer Tran wrote:

> Could someone please explain to me how DECnet/Alpha can be used as the
> back end for Web ...Many thanks...
>
> Jennifer

We use an Alpha as an application server connected to a
Linux/Apache/Firewall. No need for relational
databases or transaction processing overhead. VMS Basic with RMS files.
Simple, clean, fast, cheap.


0 new messages