| I've encounterd same problem again.The environment of this demo is followings.
OS : WindowsNT Workstation 4.0(Japanese) for Intel
DCE: Digital DCE V1.1C
TP : ACMSxp for WindowsNT V3.0(patch version)
DB : Oracle Enterprise Server for WindowsNT/Intel R7.3.2(Japanese)
Oracle Pro*C/C++ 2.2.2.0.4
I've read ACMSxp Help Section 'Compiling STDL Source' and compiled the
Processing Group Definition with '-T simple' and tha caller tasks and the
Task Group Definition with '-T single -t' and '-T single' switch.
Also, I've added INITIALIZATION/TERMINATION procedure definition into the
Procedure Group Definition to CONENCT/COMMIT WITH RELEASE.
However, I've encounterd ORA-01012 error which means 'Not logged in yet
message has displayed for each transaction'.
Although I seeks this issue in the ACMSxp documentation titled 'ACMSxp
Developing and Managing Applications', I could not find the solution.
Since Oracle Server for WindowsNT has not support XA interface yet,
I should chose 'single' transaction model.
If anybody has any information for this issue, please let me know.
Thanks,
Hiroaki
|
| Rich-san,
I missunderstood the meaning of 'transaction model'. The '-M' switch
disappeared the not logged error and my application worked properly.
I'll attach my Makefile which based on employee.mak as a sample using Oracle.
Thanks,
Hiroaki
[Server Relation]
Task Groups Proc Groups TXN model
prTG -------------> prPG none
sfTG -+---------+
| +-> d1PG single
+-> d1TG -+
[Makefile]
#####################################################################
#
# COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1995
# ALL RIGHTS RESERVED. UNPUBLISHED RIGHTS RESERVED UNDER THE
# COPYRIGHT LAWS OF THE UNITED STATES.
#
# THIS SOFTWARE IS PROPRIETARY TO AND EMBODIES THE CONFIDENTIAL
# TECHNOLOGY OF DIGITAL EQUIPMENT CORPORATION. POSSESSION, USE, OR
# COPYING OF THIS SOFTWARE AND MEDIA IS AUTHORIZED ONLY PURSUANT
# TO A VALID WRITTEN LICENSE FROM DIGITAL EQUIPMENT CORPORATION
# OR AN AUTHORIZED SUBLICENSOR.
#
# RESTRICTED RIGHTS: USE, DUPLICATION, OR DISCLOSURE BY THE
# U.S. GOVERNMENT IS SUBJECT TO RESTRICTIONS AS SET FORTH IN
# SUBPARAGRAPH (C) (1) (II) OF DFARS 252.227-7013, OR IN FAR
# 52.227-19, OR IN FAR 52.227-14 ALT. III, AS APPLICABLE.
#
#####################################################################
#
# This is the make file for the employee sample server files and
# employee_setup_db.exe.
#
# This makefile checks the environment variable DEBUG_BUILD to
# see whether or not to build in debug mode or not. If DEBUG_BUILD
# is TRUE, a debug build is done. If DEBUG_BUILD is not defined or
# is anything other than TRUE, then a non-debug build is done.
#
!if "$(DEBUG_BUILD)" == ""
DEBUG_BUILD = FALSE
!endif
#
# Define the symbols used in the compiles and links
#
!if "$(DEBUG_BUILD)" == "DEBUG"
# Set debug symbols
ldebug = /debug /debugtype:both
cdebug = -Zi -Od
stdl_debug = -g -k
!else
ldebug=
cdebug =
stdl_debug =
DEBUG_BUILD = "RELEASE"
!endif
stdl_txnmodel = -T single
do_link = link -$(DEBUG_BUILD) -subsystem:console $(ldebug) /out:$@
/map:$*.map
#
# The follwoings are default rule to produce object files from STDL files
#
.SUFFIXES: .stdl .pc .c
.stdl.obj:
stdl -X -t $(stdl_debug) $<
.pc.c.:
proc22 threads=no $<
.c.obj:
cl /DACMSxp /If:\orant\pro22\c\include /W3 /c /MD /Fo$@ $(cdebug) $<
#
# The declaration for the location symbols for objects
#
SRC_PATH = G:\BUPPIN\SRC
SERVER_PATH = G:\BUPPIN\SERVER
CLIENT_PATH = G:\BUPPIN\CLIENT
JACKET_PATH = G:\BUPPIN\JACKET
#
# The declaration of ACMSxp and Oracle Pro*C libraries
#
linklib = tps.lib stdlrt.lib libdce.lib pthreads.lib
orcllib = f:\orant\pro22\lib\msvc\sqllib18.lib
#
# The declaration for the task and procedure file collection
#
# The task objects for 'prTG'
taskgrp1 = prTG.stdl
taskobj1 = tkharai_prt.obj
# The task objects for 'sfTG'
taskgrp2 = sfTG.stdl
taskobj2 = tkharai_ud.obj
# The task objects for 'd1TG'
taskgrp3 = d1TG.stdl
taskobj3 = tkdbsc_buppin.obj \
tkdbud_buppin.obj \
tkdbud_rireki.obj
#
# The declaration for the task and procedure file collection
#
# The processing procedure objects for 'prPG'
procgrp1 = prPG.stdl
procobj1 = psharai_prt.obj
# The processing procedure objects for 'd1PG'
procgrp2 = d1PG.stdl
procobj2 = psdbsc_buppin.obj \
psdbud_buppin.obj \
psdbud_rireki.obj \
sqlerror.obj \
InitTerm_proc.obj
install: server
copy prtg_svr.exe $(SERVER_PATH)
copy prtg_1_0.idf $(SERVER_PATH)
copy sftg_svr.exe $(SERVER_PATH)
copy sftg_1_0.idf $(SERVER_PATH)
copy d1tg_svr.exe $(SERVER_PATH)
copy d1tg_1_0.idf $(SERVER_PATH)
copy prpg_svr.exe $(SERVER_PATH)
copy prpg_1_0.idf $(SERVER_PATH)
copy d1pg_svr.exe $(SERVER_PATH)
copy d1pg_1_0.idf $(SERVER_PATH)
clean:
-del /q temp
-rd temp
-del /q Record.h
-del /q *TG.h
-del /q *PG.h
-del /q *.obj
-del /q *.exe
-del /q *.map
-del /q *.lis
-del /q *.err
-del /q *.idf
server: prtg_svr.exe sftg_svr.exe d1tg_svr.exe prpg_svr.exe d1pg_svr.exe
client: ho_cli.exe
prtg_svr.exe: $(taskobj1) prtg_svr.obj prpg_cli.obj
$(do_link) $(taskobj1) prtg_svr.obj prpg_cli.obj $(linklib)
sftg_svr.exe: $(taskobj2) sftg_svr.obj d1tg_cli.obj
$(do_link) $(taskobj2) sftg_svr.obj d1tg_cli.obj $(linklib)
d1tg_svr.exe: $(taskobj3) d1tg_svr.obj d1pg_cli.obj
$(do_link) $(taskobj3) d1tg_svr.obj d1pg_cli.obj $(linklib)
prpg_svr.exe: prpg.h $(procobj1) prpg_svr.obj
$(do_link) $(procobj1) prpg_svr.obj $(linklib) $(orcllib)
d1pg_svr.exe: d1pg.h $(procobj2) d1pg_svr.obj
$(do_link) $(procobj2) d1pg_svr.obj $(linklib) $(orcllib)
ho_cli.exe: Record.h prTG.h sfTG.h d1TG.h ho_cli.obj prtg_cli.obj
sftg_cli.obj d1tg_cli.obj
$(do_link) $* prtg_cli.obj sftg_cli.obj d1tg_cli.obj $(linklib)
Record.h: Record.stdl
stdl -X $(stdl_txnmodel) -c -n records $(stdl_debug) $?
prTG.h: $(taskgrp1)
stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?
prtg_svr.obj: $(taskgrp1)
stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?
prtg_cli.obj: $(taskgrp1)
stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?
sfTG.h: $(taskgrp2)
stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?
sftg_svr.obj: $(taskgrp2)
stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?
sftg_cli.obj: $(taskgrp2)
stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?
d1TG.h: $(taskgrp3)
stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?
d1tg_svr.obj: $(taskgrp3)
stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?
d1tg_cli.obj: $(taskgrp3)
stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?
prPG.h: $(procgrp1)
stdl -X -T multi -c -u 276cb4a2-991d-11d0-9e2b-08002b3c1af8 -v 1.0
$(stdl_debug) $?
prpg_svr.obj: $(procgrp1)
stdl -X -T multi -c -u 276cb4a2-991d-11d0-9e2b-08002b3c1af8 -v 1.0
$(stdl_debug) $?
prpg_cli.obj: $(procgrp1)
stdl -X -T multi -c -u 276cb4a2-991d-11d0-9e2b-08002b3c1af8 -v 1.0
$(stdl_debug) $?
d1PG.h: $(procgrp2)
stdl -X -M $(stdl_txnmodel) -c -u 3b3aad3b-991d-11d0-9e2b-08002b3c1af8
-v 1.0 $(stdl_debug) $?
d1pg_svr.obj: $(procgrp2)
stdl -X -M $(stdl_txnmodel) -c -u 3b3aad3b-991d-11d0-9e2b-08002b3c1af8
-v 1.0 $(stdl_debug) $?
d1pg_cli.obj: $(procgrp2)
stdl -X -M $(stdl_txnmodel) -c -u 3b3aad3b-991d-11d0-9e2b-08002b3c1af8
-v 1.0 $(stdl_debug) $?
|